aboutsummaryrefslogtreecommitdiff
path: root/src/test/java/org/zwobble/couscous/tests/BackendEvalTests.java
diff options
context:
space:
mode:
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);