aboutsummaryrefslogtreecommitdiff
path: root/src/test/java/org/zwobble/couscous/tests/backends/csharp
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2016-02-11 20:52:41 +0000
committerMichael Williamson <mike@zwobble.org>2016-02-11 20:52:41 +0000
commit7df6bc37bfac33770b9758647ab73822d807f0fe (patch)
tree21e3dc99f0c66863fc571f9304158a7638daba2b /src/test/java/org/zwobble/couscous/tests/backends/csharp
parentd403acf6e1266e73a4ed43b63032be04da2c71d8 (diff)
Implement static fields and static constructors for C#
Diffstat (limited to 'src/test/java/org/zwobble/couscous/tests/backends/csharp')
-rw-r--r--src/test/java/org/zwobble/couscous/tests/backends/csharp/CsharpSerializerTests.java26
1 files changed, 24 insertions, 2 deletions
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
@@ -149,6 +149,15 @@ public class CsharpSerializerTests {
}
@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)));
assertEquals("return true;\n", output);
@@ -254,6 +263,18 @@ public class CsharpSerializerTests {
}
@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(
list(formalArg(var(TestIds.ANY_ID, "x", TypeName.of("X")))),
@@ -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) {