Browse Source

Fix failures in PrintingResultHandlerTests

pull/140/merge
Rossen Stoyanchev 14 years ago
parent
commit
f8bf577eff
  1. 5
      spring-test-mvc/src/main/java/org/springframework/test/web/servlet/request/MockHttpServletRequestBuilder.java
  2. 4
      spring-test-mvc/src/main/java/org/springframework/test/web/servlet/request/MockMultipartHttpServletRequestBuilder.java
  3. 12
      spring-test-mvc/src/main/java/org/springframework/test/web/servlet/result/PrintingResultHandler.java
  4. 13
      spring-test-mvc/src/test/java/org/springframework/test/web/servlet/result/PrintingResultHandlerTests.java

5
spring-test-mvc/src/main/java/org/springframework/test/web/servlet/request/MockHttpServletRequestBuilder.java

@ -73,6 +73,8 @@ import org.springframework.web.util.UriUtils;
*/ */
public class MockHttpServletRequestBuilder implements RequestBuilder, Mergeable { public class MockHttpServletRequestBuilder implements RequestBuilder, Mergeable {
static final boolean servlet3Present = ClassUtils.hasMethod(ServletRequest.class, "startAsync");
private final UriComponents uriComponents; private final UriComponents uriComponents;
private final HttpMethod method; private final HttpMethod method;
@ -647,8 +649,7 @@ public class MockHttpServletRequestBuilder implements RequestBuilder, Mergeable
* {@link ServletContext}. Can be overridden in sub-classes. * {@link ServletContext}. Can be overridden in sub-classes.
*/ */
protected MockHttpServletRequest createServletRequest(ServletContext servletContext) { protected MockHttpServletRequest createServletRequest(ServletContext servletContext) {
return ClassUtils.hasMethod(ServletRequest.class, "startAsync") ? return servlet3Present ? createServlet3Request(servletContext) : new MockHttpServletRequest(servletContext);
createServlet3Request(servletContext) : new MockHttpServletRequest(servletContext);
} }
private MockHttpServletRequest createServlet3Request(ServletContext servletContext) { private MockHttpServletRequest createServlet3Request(ServletContext servletContext) {

4
spring-test-mvc/src/main/java/org/springframework/test/web/servlet/request/MockMultipartHttpServletRequestBuilder.java

@ -21,7 +21,6 @@ import java.util.ArrayList;
import java.util.List; import java.util.List;
import javax.servlet.ServletContext; import javax.servlet.ServletContext;
import javax.servlet.ServletRequest;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.http.HttpMethod; import org.springframework.http.HttpMethod;
@ -99,9 +98,8 @@ public class MockMultipartHttpServletRequestBuilder extends MockHttpServletReque
@Override @Override
protected final MockHttpServletRequest createServletRequest(ServletContext servletContext) { protected final MockHttpServletRequest createServletRequest(ServletContext servletContext) {
MockMultipartHttpServletRequest request = ClassUtils.hasMethod(ServletRequest.class, "startAsync") ? MockMultipartHttpServletRequest request = servlet3Present ?
createServlet3Request() : new MockMultipartHttpServletRequest(); createServlet3Request() : new MockMultipartHttpServletRequest();
for (MockMultipartFile file : this.files) { for (MockMultipartFile file : this.files) {
request.addFile(file); request.addFile(file);
} }

12
spring-test-mvc/src/main/java/org/springframework/test/web/servlet/result/PrintingResultHandler.java

@ -48,6 +48,8 @@ import org.springframework.web.servlet.support.RequestContextUtils;
*/ */
public class PrintingResultHandler implements ResultHandler { public class PrintingResultHandler implements ResultHandler {
private static final boolean servlet3Present = ClassUtils.hasMethod(ServletRequest.class, "startAsync");
private final ResultValuePrinter printer; private final ResultValuePrinter printer;
@ -77,7 +79,7 @@ public class PrintingResultHandler implements ResultHandler {
this.printer.printHeading("Handler"); this.printer.printHeading("Handler");
printHandler(result.getHandler(), result.getInterceptors()); printHandler(result.getHandler(), result.getInterceptors());
if (ClassUtils.hasMethod(ServletRequest.class, "startAsync")) { if (servlet3Present) {
this.printer.printHeading("Async"); this.printer.printHeading("Async");
printAsyncResult(result); printAsyncResult(result);
} }
@ -130,9 +132,11 @@ public class PrintingResultHandler implements ResultHandler {
} }
protected void printAsyncResult(MvcResult result) throws Exception { protected void printAsyncResult(MvcResult result) throws Exception {
HttpServletRequest request = result.getRequest(); if (servlet3Present) {
this.printer.printValue("Was async started", request.isAsyncStarted()); HttpServletRequest request = result.getRequest();
this.printer.printValue("Async result", result.getAsyncResult(0)); this.printer.printValue("Was async started", request.isAsyncStarted());
this.printer.printValue("Async result", result.getAsyncResult(0));
}
} }
/** Print the handler */ /** Print the handler */

13
spring-test-mvc/src/test/java/org/springframework/test/web/servlet/result/PrintingResultHandlerTests.java

@ -34,6 +34,8 @@ import org.springframework.mock.web.MockHttpServletResponse;
import org.springframework.test.web.servlet.StubMvcResult; import org.springframework.test.web.servlet.StubMvcResult;
import org.springframework.test.web.servlet.result.PrintingResultHandler; import org.springframework.test.web.servlet.result.PrintingResultHandler;
import org.springframework.util.Assert; import org.springframework.util.Assert;
import org.springframework.util.LinkedMultiValueMap;
import org.springframework.util.MultiValueMap;
import org.springframework.validation.BindException; import org.springframework.validation.BindException;
import org.springframework.validation.BindingResult; import org.springframework.validation.BindingResult;
import org.springframework.web.method.HandlerMethod; import org.springframework.web.method.HandlerMethod;
@ -60,7 +62,11 @@ public class PrintingResultHandlerTests {
@Before @Before
public void setup() { public void setup() {
this.handler = new TestPrintingResultHandler(); this.handler = new TestPrintingResultHandler();
this.request = new MockHttpServletRequest("GET", "/"); this.request = new MockHttpServletRequest("GET", "/") {
public boolean isAsyncStarted() {
return false;
}
};
this.response = new MockHttpServletResponse(); this.response = new MockHttpServletResponse();
this.mvcResult = new StubMvcResult(this.request, null, null, null, null, null, this.response); this.mvcResult = new StubMvcResult(this.request, null, null, null, null, null, this.response);
} }
@ -75,9 +81,12 @@ public class PrintingResultHandlerTests {
HttpHeaders headers = new HttpHeaders(); HttpHeaders headers = new HttpHeaders();
headers.set("header", "headerValue"); headers.set("header", "headerValue");
MultiValueMap<String, String> params = new LinkedMultiValueMap<String, String>();
params.add("param", "paramValue");
assertValue("MockHttpServletRequest", "HTTP Method", this.request.getMethod()); assertValue("MockHttpServletRequest", "HTTP Method", this.request.getMethod());
assertValue("MockHttpServletRequest", "Request URI", this.request.getRequestURI()); assertValue("MockHttpServletRequest", "Request URI", this.request.getRequestURI());
assertValue("MockHttpServletRequest", "Parameters", this.request.getParameterMap()); assertValue("MockHttpServletRequest", "Parameters", params);
assertValue("MockHttpServletRequest", "Headers", headers); assertValue("MockHttpServletRequest", "Headers", headers);
} }

Loading…
Cancel
Save