package org.appfuse.webapp.action;
import net.sourceforge.stripes.mock.MockServletContext;
import net.sourceforge.stripes.controller.StripesFilter;
import net.sourceforge.stripes.controller.DispatcherServlet;
import org.springframework.web.context.ContextLoaderListener;
import org.springframework.web.context.ContextLoader;
import javax.servlet.Filter;
import javax.servlet.ServletContextListener;
import javax.servlet.ServletContextEvent;
import java.util.HashMap;
import java.util.Map;
public class StripesTestFixture {
private MockServletContext context;
public void init() {
context = new MockServletContext("");
context.addInitParameter(ContextLoader.CONFIG_LOCATION_PARAM,
"classpath:/applicationContext-resources.xml, classpath:/applicationContext-dao.xml," +
"classpath:/applicationContext-service.xml, /WEB-INF/applicationContext.xml");
ServletContextListener contextListener = new ContextLoaderListener();
ServletContextEvent event = new ServletContextEvent(context);
contextListener.contextInitialized(event);
// Add the Stripes Filter
Map<String, String> filterParams = new HashMap<String, String>();
filterParams.put("ActionResolver.Class", "org.appfuse.webapp.action.ActionResolver");
filterParams.put("ActionResolver.Packages", "org.appfuse.webapp");
filterParams.put("Interceptor.Classes", "net.sourceforge.stripes.integration.spring.SpringInterceptor");
filterParams.put("LocalizationBundleFactory.ErrorMessageBundle", "messages");
filterParams.put("LocalizationBundleFactory.FieldNameBundle", "messages");
context.addFilter(StripesFilter.class, "StripesFilter", filterParams);
// Add the Stripes Dispatcher
context.setServlet(DispatcherServlet.class, "StripesDispatcher", null);
}
public MockServletContext getServletContext() {
init();
return context;
}
public void destroy() {
for (Filter filter : context.getFilters()) {
filter.destroy();
}
}
}