From 7df6bc37bfac33770b9758647ab73822d807f0fe Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Thu, 11 Feb 2016 20:52:41 +0000 Subject: Implement static fields and static constructors for C# --- .../backends/csharp/CsharpSerializerTests.java | 26 ++++++++++++++++++++-- 1 file changed, 24 insertions(+), 2 deletions(-) (limited to 'src/test/java/org/zwobble/couscous/tests/backends/csharp') 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 6bc191c..635afca 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 @@ -148,6 +148,15 @@ public class CsharpSerializerTests { assertEquals("x.y", output); } + @Test + public void staticFieldAccessSeparatesReceiverAndNameWithDot() { + String output = serialize(fieldAccess( + TypeName.of("X"), + "y", + TypeName.of("Y"))); + assertEquals("X.y", output); + } + @Test public void returnStatementUsesReturnStatement() { String output = serialize(returns(literal(true))); @@ -253,6 +262,18 @@ public class CsharpSerializerTests { assertEquals("namespace com.example {\n internal class Example {\n }\n}\n", output); } + @Test + public void staticConstructorHasSerializedBody() { + ClassNode classNode = ClassNode.builder("com.example.Example") + .staticConstructor(list(expressionStatement(literal(true)))) + .build(); + + String output = serialize(classNode); + + assertEquals( + "namespace com.example {\n internal class Example {\n static Example() {\n true;\n }\n }\n}\n", output); + } + @Test public void constructorHasSerializedBody() { ConstructorNode constructor = ConstructorNode.constructor( @@ -271,12 +292,13 @@ public class CsharpSerializerTests { @Test public void classWithFields() { ClassNode classNode = ClassNode.builder("com.example.Example") - .field("x", TypeName.of("X")) + .staticField("x", TypeName.of("X")) + .field("y", TypeName.of("Y")) .build(); String output = serialize(classNode); - assertEquals("namespace com.example {\n internal class Example {\n internal X x;\n }\n}\n", output); + assertEquals("namespace com.example {\n internal class Example {\n internal static X x;\n internal Y y;\n }\n}\n", output); } private String serialize(Node node) { -- cgit v1.2.3