aboutsummaryrefslogtreecommitdiff
path: root/src/test
diff options
context:
space:
mode:
Diffstat (limited to 'src/test')
-rw-r--r--src/test/java/org/zwobble/couscous/tests/frontends/java/JavaTypesTests.java14
1 files changed, 14 insertions, 0 deletions
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 ae8d9c0..d450b6f 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
@@ -7,7 +7,9 @@ import org.zwobble.couscous.types.TypeParameter;
import static org.junit.Assert.assertEquals;
import static org.zwobble.couscous.types.BoundTypeParameter.boundTypeParameter;
+import static org.zwobble.couscous.types.ParameterizedType.parameterizedType;
import static org.zwobble.couscous.types.TypeParameter.typeParameter;
+import static org.zwobble.couscous.util.ExtraLists.list;
public class JavaTypesTests {
private static final ScalarType INT_TYPE = ScalarType.of("int");
@@ -18,6 +20,7 @@ public class JavaTypesTests {
INT_TYPE,
JavaTypes.bind(INT_TYPE, INT_TYPE));
}
+
@Test
public void bindingTypeToGenericTypeParameterReturnsBoundTypeParameter() {
TypeParameter typeParameter = typeParameter(ScalarType.of("List"), "T");
@@ -25,4 +28,15 @@ public class JavaTypesTests {
boundTypeParameter(typeParameter, INT_TYPE),
JavaTypes.bind(typeParameter, INT_TYPE));
}
+
+ @Test
+ public void bindingTypeToParameterizedTypeBindsParameters() {
+ ScalarType rawList = ScalarType.of("List");
+ TypeParameter typeParameter = typeParameter(rawList, "T");
+ assertEquals(
+ parameterizedType(rawList, list(boundTypeParameter(typeParameter, INT_TYPE))),
+ JavaTypes.bind(
+ parameterizedType(rawList, list(typeParameter)),
+ parameterizedType(rawList, list(INT_TYPE))));
+ }
}