From b332717af88b5b613d60ec72af820b696e7e2c7a Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Sat, 16 Jan 2016 16:15:51 +0000 Subject: Add support for custom constructors --- .../java/org/zwobble/couscous/tests/BackendEvalTests.java | 1 + .../tests/backends/csharp/CsharpCompilerEvalTests.java | 5 ----- .../tests/backends/csharp/CsharpSerializerTests.java | 15 +++++++++++++++ 3 files changed, 16 insertions(+), 5 deletions(-) (limited to 'src/test/java') diff --git a/src/test/java/org/zwobble/couscous/tests/BackendEvalTests.java b/src/test/java/org/zwobble/couscous/tests/BackendEvalTests.java index 3bac39d..41ce893 100644 --- a/src/test/java/org/zwobble/couscous/tests/BackendEvalTests.java +++ b/src/test/java/org/zwobble/couscous/tests/BackendEvalTests.java @@ -210,6 +210,7 @@ public abstract class BackendEvalTests { fieldAccess(constructor.thisReference(), "value", IntegerValue.REF), reference(argument)))) .method("main", method -> method + .returns(IntegerValue.REF) .statement(returns( fieldAccess(method.thisReference(), "value", IntegerValue.REF)))) .build(); 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 b8aa1b4..79c4a6d 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 constructorIsExecutedOnConstruction() { - } - @Override protected PrimitiveValue evalExpression(List classes, ExpressionNode expression) { return new CsharpMethodRunner().evalExpression(classes, expression); 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 30a6f2b..011fcd3 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 @@ -197,6 +197,21 @@ public class CsharpSerializerTests { assertEquals("namespace Couscous.com.example {\n internal class Example {\n }\n}\n", output); } + @Test + public void constructorHasSerializedBody() { + ConstructorNode constructor = ConstructorNode.constructor( + list(formalArg(var(TestIds.ANY_ID, "x", TypeName.of("X")))), + list(expressionStatement(literal(true)))); + ClassNode classNode = ClassNode.builder("com.example.Example") + .constructor(constructor) + .build(); + + String output = serialize(classNode); + + assertEquals( + "namespace Couscous.com.example {\n internal class Example {\n internal Example(Couscous.X x) {\n true;\n }\n }\n}\n", output); + } + @Test public void classWithFields() { ClassNode classNode = ClassNode.builder("com.example.Example") -- cgit v1.2.3