executor refinements; better exception handling, flow handler adapter mvc integration, 1.x usage compatability

This commit is contained in:
Keith Donald
2008-02-26 16:10:16 +00:00
parent 631f0667ea
commit 9804e6a858
48 changed files with 785 additions and 1478 deletions

View File

@@ -1,17 +1,14 @@
package org.springframework.faces.ui.resource;
import org.easymock.EasyMock;
import java.io.IOException;
import java.io.StringWriter;
import junit.framework.TestCase;
import org.apache.shale.test.mock.MockResponseWriter;
import org.easymock.EasyMock;
import org.springframework.faces.webflow.JSFMockHelper;
import org.springframework.webflow.context.ExternalContext;
import org.springframework.webflow.context.FlowDefinitionRequestInfo;
import org.springframework.webflow.context.RequestPath;
import org.springframework.webflow.execution.RequestContext;
import org.springframework.webflow.execution.RequestContextHolder;
@@ -39,13 +36,9 @@ public class FlowResourceHelperTests extends TestCase {
public final void testRenderScriptLink() throws IOException {
String scriptPath = "/dojo/dojo.js";
String expectedUrl = "/context/spring/resources/dojo/dojo.js";
String expectedUrl = "/context/resources/dojo/dojo.js";
FlowDefinitionRequestInfo expectedRequest = new FlowDefinitionRequestInfo("resources", new RequestPath(
scriptPath), null, null);
EasyMock.expect(externalContext.buildFlowDefinitionUrl(requestInfoMatches(expectedRequest))).andReturn(
expectedUrl);
EasyMock.expect(externalContext.getContextPath()).andReturn("/context");
EasyMock.replay(new Object[] { requestContext, externalContext });
@@ -63,13 +56,9 @@ public class FlowResourceHelperTests extends TestCase {
public final void testRenderStyleLink() throws IOException {
String scriptPath = "/dijit/themes/dijit.css";
String expectedUrl = "/context/spring/resources/dijit/themes/dijit.css";
String expectedUrl = "/context/resources/dijit/themes/dijit.css";
FlowDefinitionRequestInfo expectedRequest = new FlowDefinitionRequestInfo("resources", new RequestPath(
scriptPath), null, null);
EasyMock.expect(externalContext.buildFlowDefinitionUrl(requestInfoMatches(expectedRequest))).andReturn(
expectedUrl);
EasyMock.expect(externalContext.getContextPath()).andReturn("/context");
EasyMock.replay(new Object[] { requestContext, externalContext });
@@ -82,9 +71,4 @@ public class FlowResourceHelperTests extends TestCase {
assertEquals(expectedOutput, writer.toString());
}
static FlowDefinitionRequestInfo requestInfoMatches(FlowDefinitionRequestInfo info) {
EasyMock.reportMatcher(new RequestInfoMatcher(info));
return null;
}
}

View File

@@ -1,23 +0,0 @@
package org.springframework.faces.ui.resource;
import org.easymock.IArgumentMatcher;
import org.springframework.webflow.context.FlowDefinitionRequestInfo;
class RequestInfoMatcher implements IArgumentMatcher {
private FlowDefinitionRequestInfo expected;
public RequestInfoMatcher(FlowDefinitionRequestInfo expected) {
this.expected = expected;
}
public void appendTo(StringBuffer buffer) {
buffer.append("/" + expected.getFlowDefinitionId() + expected.getRequestPath());
}
public boolean matches(Object actual) {
FlowDefinitionRequestInfo actualRequest = (FlowDefinitionRequestInfo) actual;
return expected.getFlowDefinitionId().equals(actualRequest.getFlowDefinitionId())
&& expected.getRequestPath().equals(actualRequest.getRequestPath());
}
}

View File

@@ -21,7 +21,9 @@ import org.easymock.EasyMock;
import org.jboss.el.ExpressionFactoryImpl;
import org.springframework.binding.expression.ExpressionParser;
import org.springframework.binding.expression.support.ParserContextImpl;
import org.springframework.webflow.context.ExternalContext;
import org.springframework.mock.web.MockHttpServletRequest;
import org.springframework.mock.web.MockHttpServletResponse;
import org.springframework.mock.web.MockServletContext;
import org.springframework.webflow.core.collection.AttributeMap;
import org.springframework.webflow.core.collection.LocalAttributeMap;
import org.springframework.webflow.core.collection.LocalParameterMap;
@@ -73,7 +75,10 @@ public class JsfFinalResponseActionTests extends TestCase {
RequestContext.class).expect(String.class)), null, lifecycle);
finalResponseAction = new JsfFinalResponseAction(factory);
RequestContextHolder.setRequestContext(context);
ExternalContext ext = new MockExternalContext();
MockExternalContext ext = new MockExternalContext();
ext.setNativeContext(new MockServletContext());
ext.setNativeRequest(new MockHttpServletRequest());
ext.setNativeResponse(new MockHttpServletResponse());
EasyMock.expect(context.getExternalContext()).andStubReturn(ext);
AttributeMap flash = new LocalAttributeMap();
EasyMock.expect(context.getFlashScope()).andStubReturn(flash);