|
16 | 16 |
|
17 | 17 | package org.springframework.http.codec; |
18 | 18 |
|
| 19 | +import java.lang.reflect.InvocationTargetException; |
| 20 | +import java.lang.reflect.Method; |
| 21 | +import java.nio.charset.StandardCharsets; |
| 22 | +import java.util.Arrays; |
| 23 | +import java.util.Collections; |
| 24 | +import java.util.List; |
| 25 | +import java.util.Map; |
| 26 | + |
19 | 27 | import org.junit.jupiter.api.Test; |
20 | 28 | import org.mockito.ArgumentCaptor; |
21 | 29 | import org.mockito.Mock; |
22 | 30 | import org.mockito.junit.jupiter.MockitoSettings; |
23 | 31 | import org.mockito.quality.Strictness; |
| 32 | +import reactor.core.publisher.Flux; |
| 33 | +import reactor.core.publisher.Mono; |
| 34 | +import reactor.test.StepVerifier; |
| 35 | + |
24 | 36 | import org.springframework.core.ResolvableType; |
25 | 37 | import org.springframework.core.codec.CharSequenceEncoder; |
26 | 38 | import org.springframework.core.codec.Encoder; |
27 | 39 | import org.springframework.core.io.buffer.DataBuffer; |
28 | 40 | import org.springframework.core.io.buffer.DefaultDataBufferFactory; |
29 | | -import org.springframework.http.HttpHeaders; |
30 | | -import org.springframework.http.HttpMethod; |
31 | 41 | import org.springframework.http.MediaType; |
32 | | -import org.springframework.http.ReactiveHttpOutputMessage; |
33 | 42 | import org.springframework.util.MimeType; |
34 | 43 | import org.springframework.util.MimeTypeUtils; |
35 | 44 | import org.springframework.util.ReflectionUtils; |
36 | | -import org.springframework.web.testfixture.http.client.reactive.MockClientHttpRequest; |
37 | 45 | import org.springframework.web.testfixture.http.server.reactive.MockServerHttpResponse; |
38 | | -import reactor.core.publisher.Flux; |
39 | | -import reactor.core.publisher.Mono; |
40 | | -import reactor.test.StepVerifier; |
41 | | - |
42 | | -import java.lang.reflect.InvocationTargetException; |
43 | | -import java.lang.reflect.Method; |
44 | | -import java.nio.charset.StandardCharsets; |
45 | | -import java.util.Arrays; |
46 | | -import java.util.Collections; |
47 | | -import java.util.List; |
48 | | -import java.util.Map; |
49 | 46 |
|
50 | 47 | import static java.nio.charset.StandardCharsets.ISO_8859_1; |
51 | 48 | import static java.nio.charset.StandardCharsets.UTF_8; |
@@ -205,32 +202,27 @@ void isStreamingMediaType() throws InvocationTargetException, IllegalAccessExcep |
205 | 202 | } |
206 | 203 |
|
207 | 204 | @Test |
208 | | - public void ifBodyPublisherEmpty_noContentTypeHeader() { |
| 205 | + public void noContentTypeWithEmptyBody() { |
209 | 206 | Encoder<CharSequence> encoder = CharSequenceEncoder.textPlainOnly(); |
210 | | - EncoderHttpMessageWriter<CharSequence> writer = new EncoderHttpMessageWriter<>(encoder); |
211 | | - ReactiveHttpOutputMessage outputMessage = new MockClientHttpRequest(HttpMethod.POST, "/"); |
| 207 | + HttpMessageWriter<CharSequence> writer = new EncoderHttpMessageWriter<>(encoder); |
212 | 208 | Mono<Void> writerMono = writer.write(Mono.empty(), ResolvableType.forClass(String.class), |
213 | | - null, outputMessage, NO_HINTS); |
| 209 | + null, this.response, NO_HINTS); |
214 | 210 |
|
215 | 211 | StepVerifier.create(writerMono) |
216 | 212 | .verifyComplete(); |
217 | | - assertThat(outputMessage.getHeaders()).doesNotContainKey(HttpHeaders.CONTENT_TYPE); |
| 213 | + assertThat(response.getHeaders().getContentType()).isNull(); |
218 | 214 | } |
219 | 215 |
|
220 | 216 | @Test |
221 | | - public void ifBodyPublisherEmpty_contentLengthZero() { |
| 217 | + public void zeroContentLengthWithEmptyBody() { |
222 | 218 | Encoder<CharSequence> encoder = CharSequenceEncoder.textPlainOnly(); |
223 | | - EncoderHttpMessageWriter<CharSequence> writer = new EncoderHttpMessageWriter<>(encoder); |
224 | | - ReactiveHttpOutputMessage outputMessage = new MockClientHttpRequest(HttpMethod.POST, "/"); |
| 219 | + HttpMessageWriter<CharSequence> writer = new EncoderHttpMessageWriter<>(encoder); |
225 | 220 | Mono<Void> writerMono = writer.write(Mono.empty(), ResolvableType.forClass(String.class), |
226 | | - null, outputMessage, NO_HINTS); |
| 221 | + null, this.response, NO_HINTS); |
227 | 222 |
|
228 | 223 | StepVerifier.create(writerMono) |
229 | 224 | .verifyComplete(); |
230 | | - List<String> contentLengthValues = outputMessage.getHeaders().get(HttpHeaders.CONTENT_LENGTH); |
231 | | - assertThat(contentLengthValues).hasSize(1); |
232 | | - int contentLength = Integer.parseInt(contentLengthValues.get(0)); |
233 | | - assertThat(contentLength).isEqualTo(0); |
| 225 | + assertThat(this.response.getHeaders().getContentLength()).isEqualTo(0); |
234 | 226 | } |
235 | 227 |
|
236 | 228 | private void configureEncoder(MimeType... mimeTypes) { |
|
0 commit comments