aboutsummaryrefslogtreecommitdiff
path: root/src/test/java/org/zwobble/couscous/tests/frontends
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/couscous/tests/frontends
parentf005b283a1b1c74c8b98499069e6afcb5e9a9ade (diff)
Remove MethodTypeParameter and adjust Identifier generation
Diffstat (limited to 'src/test/java/org/zwobble/couscous/tests/frontends')
-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
3 files changed, 16 insertions, 9 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 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) {