Skip to content

Commit 18a8995

Browse files
committed
Add test cases
Signed-off-by: anaconda875 <hflbtmax@gmail.com>
1 parent 99e7543 commit 18a8995

1 file changed

Lines changed: 22 additions & 0 deletions

File tree

spring-web/src/test/java/org/springframework/web/client/support/RestClientAdapterTests.java

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
import java.net.URI;
2626
import java.nio.charset.StandardCharsets;
2727
import java.util.LinkedHashSet;
28+
import java.util.List;
2829
import java.util.Optional;
2930
import java.util.Set;
3031
import java.util.function.BiFunction;
@@ -103,6 +104,12 @@ void shutdown() {
103104
@interface ParameterizedAdapterTest {
104105
}
105106

107+
public static Stream<Object> wildcardCases() {
108+
return Stream.of(
109+
(Function<PersonClient, List<? extends Person>>) BaseClient::getListWildcardUpperBound1,
110+
(Function<PersonClient, List<? extends Person>>) BaseClient::getListWildcardUpperBound2);
111+
}
112+
106113
public static Stream<Object[]> arguments() throws IOException {
107114
return Stream.of(
108115
createArgsForAdapter((url, or) -> {
@@ -216,6 +223,15 @@ void getEntityWithGenericReturnType() {
216223
assertThat(entity.getBody().name()).isEqualTo("Karl");
217224
}
218225

226+
@ParameterizedTest
227+
@MethodSource("wildcardCases")
228+
void getWildcardReturnType(Function<PersonClient, List<? extends Person>> invocation) {
229+
PersonClient client = initService(PersonClient.class);
230+
prepareResponse(r -> r.setHeader("Content-Type", "application/json").body("[{\"name\":\"Karl\"}]"));
231+
List<? extends Person> list = invocation.apply(client);
232+
assertThat(list.get(0).name()).isEqualTo("Karl");
233+
}
234+
219235
@ParameterizedAdapterTest
220236
void getWithUriBuilderFactory(MockWebServer server, Service service) throws InterruptedException {
221237
prepareResponse(builder ->
@@ -467,6 +483,12 @@ private interface BaseClient<T> {
467483
@GetExchange
468484
T getBody();
469485

486+
@GetExchange
487+
List<? extends T> getListWildcardUpperBound1();
488+
489+
@GetExchange
490+
List<? extends Person> getListWildcardUpperBound2();
491+
470492
@GetExchange
471493
ResponseEntity<T> getEntity();
472494
}

0 commit comments

Comments
 (0)