public TransitionDefinition getMatchingTransition(String eventId) throws IllegalStateException { TransitionableState state = (TransitionableState) getFlowExecutionContext().getActiveSession().getState(); TransitionDefinition transition = state.getTransition(eventId); if (transition == null) { transition = getRootFlow().getGlobalTransition(eventId); } return transition; }
/** * Puts a MultipartFile request parameter into the mock parameter map. * @param parameterName the parameter name * @param parameterValue the parameter value */ public void putRequestParameter(String parameterName, MultipartFile parameterValue) { getMockExternalContext().putRequestParameter(parameterName, parameterValue); }
/** * Returns the root flow definition for this request context. Assumes a {@link Flow} implementation. */ public Flow getRootFlow() { return getMockFlowExecutionContext().getDefinitionInternal(); }
public boolean inViewState() { return getFlowExecutionContext().isActive() && getCurrentState() != null && getCurrentState().isViewState(); }
public void testResumeEventNoModelInScope() { MockRequestContext context = new MockRequestContext(); context.putRequestParameter("_eventId", "submit"); context.putRequestParameter("stringProperty", "foo"); context.putRequestParameter("integerProperty", "5"); context.putRequestParameter("dateProperty", "2007-01-01"); context.putRequestParameter("beanProperty.name", "foo"); context.putRequestParameter("multipartFile", new MockMultipartFile("foo", new byte[0])); context.putRequestParameter("stringArrayProperty", new String[] { "foo", "bar", "baz" }); context.putRequestParameter("integerArrayProperty", new String[] { "1", "2", "3" }); context.putRequestParameter("primitiveArrayProperty", new String[] { "1", "2", "3" }); context.putRequestParameter("listProperty", new String[] { "1", "2", "3" }); Expression modelObject = new Expression() { public String getExpressionString() { context.getCurrentState().getAttributes().put("model", modelObject); 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.processUserEvent(); assertTrue(view.hasFlowEvent()); assertFalse(context.getFlashScope().contains(ViewActionStateHolder.KEY)); assertEquals("submit", view.getFlowEvent().getId());
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 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 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()); }
public void testExecuteWithNullRequestFields() throws Exception { Expression flowId = new StaticExpression("user"); action = new FlowDefinitionRedirectAction(flowId); MockRequestContext context = new MockRequestContext(); action.execute(context); assertEquals("user", context.getMockExternalContext().getFlowRedirectFlowId()); }
public void testResolveMessage() { MockRequestContext context = new MockRequestContext(); StaticApplicationContext ac = new StaticApplicationContext(); ac.getStaticMessageSource().addMessage("foo", Locale.FRANCE, "bar"); ac.refresh(); context.getRootFlow().setApplicationContext(ac); context.getMockExternalContext().setLocale(Locale.FRANCE); Expression exp = parser.parseExpression("resourceBundle.foo", new FluentParserContext().evaluate(RequestContext.class)); assertEquals("bar", exp.getValue(context)); } }
public void testExecuteActionInState() { context.getMockFlowExecutionContext().getMockActiveSession().setState(state); TestAction action = new TestAction(); Event result = ActionExecutor.execute(action, context); assertSame(state, context.getCurrentState()); assertEquals("success", result.getId()); }
public AttributeMap getModel() { return getConversationScope().union(getFlowScope()).union(getFlashScope()).union(getRequestScope()); }
public FlowDefinition getActiveFlow() { return getFlowExecutionContext().getActiveSession().getDefinition(); }
public void testCreateVariable() { FlowVariable var = new FlowVariable("foo", new VariableValueFactory() { public Object createInitialValue(RequestContext context) { return "bar"; } public void restoreReferences(Object value, RequestContext context) { } }); MockRequestContext context = new MockRequestContext(); var.create(context); assertEquals("bar", context.getFlowScope().get("foo")); }
public void testGetValue_FlashScope() { MockRequestContext requestContext = new MockRequestContext(); RequestContextHolder.setRequestContext(requestContext); assertSame(requestContext.getFlashScope(), context.getELResolver().getValue(context, null, "flashScope")); assertTrue(context.isPropertyResolved()); }
public void testResolveConversationScope() { MockRequestContext context = new MockRequestContext(); context.getConversationScope().put("foo", "bar"); Expression exp = parser.parseExpression("foo", new FluentParserContext().evaluate(RequestContext.class)); assertEquals("bar", exp.getValue(context)); }
public void testResolveSpringBean() { MockRequestContext context = new MockRequestContext(); StaticApplicationContext ac = new StaticApplicationContext(); ac.getBeanFactory().registerSingleton("testBean", new TestBean()); context.getRootFlow().setApplicationContext(ac); Expression exp = parser.parseExpression("testBean", new FluentParserContext().evaluate(RequestContext.class)); assertSame(ac.getBean("testBean"), exp.getValue(context)); }
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 testGetValue_FlowExecutionContext() { MockRequestContext requestContext = new MockRequestContext(); RequestContextHolder.setRequestContext(requestContext); assertSame(requestContext.getFlowExecutionContext(), context.getELResolver().getValue(context, null, "flowExecutionContext")); assertTrue(context.isPropertyResolved()); }
public void testBindAndValidateFailure() throws Exception { MockRequestContext context = new MockRequestContext(); // bindAndValidate() should setup a new form object and errors instance // and do a bind & validate, which fails because the provided value is // empty assertEquals(action.getEventFactorySupport().getErrorEventId(), action.bindAndValidate(context).getId()); assertEquals(2, context.getRequestScope().size()); assertEquals(2, context.getFlowScope().size()); assertTrue(getErrors(context).hasErrors()); assertNull(getFormObject(context).getProp()); }