package uk.ac.ox.oucs.vle; import org.glassfish.jersey.servlet.ServletContainer; import org.glassfish.jersey.test.DeploymentContext; import org.glassfish.jersey.test.JerseyTest; import org.glassfish.jersey.test.ServletDeploymentContext; import org.glassfish.jersey.test.grizzly.GrizzlyWebTestContainerFactory; import org.glassfish.jersey.test.spi.TestContainerFactory; import org.junit.Before; import org.springframework.web.context.ContextLoaderListener; import org.springframework.web.context.WebApplicationContext; import org.springframework.web.context.support.WebApplicationContextUtils; /** * Base for tests that run with a full container. */ abstract public class ResourceTest extends JerseyTest { protected CourseSignupService courseSignupService; protected SakaiProxy proxy; private ServletContainer container; @Override protected TestContainerFactory getTestContainerFactory() { return new GrizzlyWebTestContainerFactory(); } @Before public void setupBeans() throws Exception { // We grab the beans as WebApplicationContext webApplicationContext = WebApplicationContextUtils.getWebApplicationContext(container.getServletContext()); proxy = webApplicationContext.getBean(SakaiProxy.class); courseSignupService = webApplicationContext.getBean(CourseSignupService.class); } @Override protected DeploymentContext configureDeployment(){ container = new ServletContainer(); return ServletDeploymentContext.forServlet(container) .addListener(ContextLoaderListener.class) .contextParam("contextConfigLocation", "classpath:test.xml") .initParam("jersey.config.server.provider.packages", "uk.ac.ox.oucs.vle.resources;org.codehaus.jackson.jaxrs") .build(); } }