aboutsummaryrefslogtreecommitdiff
path: root/src/test/java/org/zwobble/couscous/tests/frontends
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2015-10-31 16:07:19 +0000
committerMichael Williamson <mike@zwobble.org>2015-10-31 16:07:19 +0000
commitad4903f04c757779b2e9a875298ef8418cb140b4 (patch)
tree49c28509587633d484e6fbcdd8537e15e854a567 /src/test/java/org/zwobble/couscous/tests/frontends
parent4e13a3a626f630eb1031f32b1c3405cbf40952bc (diff)
Support equality on reference types
Diffstat (limited to 'src/test/java/org/zwobble/couscous/tests/frontends')
-rw-r--r--src/test/java/org/zwobble/couscous/tests/frontends/java/JavaReaderTests.java29
1 files changed, 26 insertions, 3 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 c4e3791..7a6aab1 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
@@ -2,6 +2,7 @@ package org.zwobble.couscous.tests.frontends.java;
import java.nio.file.Files;
import java.nio.file.Path;
+import java.util.Collections;
import java.util.List;
import org.junit.Test;
@@ -32,6 +33,7 @@ import static org.zwobble.couscous.ast.FieldDeclarationNode.field;
import static org.zwobble.couscous.ast.LiteralNode.literal;
import static org.zwobble.couscous.ast.MethodCallNode.methodCall;
import static org.zwobble.couscous.ast.MethodCallNode.not;
+import static org.zwobble.couscous.ast.StaticMethodCallNode.same;
import static org.zwobble.couscous.ast.StaticMethodCallNode.staticMethodCall;
import static org.zwobble.couscous.ast.TernaryConditionalNode.ternaryConditional;
import static org.zwobble.couscous.ast.ThisReferenceNode.thisReference;
@@ -117,7 +119,11 @@ public class JavaReaderTests {
@Test
public void canReadStaticMethodCalls() {
assertEquals(
- staticMethodCall(TypeName.of("java.lang.Integer"), "parseInt", asList(literal("42"))),
+ staticMethodCall(
+ TypeName.of("java.lang.Integer"),
+ "parseInt",
+ asList(literal("42")),
+ IntegerValue.REF),
readExpression("Integer.parseInt(\"42\")"));
}
@@ -133,7 +139,8 @@ public class JavaReaderTests {
staticMethodCall(
TypeName.of("com.example.Example"),
"loop",
- asList()),
+ asList(),
+ StringValue.REF),
returnNode.getValue());
}
@@ -145,6 +152,21 @@ public class JavaReaderTests {
}
@Test
+ public void canUseOperatorsOnReferences() {
+ assertEquals(
+ same(
+ constructorCall(TypeName.of("java.lang.Object"), Collections.emptyList()),
+ constructorCall(TypeName.of("java.lang.Object"), Collections.emptyList())),
+ readExpression("new Object() == new Object()"));
+
+ assertEquals(
+ not(same(
+ constructorCall(TypeName.of("java.lang.Object"), Collections.emptyList()),
+ constructorCall(TypeName.of("java.lang.Object"), Collections.emptyList()))),
+ readExpression("new Object() != new Object()"));
+ }
+
+ @Test
public void canUseOperatorsOnIntegers() {
assertEquals(
methodCall(literal(1), "add", asList(literal(2)), IntegerValue.REF),
@@ -246,7 +268,8 @@ public class JavaReaderTests {
staticMethodCall(
TypeName.of("java.lang.Integer"),
"parseInt",
- asList(literal("42")))),
+ asList(literal("42")),
+ IntegerValue.REF)),
readStatement("Integer.parseInt(\"42\");"));
}