diff options
| author | Michael Williamson <mike@zwobble.org> | 2016-01-16 15:32:34 +0000 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2016-01-16 15:32:34 +0000 |
| commit | 907cca69480959dd76afa3cb039244dd3b9833ca (patch) | |
| tree | b59d806dc7bcc73f1123f227bd9d82943b10029c /src/test/java | |
| parent | 4197fcbcd7a54cc11231d80edd1d17effce9b1e9 (diff) | |
Support method arguments in C# backend
Diffstat (limited to 'src/test/java')
| -rw-r--r-- | src/test/java/org/zwobble/couscous/tests/backends/csharp/CsharpCompilerEvalTests.java | 5 | ||||
| -rw-r--r-- | src/test/java/org/zwobble/couscous/tests/backends/csharp/CsharpSerializerTests.java | 31 |
2 files changed, 31 insertions, 5 deletions
diff --git a/src/test/java/org/zwobble/couscous/tests/backends/csharp/CsharpCompilerEvalTests.java b/src/test/java/org/zwobble/couscous/tests/backends/csharp/CsharpCompilerEvalTests.java index 2348acf..b8aa1b4 100644 --- a/src/test/java/org/zwobble/couscous/tests/backends/csharp/CsharpCompilerEvalTests.java +++ b/src/test/java/org/zwobble/couscous/tests/backends/csharp/CsharpCompilerEvalTests.java @@ -47,11 +47,6 @@ public class CsharpCompilerEvalTests extends BackendEvalTests { @Test @Ignore - public void canCallInstanceMethodWithArgumentsOnUserDefinedClass() { - } - - @Test - @Ignore public void constructorIsExecutedOnConstruction() { } 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 1139e3c..377712c 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 @@ -7,6 +7,7 @@ import org.zwobble.couscous.tests.TestIds; import static org.junit.Assert.assertEquals; import static org.zwobble.couscous.ast.ConstructorCallNode.constructorCall; +import static org.zwobble.couscous.ast.FormalArgumentNode.formalArg; import static org.zwobble.couscous.ast.LiteralNode.literal; import static org.zwobble.couscous.ast.MethodCallNode.methodCall; import static org.zwobble.couscous.ast.ReturnNode.returns; @@ -66,6 +67,16 @@ public class CsharpSerializerTests { } @Test + public void methodCallWithArguments() { + String output = serialize(methodCall( + reference(var(TestIds.ANY_ID, "x", TypeName.of("X"))), + "y", + list(literal(1), literal(2)), + TypeName.of("Y"))); + assertEquals("x.y(1, 2)", output); + } + + @Test public void constructorCallWithNoArguments() { String output = serialize(constructorCall( TypeName.of("X"), @@ -74,6 +85,14 @@ public class CsharpSerializerTests { } @Test + public void constructorCallWithArguments() { + String output = serialize(constructorCall( + TypeName.of("X"), + list(literal(1), literal(2)))); + assertEquals("new Couscous.X(1, 2)", output); + } + + @Test public void returnStatementUsesReturnStatement() { String output = serialize(returns(literal(true))); assertEquals("return true;", output); @@ -92,6 +111,18 @@ public class CsharpSerializerTests { } @Test + public void methodWithArguments() { + MethodNode methodNode = MethodNode.staticMethod("nothing") + .argument(formalArg(var(TestIds.id("x"), "x", TypeName.of("X")))) + .argument(formalArg(var(TestIds.id("y"), "y", TypeName.of("Y")))) + .build(); + + String output = serialize(methodNode); + + assertEquals("internal static dynamic nothing(dynamic x, dynamic y) {\n}\n", output); + } + + @Test public void methodHasSerializedBody() { MethodNode method = MethodNode.staticMethod("nothing") .statement(returns(literal(true))) |
