From e8e18d765ec1e47825f23d478583b2041dfe7dfe Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Mon, 12 Oct 2015 20:33:23 +0100 Subject: Read explicit Java field accesses --- .../tests/frontends/java/JavaReaderTests.java | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) (limited to 'src/test/java') 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; @@ -39,6 +41,23 @@ public class JavaReaderTests { readExpressionInInstanceMethod("this")); } + @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( @@ -93,7 +112,6 @@ public class JavaReaderTests { @SneakyThrows private ClassNode readClass(String classBody) { - val javaClass = "package com.example;" + "public class Example {" + -- cgit v1.2.3