From df10352d2eea46b3e82cbd7783ed16e3f02fced6 Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Tue, 29 Mar 2016 19:30:44 +0100 Subject: Allow binding of parameterised types --- .../couscous/tests/frontends/java/JavaTypesTests.java | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'src/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 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)))); + } } -- cgit v1.2.3