package org.reldb.rel.tests.main;
import org.junit.After;
import org.junit.Test;
import org.reldb.rel.tests.BaseOfTest;
import org.reldb.rel.v0.values.*;
public class TestNestedOp2 extends BaseOfTest {
@Test
public void testNestedOp2() {
String src =
"BEGIN;" +
"OPERATOR go() RETURNS INTEGER;" +
"BEGIN;" +
"VAR a INIT(5);" +
"var b INIT(7);" +
"var c integer INIT(700);" +
"OPERATOR blah(p1 integer, p2 integer) RETURNS integer;" +
" BEGIN;" +
" OPERATOR bleat(p3 integer, p4 integer) RETURNS integer;" +
" RETURN 10 + p3 + p4 + p1 + p2;" +
" END OPERATOR;" +
" OPERATOR blat(p5 integer, p6 integer) RETURNS integer;" +
" RETURN 12 + p5 + p6 + p1 + p2;" +
" END OPERATOR;" +
" RETURN bleat(10, 20) + blat(100, 200) + c;" +
" END;" +
"END OPERATOR;" +
"RETURN blah(1, 2);" +
"END;" +
"END OPERATOR;" +
"END;" +
"go()";
assertValueEquals(ValueInteger.select(generator, 1058), testEvaluate(src).getValue());
}
@After
public void testNestedOp2_cleanup() {
String src =
"BEGIN;" +
" DROP OPERATOR go();" +
"END;" +
"true";
assertValueEquals(ValueBoolean.select(generator, true), testEvaluate(src).getValue());
}
}