aboutsummaryrefslogtreecommitdiff
path: root/src/test/java/org/zwobble/couscous/tests
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2016-08-29 17:13:03 +0100
committerMichael Williamson <mike@zwobble.org>2016-08-29 17:13:03 +0100
commita82ecb60d6ee7ee46e5800088f1769f86872077b (patch)
tree8b3c5442a1bd047606de63477839755e88dab2f5 /src/test/java/org/zwobble/couscous/tests
parent1babfdf8daa45ffef3d624db6c717f846d295440 (diff)
Initial support for static methods/fields on interfaces
Diffstat (limited to 'src/test/java/org/zwobble/couscous/tests')
-rw-r--r--src/test/java/org/zwobble/couscous/tests/frontends/java/JavaReaderTests.java23
1 files changed, 23 insertions, 0 deletions
diff --git a/src/test/java/org/zwobble/couscous/tests/frontends/java/JavaReaderTests.java b/src/test/java/org/zwobble/couscous/tests/frontends/java/JavaReaderTests.java
index 73745b2..7b208f5 100644
--- a/src/test/java/org/zwobble/couscous/tests/frontends/java/JavaReaderTests.java
+++ b/src/test/java/org/zwobble/couscous/tests/frontends/java/JavaReaderTests.java
@@ -18,6 +18,7 @@ import static org.zwobble.couscous.ast.AssignmentNode.assignStatement;
import static org.zwobble.couscous.ast.ConstructorCallNode.constructorCall;
import static org.zwobble.couscous.ast.ExpressionStatementNode.expressionStatement;
import static org.zwobble.couscous.ast.FieldAccessNode.fieldAccess;
+import static org.zwobble.couscous.ast.FieldDeclarationNode.staticField;
import static org.zwobble.couscous.ast.FormalTypeParameterNode.formalTypeParameter;
import static org.zwobble.couscous.ast.IfStatementNode.ifStatement;
import static org.zwobble.couscous.ast.LiteralNode.UNIT;
@@ -479,6 +480,28 @@ public class JavaReaderTests {
}
@Test
+ public void canReadInterfaceWithField() {
+ String source = "package com.example;" +
+ "public interface Example {" +
+ "final int VALUE = 1;" +
+ "}";
+ List<TypeNode> classes = readSource("com/example/Example.java", source);
+ assertThat(classes, hasSize(1));
+ InterfaceNode classNode = (InterfaceNode) classes.get(0);
+
+ assertEquals(list(staticField("VALUE", Types.INT)), classNode.getFields());
+ assertEquals(
+ list(
+ assignStatement(
+ FieldAccessNode.fieldAccess(ScalarType.of("com.example.Example"), "VALUE", Types.INT),
+ literal(1)
+ )
+ ),
+ classNode.getStaticConstructor()
+ );
+ }
+
+ @Test
public void canReadEmptyEnum() {
String source = "package com.example;" +
"public enum Example {}";