aboutsummaryrefslogtreecommitdiff
path: root/src/test/java/com/squareup/javapoet/TypeSpecTest.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/java/com/squareup/javapoet/TypeSpecTest.java')
-rw-r--r--src/test/java/com/squareup/javapoet/TypeSpecTest.java23
1 files changed, 23 insertions, 0 deletions
diff --git a/src/test/java/com/squareup/javapoet/TypeSpecTest.java b/src/test/java/com/squareup/javapoet/TypeSpecTest.java
index bfd6dee..65a6453 100644
--- a/src/test/java/com/squareup/javapoet/TypeSpecTest.java
+++ b/src/test/java/com/squareup/javapoet/TypeSpecTest.java
@@ -578,6 +578,29 @@ public final class TypeSpecTest {
+ "}\n");
}
+ @Test public void typeVariableWithBounds() {
+ AnnotationSpec a = AnnotationSpec.builder(ClassName.get("com.squareup.tacos", "A")).build();
+ TypeVariableName p = TypeVariableName.get("P", Number.class);
+ TypeVariableName q = (TypeVariableName) TypeVariableName.get("Q", Number.class).annotated(a);
+ TypeSpec typeSpec = TypeSpec.classBuilder("Location")
+ .addTypeVariable(p.withBounds(Comparable.class))
+ .addTypeVariable(q.withBounds(Comparable.class))
+ .addField(p, "x")
+ .addField(q, "y")
+ .build();
+ assertThat(toString(typeSpec)).isEqualTo(""
+ + "package com.squareup.tacos;\n"
+ + "\n"
+ + "import java.lang.Comparable;\n"
+ + "import java.lang.Number;\n"
+ + "\n"
+ + "class Location<P extends Number & Comparable, Q extends Number & Comparable> {\n"
+ + " P x;\n"
+ + "\n"
+ + " @A Q y;\n"
+ + "}\n");
+ }
+
@Test public void classImplementsExtends() throws Exception {
ClassName taco = ClassName.get(tacosPackage, "Taco");
ClassName food = ClassName.get("com.squareup.tacos", "Food");