From caf2af077a3a6454cef39678564391c4abaf8eeb Mon Sep 17 00:00:00 2001 From: Rossen Stoyanchev Date: Wed, 17 Oct 2012 11:21:30 -0400 Subject: [PATCH] Polish MockHttpServletRequestBuilder --- .../web/mock/servlet/TestDispatcherServlet.java | 2 ++ .../request/MockHttpServletRequestBuilder.java | 15 +++++++++++++++ .../servlet/result/RequestResultMatchers.java | 5 +---- 3 files changed, 18 insertions(+), 4 deletions(-) diff --git a/spring-test-mvc/src/main/java/org/springframework/test/web/mock/servlet/TestDispatcherServlet.java b/spring-test-mvc/src/main/java/org/springframework/test/web/mock/servlet/TestDispatcherServlet.java index 606b3ee74d0..5e4b18db7fe 100644 --- a/spring-test-mvc/src/main/java/org/springframework/test/web/mock/servlet/TestDispatcherServlet.java +++ b/spring-test-mvc/src/main/java/org/springframework/test/web/mock/servlet/TestDispatcherServlet.java @@ -73,6 +73,8 @@ final class TestDispatcherServlet extends DispatcherServlet { super.service(request, response); + // TODO: add CountDownLatch to DeferredResultInterceptor and wait in request().asyncResult(..) + Object handler = getMvcResult(request).getHandler(); if (asyncManager.isConcurrentHandlingStarted() && !deferredResultInterceptor.wasInvoked) { if (!callableInterceptor.await()) { diff --git a/spring-test-mvc/src/main/java/org/springframework/test/web/mock/servlet/request/MockHttpServletRequestBuilder.java b/spring-test-mvc/src/main/java/org/springframework/test/web/mock/servlet/request/MockHttpServletRequestBuilder.java index 8d31b4df85f..c1f8521e1e5 100644 --- a/spring-test-mvc/src/main/java/org/springframework/test/web/mock/servlet/request/MockHttpServletRequestBuilder.java +++ b/spring-test-mvc/src/main/java/org/springframework/test/web/mock/servlet/request/MockHttpServletRequestBuilder.java @@ -202,6 +202,21 @@ public class MockHttpServletRequestBuilder implements RequestBuilder, Mergeable return this; } + /** + * Set the request body as a UTF-8 String. + * + * @param content the body content + */ + public MockHttpServletRequestBuilder content(String content) { + try { + this.content = content.getBytes("UTF-8"); + } + catch (UnsupportedEncodingException e) { + // should never happen + } + return this; + } + /** * Add the given cookies to the request. Cookies are always added. * diff --git a/spring-test-mvc/src/main/java/org/springframework/test/web/mock/servlet/result/RequestResultMatchers.java b/spring-test-mvc/src/main/java/org/springframework/test/web/mock/servlet/result/RequestResultMatchers.java index e9a68a350bf..5bc401583fb 100644 --- a/spring-test-mvc/src/main/java/org/springframework/test/web/mock/servlet/result/RequestResultMatchers.java +++ b/spring-test-mvc/src/main/java/org/springframework/test/web/mock/servlet/result/RequestResultMatchers.java @@ -84,9 +84,6 @@ public class RequestResultMatchers { /** * Assert the result from asynchronous processing with the given matcher. - * This method can be used when a controller method returns {@link Callable} - * or {@link AsyncTask}. The value matched is the value returned from the - * {@code Callable} or the exception raised. */ public ResultMatcher asyncResult(final Matcher matcher) { return new ResultMatcher() { @@ -95,7 +92,7 @@ public class RequestResultMatchers { HttpServletRequest request = result.getRequest(); WebAsyncManager asyncManager = WebAsyncUtils.getAsyncManager(request); MatcherAssert.assertThat("Async started", request.isAsyncStarted(), equalTo(true)); - MatcherAssert.assertThat("Callable result", (T) asyncManager.getConcurrentResult(), matcher); + MatcherAssert.assertThat("Async result", (T) asyncManager.getConcurrentResult(), matcher); } }; }