Fix failures in PrintingResultHandlerTests

This commit is contained in:
Rossen Stoyanchev 2012-11-15 11:26:14 -05:00
parent 8afcf717e2
commit f8bf577eff
4 changed files with 23 additions and 11 deletions

View File

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

View File

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

View File

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

View File

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