Sync Integ to Master
[sdc.git] / catalog-be / src / test / java / org / openecomp / sdc / be / servlets / JerseySpringBaseTest.java
1 package org.openecomp.sdc.be.servlets;
2
3 import org.glassfish.hk2.utilities.binding.AbstractBinder;
4 import org.glassfish.jersey.server.ResourceConfig;
5 import org.glassfish.jersey.test.JerseyTest;
6 import org.glassfish.jersey.test.TestProperties;
7 import org.junit.BeforeClass;
8 import org.springframework.context.ApplicationContext;
9 import org.springframework.context.annotation.AnnotationConfigApplicationContext;
10
11 import javax.servlet.http.HttpServletRequest;
12
13 import static org.mockito.Mockito.mock;
14
15 public class JerseySpringBaseTest extends JerseyTest {
16
17     protected static HttpServletRequest request;
18
19     @BeforeClass
20     public static void initBaseClass() {
21         request = mock(HttpServletRequest.class);
22     }
23
24     protected ResourceConfig configure() {
25         return configure(BaseTestConfig.class);
26     }
27
28     protected ResourceConfig configure(Class<?> springConfig) {
29         ApplicationContext context = new AnnotationConfigApplicationContext(springConfig);
30         forceSet(TestProperties.CONTAINER_PORT, "0");
31         return new ResourceConfig()
32                 .register(new AbstractBinder() {
33                     @Override
34                     protected void configure() {
35                         bind(request).to(HttpServletRequest.class);
36                     }
37                 })
38                 .register(DefaultExceptionMapper.class)
39                 .register(ComponentExceptionMapper.class)
40                 .register(StorageExceptionMapper.class)
41                 .property("jersey.config.server.provider.classnames", "org.openecomp.sdc.be.view.MixinModelWriter")
42                 .property("contextConfig", context);
43     }
44
45 }