blob: a1baccb68fc886845aea2a1e978ec77ac04221fd [file] [log] [blame]
margarethafde771a2017-11-14 15:02:10 +01001package de.ids_mannheim.korap.config;
2
abcpro1edce8f92022-11-08 21:41:18 +00003import org.glassfish.jersey.server.ResourceConfig;
4import org.glassfish.jersey.servlet.ServletContainer;
5import org.glassfish.jersey.test.DeploymentContext;
6import org.glassfish.jersey.test.JerseyTest;
7import org.glassfish.jersey.test.ServletDeploymentContext;
8import org.glassfish.jersey.test.grizzly.GrizzlyWebTestContainerFactory;
9import org.glassfish.jersey.test.spi.TestContainerException;
10import org.glassfish.jersey.test.spi.TestContainerFactory;
Marc Kupietzd43a98d2023-09-22 17:11:46 +020011import org.junit.jupiter.api.BeforeEach;
12import org.junit.jupiter.api.extension.ExtendWith;
margaretha1960ea52023-02-28 11:20:15 +010013import org.springframework.beans.factory.annotation.Autowired;
14import org.springframework.context.support.GenericApplicationContext;
15import org.springframework.test.annotation.DirtiesContext;
16import org.springframework.test.annotation.DirtiesContext.ClassMode;
17import org.springframework.test.context.ContextConfiguration;
Marc Kupietzd43a98d2023-09-22 17:11:46 +020018import org.springframework.test.context.junit.jupiter.SpringExtension;
margaretha1960ea52023-02-28 11:20:15 +010019import org.springframework.web.context.support.GenericWebApplicationContext;
margarethafde771a2017-11-14 15:02:10 +010020
margaretha1960ea52023-02-28 11:20:15 +010021@DirtiesContext(classMode = ClassMode.BEFORE_CLASS)
Marc Kupietzd43a98d2023-09-22 17:11:46 +020022@ExtendWith(SpringExtension.class)
margarethafde771a2017-11-14 15:02:10 +010023@ContextConfiguration("classpath:test-config.xml")
24public abstract class SpringJerseyTest extends JerseyTest {
25
margaretha3d55b002019-03-19 12:00:44 +010026 public final static String API_VERSION = "v1.0";
margaretha9e53bb22018-09-14 19:39:15 +020027
margarethab4ce6602018-04-26 20:23:57 +020028 @Autowired
margaretha1097acc2018-05-02 18:33:24 +020029 protected GenericApplicationContext applicationContext;
margarethab4ce6602018-04-26 20:23:57 +020030
margaretha35e1ca22023-11-16 22:00:01 +010031 public static String[] classPackages = new String[] {
32 "de.ids_mannheim.korap.web", "de.ids_mannheim.korap.core.web",
33 "de.ids_mannheim.korap.test", "com.fasterxml.jackson.jaxrs.json" };
margarethafde771a2017-11-14 15:02:10 +010034
margarethafde771a2017-11-14 15:02:10 +010035 @Override
margaretha35e1ca22023-11-16 22:00:01 +010036 protected TestContainerFactory getTestContainerFactory ()
37 throws TestContainerException {
margarethafde771a2017-11-14 15:02:10 +010038 return new GrizzlyWebTestContainerFactory();
39 }
40
Marc Kupietzd43a98d2023-09-22 17:11:46 +020041 @BeforeEach
margarethafde771a2017-11-14 15:02:10 +010042 @Override
margaretha35e1ca22023-11-16 22:00:01 +010043 public void setUp () throws Exception {
Marc Kupietzd43a98d2023-09-22 17:11:46 +020044 GenericWebApplicationContext genericContext = new GenericWebApplicationContext();
margaretha9e53bb22018-09-14 19:39:15 +020045 genericContext.setParent(this.applicationContext);
46 genericContext.setClassLoader(this.applicationContext.getClassLoader());
margaretha9e53bb22018-09-14 19:39:15 +020047 StaticContextLoaderListener.applicationContext = genericContext;
margaretha1097acc2018-05-02 18:33:24 +020048 super.setUp();
49 }
50
51 @Override
margaretha35e1ca22023-11-16 22:00:01 +010052 protected DeploymentContext configureDeployment () {
53 return ServletDeploymentContext
54 .forServlet(new ServletContainer(
55 new ResourceConfig().packages(classPackages)))
56 .addListener(StaticContextLoaderListener.class)
57 .contextParam("adminToken", "secret").build();
margarethafde771a2017-11-14 15:02:10 +010058 }
margarethafde771a2017-11-14 15:02:10 +010059}