diff options
author | Phil Glass <phil@phil.glass> | 2017-05-23 22:43:13 +0100 |
---|---|---|
committer | Jesse Wilson <jesse@swank.ca> | 2017-05-23 17:43:13 -0400 |
commit | 08c7148ab302a364517f993c0fda33b1dca7bfe6 (patch) | |
tree | 7a84f0b617e593b5180e3f956eff51894c9f2a7a /src/test/java/com/squareup | |
parent | 5f3b345be9bd8364268d6460424ae8cf59d087f0 (diff) | |
download | javapoet-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.java | 18 |
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() { |