aboutsummaryrefslogtreecommitdiff
path: root/src/test/java/org/zwobble
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2016-01-16 16:15:51 +0000
committerMichael Williamson <mike@zwobble.org>2016-01-16 16:15:51 +0000
commitb332717af88b5b613d60ec72af820b696e7e2c7a (patch)
tree058eee425567060eb456935711140aa6e232244b /src/test/java/org/zwobble
parente886b0ddb09f1bc247858c3ff5405651c66f0ae8 (diff)
Add support for custom constructors
Diffstat (limited to 'src/test/java/org/zwobble')
-rw-r--r--src/test/java/org/zwobble/couscous/tests/BackendEvalTests.java1
-rw-r--r--src/test/java/org/zwobble/couscous/tests/backends/csharp/CsharpCompilerEvalTests.java5
-rw-r--r--src/test/java/org/zwobble/couscous/tests/backends/csharp/CsharpSerializerTests.java15
3 files changed, 16 insertions, 5 deletions
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<ClassNode> 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
@@ -198,6 +198,21 @@ public class CsharpSerializerTests {
}
@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")
.field("x", TypeName.of("X"))