aboutsummaryrefslogtreecommitdiff
path: root/src/test/java
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2016-03-31 19:18:39 +0100
committerMichael Williamson <mike@zwobble.org>2016-03-31 19:18:39 +0100
commitd4c5596cc4c20d884e33d0eb0faab87505483e46 (patch)
treebefc4cce58b2197546d758fbe3959c69a7b42dff /src/test/java
parentd8ce86ca9dc976ad298613e2975d41817d662a59 (diff)
Add WIP test for parameterised types in the interpreter
Diffstat (limited to 'src/test/java')
-rw-r--r--src/test/java/org/zwobble/couscous/tests/interpreter/EvaluatorTests.java26
1 files changed, 22 insertions, 4 deletions
diff --git a/src/test/java/org/zwobble/couscous/tests/interpreter/EvaluatorTests.java b/src/test/java/org/zwobble/couscous/tests/interpreter/EvaluatorTests.java
index 5f42065..9fe84e6 100644
--- a/src/test/java/org/zwobble/couscous/tests/interpreter/EvaluatorTests.java
+++ b/src/test/java/org/zwobble/couscous/tests/interpreter/EvaluatorTests.java
@@ -2,12 +2,10 @@ package org.zwobble.couscous.tests.interpreter;
import com.google.common.collect.ImmutableMap;
import org.hamcrest.Matcher;
+import org.junit.Ignore;
import org.junit.Test;
import org.zwobble.couscous.ast.*;
-import org.zwobble.couscous.interpreter.Environment;
-import org.zwobble.couscous.interpreter.JavaProject;
-import org.zwobble.couscous.interpreter.MapBackedProject;
-import org.zwobble.couscous.interpreter.StackFrameBuilder;
+import org.zwobble.couscous.interpreter.*;
import org.zwobble.couscous.interpreter.errors.*;
import org.zwobble.couscous.interpreter.values.ArrayInterpreterValue;
import org.zwobble.couscous.interpreter.values.IntegerInterpreterValue;
@@ -41,7 +39,9 @@ import static org.zwobble.couscous.interpreter.values.InterpreterValues.value;
import static org.zwobble.couscous.tests.TestIds.ANY_ID;
import static org.zwobble.couscous.tests.util.ExtraAsserts.assertThrows;
import static org.zwobble.couscous.tests.util.ExtraMatchers.*;
+import static org.zwobble.couscous.types.ParameterizedType.parameterizedType;
import static org.zwobble.couscous.util.ExtraLists.list;
+import static org.zwobble.couscous.util.ExtraMaps.map;
public class EvaluatorTests extends BackendEvalTests {
@Test
@@ -249,6 +249,24 @@ public class EvaluatorTests extends BackendEvalTests {
StringInterpreterValue.of("two"))));
}
+ @Test
+ @Ignore("WIP")
+ public void typeOfValueCanBeParameterisedType() {
+ ScalarType rawType = ScalarType.of("Box");
+ ClassNode classNode = ClassNode.builder(rawType)
+ .addTypeParameter("T")
+ .build();
+ Project project = JavaProject.of(list(classNode));
+ Environment environment = new Environment(project, Optional.empty(), map());
+ ConstructorCallNode call = constructorCall(
+ parameterizedType(rawType, list(Types.STRING)),
+ list());
+ InterpreterValue value = eval(environment, call);
+ assertThat(
+ value.getType().getType(),
+ equalTo(parameterizedType(rawType, list(Types.STRING))));
+ }
+
private Matcher<InterpreterValue> isArrayInterpreterValue(ScalarType elementType, List<InterpreterValue> elements) {
return isInstance(
ArrayInterpreterValue.class,