public AttributeMap getModel() { return getConversationScope().union(getFlowScope()).union(getFlashScope()).union(getRequestScope()); }
public void testDestroyVariable() { 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")); var.destroy(context); assertFalse(context.getFlowScope().contains("foo")); }
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")); }
private MockRequestContext getRequestContext() { Flow flow = new Flow("id"); MockRequestContext ctx = new MockRequestContext(flow); RequestContextHolder.setRequestContext(ctx); ctx.getFlowScope().put("foo", "bar"); ctx.setCurrentEvent(new Event(this, "sample")); return ctx; } }
public void testSetActionWithImplicitTypeConversion() throws Exception { SetModel setModel = new SetModel("testBean.stringArray", "intArray"); model.setOnStartActions(asList(setModel)); ViewStateModel state = new ViewStateModel("view"); model.setStates(asList(state)); Flow flow = getFlow(model); AnnotatedAction action = (AnnotatedAction) flow.getStartActionList().get(0); MockRequestContext context = new MockRequestContext(flow); context.getFlowScope().put("testBean", new TestBean()); context.getFlowScope().put("intArray", new int[] { 1, 2 }); action.execute(context); TestBean expected = (TestBean) context.getFlowScope().get("testBean"); assertEquals("1", expected.stringArray[0]); assertEquals("2", expected.stringArray[1]); }
public void testGetValue_FlowScope() { MockRequestContext requestContext = new MockRequestContext(); RequestContextHolder.setRequestContext(requestContext); assertSame(requestContext.getFlowScope(), context.getELResolver().getValue(context, null, "flowScope")); assertTrue(context.isPropertyResolved()); }
public void testDynamic() throws Exception { String expression = "#{flowScope.lastState}"; TargetStateResolver resolver = (TargetStateResolver) converter.convertSourceToTargetClass(expression, TargetStateResolver.class); MockRequestContext context = new MockRequestContext(); context.getFlowScope().put("lastState", "mockState"); Transition transition = new Transition(); assertEquals("mockState", resolver.resolveTargetState(transition, null, context).getId()); }
public void testResolveFlowScope() { MockRequestContext context = new MockRequestContext(); context.getFlowScope().put("foo", "bar"); Expression exp = parser.parseExpression("foo", new FluentParserContext().evaluate(RequestContext.class)); assertEquals("bar", exp.getValue(context)); }
public void testSetValue_FlowScope() { MyBean foo1 = new MyBean(); MyBean foo2 = new MyBean(); MockRequestContext requestContext = new MockRequestContext(); requestContext.getFlowScope().put(getBaseVariable(), foo1); RequestContextHolder.setRequestContext(requestContext); context.getELResolver().setValue(context, null, getBaseVariable(), foo2); assertSame(foo2, requestContext.getFlowScope().get(getBaseVariable())); assertTrue(context.isPropertyResolved()); }
public void testSetFlowScope() { MockRequestContext context = new MockRequestContext(); context.getFlowScope().put("foo", "bar"); Expression exp = parser.parseExpression("foo", new FluentParserContext().evaluate(RequestContext.class)); exp.setValue(context, "baz"); assertEquals("baz", exp.getValue(context)); }
public void testSetActionWithResultType() throws Exception { SetModel setModel = new SetModel("flowScope.stringArray", "intArray"); setModel.setType("java.lang.String[]"); model.setOnStartActions(asList(setModel)); model.setStates(asList(new ViewStateModel("view"))); Flow flow = getFlow(model); AnnotatedAction action = (AnnotatedAction) flow.getStartActionList().get(0); MockRequestContext context = new MockRequestContext(flow); context.getFlowScope().put("intArray", new int[] { 1, 2 }); action.execute(context); String[] expected = (String[]) context.getFlowScope().get("stringArray"); assertEquals("1", expected[0]); assertEquals("2", expected[1]); }
public void testGetType_FlowScope() { MyBean foo = new MyBean(); MockRequestContext requestContext = new MockRequestContext(); requestContext.getFlowScope().put(getBaseVariable(), foo); RequestContextHolder.setRequestContext(requestContext); assertEquals(MyBean.class, context.getELResolver().getType(context, null, getBaseVariable())); }
public void testGetValue_FlowScope() { MyBean foo = new MyBean(); MockRequestContext requestContext = new MockRequestContext(); requestContext.getFlowScope().put(getBaseVariable(), foo); RequestContextHolder.setRequestContext(requestContext); assertSame(foo, context.getELResolver().getValue(context, null, getBaseVariable())); }
public void testEvaluateActionWithResultType() throws Exception { EvaluateModel evaluateModel = new EvaluateModel("testBean.getIntegers()"); evaluateModel.setResult("flowScope.stringArray"); evaluateModel.setResultType("java.lang.String[]"); model.setOnStartActions(asList(evaluateModel)); model.setStates(asList(new ViewStateModel("view"))); Flow flow = getFlow(model); AnnotatedAction action = (AnnotatedAction) flow.getStartActionList().get(0); MockRequestContext context = new MockRequestContext(flow); context.getFlowScope().put("testBean", new TestBean()); action.execute(context); String[] expected = (String[]) context.getFlowScope().get("stringArray"); assertEquals("1", expected[0]); assertEquals("2", expected[1]); }
public void testEvaluateActionWithELExpression() throws Exception { EvaluateModel evaluateModel = new EvaluateModel("testBean.getIntegers()"); evaluateModel.setResult("flowScope.stringArray"); evaluateModel.setResultType("java.lang.String[]"); model.setOnStartActions(asList(evaluateModel)); model.setStates(asList(new ViewStateModel("view"))); Flow flow = getFlow(model); AnnotatedAction action = (AnnotatedAction) flow.getStartActionList().get(0); MockRequestContext context = new MockRequestContext(flow); context.getFlowScope().put("testBean", new TestBean()); action.execute(context); String[] expected = (String[]) context.getFlowScope().get("stringArray"); assertEquals("1", expected[0]); assertEquals("2", expected[1]); }
public void testIsReadOnly_FlowScope() { MyBean foo = new MyBean(); MockRequestContext requestContext = new MockRequestContext(); requestContext.getFlowScope().put(getBaseVariable(), foo); RequestContextHolder.setRequestContext(requestContext); assertFalse(context.getELResolver().isReadOnly(context, null, getBaseVariable())); assertTrue(context.isPropertyResolved()); }
public void testSetupForm() throws Exception { MockRequestContext context = new MockRequestContext(); // setupForm() should initialize the form object and the Errors // instance, but no bind & validate should happen since bindOnSetupForm // is not set assertEquals(action.getEventFactorySupport().getSuccessEventId(), action.setupForm(context).getId()); assertEquals(2, context.getRequestScope().size()); assertEquals(2, context.getFlowScope().size()); assertFalse(getErrors(context).hasErrors()); assertNull(getFormObject(context).getProp()); }
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()); }
public void testBindAndValidate() throws Exception { MockRequestContext context = new MockRequestContext(parameters()); // bindAndValidate() should setup a new form object and errors instance // and do a bind & validate context.setAttribute("validatorMethod", "validateTestBean"); assertEquals(action.getEventFactorySupport().getSuccessEventId(), action.bindAndValidate(context).getId()); assertEquals(2, context.getRequestScope().size()); assertEquals(2, context.getFlowScope().size()); assertFalse(getErrors(context).hasErrors()); assertEquals("value", getFormObject(context).getProp()); }
public void testFormObjectAndNoErrors() throws Exception { // this typically happens with mapping from parent flow to subflow MockRequestContext context = new MockRequestContext(parameters()); TestBean testBean = new TestBean(); testBean.setProp("bla"); context.getFlowScope().put("test", testBean); action.setupForm(context); // should have created a new empty errors instance, but left the form // object alone // since we didn't to bindOnSetupForm assertSame(testBean, getFormObject(context)); assertEquals("bla", getFormObject(context).getProp()); assertNotNull(getErrors(context)); assertSame(testBean, ((BindingResult) getErrors(context)).getTarget()); assertFalse(getErrors(context).hasErrors()); }