diff options
| author | Michael Williamson <mike@zwobble.org> | 2015-10-12 20:33:23 +0100 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2015-10-12 20:33:23 +0100 |
| commit | e8e18d765ec1e47825f23d478583b2041dfe7dfe (patch) | |
| tree | 3a442594b8e634282f018d43928c81faf746aaa8 /src/test/java/org | |
| parent | 07d4507eca4c950c65fac53fafa3f81d703167d1 (diff) | |
Read explicit Java field accesses
Diffstat (limited to 'src/test/java/org')
| -rw-r--r-- | src/test/java/org/zwobble/couscous/tests/frontends/java/JavaReaderTests.java | 20 |
1 files changed, 19 insertions, 1 deletions
diff --git a/src/test/java/org/zwobble/couscous/tests/frontends/java/JavaReaderTests.java b/src/test/java/org/zwobble/couscous/tests/frontends/java/JavaReaderTests.java index ebfe068..43723c8 100644 --- a/src/test/java/org/zwobble/couscous/tests/frontends/java/JavaReaderTests.java +++ b/src/test/java/org/zwobble/couscous/tests/frontends/java/JavaReaderTests.java @@ -10,10 +10,12 @@ import org.zwobble.couscous.ast.TernaryConditionalNode; import org.zwobble.couscous.ast.TypeName; import org.zwobble.couscous.frontends.java.JavaReader; import org.zwobble.couscous.values.BooleanValue; +import org.zwobble.couscous.values.StringValue; 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.FieldAccessNode.fieldAccess; import static org.zwobble.couscous.ast.LiteralNode.literal; import static org.zwobble.couscous.ast.MethodCallNode.methodCall; import static org.zwobble.couscous.ast.StaticMethodCallNode.staticMethodCall; @@ -40,6 +42,23 @@ public class JavaReaderTests { } @Test + public void canReadExplicitFieldReference() { + val classNode = readClass( + "private String name;" + + "public String getName() {" + + " return this.name;" + + "}"); + + val returnNode = (ReturnNode) classNode.getMethods().get(0).getBody().get(0); + assertEquals( + fieldAccess( + thisReference(TypeName.of("com.example.Example")), + "name", + StringValue.REF), + returnNode.getValue()); + } + + @Test public void canReadInstanceMethodCalls() { assertEquals( methodCall(literal("hello"), "startsWith", asList(literal("h")), BooleanValue.REF), @@ -93,7 +112,6 @@ public class JavaReaderTests { @SneakyThrows private ClassNode readClass(String classBody) { - val javaClass = "package com.example;" + "public class Example {" + |
