/** Tests the workflow method. */ @Test public void testSimpleParameters() throws IOException, ServletException { Action action = new Action(); Map<String, String[]> values = new HashMap<String, String[]>(); values.put("user.addresses['home'].city", array("Boulder")); values.put("user.age", array("32")); values.put("user.inches", array("tall")); values.put("user.age@dateFormat", array("MM/dd/yyyy")); values.put( "user.name", array("")); // This should be stripped out and the ExpressionEvaluator never called for it final HttpServletRequest request = EasyMock.createStrictMock(HttpServletRequest.class); EasyMock.expect(request.getParameterMap()).andReturn(values); EasyMock.replay(request); ExpressionEvaluator expressionEvaluator = EasyMock.createNiceMock(ExpressionEvaluator.class); expressionEvaluator.setValue( eq("user.addresses['home'].city"), same(action), aryEq(array("Boulder")), eq(new HashMap<String, String>())); expressionEvaluator.setValue( eq("user.age"), same(action), aryEq(array("32")), eq(map("dateFormat", "MM/dd/yyyy"))); expressionEvaluator.setValue( eq("user.inches"), same(action), aryEq(array("tall")), eq(new HashMap<String, String>())); expectLastCall().andThrow(new ConversionException()); EasyMock.replay(expressionEvaluator); ActionInvocation invocation = EasyMock.createStrictMock(ActionInvocation.class); EasyMock.expect(invocation.action()).andReturn(action); EasyMock.replay(invocation); ActionInvocationStore actionInvocationStore = EasyMock.createStrictMock(ActionInvocationStore.class); EasyMock.expect(actionInvocationStore.getCurrent()).andReturn(invocation); EasyMock.replay(actionInvocationStore); MessageStore messageStore = EasyMock.createStrictMock(MessageStore.class); messageStore.addConversionError( eq("user.inches"), eq("org.example.domain.Action"), eq(new HashMap<String, String>()), eq("tall")); EasyMock.replay(messageStore); WorkflowChain chain = EasyMock.createStrictMock(WorkflowChain.class); chain.continueWorkflow(); EasyMock.replay(chain); DefaultParameterWorkflow workflow = new DefaultParameterWorkflow( request, actionInvocationStore, messageStore, expressionEvaluator); workflow.perform(chain); EasyMock.verify( request, expressionEvaluator, invocation, actionInvocationStore, messageStore, chain); }