|
44 | 44 | import org.springframework.http.HttpHeaders;
|
45 | 45 | import org.springframework.http.HttpMethod;
|
46 | 46 | import org.springframework.http.HttpStatus;
|
| 47 | +import org.springframework.http.MediaType; |
47 | 48 | import org.springframework.http.ResponseEntity;
|
48 | 49 | import org.springframework.http.codec.EncoderHttpMessageWriter;
|
49 | 50 | import org.springframework.http.codec.HttpMessageWriter;
|
@@ -334,6 +335,22 @@ public void handleMonoWithWildcardBodyTypeAndNullBody() throws Exception {
|
334 | 335 | assertResponseBodyIsEmpty(exchange);
|
335 | 336 | }
|
336 | 337 |
|
| 338 | + @Test // SPR-17082 |
| 339 | + public void handleResponseEntityWithExistingResponseHeaders() throws Exception { |
| 340 | + ResponseEntity<Void> value = ResponseEntity.ok().contentType(MediaType.APPLICATION_JSON).build(); |
| 341 | + MethodParameter returnType = on(TestController.class).resolveReturnType(entity(Void.class)); |
| 342 | + HandlerResult result = handlerResult(value, returnType); |
| 343 | + MockServerWebExchange exchange = MockServerWebExchange.from(get("/path")); |
| 344 | + exchange.getResponse().getHeaders().setContentType(MediaType.TEXT_PLAIN); |
| 345 | + this.resultHandler.handleResult(exchange, result).block(Duration.ofSeconds(5)); |
| 346 | + |
| 347 | + assertEquals(HttpStatus.OK, exchange.getResponse().getStatusCode()); |
| 348 | + assertEquals(1, exchange.getResponse().getHeaders().size()); |
| 349 | + assertEquals(MediaType.APPLICATION_JSON, exchange.getResponse().getHeaders().getContentType()); |
| 350 | + assertResponseBodyIsEmpty(exchange); |
| 351 | + } |
| 352 | + |
| 353 | + |
337 | 354 |
|
338 | 355 | private void testHandle(Object returnValue, MethodParameter returnType) {
|
339 | 356 | MockServerWebExchange exchange = MockServerWebExchange.from(get("/path"));
|
|
0 commit comments