aboutsummaryrefslogtreecommitdiff
path: root/src/test/java
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/java')
-rw-r--r--src/test/java/org/zwobble/couscous/tests/BackendEvalTests.java5
-rw-r--r--src/test/java/org/zwobble/couscous/tests/BackendMethodTests.java9
-rw-r--r--src/test/java/org/zwobble/couscous/tests/TestIds.java5
-rw-r--r--src/test/java/org/zwobble/couscous/tests/interpreter/EvaluatorTests.java5
-rw-r--r--src/test/java/org/zwobble/couscous/tests/interpreter/InterpreterMethodTests.java15
5 files changed, 24 insertions, 15 deletions
diff --git a/src/test/java/org/zwobble/couscous/tests/BackendEvalTests.java b/src/test/java/org/zwobble/couscous/tests/BackendEvalTests.java
index 08911c9..99c1479 100644
--- a/src/test/java/org/zwobble/couscous/tests/BackendEvalTests.java
+++ b/src/test/java/org/zwobble/couscous/tests/BackendEvalTests.java
@@ -24,6 +24,7 @@ import static org.zwobble.couscous.ast.MethodCallNode.methodCall;
import static org.zwobble.couscous.ast.StaticMethodCallNode.staticMethodCall;
import static org.zwobble.couscous.ast.VariableDeclaration.var;
import static org.zwobble.couscous.ast.VariableReferenceNode.reference;
+import static org.zwobble.couscous.tests.TestIds.ANY_ID;
import static org.zwobble.couscous.values.PrimitiveValues.value;
import lombok.val;
@@ -100,7 +101,7 @@ public abstract class BackendEvalTests {
@Test
public void canCallInstanceMethodWithArgumentsOnUserDefinedClass() {
- val argument = formalArg(var(42, "x", IntegerValue.REF));
+ val argument = formalArg(var(ANY_ID, "x", IntegerValue.REF));
val classNode = ClassNode.builder("com.example.Example")
.method("main", method -> method
.argument(argument)
@@ -120,7 +121,7 @@ public abstract class BackendEvalTests {
@Test
public void constructorIsExecutedOnConstruction() {
- val argument = formalArg(var(42, "x", IntegerValue.REF));
+ val argument = formalArg(var(ANY_ID, "x", IntegerValue.REF));
val classNode = ClassNode.builder("com.example.Example")
.field("value", IntegerValue.REF)
.constructor(constructor -> constructor
diff --git a/src/test/java/org/zwobble/couscous/tests/BackendMethodTests.java b/src/test/java/org/zwobble/couscous/tests/BackendMethodTests.java
index fd6d91e..44ad2a4 100644
--- a/src/test/java/org/zwobble/couscous/tests/BackendMethodTests.java
+++ b/src/test/java/org/zwobble/couscous/tests/BackendMethodTests.java
@@ -19,6 +19,7 @@ import static org.zwobble.couscous.ast.LocalVariableDeclarationNode.localVariabl
import static org.zwobble.couscous.ast.MethodNode.staticMethod;
import static org.zwobble.couscous.ast.VariableDeclaration.var;
import static org.zwobble.couscous.ast.VariableReferenceNode.reference;
+import static org.zwobble.couscous.tests.TestIds.ANY_ID;
import static org.zwobble.couscous.values.PrimitiveValues.value;
import lombok.val;
@@ -42,7 +43,7 @@ public abstract class BackendMethodTests {
}
@Test
public void canPassValueToMethod() {
- val arg = formalArg(var(42, "x", StringValue.REF));
+ val arg = formalArg(var(ANY_ID, "x", StringValue.REF));
val method = staticMethod("hello")
.argument(arg)
.statement(new ReturnNode(reference(arg)));
@@ -53,7 +54,7 @@ public abstract class BackendMethodTests {
@Test
public void canReassignValueToArgument() {
- val arg = formalArg(var(42, "x", StringValue.REF));
+ val arg = formalArg(var(ANY_ID, "x", StringValue.REF));
val method = staticMethod("hello")
.argument(arg)
.statement(new ExpressionStatementNode(new AssignmentNode(reference(arg), LiteralNode.literal("[updated value]"))))
@@ -66,7 +67,7 @@ public abstract class BackendMethodTests {
@Test
public void canDeclareVariable() {
val localVariableDeclaration = localVariableDeclaration(
- 42, "x", StringValue.REF, LiteralNode.literal("[initial value]"));
+ ANY_ID, "x", StringValue.REF, LiteralNode.literal("[initial value]"));
val method = staticMethod("hello")
.statement(localVariableDeclaration)
.statement(new ReturnNode(reference(localVariableDeclaration)));
@@ -78,7 +79,7 @@ public abstract class BackendMethodTests {
@Test
public void canDeclareVariableAndThenAssignValues() {
val localVariableDeclaration = localVariableDeclaration(
- 42, "x", StringValue.REF, LiteralNode.literal("[initial value]"));
+ ANY_ID, "x", StringValue.REF, LiteralNode.literal("[initial value]"));
val method = staticMethod("hello")
.statement(localVariableDeclaration)
.statement(new ExpressionStatementNode(new AssignmentNode(reference(localVariableDeclaration), LiteralNode.literal("[updated value]"))))
diff --git a/src/test/java/org/zwobble/couscous/tests/TestIds.java b/src/test/java/org/zwobble/couscous/tests/TestIds.java
new file mode 100644
index 0000000..50f0ad9
--- /dev/null
+++ b/src/test/java/org/zwobble/couscous/tests/TestIds.java
@@ -0,0 +1,5 @@
+package org.zwobble.couscous.tests;
+
+public class TestIds {
+ public static final String ANY_ID = "[id]";
+}
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 005eebb..c438128 100644
--- a/src/test/java/org/zwobble/couscous/tests/interpreter/EvaluatorTests.java
+++ b/src/test/java/org/zwobble/couscous/tests/interpreter/EvaluatorTests.java
@@ -38,6 +38,7 @@ import static org.zwobble.couscous.ast.MethodCallNode.methodCall;
import static org.zwobble.couscous.ast.VariableDeclaration.var;
import static org.zwobble.couscous.interpreter.Evaluator.eval;
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 lombok.val;
@@ -45,7 +46,7 @@ import lombok.val;
public class EvaluatorTests extends BackendEvalTests {
@Test
public void valueOfAssignmentExpressionIsNewValue() {
- val arg = formalArg(var(42, "x", StringValue.REF));
+ val arg = formalArg(var(ANY_ID, "x", StringValue.REF));
val environment = new Environment(
new MapBackedProject(ImmutableMap.of()),
Optional.empty(),
@@ -100,7 +101,7 @@ public class EvaluatorTests extends BackendEvalTests {
@Test
public void errorIfConstructorArgumentIsWrongType() {
- val argument = formalArg(var(42, "x", IntegerValue.REF));
+ val argument = formalArg(var(ANY_ID, "x", IntegerValue.REF));
val classNode = ClassNode.builder("com.example.Example")
.constructor(constructor -> constructor
.argument(argument))
diff --git a/src/test/java/org/zwobble/couscous/tests/interpreter/InterpreterMethodTests.java b/src/test/java/org/zwobble/couscous/tests/interpreter/InterpreterMethodTests.java
index cd00690..9d23a45 100644
--- a/src/test/java/org/zwobble/couscous/tests/interpreter/InterpreterMethodTests.java
+++ b/src/test/java/org/zwobble/couscous/tests/interpreter/InterpreterMethodTests.java
@@ -30,6 +30,7 @@ import static org.zwobble.couscous.ast.LocalVariableDeclarationNode.localVariabl
import static org.zwobble.couscous.ast.MethodNode.staticMethod;
import static org.zwobble.couscous.ast.VariableDeclaration.var;
import static org.zwobble.couscous.ast.VariableReferenceNode.reference;
+import static org.zwobble.couscous.tests.TestIds.ANY_ID;
import static org.zwobble.couscous.tests.util.ExtraAsserts.assertThrows;
import static org.zwobble.couscous.values.PrimitiveValues.value;
@@ -48,7 +49,7 @@ public class InterpreterMethodTests extends BackendMethodTests {
@Test
public void errorIfTryingToAssignValueOfWrongTypeToVariable() {
- val arg = formalArg(var(42, "x", StringValue.REF));
+ val arg = formalArg(var(ANY_ID, "x", StringValue.REF));
val method = staticMethod("hello")
.argument(arg)
.statement(new ExpressionStatementNode(new AssignmentNode(reference(arg), literal(0))));
@@ -62,33 +63,33 @@ public class InterpreterMethodTests extends BackendMethodTests {
@Test
public void errorIfTryingToAssignToVariableNotInScope() {
val localVariableDeclaration = localVariableDeclaration(
- 42, "x", StringValue.REF, literal(""));
+ ANY_ID, "x", StringValue.REF, literal(""));
val method = staticMethod("hello")
.statement(new ExpressionStatementNode(new AssignmentNode(reference(localVariableDeclaration), LiteralNode.literal("[updated value]"))));
val exception = assertThrows(VariableNotInScope.class,
() -> runMethod(method));
- assertEquals(new VariableNotInScope(42), exception);
+ assertEquals(new VariableNotInScope(ANY_ID), exception);
}
@Test
public void errorIfTryingToGetValueOfVariableNotInScope() {
val localVariableDeclaration = localVariableDeclaration(
- 42, "x", StringValue.REF, literal(""));
+ ANY_ID, "x", StringValue.REF, literal(""));
val method = staticMethod("hello")
.statement(new ReturnNode(reference(localVariableDeclaration)));
val exception = assertThrows(VariableNotInScope.class,
() -> runMethod(method));
- assertEquals(new VariableNotInScope(42), exception);
+ assertEquals(new VariableNotInScope(ANY_ID), exception);
}
@Test
public void errorIfTryingToGetValueOfUnboundVariable() {
val localVariableDeclaration = localVariableDeclaration(
- 42, "x", StringValue.REF, literal(""));
+ ANY_ID, "x", StringValue.REF, literal(""));
val method = staticMethod("hello")
.statement(new ReturnNode(reference(localVariableDeclaration)))
.statement(localVariableDeclaration);
@@ -96,7 +97,7 @@ public class InterpreterMethodTests extends BackendMethodTests {
val exception = assertThrows(UnboundVariable.class,
() -> runMethod(method));
- assertEquals(new UnboundVariable(42), exception);
+ assertEquals(new UnboundVariable(ANY_ID), exception);
}
@Override