aboutsummaryrefslogtreecommitdiff
path: root/src/test/java/org/zwobble/couscous/tests/BackendEvalTests.java
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/BackendEvalTests.java
parentd403acf6e1266e73a4ed43b63032be04da2c71d8 (diff)
Implement static fields and static constructors for C#
Diffstat (limited to 'src/test/java/org/zwobble/couscous/tests/BackendEvalTests.java')
-rw-r--r--src/test/java/org/zwobble/couscous/tests/BackendEvalTests.java18
1 files changed, 18 insertions, 0 deletions
diff --git a/src/test/java/org/zwobble/couscous/tests/BackendEvalTests.java b/src/test/java/org/zwobble/couscous/tests/BackendEvalTests.java
index 41ce893..9914093 100644
--- a/src/test/java/org/zwobble/couscous/tests/BackendEvalTests.java
+++ b/src/test/java/org/zwobble/couscous/tests/BackendEvalTests.java
@@ -225,6 +225,24 @@ public abstract class BackendEvalTests {
assertEquals(value(42), result);
}
+
+ @Test
+ public void staticConstructorIsExecutedOnReference() {
+ TypeName type = TypeName.of("com.example.Example");
+ ClassNode classNode = ClassNode.builder(type)
+ .staticField("value", IntegerValue.REF)
+ .staticConstructor(list(
+ assignStatement(
+ fieldAccess(type, "value", IntegerValue.REF),
+ literal(42))))
+ .build();
+
+ PrimitiveValue result = evalExpression(
+ list(classNode),
+ fieldAccess(type, "value", IntegerValue.REF));
+
+ assertEquals(value(42), result);
+ }
private PrimitiveValue evalExpression(ExpressionNode expression) {
return evalExpression(list(), expression);