aboutsummaryrefslogtreecommitdiff
path: root/src/test/java
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/java')
-rw-r--r--src/test/java/org/zwobble/couscous/tests/ValueObjectTests.java1
-rw-r--r--src/test/java/org/zwobble/couscous/tests/backends/csharp/CsharpSerializerTests.java12
-rw-r--r--src/test/java/org/zwobble/couscous/tests/frontends/java/JavaReaderTests.java24
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