package org.springframework.faces.webflow;
import junit.framework.TestCase;
import org.springframework.js.ajax.AjaxHandler;
import org.springframework.js.ajax.SpringJavascriptAjaxHandler;
import org.springframework.mock.web.MockServletContext;
import org.springframework.web.context.support.StaticWebApplicationContext;
import org.springframework.webflow.context.ExternalContext;
import org.springframework.webflow.core.FlowException;
import org.springframework.webflow.core.collection.MutableAttributeMap;
import org.springframework.webflow.executor.FlowExecutionResult;
import org.springframework.webflow.executor.FlowExecutor;
public class JsfFlowHandlerAdapterTests extends TestCase {
private JsfFlowHandlerAdapter handlerAdapter;
protected void setUp() throws Exception {
StaticWebApplicationContext context = new StaticWebApplicationContext();
context.setServletContext(new MockServletContext());
this.handlerAdapter = new JsfFlowHandlerAdapter();
this.handlerAdapter.setApplicationContext(context);
this.handlerAdapter.setFlowExecutor(new StubFlowExecutor());
}
public void testAjaxHandlerNotProvided() throws Exception {
this.handlerAdapter.afterPropertiesSet();
assertNotNull(this.handlerAdapter.getAjaxHandler());
assertTrue(this.handlerAdapter.getAjaxHandler() instanceof JsfAjaxHandler);
}
public void testAjaxHandlerProvided() throws Exception {
AjaxHandler myAjaxHandler = new SpringJavascriptAjaxHandler();
this.handlerAdapter.setAjaxHandler(myAjaxHandler);
this.handlerAdapter.afterPropertiesSet();
assertTrue(myAjaxHandler == this.handlerAdapter.getAjaxHandler());
}
private final class StubFlowExecutor implements FlowExecutor {
public FlowExecutionResult resumeExecution(String flowExecutionKey, ExternalContext context)
throws FlowException {
throw new UnsupportedOperationException("Not expected");
}
public FlowExecutionResult launchExecution(String flowId, MutableAttributeMap<?> input, ExternalContext context)
throws FlowException {
throw new UnsupportedOperationException("Not expected");
}
}
}