aboutsummaryrefslogtreecommitdiff
path: root/src/test/java/org/zwobble
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2016-01-16 15:59:34 +0000
committerMichael Williamson <mike@zwobble.org>2016-01-16 15:59:34 +0000
commitbf5edcdb86ea8a659e35662902c6f98f9b457c9b (patch)
treebb89d9a1697aa824af11b299a526c0189348470c /src/test/java/org/zwobble
parent16a0f4c3ef8fdb8cb25c07e7238f17fc9d3e18fa (diff)
Add this and field reference serialization to C# backend
Diffstat (limited to 'src/test/java/org/zwobble')
-rw-r--r--src/test/java/org/zwobble/couscous/tests/backends/csharp/CsharpSerializerTests.java18
1 files changed, 18 insertions, 0 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 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;
@@ -53,6 +54,12 @@ public class CsharpSerializerTests {
}
@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)));
assertEquals("true ? 1 : 2", output);
@@ -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");
}