aboutsummaryrefslogtreecommitdiff
path: root/src/test/java/org
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2015-10-04 17:04:22 +0100
committerMichael Williamson <mike@zwobble.org>2015-10-04 17:04:22 +0100
commitc6fd2a9cac5a5b164c32a04d84543d3d1bd5d51c (patch)
tree760abf78abf069264502af1e00c96bcd5a33e9c0 /src/test/java/org
parent003b55c6758f4202bff786b8324d1ded6d141a88 (diff)
Add local variable declarations
Diffstat (limited to 'src/test/java/org')
-rw-r--r--src/test/java/org/zwobble/couscous/tests/interpreter/InterpreterTests.java13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/test/java/org/zwobble/couscous/tests/interpreter/InterpreterTests.java b/src/test/java/org/zwobble/couscous/tests/interpreter/InterpreterTests.java
index 87659b8..4078b3f 100644
--- a/src/test/java/org/zwobble/couscous/tests/interpreter/InterpreterTests.java
+++ b/src/test/java/org/zwobble/couscous/tests/interpreter/InterpreterTests.java
@@ -19,6 +19,7 @@ import com.google.common.collect.ImmutableMap;
import static java.util.Arrays.asList;
import static org.junit.Assert.assertEquals;
+import static org.zwobble.couscous.ast.LocalVariableDeclarationNode.localVariableDeclaration;
import static org.zwobble.couscous.ast.MethodNode.staticMethod;
import static org.zwobble.couscous.ast.VariableReferenceNode.reference;
import static org.zwobble.couscous.tests.util.ExtraAsserts.assertThrows;
@@ -76,6 +77,18 @@ public class InterpreterTests {
assertEquals(new StringValue("[updated value]"), result);
}
+
+ @Test
+ public void canDeclareVariable() {
+ val localVariableDeclaration = localVariableDeclaration(
+ 42, StringValue.REF, "x", LiteralNode.literal("[initial value]"));
+ val method = staticMethod("hello")
+ .statement(localVariableDeclaration)
+ .statement(new ReturnNode(reference(localVariableDeclaration)));
+ val result = runMethod(method);
+
+ assertEquals(new StringValue("[initial value]"), result);
+ }
private InterpreterValue runMethod(MethodNode.MethodNodeBuilder methodBuilder, InterpreterValue... arguments) {
val method = methodBuilder.build();