aboutsummaryrefslogtreecommitdiff
path: root/src/test/java/org/zwobble
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2016-03-29 19:56:41 +0100
committerMichael Williamson <mike@zwobble.org>2016-03-29 19:56:41 +0100
commitbbfc91caf379a07198bfa352023524c0b54e1bb0 (patch)
treea1b081d63bb693f9cad63f980e430540a20d0586 /src/test/java/org/zwobble
parentdf10352d2eea46b3e82cbd7783ed16e3f02fced6 (diff)
Add support for reading vararg method invocations
Diffstat (limited to 'src/test/java/org/zwobble')
-rw-r--r--src/test/java/org/zwobble/couscous/tests/ValueObjectTests.java1
-rw-r--r--src/test/java/org/zwobble/couscous/tests/frontends/java/ExpressionReadingTests.java24
2 files changed, 25 insertions, 0 deletions
diff --git a/src/test/java/org/zwobble/couscous/tests/ValueObjectTests.java b/src/test/java/org/zwobble/couscous/tests/ValueObjectTests.java
index ede89d6..2a6fd85 100644
--- a/src/test/java/org/zwobble/couscous/tests/ValueObjectTests.java
+++ b/src/test/java/org/zwobble/couscous/tests/ValueObjectTests.java
@@ -42,6 +42,7 @@ public class ValueObjectTests {
public static Iterable<Object[]> valueObjectTypes() {
return asList(new Object[][] {
{AnnotationNode.class},
+ {ArrayNode.class},
{AssignmentNode.class},
{BoundTypeParameter.class},
{CastNode.class},
diff --git a/src/test/java/org/zwobble/couscous/tests/frontends/java/ExpressionReadingTests.java b/src/test/java/org/zwobble/couscous/tests/frontends/java/ExpressionReadingTests.java
index 3ad255b..b1f5049 100644
--- a/src/test/java/org/zwobble/couscous/tests/frontends/java/ExpressionReadingTests.java
+++ b/src/test/java/org/zwobble/couscous/tests/frontends/java/ExpressionReadingTests.java
@@ -9,6 +9,7 @@ import java.util.List;
import static java.util.Collections.emptyList;
import static org.junit.Assert.assertEquals;
+import static org.zwobble.couscous.ast.ArrayNode.array;
import static org.zwobble.couscous.ast.AssignmentNode.assign;
import static org.zwobble.couscous.ast.CastNode.cast;
import static org.zwobble.couscous.ast.ConstructorCallNode.constructorCall;
@@ -25,6 +26,7 @@ import static org.zwobble.couscous.ast.ThisReferenceNode.thisReference;
import static org.zwobble.couscous.ast.TypeCoercionNode.typeCoercion;
import static org.zwobble.couscous.ast.VariableReferenceNode.reference;
import static org.zwobble.couscous.tests.frontends.java.JavaReading.*;
+import static org.zwobble.couscous.types.ParameterizedType.parameterizedType;
import static org.zwobble.couscous.util.ExtraLists.list;
public class ExpressionReadingTests {
@@ -183,6 +185,28 @@ public class ExpressionReadingTests {
}
@Test
+ public void canReadMethodCallsWithZeroExpressionsAsVarargs() {
+ assertEquals(
+ staticMethodCall(
+ ScalarType.of("java.util.Arrays"),
+ "asList",
+ list(array(Types.STRING, list())),
+ parameterizedType(ScalarType.of("java.util.List"), list(Types.STRING))),
+ readExpression("java.util.List<String>", "java.util.Arrays.asList()"));
+ }
+
+ @Test
+ public void canReadMethodCallsWithMultipleExpressionsAsVarargs() {
+ assertEquals(
+ staticMethodCall(
+ ScalarType.of("java.util.Arrays"),
+ "asList",
+ list(array(Types.STRING, list(literal("one"), literal("two")))),
+ parameterizedType(ScalarType.of("java.util.List"), list(Types.STRING))),
+ readExpression("java.util.List<String>", "java.util.Arrays.asList(\"one\", \"two\")"));
+ }
+
+ @Test
public void canReadConstructorCalls() {
assertEquals(
constructorCall(ScalarType.of("java.lang.String"), list(literal("_"))),