diff options
author | gak <gak@google.com> | 2015-01-25 20:29:15 -0800 |
---|---|---|
committer | Christian Edward Gruber <cgruber@google.com> | 2015-02-02 16:42:06 -0800 |
commit | a428e7bb2c2ce1c13b47d1e43128a1c67c397f21 (patch) | |
tree | e44da2b6f62f7c5bad5ff68de72093da2f28ac47 /common/src/test/java/com | |
parent | 168ce2a42d25baaebd4af91fbd0e36310036d036 (diff) | |
download | auto-a428e7bb2c2ce1c13b47d1e43128a1c67c397f21.tar.gz |
Add a method to MoreTypes that does the same operation as Types.asElement, but can be called statically. Then, clean up all of the places that callers to MoreTypes.asTypeElement were passing through a Types instance just for that reason.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=84753119
Diffstat (limited to 'common/src/test/java/com')
-rw-r--r-- | common/src/test/java/com/google/auto/common/MoreTypesTest.java | 34 |
1 files changed, 29 insertions, 5 deletions
diff --git a/common/src/test/java/com/google/auto/common/MoreTypesTest.java b/common/src/test/java/com/google/auto/common/MoreTypesTest.java index c4fd1470..c2bbe5b9 100644 --- a/common/src/test/java/com/google/auto/common/MoreTypesTest.java +++ b/common/src/test/java/com/google/auto/common/MoreTypesTest.java @@ -18,6 +18,7 @@ package com.google.auto.common; import static com.google.common.truth.Truth.assertThat; import static javax.lang.model.type.TypeKind.NONE; import static javax.lang.model.type.TypeKind.VOID; +import static org.junit.Assert.fail; import com.google.common.base.Function; import com.google.common.base.Optional; @@ -42,6 +43,7 @@ import java.util.Set; import javax.lang.model.element.AnnotationMirror; import javax.lang.model.element.Element; import javax.lang.model.element.TypeElement; +import javax.lang.model.element.TypeParameterElement; import javax.lang.model.element.VariableElement; import javax.lang.model.type.DeclaredType; import javax.lang.model.type.ErrorType; @@ -254,12 +256,34 @@ public class MoreTypesTest { int[] f11; Set<? super String> f12; } - + private static class Parent<T> {} private static class ChildA extends Parent<Number> {} private static class ChildB extends Parent<String> {} private static class GenericChild<T> extends Parent<T> {} - + + @Test + public void asElement_throws() { + TypeMirror javaDotLang = + compilationRule.getElements().getPackageElement("java.lang").asType(); + try { + MoreTypes.asElement(javaDotLang); + fail(); + } catch (IllegalArgumentException expected) {} + + } + + @Test + public void asElement() { + Elements elements = compilationRule.getElements(); + TypeElement stringElement = elements.getTypeElement("java.lang.String"); + assertThat(MoreTypes.asElement(stringElement.asType())).isEqualTo(stringElement); + TypeParameterElement setParameterElement = Iterables.getOnlyElement( + compilationRule.getElements().getTypeElement("java.util.Set").getTypeParameters()); + assertThat(MoreTypes.asElement(setParameterElement.asType())).isEqualTo(setParameterElement); + // we don't test error types because those are very hard to get predictably + } + @Test public void testNonObjectSuperclass() { Types types = compilationRule.getTypes(); @@ -273,10 +297,10 @@ public class MoreTypesTest { TypeElement genericChild = elements.getTypeElement(GenericChild.class.getCanonicalName()); TypeMirror genericChildOfNumber = types.getDeclaredType(genericChild, numberType); TypeMirror genericChildOfInteger = types.getDeclaredType(genericChild, integerType); - + assertThat(MoreTypes.nonObjectSuperclass(types, elements, (DeclaredType) parent.asType())) .isAbsent(); - + Optional<DeclaredType> parentOfChildA = MoreTypes.nonObjectSuperclass(types, elements, (DeclaredType) childA.asType()); Optional<DeclaredType> parentOfChildB = @@ -286,7 +310,7 @@ public class MoreTypesTest { Optional<DeclaredType> parentOfGenericChildOfNumber = MoreTypes.nonObjectSuperclass(types, elements, (DeclaredType) genericChildOfNumber); Optional<DeclaredType> parentOfGenericChildOfInteger = - MoreTypes.nonObjectSuperclass(types, elements, (DeclaredType) genericChildOfInteger); + MoreTypes.nonObjectSuperclass(types, elements, (DeclaredType) genericChildOfInteger); EquivalenceTester<TypeMirror> tester = EquivalenceTester.<TypeMirror>of(MoreTypes.equivalence()) .addEquivalenceGroup(parentOfChildA.get(), |