public static void TriggerWithBody()
{
var body = new PlSqlBlockStatement();
body.Statements.Add(new OpenStatement("c1"));
body.Statements.Add(new CursorForLoopStatement("i", "c1"));
body.Statements.Add(new ReturnStatement());
var statement = new CreateTriggerStatement(ObjectName.Parse("APP.trig1"), new ObjectName("tab1"), body,
TriggerEventTime.Before, TriggerEventType.Insert | TriggerEventType.Update);
var expected = new StringBuilder();
expected.AppendLine("CREATE TRIGGER APP.trig1 BEFORE INSERT OR UPDATE ON tab1");
expected.AppendLine(" BEGIN");
expected.AppendLine(" OPEN c1");
expected.AppendLine(" FOR i IN c1");
expected.AppendLine(" LOOP");
expected.AppendLine(" END LOOP");
expected.AppendLine(" RETURN");
expected.Append(" END");
Assert.AreEqual(expected.ToString(), statement.ToString());
}