Fix review remarks on Servlet.fn
This commit incoporates the remarks made during the Servlet.fn review. See gh-21490
This commit is contained in:
@@ -29,6 +29,7 @@ import javax.servlet.http.Cookie;
|
||||
|
||||
import org.junit.Test;
|
||||
|
||||
import org.springframework.core.ParameterizedTypeReference;
|
||||
import org.springframework.http.CacheControl;
|
||||
import org.springframework.http.HttpHeaders;
|
||||
import org.springframework.http.HttpMethod;
|
||||
@@ -63,6 +64,16 @@ public class DefaultEntityResponseBuilderTests {
|
||||
assertSame(body, response.entity());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void fromObjectTypeReference() {
|
||||
String body = "foo";
|
||||
EntityResponse<String> response = EntityResponse.fromObject(body,
|
||||
new ParameterizedTypeReference<String>() {})
|
||||
.build();
|
||||
|
||||
assertSame(body, response.entity());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void status() {
|
||||
String body = "foo";
|
||||
|
||||
@@ -36,6 +36,7 @@ import org.springframework.http.HttpRange;
|
||||
import org.springframework.http.MediaType;
|
||||
import org.springframework.http.converter.HttpMessageConverter;
|
||||
import org.springframework.http.converter.StringHttpMessageConverter;
|
||||
import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;
|
||||
import org.springframework.mock.web.test.MockHttpServletRequest;
|
||||
import org.springframework.mock.web.test.MockHttpSession;
|
||||
import org.springframework.util.LinkedMultiValueMap;
|
||||
@@ -240,14 +241,16 @@ public class DefaultServerRequestTests {
|
||||
@Test
|
||||
public void bodyParameterizedTypeReference() throws Exception {
|
||||
MockHttpServletRequest servletRequest = new MockHttpServletRequest("GET", "/");
|
||||
servletRequest.setContentType(MediaType.TEXT_PLAIN_VALUE);
|
||||
servletRequest.setContent("foo".getBytes(UTF_8));
|
||||
servletRequest.setContentType(MediaType.APPLICATION_JSON_VALUE);
|
||||
servletRequest.setContent("[\"foo\",\"bar\"]".getBytes(UTF_8));
|
||||
|
||||
DefaultServerRequest request = new DefaultServerRequest(servletRequest,
|
||||
this.messageConverters);
|
||||
Collections.singletonList(new MappingJackson2HttpMessageConverter()));
|
||||
|
||||
String result = request.body(new ParameterizedTypeReference<String>() {});
|
||||
assertEquals("foo", result);
|
||||
List<String> result = request.body(new ParameterizedTypeReference<List<String>>() {});
|
||||
assertEquals(2, result.size());
|
||||
assertEquals("foo", result.get(0));
|
||||
assertEquals("bar", result.get(1));
|
||||
}
|
||||
|
||||
@Test(expected = HttpMediaTypeNotSupportedException.class)
|
||||
|
||||
@@ -20,6 +20,7 @@ import java.net.URI;
|
||||
import java.time.ZonedDateTime;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.time.temporal.ChronoUnit;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.EnumSet;
|
||||
import java.util.List;
|
||||
@@ -31,6 +32,7 @@ import org.junit.Test;
|
||||
import org.reactivestreams.Publisher;
|
||||
import reactor.core.publisher.Mono;
|
||||
|
||||
import org.springframework.core.ParameterizedTypeReference;
|
||||
import org.springframework.http.CacheControl;
|
||||
import org.springframework.http.HttpHeaders;
|
||||
import org.springframework.http.HttpMethod;
|
||||
@@ -38,6 +40,7 @@ import org.springframework.http.HttpStatus;
|
||||
import org.springframework.http.MediaType;
|
||||
import org.springframework.http.converter.HttpMessageConverter;
|
||||
import org.springframework.http.converter.StringHttpMessageConverter;
|
||||
import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;
|
||||
import org.springframework.mock.web.test.MockHttpServletRequest;
|
||||
import org.springframework.mock.web.test.MockHttpServletResponse;
|
||||
import org.springframework.util.LinkedMultiValueMap;
|
||||
@@ -288,10 +291,27 @@ public class DefaultServerResponseBuilderTests {
|
||||
}
|
||||
|
||||
@Test
|
||||
public void asyncBodyCompletionStage() throws Exception {
|
||||
public void bodyWithParameterizedTypeReference() throws Exception {
|
||||
List<String> body = new ArrayList<>();
|
||||
body.add("foo");
|
||||
body.add("bar");
|
||||
ServerResponse response = ServerResponse.ok().body(body, new ParameterizedTypeReference<List<String>>() {});
|
||||
|
||||
MockHttpServletRequest mockRequest = new MockHttpServletRequest("GET", "http://example.com");
|
||||
MockHttpServletResponse mockResponse = new MockHttpServletResponse();
|
||||
ServerResponse.Context context = () -> Collections.singletonList(new MappingJackson2HttpMessageConverter());
|
||||
|
||||
ModelAndView mav = response.writeTo(mockRequest, mockResponse, context);
|
||||
assertNull(mav);
|
||||
|
||||
assertEquals("[\"foo\",\"bar\"]", mockResponse.getContentAsString());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void bodyCompletionStage() throws Exception {
|
||||
String body = "foo";
|
||||
CompletionStage<String> completionStage = CompletableFuture.completedFuture(body);
|
||||
ServerResponse response = ServerResponse.ok().asyncBody(completionStage);
|
||||
ServerResponse response = ServerResponse.ok().body(completionStage);
|
||||
|
||||
MockHttpServletRequest mockRequest = new MockHttpServletRequest("GET", "http://example.com");
|
||||
MockHttpServletResponse mockResponse = new MockHttpServletResponse();
|
||||
@@ -307,10 +327,10 @@ public class DefaultServerResponseBuilderTests {
|
||||
}
|
||||
|
||||
@Test
|
||||
public void asyncBodyPublisher() throws Exception {
|
||||
public void bodyPublisher() throws Exception {
|
||||
String body = "foo";
|
||||
Publisher<String> publisher = Mono.just(body);
|
||||
ServerResponse response = ServerResponse.ok().asyncBody(publisher);
|
||||
ServerResponse response = ServerResponse.ok().body(publisher);
|
||||
|
||||
MockHttpServletRequest mockRequest = new MockHttpServletRequest("GET", "http://example.com");
|
||||
MockHttpServletResponse mockResponse = new MockHttpServletResponse();
|
||||
|
||||
Reference in New Issue
Block a user