From 907cca69480959dd76afa3cb039244dd3b9833ca Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Sat, 16 Jan 2016 15:32:34 +0000 Subject: Support method arguments in C# backend --- .../backends/csharp/CsharpCompilerEvalTests.java | 5 ---- .../backends/csharp/CsharpSerializerTests.java | 31 ++++++++++++++++++++++ 2 files changed, 31 insertions(+), 5 deletions(-) (limited to 'src/test/java/org') 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 @@ -45,11 +45,6 @@ public class CsharpCompilerEvalTests extends BackendEvalTests { public void canCallStaticMethodFromUserDefinedStaticMethod() { } - @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; @@ -65,6 +66,16 @@ public class CsharpSerializerTests { assertEquals("x.y()", output); } + @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( @@ -73,6 +84,14 @@ public class CsharpSerializerTests { assertEquals("new Couscous.X()", output); } + @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))); @@ -91,6 +110,18 @@ public class CsharpSerializerTests { assertEquals("internal dynamic nothing() {\n}\n", output); } + @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") -- cgit v1.2.3