Browse Source

Polish

pull/31679/head
Stéphane Nicoll 2 years ago
parent
commit
fb4455b396
  1. 39
      spring-core/src/test/java/org/springframework/core/GenericTypeResolverTests.java

39
spring-core/src/test/java/org/springframework/core/GenericTypeResolverTests.java

@ -38,6 +38,7 @@ import static org.springframework.util.ReflectionUtils.findMethod; @@ -38,6 +38,7 @@ import static org.springframework.util.ReflectionUtils.findMethod;
* @author Juergen Hoeller
* @author Sam Brannen
* @author Sebastien Deleuze
* @author Stephane Nicoll
*/
@SuppressWarnings({"unchecked", "rawtypes"})
class GenericTypeResolverTests {
@ -70,25 +71,25 @@ class GenericTypeResolverTests { @@ -70,25 +71,25 @@ class GenericTypeResolverTests {
@Test
void methodReturnTypes() {
assertThat(resolveReturnTypeArgument(findMethod(MyTypeWithMethods.class, "integer"), MyInterfaceType.class)).isEqualTo(Integer.class);
assertThat(resolveReturnTypeArgument(findMethod(MyTypeWithMethods.class, "string"), MyInterfaceType.class)).isEqualTo(String.class);
assertThat(resolveReturnTypeArgument(findMethod(MyTypeWithMethods.class, "character"), MyAbstractType.class)).isEqualTo(Character.class);
assertThat(resolveReturnTypeArgument(findMethod(MyTypeWithMethods.class, "raw"), MyInterfaceType.class)).isNull();
assertThat(resolveReturnTypeArgument(findMethod(MyTypeWithMethods.class, "object"), MyInterfaceType.class)).isNull();
assertThat(resolveReturnTypeArgument(method(MyTypeWithMethods.class, "integer"), MyInterfaceType.class)).isEqualTo(Integer.class);
assertThat(resolveReturnTypeArgument(method(MyTypeWithMethods.class, "string"), MyInterfaceType.class)).isEqualTo(String.class);
assertThat(resolveReturnTypeArgument(method(MyTypeWithMethods.class, "character"), MyAbstractType.class)).isEqualTo(Character.class);
assertThat(resolveReturnTypeArgument(method(MyTypeWithMethods.class, "raw"), MyInterfaceType.class)).isNull();
assertThat(resolveReturnTypeArgument(method(MyTypeWithMethods.class, "object"), MyInterfaceType.class)).isNull();
}
@Test
void testResolveType() {
Method intMessageMethod = findMethod(MyTypeWithMethods.class, "readIntegerInputMessage", MyInterfaceType.class);
Method intMessageMethod = method(MyTypeWithMethods.class, "readIntegerInputMessage", MyInterfaceType.class);
MethodParameter intMessageMethodParam = new MethodParameter(intMessageMethod, 0);
assertThat(resolveType(intMessageMethodParam.getGenericParameterType(), new HashMap<>())).isEqualTo(MyInterfaceType.class);
Method intArrMessageMethod = findMethod(MyTypeWithMethods.class, "readIntegerArrayInputMessage",
Method intArrMessageMethod = method(MyTypeWithMethods.class, "readIntegerArrayInputMessage",
MyInterfaceType[].class);
MethodParameter intArrMessageMethodParam = new MethodParameter(intArrMessageMethod, 0);
assertThat(resolveType(intArrMessageMethodParam.getGenericParameterType(), new HashMap<>())).isEqualTo(MyInterfaceType[].class);
Method genericArrMessageMethod = findMethod(MySimpleTypeWithMethods.class, "readGenericArrayInputMessage",
Method genericArrMessageMethod = method(MySimpleTypeWithMethods.class, "readGenericArrayInputMessage",
Object[].class);
MethodParameter genericArrMessageMethodParam = new MethodParameter(genericArrMessageMethod, 0);
Map<TypeVariable, Type> varMap = getTypeVariableMap(MySimpleTypeWithMethods.class);
@ -101,7 +102,7 @@ class GenericTypeResolverTests { @@ -101,7 +102,7 @@ class GenericTypeResolverTests {
}
@Test
void testGetTypeVariableMap() throws Exception {
void testGetTypeVariableMap() {
Map<TypeVariable, Type> map;
map = GenericTypeResolver.getTypeVariableMap(MySimpleInterfaceType.class);
@ -145,13 +146,13 @@ class GenericTypeResolverTests { @@ -145,13 +146,13 @@ class GenericTypeResolverTests {
}
@Test // SPR-11030
void getGenericsCannotBeResolved() throws Exception {
void getGenericsCannotBeResolved() {
Class<?>[] resolved = GenericTypeResolver.resolveTypeArguments(List.class, Iterable.class);
assertThat((Object) resolved).isNull();
}
@Test // SPR-11052
void getRawMapTypeCannotBeResolved() throws Exception {
void getRawMapTypeCannotBeResolved() {
Class<?>[] resolved = GenericTypeResolver.resolveTypeArguments(Map.class, Map.class);
assertThat((Object) resolved).isNull();
}
@ -195,7 +196,7 @@ class GenericTypeResolverTests { @@ -195,7 +196,7 @@ class GenericTypeResolverTests {
@Test
void resolveWildcardTypeWithUpperBound() {
Method method = findMethod(MySimpleSuperclassType.class, "upperBound", List.class);
Method method = method(MySimpleSuperclassType.class, "upperBound", List.class);
Type resolved = resolveType(method.getGenericParameterTypes()[0], MySimpleSuperclassType.class);
ResolvableType resolvableType = ResolvableType.forType(resolved);
assertThat(resolvableType.hasUnresolvableGenerics()).isFalse();
@ -204,7 +205,7 @@ class GenericTypeResolverTests { @@ -204,7 +205,7 @@ class GenericTypeResolverTests {
@Test
void resolveWildcardTypeWithUpperBoundWithResolvedType() {
Method method = findMethod(MySimpleSuperclassType.class, "upperBoundWithResolvedType", List.class);
Method method = method(MySimpleSuperclassType.class, "upperBoundWithResolvedType", List.class);
Type resolved = resolveType(method.getGenericParameterTypes()[0], MySimpleSuperclassType.class);
ResolvableType resolvableType = ResolvableType.forType(resolved);
assertThat(resolvableType.hasUnresolvableGenerics()).isFalse();
@ -213,7 +214,7 @@ class GenericTypeResolverTests { @@ -213,7 +214,7 @@ class GenericTypeResolverTests {
@Test
void resolveWildcardTypeWithLowerBound() {
Method method = findMethod(MySimpleSuperclassType.class, "lowerBound", List.class);
Method method = method(MySimpleSuperclassType.class, "lowerBound", List.class);
Type resolved = resolveType(method.getGenericParameterTypes()[0], MySimpleSuperclassType.class);
ResolvableType resolvableType = ResolvableType.forType(resolved);
assertThat(resolvableType.hasUnresolvableGenerics()).isFalse();
@ -222,7 +223,7 @@ class GenericTypeResolverTests { @@ -222,7 +223,7 @@ class GenericTypeResolverTests {
@Test
void resolveWildcardTypeWithLowerBoundWithResolvedType() {
Method method = findMethod(MySimpleSuperclassType.class, "lowerBoundWithResolvedType", List.class);
Method method = method(MySimpleSuperclassType.class, "lowerBoundWithResolvedType", List.class);
Type resolved = resolveType(method.getGenericParameterTypes()[0], MySimpleSuperclassType.class);
ResolvableType resolvableType = ResolvableType.forType(resolved);
assertThat(resolvableType.hasUnresolvableGenerics()).isFalse();
@ -231,13 +232,19 @@ class GenericTypeResolverTests { @@ -231,13 +232,19 @@ class GenericTypeResolverTests {
@Test
void resolveWildcardTypeWithUnbounded() {
Method method = findMethod(MySimpleSuperclassType.class, "unbounded", List.class);
Method method = method(MySimpleSuperclassType.class, "unbounded", List.class);
Type resolved = resolveType(method.getGenericParameterTypes()[0], MySimpleSuperclassType.class);
ResolvableType resolvableType = ResolvableType.forType(resolved);
assertThat(resolvableType.hasUnresolvableGenerics()).isFalse();
assertThat(resolvableType.resolveGenerics()).containsExactly(Object.class);
}
private static Method method(Class<?> target, String methodName, Class<?>... parameterTypes) {
Method method = findMethod(target, methodName, parameterTypes);
assertThat(method).describedAs(target.getName() + "#" + methodName).isNotNull();
return method;
}
public interface MyInterfaceType<T> {
}

Loading…
Cancel
Save