Browse Source

Move sample to unit test

See gh-28904
pull/31694/head
Stéphane Nicoll 2 years ago
parent
commit
9eb2f29d4a
  1. 28
      spring-core/src/test/java/org/springframework/core/GenericTypeResolverTests.java

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

@ -239,6 +239,13 @@ class GenericTypeResolverTests {
assertThat(resolvableType.resolveGenerics()).containsExactly(Object.class); assertThat(resolvableType.resolveGenerics()).containsExactly(Object.class);
} }
@Test // gh-28904
void resolveGenericWithDifferentInterfaceOrder() {
Type f = First.class.getTypeParameters()[0];
assertThat(resolveType(f, FirstSecondService.class)).isEqualTo(Integer.class);
assertThat(resolveType(f, SecondFirstService.class)).isEqualTo(Integer.class);
}
private static Method method(Class<?> target, String methodName, Class<?>... parameterTypes) { private static Method method(Class<?> target, String methodName, Class<?>... parameterTypes) {
Method method = findMethod(target, methodName, parameterTypes); Method method = findMethod(target, methodName, parameterTypes);
assertThat(method).describedAs(target.getName() + "#" + methodName).isNotNull(); assertThat(method).describedAs(target.getName() + "#" + methodName).isNotNull();
@ -428,4 +435,25 @@ class GenericTypeResolverTests {
interface IdFixingRepository<T> extends Repository<T, Long> { interface IdFixingRepository<T> extends Repository<T, Long> {
} }
interface First<F extends Number> {
default void foo(F f) {
// ...
}
}
interface Second<B> {
default void bar(B b) {
// ...
}
}
static class FirstSecondService implements First<Integer>, Second<String> {
}
static class SecondFirstService implements Second<String>, First<Integer> {
}
} }

Loading…
Cancel
Save