diff options
Diffstat (limited to 'src/test/java')
3 files changed, 32 insertions, 5 deletions
diff --git a/src/test/java/org/zwobble/couscous/tests/ValueObjectTests.java b/src/test/java/org/zwobble/couscous/tests/ValueObjectTests.java index 66a7a63..8e5d7c8 100644 --- a/src/test/java/org/zwobble/couscous/tests/ValueObjectTests.java +++ b/src/test/java/org/zwobble/couscous/tests/ValueObjectTests.java @@ -50,6 +50,7 @@ public class ValueObjectTests { {FieldAccessNode.class}, {FieldDeclarationNode.class}, {FormalArgumentNode.class}, + {FormalTypeParameterNode.class}, {IfStatementNode.class}, {InstanceReceiver.class}, {InterfaceNode.class}, 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 1cb7935..4964113 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 @@ -14,7 +14,6 @@ import static org.zwobble.couscous.ast.ExpressionStatementNode.expressionStateme import static org.zwobble.couscous.ast.FieldAccessNode.fieldAccess; import static org.zwobble.couscous.ast.FormalArgumentNode.formalArg; import static org.zwobble.couscous.ast.IfStatementNode.ifStatement; -import static org.zwobble.couscous.ast.InterfaceNode.declareInterface; import static org.zwobble.couscous.ast.LiteralNode.literal; import static org.zwobble.couscous.ast.LocalVariableDeclarationNode.localVariableDeclaration; import static org.zwobble.couscous.ast.MethodCallNode.methodCall; @@ -27,7 +26,6 @@ import static org.zwobble.couscous.ast.VariableDeclaration.var; import static org.zwobble.couscous.ast.VariableReferenceNode.reference; import static org.zwobble.couscous.ast.WhileNode.whileLoop; import static org.zwobble.couscous.util.ExtraLists.list; -import static org.zwobble.couscous.util.ExtraSets.set; public class CsharpSerializerTests { @Test @@ -317,7 +315,7 @@ public class CsharpSerializerTests { @Test public void interfaceIsInNamespace() { - Node node = declareInterface(TypeName.of("com.example.Example"), set(), list()); + Node node = new ClassNodeBuilder(TypeName.of("com.example.Example")).buildInterface(); String output = serialize(node); @@ -326,7 +324,9 @@ public class CsharpSerializerTests { @Test public void interfaceWithSuperTypes() { - Node node = declareInterface(TypeName.of("com.example.Example"), set(TypeName.of("com.example.Base")), list()); + Node node = new ClassNodeBuilder(TypeName.of("com.example.Example")) + .addSuperType("com.example.Base") + .buildInterface(); String output = serialize(node); @@ -336,7 +336,9 @@ public class CsharpSerializerTests { @Test public void interfaceWithMethod() { MethodNode method = MethodNode.builder("get").isAbstract().returns(IntegerValue.REF).build(); - Node node = declareInterface(TypeName.of("com.example.Example"), set(), list(method)); + Node node = new ClassNodeBuilder(TypeName.of("com.example.Example")) + .method(method) + .buildInterface(); String output = serialize(node); 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 |
