From bf5edcdb86ea8a659e35662902c6f98f9b457c9b Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Sat, 16 Jan 2016 15:59:34 +0000 Subject: Add this and field reference serialization to C# backend --- .../tests/backends/csharp/CsharpSerializerTests.java | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'src/test') 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 95696c7..8c3162b 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 @@ -14,6 +14,7 @@ import static org.zwobble.couscous.ast.MethodCallNode.methodCall; import static org.zwobble.couscous.ast.MethodCallNode.staticMethodCall; import static org.zwobble.couscous.ast.ReturnNode.returns; import static org.zwobble.couscous.ast.TernaryConditionalNode.ternaryConditional; +import static org.zwobble.couscous.ast.ThisReferenceNode.thisReference; import static org.zwobble.couscous.ast.VariableDeclaration.var; import static org.zwobble.couscous.ast.VariableReferenceNode.reference; import static org.zwobble.couscous.util.ExtraLists.list; @@ -52,6 +53,12 @@ public class CsharpSerializerTests { assertEquals("x", output); } + @Test + public void thisReferenceUsesThisKeyword() { + String output = serialize(thisReference(TypeName.of("X"))); + assertEquals("this", output); + } + @Test public void ternaryConditionalWritesConditionAndBranches() { String output = serialize(ternaryConditional(literal(true), literal(1), literal(2))); @@ -173,6 +180,17 @@ public class CsharpSerializerTests { assertEquals("namespace Couscous.com.example {\n internal class Example {\n }\n}\n", output); } + @Test + public void classWithFields() { + ClassNode classNode = ClassNode.builder("com.example.Example") + .field("x", TypeName.of("X")) + .build(); + + String output = serialize(classNode); + + assertEquals("namespace Couscous.com.example {\n internal class Example {\n internal Couscous.X x;\n }\n}\n", output); + } + private String serialize(Node node) { return CsharpSerializer.serialize(node, "Couscous"); } -- cgit v1.2.3