protected void setUp() throws Exception { configureJsf(); this.extContext.setNativeContext(this.servletContext); this.extContext.setNativeRequest(this.request); this.extContext.setNativeResponse(this.response); RequestContextHolder.setRequestContext(this.context); EasyMock.expect(this.context.getFlashScope()).andStubReturn(this.flashMap); EasyMock.expect(this.context.getExternalContext()).andStubReturn(this.extContext); EasyMock.expect(this.context.getRequestParameters()).andStubReturn( new LocalParameterMap(new HashMap<>())); }
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")); }
private void configureJsf() throws Exception { this.jsfMock.setUp(); this.trackingListener = new TrackingPhaseListener(); this.jsfMock.lifecycle().addPhaseListener(this.trackingListener); this.jsfMock.facesContext().setViewRoot(null); this.jsfMock.facesContext().getApplication().setViewHandler(this.viewHandler); this.lifecycle = new TestLifecycle(this.jsfMock.lifecycle()); this.factory = new JsfViewFactory(this.parser.parseExpression("#{'" + VIEW_ID + "'}", new FluentParserContext() .template().evaluate(RequestContext.class).expectResult(String.class)), this.lifecycle); RequestContextHolder.setRequestContext(this.context); MockExternalContext ext = new MockExternalContext(); ext.setNativeContext(new MockServletContext()); ext.setNativeRequest(new MockHttpServletRequest()); ext.setNativeResponse(new MockHttpServletResponse()); EasyMock.expect(this.context.getExternalContext()).andStubReturn(ext); LocalAttributeMap<Object> requestMap = new LocalAttributeMap<>(); EasyMock.expect(this.context.getFlashScope()).andStubReturn(requestMap); EasyMock.expect(this.context.getRequestParameters()).andStubReturn( new LocalParameterMap(new HashMap<>())); }
public void testRenderNoKey() throws Exception { MockRequestControlContext context = new MockRequestControlContext(); EndState endState = new EndState(context.getRootFlow(), "end"); endState.setFinalResponseAction(new ViewFactoryActionAdapter(new StubViewFactory())); context.setCurrentState(endState); 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()); 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")); assertFalse(model.containsKey("flowExecutionKey")); assertFalse(model.containsKey("flowExecutionUrl")); assertEquals("Keith", ((Principal) model.get("currentUser")).getName()); assertEquals(context, model.get("flowRequestContext")); 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")); }
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.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.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());
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()); }
public void testResumeEventModelValidateOnBindingErrors() { MockRequestContext context = new MockRequestContext(); context.putRequestParameter("_eventId", "submit"); context.putRequestParameter("stringProperty", "foo"); context.putRequestParameter("integerProperty", "bogus"); context.putRequestParameter("dateProperty", "2007-01-01"); BindBean bindBean = new ValidatingBindBean(); 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()); view.processUserEvent(); assertFalse(view.hasFlowEvent()); assertTrue(bindBean.validationMethodInvoked); }
public void testResumeEventModelBindingFieldMarkerFieldPresent() { MockRequestContext context = new MockRequestContext(); context.putRequestParameter("_eventId", "submit"); context.putRequestParameter("booleanProperty", "true"); context.putRequestParameter("_booleanProperty", "whatever"); 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()); assertTrue(view.userEventQueued()); view.processUserEvent(); assertFalse(view.userEventQueued()); assertEquals(true, bindBean.getBooleanProperty()); }
public void testResumeEventModelNoValidateOnBindingErrors() { MockRequestContext context = new MockRequestContext(); context.putRequestParameter("_eventId", "submit"); context.putRequestParameter("stringProperty", "foo"); context.putRequestParameter("integerProperty", "bogus"); context.putRequestParameter("dateProperty", "2007-01-01"); BindBean bindBean = new ValidatingBindBean(); StaticExpression modelObject = new StaticExpression(bindBean); modelObject.setExpressionString("bindBean"); context.getMockFlowExecutionContext().putAttribute("validateOnBindingErrors", false); 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()); view.processUserEvent(); assertFalse(view.hasFlowEvent()); assertFalse(bindBean.validationMethodInvoked); }
public void testResumeEventModelBindAndValidateDefaultValidatorFallback() { MockRequestContext context = new MockRequestContext(); context.putRequestParameter("_eventId", "submit"); context.putRequestParameter("stringProperty", "foo"); context.putRequestParameter("integerProperty", "5"); context.putRequestParameter("dateProperty", "2007-01-01"); BindBean bindBean = new ValidatingBindBeanFallback(); 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()); assertTrue(view.userEventQueued()); view.processUserEvent(); assertFalse(view.userEventQueued()); assertTrue(view.hasFlowEvent()); assertEquals("submit", view.getFlowEvent().getId()); assertTrue(bindBean.validationMethodInvoked); }
public void testResumeEventModelBindAndValidate() { MockRequestContext context = new MockRequestContext(); context.putRequestParameter("_eventId", "submit"); context.putRequestParameter("stringProperty", "foo"); context.putRequestParameter("integerProperty", "5"); context.putRequestParameter("dateProperty", "2007-01-01"); BindBean bindBean = new ValidatingBindBean(); 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()); assertTrue(view.userEventQueued()); view.processUserEvent(); assertFalse(view.userEventQueued()); assertTrue(view.hasFlowEvent()); assertEquals("submit", view.getFlowEvent().getId()); assertTrue(bindBean.validationMethodInvoked); }
public void testResumeEventObjectArrayValidationHint() { StubSmartValidator validator = new StubSmartValidator(); MockRequestContext context = new MockRequestContext(); context.putRequestParameter("_eventId", "submit"); TestModel testModel = new TestModel(); Object[] validationHints = new Object[] { TestModel.State1.class }; StaticExpression validationHintsExpression = new StaticExpression(validationHints); context.getCurrentState().getAttributes().put("validationHints", validationHintsExpression); StaticExpression modelExpression = new StaticExpression(testModel); modelExpression.setExpressionString("testModel"); context.getCurrentState().getAttributes().put("model", modelExpression); context.getFlowScope().put("testModel", testModel); 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.setValidator(validator); view.setExpressionParser(createExpressionParser()); view.processUserEvent(); assertFalse(view.userEventQueued()); assertTrue(view.hasFlowEvent()); assertEquals("submit", view.getFlowEvent().getId()); assertEquals(validationHints, validator.hints); assertTrue(validator.invoked); }
public void testResumeEventStringValidationHint() { StubSmartValidator validator = new StubSmartValidator(); MockRequestContext context = new MockRequestContext(); context.putRequestParameter("_eventId", "submit"); TestModel testModel = new TestModel(); StaticExpression validationHintsExpression = new StaticExpression("State1,AllStates"); context.getCurrentState().getAttributes().put("validationHints", validationHintsExpression); StaticExpression modelExpression = new StaticExpression(testModel); modelExpression.setExpressionString("testModel"); context.getCurrentState().getAttributes().put("model", modelExpression); context.getFlowScope().put("testModel", testModel); 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.setValidator(validator); view.setExpressionParser(createExpressionParser()); view.processUserEvent(); assertFalse(view.userEventQueued()); assertTrue(view.hasFlowEvent()); assertEquals("submit", view.getFlowEvent().getId()); assertEquals(TestModel.State1.class, validator.hints[0]); assertEquals(TestModel.AllStates.class, validator.hints[1]); assertTrue(validator.invoked); }
context.getMockExternalContext().setNativeContext(new MockServletContext()); context.getMockExternalContext().setNativeRequest(new MockHttpServletRequest()); context.getMockExternalContext().setNativeResponse(new MockHttpServletResponse());