public void testDefaultHandleNoSuchFlowExecutionException() throws Exception { setupRequest("/springtravel", "/app", "/foo", "GET"); request.addParameter("execution", "12345"); flowExecutor.resumeExecution("12345", context); FlowException flowException = new NoSuchFlowExecutionException(new MockFlowExecutionKey("12345"), null); EasyMock.expectLastCall().andThrow(flowException); EasyMock.replay(flowExecutor); flowHandlerAdapter.handle(request, response, flowHandler); assertEquals("/springtravel/app/foo", response.getRedirectedUrl()); EasyMock.verify(flowExecutor); }
public void testWriteFlowSerializedView() throws IOException { EasyMock.expect(this.flowExecutionContext.getKey()).andReturn(new MockFlowExecutionKey("e1s1")); LocalAttributeMap<Object> viewMap = new LocalAttributeMap<>(); EasyMock.expect(this.requestContext.getViewScope()).andStubReturn(viewMap); EasyMock.expect(this.requestContext.getFlowExecutionContext()).andReturn(this.flowExecutionContext); EasyMock.replay(this.requestContext, this.flowExecutionContext); Object state = new Object(); this.responseStateManager.writeState(this.jsfMock.facesContext(), state); assertEquals(state, viewMap.get(FlowResponseStateManager.FACES_VIEW_STATE)); assertEquals( "<input type=\"hidden\" name=\"javax.faces.ViewState\" id=\"javax.faces.ViewState\" value=\"e1s1\" />", this.jsfMock.contentAsString()); EasyMock.verify(this.flowExecutionContext, this.requestContext); }
public void testDefaultHandleNoSuchFlowExecutionExceptionAjaxRequest() throws Exception { setupRequest("/springtravel", "/app", "/foo", "GET"); request.addParameter("execution", "12345"); flowExecutor.resumeExecution("12345", context); FlowException flowException = new NoSuchFlowExecutionException(new MockFlowExecutionKey("12345"), null); EasyMock.expectLastCall().andThrow(flowException); EasyMock.replay(flowExecutor); context.setAjaxRequest(true); request.addHeader("Accept", "text/html;type=ajax"); flowHandlerAdapter.handle(request, response, flowHandler); assertEquals("/springtravel/app/foo", response.getHeader("Spring-Redirect-URL")); EasyMock.verify(flowExecutor); }
public void testDefaultHandleNoSuchFlowExecutionException() throws Exception { request.setContextPath("/springtravel"); request.setServletPath("/app"); request.setPathInfo("/foo"); request.setRequestURI("/springtravel/app/foo"); request.setMethod("GET"); request.addParameter("execution", "12345"); executor.resumeExecution("12345", context); FlowException flowException = new NoSuchFlowExecutionException(new MockFlowExecutionKey("12345"), null); EasyMock.expectLastCall().andThrow(flowException); EasyMock.replay(executor); ModelAndView mv = controller.handleRequest(request, response); assertNull(mv); assertEquals("/springtravel/app/foo", response.getRedirectedUrl()); EasyMock.verify(executor); }
public void testLaunchFlowExecution() { String flowId = "foo"; MutableAttributeMap<Object> input = null; MockExternalContext context = new MockExternalContext(); EasyMock.expect(locator.getFlowDefinition(flowId)).andReturn(definition); EasyMock.expect(factory.createFlowExecution(definition)).andReturn(execution); execution.start(input, context); execution.hasEnded(); EasyMock.expectLastCall().andReturn(false); MockFlowExecutionKey flowExecutionKey = new MockFlowExecutionKey("12345"); EasyMock.expect(execution.getKey()).andReturn(flowExecutionKey); EasyMock.expect(repository.getLock(flowExecutionKey)).andReturn(lock); lock.lock(); repository.putFlowExecution(execution); lock.unlock(); EasyMock.expect(execution.getDefinition()).andReturn(definition); EasyMock.expect(definition.getId()).andReturn("foo"); EasyMock.expect(execution.getKey()).andReturn(flowExecutionKey); replayMocks(); FlowExecutionResult result = flowExecutor.launchExecution("foo", null, context); assertTrue(result.isPaused()); assertEquals("12345", result.getPausedKey()); assertFalse(result.isEnded()); assertNull(result.getOutcome()); assertNull(ExternalContextHolder.getExternalContext()); verifyMocks(); }
public void testResumeFlowExecution() { String flowExecutionKey = "12345"; MockExternalContext context = new MockExternalContext(); FlowExecutionKey key = new GeneratedFlowExecutionKey(); EasyMock.expect(repository.parseFlowExecutionKey(flowExecutionKey)).andReturn(key); EasyMock.expect(repository.getLock(key)).andReturn(lock); lock.lock(); EasyMock.expect(repository.getFlowExecution(key)).andReturn(execution); execution.resume(context); execution.hasEnded(); EasyMock.expectLastCall().andReturn(false); repository.putFlowExecution(execution); EasyMock.expect(execution.getDefinition()).andReturn(definition); EasyMock.expect(definition.getId()).andReturn("foo"); EasyMock.expect(execution.getKey()).andReturn(new MockFlowExecutionKey("12345")); lock.unlock(); replayMocks(); FlowExecutionResult result = flowExecutor.resumeExecution(flowExecutionKey, context); verifyMocks(); assertTrue(result.isPaused()); assertEquals("12345", result.getPausedKey()); assertFalse(result.isEnded()); assertNull(result.getOutcome()); assertNull(ExternalContextHolder.getExternalContext()); verifyMocks(); }
public void testResumeFlowExecutionEndsAfterProcessing() { String flowExecutionKey = "12345"; MockExternalContext context = new MockExternalContext(); FlowExecutionKey key = new MockFlowExecutionKey("12345"); EasyMock.expect(repository.parseFlowExecutionKey(flowExecutionKey)).andReturn(key); EasyMock.expect(repository.getLock(key)).andReturn(lock); lock.lock(); EasyMock.expect(repository.getFlowExecution(key)).andReturn(execution); execution.resume(context); execution.hasEnded(); EasyMock.expectLastCall().andReturn(true); EasyMock.expect(execution.getDefinition()).andReturn(definition); EasyMock.expect(definition.getId()).andReturn("foo"); LocalAttributeMap<Object> output = new LocalAttributeMap<>(); output.put("foo", "bar"); EasyMock.expect(execution.getOutcome()).andReturn(new FlowExecutionOutcome("finish", output)); repository.removeFlowExecution(execution); lock.unlock(); replayMocks(); FlowExecutionResult result = flowExecutor.resumeExecution(flowExecutionKey, context); assertTrue(result.isEnded()); assertEquals("finish", result.getOutcome().getId()); assertEquals(output, result.getOutcome().getOutput()); assertFalse(result.isPaused()); assertNull(result.getPausedKey()); assertNull(ExternalContextHolder.getExternalContext()); verifyMocks(); }
public void testGetType_FlowExecutionUrl() { MockRequestContext requestContext = new MockRequestContext(); ((MockFlowExecutionContext) requestContext.getFlowExecutionContext()).setKey(new MockFlowExecutionKey("e1s1")); RequestContextHolder.setRequestContext(requestContext); assertTrue(ClassUtils.isAssignable(String.class, context.getELResolver().getType(context, null, "flowExecutionUrl"))); assertTrue(context.isPropertyResolved()); }
public void testGetValue_FlowExecutionUrl() { MockRequestContext requestContext = new MockRequestContext(); ((MockFlowExecutionContext) requestContext.getFlowExecutionContext()).setKey(new MockFlowExecutionKey("e1s1")); RequestContextHolder.setRequestContext(requestContext); assertEquals(requestContext.getFlowExecutionUrl(), context.getELResolver().getValue(context, null, "flowExecutionUrl")); assertTrue(context.isPropertyResolved()); }
public void testRender() throws Exception { MockRequestContext context = new MockRequestContext(); context.getRequestScope().put("foo", "bar"); context.getFlowScope().put("bar", "baz"); context.getFlowScope().put("bindBean", new BindBean()); context.getConversationScope().put("baz", "boop"); context.getFlashScope().put("boop", "bing"); context.getMockExternalContext().setCurrentUser("Keith"); context.getMockExternalContext().setNativeContext(new MockServletContext()); context.getMockExternalContext().setNativeRequest(new MockHttpServletRequest()); context.getMockExternalContext().setNativeResponse(new MockHttpServletResponse()); context.getMockFlowExecutionContext().setKey(new MockFlowExecutionKey("c1v1")); org.springframework.web.servlet.View mvcView = new MockView(); AbstractMvcView view = new ServletMvcView(mvcView, context); view.render(); assertTrue(renderCalled); assertEquals("bar", model.get("foo")); assertEquals("baz", model.get("bar")); assertEquals("boop", model.get("baz")); assertEquals("bing", model.get("boop")); assertEquals("c1v1", model.get("flowExecutionKey")); assertEquals("Keith", ((Principal) model.get("currentUser")).getName()); assertEquals(context, model.get("flowRequestContext")); assertEquals("/mockFlow?execution=c1v1", model.get("flowExecutionUrl")); assertNull(model.get(BindingResult.MODEL_KEY_PREFIX + "bindBean")); }
public void testRender() throws Exception { MockRequestControlContext context = new MockRequestControlContext(); context.setCurrentState(new ViewState(context.getRootFlow(), "test", new StubViewFactory())); context.getRequestScope().put("foo", "bar"); context.getFlowScope().put("bar", "baz"); context.getFlowScope().put("bindBean", new BindBean()); context.getConversationScope().put("baz", "boop"); context.getFlashScope().put("boop", "bing"); context.getMockExternalContext().setCurrentUser("Keith"); context.getMockExternalContext().setNativeContext(new MockServletContext()); context.getMockExternalContext().setNativeRequest(new MockHttpServletRequest()); context.getMockExternalContext().setNativeResponse(new MockHttpServletResponse()); context.getMockFlowExecutionContext().setKey(new MockFlowExecutionKey("c1v1")); org.springframework.web.servlet.View mvcView = new MockView(); AbstractMvcView view = new MockMvcView(mvcView, context); view.setExpressionParser(createExpressionParser()); view.render(); assertTrue(renderCalled); assertEquals("bar", model.get("foo")); assertEquals("baz", model.get("bar")); assertEquals("boop", model.get("baz")); assertEquals("bing", model.get("boop")); assertEquals("c1v1", model.get("flowExecutionKey")); assertEquals("Keith", ((Principal) model.get("currentUser")).getName()); assertEquals(context, model.get("flowRequestContext")); assertEquals("/mockFlow?execution=c1v1", model.get("flowExecutionUrl")); assertNull(model.get(BindingResult.MODEL_KEY_PREFIX + "bindBean")); }
MockFlowExecutionKeyFactory keyFactory = new MockFlowExecutionKeyFactory(); factory.setExecutionKeyFactory(keyFactory); FlowExecutionKey flowExecutionKey = new MockFlowExecutionKey("e1s1"); LocalAttributeMap<Object> conversationScope = new LocalAttributeMap<>(); SimpleFlowDefinitionLocator locator = new SimpleFlowDefinitionLocator();
public void testResumeNoEvent() { MockRequestContext context = new MockRequestContext(); context.getMockExternalContext().setNativeContext(new MockServletContext()); context.getMockExternalContext().setNativeRequest(new MockHttpServletRequest()); context.getMockExternalContext().setNativeResponse(new MockHttpServletResponse()); context.getMockFlowExecutionContext().setKey(new MockFlowExecutionKey("c1v1")); org.springframework.web.servlet.View mvcView = new MockView(); AbstractMvcView view = new MockMvcView(mvcView, context); assertFalse(view.userEventQueued()); view.processUserEvent(); assertFalse(view.hasFlowEvent()); assertNull(view.getFlowEvent()); }
context.getMockExternalContext().setNativeRequest(new MockHttpServletRequest()); context.getMockExternalContext().setNativeResponse(new MockHttpServletResponse()); context.getMockFlowExecutionContext().setKey(new MockFlowExecutionKey("c1v1")); org.springframework.web.servlet.View mvcView = new MockView(); AbstractMvcView view = new MockMvcView(mvcView, context);
context.getMockExternalContext().setNativeRequest(new MockHttpServletRequest()); context.getMockExternalContext().setNativeResponse(new MockHttpServletResponse()); context.getMockFlowExecutionContext().setKey(new MockFlowExecutionKey("c1v1")); org.springframework.web.servlet.View mvcView = new MockView(); AbstractMvcView view = new MockMvcView(mvcView, context);
context.getMockExternalContext().setNativeRequest(new MockHttpServletRequest()); context.getMockExternalContext().setNativeResponse(new MockHttpServletResponse()); context.getMockFlowExecutionContext().setKey(new MockFlowExecutionKey("c1v1")); org.springframework.web.servlet.View mvcView = new MockView(); AbstractMvcView view = new MockMvcView(mvcView, context);
public void testResumeEventNoModelBinding() { MockRequestContext context = new MockRequestContext(); context.putRequestParameter("_eventId", "submit"); context.getMockExternalContext().setNativeContext(new MockServletContext()); context.getMockExternalContext().setNativeRequest(new MockHttpServletRequest()); context.getMockExternalContext().setNativeResponse(new MockHttpServletResponse()); context.getMockFlowExecutionContext().setKey(new MockFlowExecutionKey("c1v1")); org.springframework.web.servlet.View mvcView = new MockView(); AbstractMvcView view = new MockMvcView(mvcView, context); assertTrue(view.userEventQueued()); view.processUserEvent(); assertTrue(view.hasFlowEvent()); assertEquals("submit", view.getFlowEvent().getId()); }
public void testRenderWithBindingModel() throws Exception { MockRequestControlContext context = new MockRequestControlContext(); context.setCurrentState(new ViewState(context.getRootFlow(), "test", new StubViewFactory())); Object bindBean = new BindBean(); StaticExpression modelObject = new StaticExpression(bindBean); modelObject.setExpressionString("bindBean"); context.getCurrentState().getAttributes().put("model", modelObject); context.getFlowScope().put("bindBean", bindBean); context.getMockExternalContext().setNativeContext(new MockServletContext()); context.getMockExternalContext().setNativeRequest(new MockHttpServletRequest()); context.getMockExternalContext().setNativeResponse(new MockHttpServletResponse()); context.getMockFlowExecutionContext().setKey(new MockFlowExecutionKey("c1v1")); org.springframework.web.servlet.View mvcView = new MockView(); AbstractMvcView view = new MockMvcView(mvcView, context); view.setExpressionParser(createExpressionParser()); view.setConversionService(new DefaultConversionService()); view.render(); assertEquals(context.getFlowScope().get("bindBean"), model.get("bindBean")); BindingModel bm = (BindingModel) model.get(BindingResult.MODEL_KEY_PREFIX + "bindBean"); assertNotNull(bm); assertEquals(null, bm.getFieldValue("stringProperty")); assertEquals("3", bm.getFieldValue("integerProperty")); assertEquals("2008-01-01", bm.getFieldValue("dateProperty")); }
public void testResumeEventBindingErrors() throws IOException { MockRequestControlContext context = new MockRequestControlContext(); context.putRequestParameter("_eventId", "submit"); context.putRequestParameter("integerProperty", "bogus 1"); context.putRequestParameter("dateProperty", "bogus 2"); BindBean bindBean = new BindBean(); StaticExpression modelObject = new StaticExpression(bindBean); modelObject.setExpressionString("bindBean"); context.getCurrentState().getAttributes().put("model", modelObject); context.getFlowScope().put("bindBean", bindBean); context.getMockExternalContext().setNativeContext(new MockServletContext()); context.getMockExternalContext().setNativeRequest(new MockHttpServletRequest()); context.getMockExternalContext().setNativeResponse(new MockHttpServletResponse()); context.getMockFlowExecutionContext().setKey(new MockFlowExecutionKey("c1v1")); org.springframework.web.servlet.View mvcView = new MockView(); AbstractMvcView view = new MockMvcView(mvcView, context); view.setExpressionParser(createExpressionParser()); view.setMessageCodesResolver(new WebFlowMessageCodesResolver()); context.setAlwaysRedirectOnPause(true); view.processUserEvent(); assertFalse(view.hasFlowEvent()); view.render(); assertEquals(context.getFlowScope().get("bindBean"), model.get("bindBean")); BindingModel bm = (BindingModel) model.get(BindingResult.MODEL_KEY_PREFIX + "bindBean"); assertNotNull(bm); assertEquals("bogus 1", bm.getFieldValue("integerProperty")); assertEquals("bogus 2", bm.getFieldValue("dateProperty")); }
public void testResumeEventModelBindingFieldMarker() { MockRequestContext context = new MockRequestContext(); context.putRequestParameter("_eventId", "submit"); context.putRequestParameter("_booleanProperty", "whatever"); BindBean bindBean = new BindBean(); bindBean.setBooleanProperty(true); StaticExpression modelObject = new StaticExpression(bindBean); modelObject.setExpressionString("bindBean"); context.getCurrentState().getAttributes().put("model", modelObject); context.getFlowScope().put("bindBean", bindBean); context.getMockExternalContext().setNativeContext(new MockServletContext()); context.getMockExternalContext().setNativeRequest(new MockHttpServletRequest()); context.getMockExternalContext().setNativeResponse(new MockHttpServletResponse()); context.getMockFlowExecutionContext().setKey(new MockFlowExecutionKey("c1v1")); org.springframework.web.servlet.View mvcView = new MockView(); AbstractMvcView view = new MockMvcView(mvcView, context); view.setExpressionParser(createExpressionParser()); view.processUserEvent(); assertEquals(false, bindBean.getBooleanProperty()); }