aboutsummaryrefslogtreecommitdiff
path: root/src/test/java/org/zwobble
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2016-04-09 14:21:48 +0100
committerMichael Williamson <mike@zwobble.org>2016-04-09 14:21:59 +0100
commit0a550c3bb4e624d76b3876e92a2bd0e235301fba (patch)
treeee89fc17f79155f830b3413318cf3c2c76364e2d /src/test/java/org/zwobble
parentf005b283a1b1c74c8b98499069e6afcb5e9a9ade (diff)
Remove MethodTypeParameter and adjust Identifier generation
Diffstat (limited to 'src/test/java/org/zwobble')
-rw-r--r--src/test/java/org/zwobble/couscous/tests/BackendMethodTests.java8
-rw-r--r--src/test/java/org/zwobble/couscous/tests/TestIds.java7
-rw-r--r--src/test/java/org/zwobble/couscous/tests/ValueObjectTests.java7
-rw-r--r--src/test/java/org/zwobble/couscous/tests/backends/csharp/CsharpSerializerTests.java4
-rw-r--r--src/test/java/org/zwobble/couscous/tests/frontends/java/JavaReaderTests.java12
-rw-r--r--src/test/java/org/zwobble/couscous/tests/frontends/java/JavaTypesTests.java6
-rw-r--r--src/test/java/org/zwobble/couscous/tests/frontends/java/NodeMatchers.java7
7 files changed, 29 insertions, 22 deletions
diff --git a/src/test/java/org/zwobble/couscous/tests/BackendMethodTests.java b/src/test/java/org/zwobble/couscous/tests/BackendMethodTests.java
index 635dae8..dcb7d9e 100644
--- a/src/test/java/org/zwobble/couscous/tests/BackendMethodTests.java
+++ b/src/test/java/org/zwobble/couscous/tests/BackendMethodTests.java
@@ -117,8 +117,8 @@ public abstract class BackendMethodTests {
@Test
public void whileLoopIsExecutedWhileConditionIsTrue() {
- LocalVariableDeclarationNode x = localVariableDeclaration(TestIds.id("x"), "x", Types.INT, literal(0));
- LocalVariableDeclarationNode y = localVariableDeclaration(TestIds.id("y"), "y", Types.INT, literal(2));
+ LocalVariableDeclarationNode x = localVariableDeclaration(TestIds.variable("x"), "x", Types.INT, literal(0));
+ LocalVariableDeclarationNode y = localVariableDeclaration(TestIds.variable("y"), "y", Types.INT, literal(2));
MethodNode.Builder method = staticMethod("hello")
.returns(Types.INT)
.statement(x)
@@ -132,8 +132,8 @@ public abstract class BackendMethodTests {
@Test
public void returnWillExitWhileLoopEarly() {
- LocalVariableDeclarationNode x = localVariableDeclaration(TestIds.id("x"), "x", Types.INT, literal(0));
- LocalVariableDeclarationNode y = localVariableDeclaration(TestIds.id("y"), "y", Types.INT, literal(2));
+ LocalVariableDeclarationNode x = localVariableDeclaration(TestIds.variable("x"), "x", Types.INT, literal(0));
+ LocalVariableDeclarationNode y = localVariableDeclaration(TestIds.variable("y"), "y", Types.INT, literal(2));
MethodNode.Builder method = staticMethod("hello")
.returns(Types.INT)
.statement(x)
diff --git a/src/test/java/org/zwobble/couscous/tests/TestIds.java b/src/test/java/org/zwobble/couscous/tests/TestIds.java
index b32cf84..da3cd09 100644
--- a/src/test/java/org/zwobble/couscous/tests/TestIds.java
+++ b/src/test/java/org/zwobble/couscous/tests/TestIds.java
@@ -1,11 +1,12 @@
package org.zwobble.couscous.tests;
import org.zwobble.couscous.ast.identifiers.Identifier;
+import org.zwobble.couscous.ast.identifiers.Identifiers;
public class TestIds {
- public static final Identifier ANY_ID = Identifier.TOP.extend("[any id]");
+ public static final Identifier ANY_ID = Identifiers.variable(Identifiers.TOP, "[any id]");
- public static Identifier id(String name) {
- return ANY_ID.extend(name);
+ public static Identifier variable(String name) {
+ return Identifiers.variable(ANY_ID, name);
}
}
diff --git a/src/test/java/org/zwobble/couscous/tests/ValueObjectTests.java b/src/test/java/org/zwobble/couscous/tests/ValueObjectTests.java
index 0e96500..06906ca 100644
--- a/src/test/java/org/zwobble/couscous/tests/ValueObjectTests.java
+++ b/src/test/java/org/zwobble/couscous/tests/ValueObjectTests.java
@@ -61,7 +61,6 @@ public class ValueObjectTests {
{LocalVariableDeclarationNode.class},
{MethodCallNode.class},
{MethodNode.class},
- {MethodTypeParameter.class},
{OperationNode.class},
{ParameterizedType.class},
{ReturnNode.class},
@@ -151,7 +150,7 @@ public class ValueObjectTests {
} else if (type.equals(Operator.class)) {
return Operator.DIVIDE;
} else if (type.equals(Identifier.class)) {
- return TestIds.id((String)generateFirstInstance(String.class));
+ return TestIds.variable((String)generateFirstInstance(String.class));
} else if (type.equals(PrimitiveValue.class)) {
return generateFirstInstance(StringValue.class);
} else if (type.equals(ExpressionNode.class)) {
@@ -181,7 +180,7 @@ public class ValueObjectTests {
} else if (type.equals(Operator.class)) {
return Operator.MULTIPLY;
} else if (type.equals(Identifier.class)) {
- return TestIds.id((String)generateSecondInstance(String.class));
+ return TestIds.variable((String)generateSecondInstance(String.class));
} else if (type.equals(PrimitiveValue.class)) {
return generateSecondInstance(StringValue.class);
} else if (type.equals(ExpressionNode.class)) {
@@ -211,7 +210,7 @@ public class ValueObjectTests {
} else if (type.equals(Operator.class)) {
return Operator.ADD;
} else if (type.equals(Identifier.class)) {
- return TestIds.id((String)generateInstance(String.class));
+ return TestIds.variable((String)generateInstance(String.class));
} else if (type.equals(PrimitiveValue.class)) {
return generateInstance(StringValue.class);
} else if (type.equals(ExpressionNode.class)) {
diff --git a/src/test/java/org/zwobble/couscous/tests/backends/csharp/CsharpSerializerTests.java b/src/test/java/org/zwobble/couscous/tests/backends/csharp/CsharpSerializerTests.java
index a2f838f..52849dc 100644
--- a/src/test/java/org/zwobble/couscous/tests/backends/csharp/CsharpSerializerTests.java
+++ b/src/test/java/org/zwobble/couscous/tests/backends/csharp/CsharpSerializerTests.java
@@ -304,8 +304,8 @@ public class CsharpSerializerTests {
@Test
public void methodWithArguments() {
MethodNode methodNode = MethodNode.staticMethod("nothing")
- .argument(formalArg(var(TestIds.id("x"), "x", ScalarType.of("X"))))
- .argument(formalArg(var(TestIds.id("y"), "y", ScalarType.of("Y"))))
+ .argument(formalArg(var(TestIds.variable("x"), "x", ScalarType.of("X"))))
+ .argument(formalArg(var(TestIds.variable("y"), "y", ScalarType.of("Y"))))
.returns(ScalarType.of("void"))
.build();
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 971ddd9..e9e75c4 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
@@ -3,6 +3,7 @@ package org.zwobble.couscous.tests.frontends.java;
import org.junit.Test;
import org.zwobble.couscous.ast.*;
import org.zwobble.couscous.ast.identifiers.Identifier;
+import org.zwobble.couscous.ast.identifiers.Identifiers;
import org.zwobble.couscous.types.ScalarType;
import org.zwobble.couscous.types.Types;
@@ -92,10 +93,13 @@ public class JavaReaderTests {
"}");
MethodNode method = classNode.getMethods().get(0);
- assertThat(method.getTypeParameters(), contains(isFormalTypeParameter("T")));
+
+ Identifier classIdentifier = Identifiers.forType("com.example.Example");
+ Identifier expectedMethodIdentifier = Identifiers.method(classIdentifier, "identity");
+ assertThat(method.getTypeParameters(), contains(isFormalTypeParameter(expectedMethodIdentifier, "T")));
assertThat(
method.getArguments(),
- contains(isFormalArgument("value", typeParameter(Identifier.TOP.extend("com.example.Example").extend("identity"), "T"))));
+ contains(isFormalArgument("value", typeParameter(expectedMethodIdentifier, "T"))));
}
@Test
@@ -337,7 +341,7 @@ public class JavaReaderTests {
assertThat(classes, hasSize(1));
ClassNode classNode = (ClassNode) classes.get(0);
assertEquals(ScalarType.of("com.example.Example"), classNode.getName());
- assertEquals(list(formalTypeParameter("T")), classNode.getTypeParameters());
+ assertEquals(list(formalTypeParameter(Identifiers.forType("com.example.Example"), "T")), classNode.getTypeParameters());
}
@Test
@@ -348,7 +352,7 @@ public class JavaReaderTests {
assertThat(classes, hasSize(1));
InterfaceNode classNode = (InterfaceNode) classes.get(0);
assertEquals(ScalarType.of("com.example.Example"), classNode.getName());
- assertEquals(list(formalTypeParameter("T")), classNode.getTypeParameters());
+ assertEquals(list(formalTypeParameter(Identifiers.forType("com.example.Example"), "T")), classNode.getTypeParameters());
}
@Test
diff --git a/src/test/java/org/zwobble/couscous/tests/frontends/java/JavaTypesTests.java b/src/test/java/org/zwobble/couscous/tests/frontends/java/JavaTypesTests.java
index 329ccc7..75c3594 100644
--- a/src/test/java/org/zwobble/couscous/tests/frontends/java/JavaTypesTests.java
+++ b/src/test/java/org/zwobble/couscous/tests/frontends/java/JavaTypesTests.java
@@ -1,7 +1,7 @@
package org.zwobble.couscous.tests.frontends.java;
import org.junit.Test;
-import org.zwobble.couscous.ast.identifiers.Identifier;
+import org.zwobble.couscous.ast.identifiers.Identifiers;
import org.zwobble.couscous.frontends.java.JavaTypes;
import org.zwobble.couscous.types.ScalarType;
import org.zwobble.couscous.types.TypeParameter;
@@ -24,7 +24,7 @@ public class JavaTypesTests {
@Test
public void bindingTypeToGenericTypeParameterReturnsBoundTypeParameter() {
- TypeParameter typeParameter = typeParameter(Identifier.TOP.extend("List"), "T");
+ TypeParameter typeParameter = typeParameter(Identifiers.forType("List"), "T");
assertEquals(
boundTypeParameter(typeParameter, INT_TYPE),
JavaTypes.bind(typeParameter, INT_TYPE));
@@ -33,7 +33,7 @@ public class JavaTypesTests {
@Test
public void bindingTypeToParameterizedTypeBindsParameters() {
ScalarType rawList = ScalarType.of("List");
- TypeParameter typeParameter = typeParameter(Identifier.TOP.extend("List"), "T");
+ TypeParameter typeParameter = typeParameter(Identifiers.forType("List"), "T");
assertEquals(
parameterizedType(rawList, list(boundTypeParameter(typeParameter, INT_TYPE))),
JavaTypes.bind(
diff --git a/src/test/java/org/zwobble/couscous/tests/frontends/java/NodeMatchers.java b/src/test/java/org/zwobble/couscous/tests/frontends/java/NodeMatchers.java
index 104cf8b..5ef5344 100644
--- a/src/test/java/org/zwobble/couscous/tests/frontends/java/NodeMatchers.java
+++ b/src/test/java/org/zwobble/couscous/tests/frontends/java/NodeMatchers.java
@@ -2,6 +2,7 @@ package org.zwobble.couscous.tests.frontends.java;
import org.hamcrest.Matcher;
import org.zwobble.couscous.ast.*;
+import org.zwobble.couscous.ast.identifiers.Identifier;
import org.zwobble.couscous.types.Type;
import static org.hamcrest.Matchers.allOf;
@@ -14,8 +15,10 @@ public class NodeMatchers {
return hasFeature("initial value", node -> node.getInitialValue(), matcher);
}
- public static Matcher<FormalTypeParameterNode> isFormalTypeParameter(String name) {
- return hasFeature("name", node -> node.getName(), equalTo(name));
+ public static Matcher<FormalTypeParameterNode> isFormalTypeParameter(Identifier declaringScope, String name) {
+ return allOf(
+ hasFeature("name", node -> node.getType().getName(), equalTo(name)),
+ hasFeature("declaringScope", node -> node.getType().getDeclaringScope(), equalTo(declaringScope)));
}
public static Matcher<FormalArgumentNode> isFormalArgument(String name, Type type) {