aboutsummaryrefslogtreecommitdiff
path: root/src/test/java/org/zwobble/couscous/tests/frontends
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2016-03-08 11:01:29 +0000
committerMichael Williamson <mike@zwobble.org>2016-03-08 11:01:29 +0000
commit95669601271985c89a10d673571dd89133f1e2e8 (patch)
tree866d294696522f721cab97b8a1fb020945cf1d75 /src/test/java/org/zwobble/couscous/tests/frontends
parentc532706e0f20a07be960e4d2ca4d89d850312174 (diff)
Read formal type parameters
Diffstat (limited to 'src/test/java/org/zwobble/couscous/tests/frontends')
-rw-r--r--src/test/java/org/zwobble/couscous/tests/frontends/java/JavaReaderTests.java24
1 files changed, 24 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 f7016ff..4694f85 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
@@ -17,6 +17,7 @@ import static org.zwobble.couscous.ast.AssignmentNode.assign;
import static org.zwobble.couscous.ast.AssignmentNode.assignStatement;
import static org.zwobble.couscous.ast.ExpressionStatementNode.expressionStatement;
import static org.zwobble.couscous.ast.FieldAccessNode.fieldAccess;
+import static org.zwobble.couscous.ast.FormalTypeParameterNode.formalTypeParameter;
import static org.zwobble.couscous.ast.IfStatementNode.ifStatement;
import static org.zwobble.couscous.ast.LiteralNode.literal;
import static org.zwobble.couscous.ast.LocalVariableDeclarationNode.localVariableDeclaration;
@@ -311,6 +312,29 @@ public class JavaReaderTests {
assertEquals(TypeName.of("com.example.Example"), classNode.getName());
assertEquals(list(), classNode.getMethods());
assertEquals(set(), classNode.getSuperTypes());
+ assertEquals(list(), classNode.getTypeParameters());
+ }
+
+ @Test
+ public void canReadClassWithGenericTypeParameters() {
+ String source = "package com.example;" +
+ "public class Example<T> {}";
+ List<TypeNode> classes = readSource("com/example/Example.java", source);
+ assertThat(classes, hasSize(1));
+ ClassNode classNode = (ClassNode) classes.get(0);
+ assertEquals(TypeName.of("com.example.Example"), classNode.getName());
+ assertEquals(list(formalTypeParameter("T")), classNode.getTypeParameters());
+ }
+
+ @Test
+ public void canReadInterfaceWithGenericTypeParameters() {
+ String source = "package com.example;" +
+ "public interface Example<T> {}";
+ List<TypeNode> classes = readSource("com/example/Example.java", source);
+ assertThat(classes, hasSize(1));
+ InterfaceNode classNode = (InterfaceNode) classes.get(0);
+ assertEquals(TypeName.of("com.example.Example"), classNode.getName());
+ assertEquals(list(formalTypeParameter("T")), classNode.getTypeParameters());
}
@Test