|
17 | 17 | package org.springframework.web.reactive.result.method.annotation;
|
18 | 18 |
|
19 | 19 | import java.nio.ByteBuffer;
|
| 20 | +import java.time.Duration; |
20 | 21 | import java.util.ArrayList;
|
21 | 22 | import java.util.Arrays;
|
22 | 23 | import java.util.Collections;
|
@@ -331,6 +332,17 @@ void personTransformWithFlux(HttpServer httpServer) throws Exception {
|
331 | 332 | assertThat(performPost("/person-transform/flux", JSON, req, JSON, PERSON_LIST).getBody()).isEqualTo(res);
|
332 | 333 | }
|
333 | 334 |
|
| 335 | + @ParameterizedHttpServerTest // see gh-33885 |
| 336 | + void personTransformWithFluxDelayed(HttpServer httpServer) throws Exception { |
| 337 | + startServer(httpServer); |
| 338 | + |
| 339 | + List<?> req = asList(new Person("Robert"), new Person("Marie")); |
| 340 | + List<?> res = asList(new Person("ROBERT"), new Person("MARIE")); |
| 341 | + assertThat(performPost("/person-transform/flux-delayed", JSON, req, JSON, PERSON_LIST)) |
| 342 | + .satisfies(r -> assertThat(r.getBody()).isEqualTo(res)) |
| 343 | + .satisfies(r -> assertThat(r.getHeaders().getContentLength()).isNotZero()); |
| 344 | + } |
| 345 | + |
334 | 346 | @ParameterizedHttpServerTest
|
335 | 347 | void personTransformWithObservable(HttpServer httpServer) throws Exception {
|
336 | 348 | startServer(httpServer);
|
@@ -632,6 +644,11 @@ Flux<Person> transformFlux(@RequestBody Flux<Person> persons) {
|
632 | 644 | return persons.map(person -> new Person(person.getName().toUpperCase()));
|
633 | 645 | }
|
634 | 646 |
|
| 647 | + @PostMapping("/flux-delayed") |
| 648 | + Flux<Person> transformDelayed(@RequestBody Flux<Person> persons) { |
| 649 | + return transformFlux(persons).delayElements(Duration.ofMillis(10)); |
| 650 | + } |
| 651 | + |
635 | 652 | @PostMapping("/observable")
|
636 | 653 | Observable<Person> transformObservable(@RequestBody Observable<Person> persons) {
|
637 | 654 | return persons.map(person -> new Person(person.getName().toUpperCase()));
|
|
0 commit comments