diff options
| author | Michael Williamson <mike@zwobble.org> | 2015-10-06 13:44:18 +0100 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2015-10-06 13:44:18 +0100 |
| commit | 7324dc0bd7c70c0be4a28ca2bba5522cceaf277f (patch) | |
| tree | 14d3df885c13346cd1c9d1cbfa63ffe27a2a01e4 /src/test/java | |
| parent | ba5bf4a7c4f9097d540352afa1e895d2f1019328 (diff) | |
Add basic implementation of instance methods
Diffstat (limited to 'src/test/java')
| -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); } |
