@Override public <T> void postProcess(NativeWebRequest r, DeferredResult<T> result, Object value) { getMvcResult(request).setAsyncResult(value); } });
/** * Static method for matching with an array of result matchers. * @param matchers the matchers * @since 5.1 */ static ResultMatcher matchAll(ResultMatcher... matchers) { return result -> { for (ResultMatcher matcher : matchers) { matcher.match(result); } }; }
private MockHttpServletResponse getResponse(RequestBuilder requestBuilder) throws IOException { ResultActions resultActions; try { resultActions = this.mockMvc.perform(requestBuilder); } catch (Exception ex) { throw new IOException(ex); } return resultActions.andReturn().getResponse(); }
private MockHttpServletRequest postProcess(MockHttpServletRequest request) { if (this.parentPostProcessor != null) { request = this.parentPostProcessor.postProcessRequest(request); } if (this.forwardPostProcessor != null) { request = this.forwardPostProcessor.postProcessRequest(request); } return request; }
private ModelAndView getModelAndView(MvcResult mvcResult) { ModelAndView mav = mvcResult.getModelAndView(); if (mav == null) { fail("No ModelAndView found"); } return mav; }
@Override protected ModelAndView processHandlerException(HttpServletRequest request, HttpServletResponse response, @Nullable Object handler, Exception ex) throws Exception { ModelAndView mav = super.processHandlerException(request, response, handler, ex); // We got this far, exception was processed.. DefaultMvcResult mvcResult = getMvcResult(request); mvcResult.setResolvedException(ex); mvcResult.setModelAndView(mav); return mav; }
@Override protected HandlerExecutionChain getHandler(HttpServletRequest request) throws Exception { HandlerExecutionChain chain = super.getHandler(request); if (chain != null) { DefaultMvcResult mvcResult = getMvcResult(request); mvcResult.setHandler(chain.getHandler()); mvcResult.setInterceptors(chain.getInterceptors()); } return chain; }
@Override protected void render(ModelAndView mv, HttpServletRequest request, HttpServletResponse response) throws Exception { DefaultMvcResult mvcResult = getMvcResult(request); mvcResult.setModelAndView(mv); super.render(mv, request, response); }
@Override public Object getAsyncResult() { return getAsyncResult(-1); }
@Override public ResultActions andDo(ResultHandler handler) throws Exception { handler.handle(mvcResult); return this; } @Override
/** * Private constructor, not for direct instantiation. * @see org.springframework.test.web.servlet.setup.MockMvcBuilders */ MockMvc(TestDispatcherServlet servlet, Filter... filters) { Assert.notNull(servlet, "DispatcherServlet is required"); Assert.notNull(filters, "Filters cannot be null"); Assert.noNullElements(filters, "Filters cannot contain null values"); this.servlet = servlet; this.filters = filters; this.servletContext = servlet.getServletContext(); }
private static HandlerMethod getHandlerMethod(MvcResult result) { Object handler = result.getHandler(); assertTrue("No handler", handler != null); if (!(handler instanceof HandlerMethod)) { fail("Not a HandlerMethod: " + handler); } return (HandlerMethod) handler; }
private MvcResult getMvcResult(ModelAndView modelAndView) { return new StubMvcResult(null, null, null, null, modelAndView, null, null); } }
@Bean public MyController myController() { return new MyController(); } }
@Override public <T> void postProcess(NativeWebRequest r, Callable<T> task, Object value) { // We got the result, must also wait for the dispatch getMvcResult(request).setAsyncResult(value); } });
@Override public ResultActions andExpect(ResultMatcher matcher) throws Exception { matcher.match(mvcResult); return this; } @Override
private StubMvcResult getRedirectedUrlStubMvcResult(String redirectUrl) throws Exception { MockHttpServletResponse response = new MockHttpServletResponse(); response.sendRedirect(redirectUrl); StubMvcResult mvcResult = new StubMvcResult(null, null, null, null, null, null, response); return mvcResult; }
private StubMvcResult getForwardedUrlStubMvcResult(String forwardedUrl) { MockHttpServletResponse response = new MockHttpServletResponse(); response.setForwardedUrl(forwardedUrl); StubMvcResult mvcResult = new StubMvcResult(null, null, null, null, null, null, response); return mvcResult; }
private StubMvcResult getStubMvcResult() { FlashMap flashMap = new FlashMap(); flashMap.put("good", "good"); StubMvcResult mvcResult = new StubMvcResult(null, null, null, null, null, flashMap, null); return mvcResult; }