From 552beeaab859156ce4aea3e9a27783ec69b965c3 Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Sat, 6 Feb 2016 12:53:08 +0000 Subject: Implement if statements for C# backend --- .../java/org/zwobble/couscous/tests/BackendMethodTests.java | 2 ++ .../tests/backends/csharp/CsharpCompilerMethodTests.java | 10 ---------- .../couscous/tests/backends/csharp/CsharpSerializerTests.java | 10 ++++++++++ 3 files changed, 12 insertions(+), 10 deletions(-) (limited to 'src/test/java/org') diff --git a/src/test/java/org/zwobble/couscous/tests/BackendMethodTests.java b/src/test/java/org/zwobble/couscous/tests/BackendMethodTests.java index 38887bd..0bc0219 100644 --- a/src/test/java/org/zwobble/couscous/tests/BackendMethodTests.java +++ b/src/test/java/org/zwobble/couscous/tests/BackendMethodTests.java @@ -96,6 +96,7 @@ public abstract class BackendMethodTests { @Test public void whenConditionIsTrueIfStatementExecutesTrueBranch() { MethodNode.Builder method = staticMethod("hello") + .returns(StringValue.REF) .statement(ifStatement( literal(true), list(returns(literal("[true]"))), @@ -106,6 +107,7 @@ public abstract class BackendMethodTests { @Test public void whenConditionIsFalseIfStatementExecutesTrueBranch() { MethodNode.Builder method = staticMethod("hello") + .returns(StringValue.REF) .statement(ifStatement( literal(false), list(returns(literal("[true]"))), diff --git a/src/test/java/org/zwobble/couscous/tests/backends/csharp/CsharpCompilerMethodTests.java b/src/test/java/org/zwobble/couscous/tests/backends/csharp/CsharpCompilerMethodTests.java index 34bb2b1..fcacda0 100644 --- a/src/test/java/org/zwobble/couscous/tests/backends/csharp/CsharpCompilerMethodTests.java +++ b/src/test/java/org/zwobble/couscous/tests/backends/csharp/CsharpCompilerMethodTests.java @@ -21,16 +21,6 @@ public class CsharpCompilerMethodTests extends BackendMethodTests { public void canDeclareVariableAndThenAssignValues() { } - @Ignore - @Test - public void whenConditionIsTrueIfStatementExecutesTrueBranch() { - } - - @Ignore - @Test - public void whenConditionIsFalseIfStatementExecutesTrueBranch() { - } - @Ignore @Test public void whileLoopIsExecutedWhileConditionIsTrue() { 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 bac5723..22da6d2 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 @@ -12,6 +12,7 @@ import static org.zwobble.couscous.ast.ConstructorCallNode.constructorCall; import static org.zwobble.couscous.ast.ExpressionStatementNode.expressionStatement; import static org.zwobble.couscous.ast.FieldAccessNode.fieldAccess; import static org.zwobble.couscous.ast.FormalArgumentNode.formalArg; +import static org.zwobble.couscous.ast.IfStatementNode.ifStatement; import static org.zwobble.couscous.ast.LiteralNode.literal; import static org.zwobble.couscous.ast.MethodCallNode.methodCall; import static org.zwobble.couscous.ast.MethodCallNode.staticMethodCall; @@ -157,6 +158,15 @@ public class CsharpSerializerTests { assertEquals("true;\n", output); } + @Test + public void ifElseStatementPrintsBothBranches() { + String output = serialize(ifStatement( + literal(true), + list(returns(literal(1))), + list(returns(literal(2))))); + assertEquals("if (true) {\n return 1;\n} else {\n return 2;\n}\n", output); + } + @Test public void methodCanHaveVoidReturnType() { String output = serialize(MethodNode.staticMethod("nothing") -- cgit v1.2.3