|
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