aboutsummaryrefslogtreecommitdiff
path: root/common/src/test/java/com
diff options
context:
space:
mode:
authorgak <gak@google.com>2015-01-25 20:29:15 -0800
committerChristian Edward Gruber <cgruber@google.com>2015-02-02 16:42:06 -0800
commita428e7bb2c2ce1c13b47d1e43128a1c67c397f21 (patch)
treee44da2b6f62f7c5bad5ff68de72093da2f28ac47 /common/src/test/java/com
parent168ce2a42d25baaebd4af91fbd0e36310036d036 (diff)
downloadauto-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.java34
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(),