public AttributeMap getModel() { return getConversationScope().union(getFlowScope()).union(getFlashScope()).union(getRequestScope()); }
public void testGetValue_RequestScope() { MockRequestContext requestContext = new MockRequestContext(); RequestContextHolder.setRequestContext(requestContext); assertSame(requestContext.getRequestScope(), context.getELResolver().getValue(context, null, "requestScope")); assertTrue(context.isPropertyResolved()); }
public void testSetValue_RequestScope() { MyBean foo1 = new MyBean(); MyBean foo2 = new MyBean(); MockRequestContext requestContext = new MockRequestContext(); requestContext.getRequestScope().put(getBaseVariable(), foo1); RequestContextHolder.setRequestContext(requestContext); context.getELResolver().setValue(context, null, getBaseVariable(), foo2); assertSame(foo2, requestContext.getRequestScope().get(getBaseVariable())); assertTrue(context.isPropertyResolved()); }
public void testResolveRequestScope() { MockRequestContext context = new MockRequestContext(); context.getRequestScope().put("foo", "bar"); Expression exp = parser.parseExpression("foo", new FluentParserContext().evaluate(RequestContext.class)); assertEquals("bar", exp.getValue(context)); }
public void testSetRequestScope() { MockRequestContext context = new MockRequestContext(); context.getRequestScope().put("foo", "bar"); Expression exp = parser.parseExpression("foo", new FluentParserContext().evaluate(RequestContext.class)); exp.setValue(context, "baz"); assertEquals("baz", exp.getValue(context)); }
public void testGetValue_RequestScope() { MyBean foo = new MyBean(); MockRequestContext requestContext = new MockRequestContext(); requestContext.getRequestScope().put(getBaseVariable(), foo); RequestContextHolder.setRequestContext(requestContext); assertSame(foo, context.getELResolver().getValue(context, null, getBaseVariable())); }
public void testGetType_RequestScope() { MyBean foo = new MyBean(); MockRequestContext requestContext = new MockRequestContext(); requestContext.getRequestScope().put(getBaseVariable(), foo); RequestContextHolder.setRequestContext(requestContext); assertEquals(MyBean.class, context.getELResolver().getType(context, null, getBaseVariable())); }
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 testIsReadOnly_RequestScope() { MyBean foo = new MyBean(); MockRequestContext requestContext = new MockRequestContext(); requestContext.getRequestScope().put(getBaseVariable(), foo); RequestContextHolder.setRequestContext(requestContext); assertFalse(context.getELResolver().isReadOnly(context, null, getBaseVariable())); assertTrue(context.isPropertyResolved()); }
public void testGetValue() throws Exception { Object bean = new Object(); requestContext.getConversationScope().put("myBean", bean); TypedValue actual = accessor.read(new StandardEvaluationContext(), requestContext, "myBean"); assertSame(bean, actual.getValue()); bean = new Object(); requestContext.getFlowScope().put("myBean", bean); actual = accessor.read(new StandardEvaluationContext(), requestContext, "myBean"); assertSame(bean, actual.getValue()); bean = new Object(); initView(requestContext); requestContext.getViewScope().put("myBean", bean); actual = accessor.read(new StandardEvaluationContext(), requestContext, "myBean"); unsetView(requestContext); assertSame(bean, actual.getValue()); bean = new Object(); requestContext.getFlashScope().put("myBean", bean); actual = accessor.read(new StandardEvaluationContext(), requestContext, "myBean"); assertSame(bean, actual.getValue()); bean = new Object(); requestContext.getRequestScope().put("myBean", bean); actual = accessor.read(new StandardEvaluationContext(), requestContext, "myBean"); assertSame(bean, actual.getValue()); }
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 testBindAndValidateFailureThenSetupForm() throws Exception { MockRequestContext context = new MockRequestContext(blankParameters()); // setup existing form object & errors assertEquals(action.getEventFactorySupport().getSuccessEventId(), action.setupForm(context).getId()); TestBean formObject = getFormObject(context); formObject.setProp("bla"); assertEquals(action.getEventFactorySupport().getErrorEventId(), action.bindAndValidate(context).getId()); assertEquals(2, context.getRequestScope().size()); assertEquals(2, context.getFlowScope().size()); assertSame(formObject, getFormObject(context)); assertTrue(getErrors(context).hasErrors()); assertEquals("", getFormObject(context).getProp()); Errors errors = getErrors(context); // the setupForm() should leave the form object and error info setup by // the // bind & validate untouched assertEquals(action.getEventFactorySupport().getSuccessEventId(), action.setupForm(context).getId()); assertEquals(2, context.getRequestScope().size()); assertEquals(2, context.getFlowScope().size()); assertSame(errors, getErrors(context)); assertSame(formObject, getFormObject(context)); assertTrue(getErrors(context).hasErrors()); assertEquals("", getFormObject(context).getProp()); }
public void testSetupFormWithExistingFormObject() throws Exception { MockRequestContext context = new MockRequestContext(parameters()); assertEquals(action.getEventFactorySupport().getSuccessEventId(), action.setupForm(context).getId()); Errors errors = getErrors(context); errors.reject("dummy"); TestBean formObject = getFormObject(context); formObject.setProp("bla"); // setupForm() should leave the existing form object and Errors instance // untouched, at least when no bind & validate is done (bindOnSetupForm // == false) assertEquals(action.getEventFactorySupport().getSuccessEventId(), action.setupForm(context).getId()); assertEquals(2, context.getRequestScope().size()); assertEquals(2, context.getFlowScope().size()); assertSame(errors, getErrors(context)); assertSame(formObject, getFormObject(context)); assertTrue(getErrors(context).hasErrors()); assertEquals("bla", getFormObject(context).getProp()); }
public void testInconsistentFormObjectAndErrors() throws Exception { MockRequestContext context = new MockRequestContext(parameters()); assertEquals(action.getEventFactorySupport().getSuccessEventId(), action.setupForm(context).getId()); Object formObject = getFormObject(context); BindingResult errors = (BindingResult) getErrors(context); assertTrue(formObject != null); assertTrue(errors.getTarget() instanceof TestBean); assertSame(formObject, errors.getTarget()); context = new MockRequestContext(); context.setCurrentEvent(new Event(this, "start")); OtherTestBean freshBean = new OtherTestBean(); context.getFlowScope().put("test", freshBean); context.getRequestScope().put(BindingResult.MODEL_KEY_PREFIX + "test", errors); FormAction otherAction = createFormAction("test"); otherAction.setFormObjectClass(OtherTestBean.class); assertEquals(action.getEventFactorySupport().getSuccessEventId(), otherAction.setupForm(context).getId()); formObject = context.getFlowScope().get("test"); errors = (BindingResult) getErrors(context); assertTrue(formObject instanceof OtherTestBean); assertSame(freshBean, formObject); assertTrue("Expected OtherTestBean, but was " + errors.getTarget().getClass(), errors.getTarget() instanceof OtherTestBean); assertSame(formObject, errors.getTarget()); }
public void testBindAndValidateWithExistingFormObject() throws Exception { MockRequestContext context = new MockRequestContext(parameters()); assertEquals(action.getEventFactorySupport().getSuccessEventId(), action.setupForm(context).getId()); Errors errors = getErrors(context); errors.reject("dummy"); TestBean formObject = getFormObject(context); formObject.setProp("bla"); // bindAndValidate() should leave the existing form object untouched // but should setup a new Errors instance during bind & validate assertEquals(action.getEventFactorySupport().getSuccessEventId(), action.bindAndValidate(context).getId()); assertEquals(2, context.getRequestScope().size()); assertEquals(2, context.getFlowScope().size()); assertNotSame(errors, getErrors(context)); assertSame(formObject, getFormObject(context)); assertFalse(getErrors(context).hasErrors()); assertEquals("value", getFormObject(context).getProp()); }
assertEquals(action.getEventFactorySupport().getSuccessEventId(), otherAction.setupForm(context).getId()); assertEquals(3, context.getRequestScope().size()); assertEquals(3, context.getFlowScope().size()); assertNotSame(getErrors(context), getErrors(context, "otherTest")); assertEquals(3, context.getRequestScope().size()); assertEquals(3, context.getFlowScope().size()); assertNotSame(getErrors(context), getErrors(context, "otherTest")); assertEquals(3, context.getRequestScope().size()); assertEquals(3, context.getFlowScope().size()); assertNotSame(getErrors(context), getErrors(context, "otherTest"));