aboutsummaryrefslogtreecommitdiff
path: root/src/test
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2016-07-15 14:34:15 +0100
committerMichael Williamson <mike@zwobble.org>2016-07-15 14:34:15 +0100
commit351567960bd825fbdd4a3f15719f7074a13cdfd3 (patch)
treec9b70be8a2724d9849b0382ddda780d982044c81 /src/test
parentbc06840e00425db342bc5a021c0900d9e63b71f0 (diff)
Generate switch statements in C# backend
Diffstat (limited to 'src/test')
-rw-r--r--src/test/java/org/zwobble/couscous/tests/backends/csharp/CsharpSerializerTests.java17
1 files changed, 17 insertions, 0 deletions
diff --git a/src/test/java/org/zwobble/couscous/tests/backends/csharp/CsharpSerializerTests.java b/src/test/java/org/zwobble/couscous/tests/backends/csharp/CsharpSerializerTests.java
index 3cb723e..40653af 100644
--- a/src/test/java/org/zwobble/couscous/tests/backends/csharp/CsharpSerializerTests.java
+++ b/src/test/java/org/zwobble/couscous/tests/backends/csharp/CsharpSerializerTests.java
@@ -3,6 +3,7 @@ package org.zwobble.couscous.tests.backends.csharp;
import org.junit.Test;
import org.zwobble.couscous.ast.*;
import org.zwobble.couscous.ast.identifiers.Identifiers;
+import org.zwobble.couscous.ast.sugar.SwitchNode;
import org.zwobble.couscous.backends.csharp.CsharpSerializer;
import org.zwobble.couscous.tests.TestIds;
import org.zwobble.couscous.types.ScalarType;
@@ -35,6 +36,7 @@ import static org.zwobble.couscous.ast.TryNode.tryStatement;
import static org.zwobble.couscous.ast.VariableDeclaration.var;
import static org.zwobble.couscous.ast.VariableReferenceNode.reference;
import static org.zwobble.couscous.ast.WhileNode.whileLoop;
+import static org.zwobble.couscous.ast.sugar.SwitchCaseNode.switchCase;
import static org.zwobble.couscous.types.TypeParameter.typeParameter;
import static org.zwobble.couscous.util.ExtraLists.list;
@@ -308,6 +310,21 @@ public class CsharpSerializerTests {
}
@Test
+ public void switchStatement() {
+ Node node = new SwitchNode(
+ literal(1),
+ list(
+ switchCase(literal(1), list(returns(literal(10)))),
+ switchCase(list(returns(literal(0))))
+ )
+ );
+
+ String output = serialize(node);
+
+ assertEquals("switch (1) {\n case 1:\n return 10;\n default:\n return 0;\n}\n", output);
+ }
+
+ @Test
public void whileLoopPrintsConditionAndBody() {
String output = serialize(whileLoop(
literal(true),