aboutsummaryrefslogtreecommitdiff
path: root/src/test/java/org/zwobble/couscous/tests/backends
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
parentd403acf6e1266e73a4ed43b63032be04da2c71d8 (diff)
Implement static fields and static constructors for C#
Diffstat (limited to 'src/test/java/org/zwobble/couscous/tests/backends')
-rw-r--r--src/test/java/org/zwobble/couscous/tests/backends/csharp/CsharpSerializerTests.java26
-rw-r--r--src/test/java/org/zwobble/couscous/tests/backends/python/PythonCompilerEvalTests.java7
2 files changed, 31 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) {
diff --git a/src/test/java/org/zwobble/couscous/tests/backends/python/PythonCompilerEvalTests.java b/src/test/java/org/zwobble/couscous/tests/backends/python/PythonCompilerEvalTests.java
index e4ff1cb..6337bc7 100644
--- a/src/test/java/org/zwobble/couscous/tests/backends/python/PythonCompilerEvalTests.java
+++ b/src/test/java/org/zwobble/couscous/tests/backends/python/PythonCompilerEvalTests.java
@@ -1,5 +1,7 @@
package org.zwobble.couscous.tests.backends.python;
+import org.junit.Ignore;
+import org.junit.Test;
import org.zwobble.couscous.ast.ClassNode;
import org.zwobble.couscous.ast.ExpressionNode;
import org.zwobble.couscous.tests.BackendEvalTests;
@@ -8,6 +10,11 @@ import org.zwobble.couscous.values.PrimitiveValue;
import java.util.List;
public class PythonCompilerEvalTests extends BackendEvalTests {
+ @Ignore
+ @Test
+ public void staticConstructorIsExecutedOnReference() {
+ }
+
@Override
protected PrimitiveValue evalExpression(List<ClassNode> classes, ExpressionNode expression) {
return new PythonMethodRunner().evalExpression(classes, expression);