aboutsummaryrefslogtreecommitdiff
path: root/src/test/java/com/squareup
diff options
context:
space:
mode:
authorPhil Glass <phil@phil.glass>2017-05-23 22:43:13 +0100
committerJesse Wilson <jesse@swank.ca>2017-05-23 17:43:13 -0400
commit08c7148ab302a364517f993c0fda33b1dca7bfe6 (patch)
tree7a84f0b617e593b5180e3f956eff51894c9f2a7a /src/test/java/com/squareup
parent5f3b345be9bd8364268d6460424ae8cf59d087f0 (diff)
downloadjavapoet-08c7148ab302a364517f993c0fda33b1dca7bfe6.tar.gz
Fix ClassName regression for class names starting with a $ (#562)
Diffstat (limited to 'src/test/java/com/squareup')
-rw-r--r--src/test/java/com/squareup/javapoet/ClassNameTest.java18
1 files changed, 16 insertions, 2 deletions
diff --git a/src/test/java/com/squareup/javapoet/ClassNameTest.java b/src/test/java/com/squareup/javapoet/ClassNameTest.java
index 1544814..0488213 100644
--- a/src/test/java/com/squareup/javapoet/ClassNameTest.java
+++ b/src/test/java/com/squareup/javapoet/ClassNameTest.java
@@ -96,10 +96,18 @@ public final class ClassNameTest {
assertThat(baz).isEqualTo(ClassName.get("com.example", "Foo", "Bar", "Baz"));
}
+ static class $Outer {
+ static class $Inner {}
+ }
+
@Test public void classNameFromTypeElement() {
Elements elements = compilationRule.getElements();
- TypeElement element = elements.getTypeElement(Object.class.getCanonicalName());
- assertThat(ClassName.get(element).toString()).isEqualTo("java.lang.Object");
+ TypeElement object = elements.getTypeElement(Object.class.getCanonicalName());
+ assertThat(ClassName.get(object).toString()).isEqualTo("java.lang.Object");
+ TypeElement outer = elements.getTypeElement($Outer.class.getCanonicalName());
+ assertThat(ClassName.get(outer).toString()).isEqualTo("com.squareup.javapoet.ClassNameTest.$Outer");
+ TypeElement inner = elements.getTypeElement($Outer.$Inner.class.getCanonicalName());
+ assertThat(ClassName.get(inner).toString()).isEqualTo("com.squareup.javapoet.ClassNameTest.$Outer.$Inner");
}
@Test public void classNameFromClass() {
@@ -109,6 +117,12 @@ public final class ClassNameTest {
.isEqualTo("com.squareup.javapoet.ClassNameTest.OuterClass.InnerClass");
assertThat((ClassName.get(new Object() {}.getClass())).toString())
.isEqualTo("com.squareup.javapoet.ClassNameTest$1");
+ assertThat((ClassName.get(new Object() { Object inner = new Object() {}; }.inner.getClass())).toString())
+ .isEqualTo("com.squareup.javapoet.ClassNameTest$2$1");
+ assertThat((ClassName.get($Outer.class)).toString())
+ .isEqualTo("com.squareup.javapoet.ClassNameTest.$Outer");
+ assertThat((ClassName.get($Outer.$Inner.class)).toString())
+ .isEqualTo("com.squareup.javapoet.ClassNameTest.$Outer.$Inner");
}
@Test public void peerClass() {