From 9eb2f29d4a97fcba620bf02e709a58945fe25148 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Nicoll?= Date: Mon, 27 Nov 2023 07:58:19 +0100 Subject: [PATCH] Move sample to unit test See gh-28904 --- .../core/GenericTypeResolverTests.java | 28 +++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/spring-core/src/test/java/org/springframework/core/GenericTypeResolverTests.java b/spring-core/src/test/java/org/springframework/core/GenericTypeResolverTests.java index c140a5cfc5c..0b04f859d56 100644 --- a/spring-core/src/test/java/org/springframework/core/GenericTypeResolverTests.java +++ b/spring-core/src/test/java/org/springframework/core/GenericTypeResolverTests.java @@ -239,6 +239,13 @@ class GenericTypeResolverTests { 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) { Method method = findMethod(target, methodName, parameterTypes); assertThat(method).describedAs(target.getName() + "#" + methodName).isNotNull(); @@ -428,4 +435,25 @@ class GenericTypeResolverTests { interface IdFixingRepository extends Repository { } + interface First { + + default void foo(F f) { + // ... + } + } + + interface Second { + + default void bar(B b) { + // ... + } + } + + static class FirstSecondService implements First, Second { + } + + static class SecondFirstService implements Second, First { + } + + }