diff options
Diffstat (limited to 'src/test')
| -rw-r--r-- | src/test/java/org/zwobble/couscous/tests/BackendEvalTests.java | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/src/test/java/org/zwobble/couscous/tests/BackendEvalTests.java b/src/test/java/org/zwobble/couscous/tests/BackendEvalTests.java index ebfbd88..da599dc 100644 --- a/src/test/java/org/zwobble/couscous/tests/BackendEvalTests.java +++ b/src/test/java/org/zwobble/couscous/tests/BackendEvalTests.java @@ -16,6 +16,7 @@ import com.google.common.collect.ImmutableList; import static java.util.Arrays.asList; import static org.junit.Assert.assertEquals; +import static org.zwobble.couscous.ast.ConstructorCallNode.constructorCall; import static org.zwobble.couscous.ast.LiteralNode.literal; import static org.zwobble.couscous.ast.MethodCallNode.methodCall; import static org.zwobble.couscous.ast.StaticMethodCallNode.staticMethodCall; @@ -83,6 +84,18 @@ public abstract class BackendEvalTests { assertEquals(value(42), result); } + @Test + public void canCallInstanceMethodOnUserDefinedClass() { + val classNode = ClassNode.builder("com.example.Example") + .method(MethodNode.method("main") + .statement(new ReturnNode(literal(42))) + .build()) + .build(); + val result = evalExpression(asList(classNode), + methodCall(constructorCall(classNode.getName(), asList()), "main", asList(), IntegerValue.REF)); + assertEquals(value(42), result); + } + protected PrimitiveValue evalExpression(ExpressionNode expression) { return evalExpression(ImmutableList.of(), expression); } |
