1 package org.openecomp.sdc.be.servlets;
3 import com.fasterxml.jackson.databind.DeserializationFeature;
4 import org.glassfish.hk2.utilities.binding.AbstractBinder;
5 import org.glassfish.jersey.client.ClientConfig;
6 import org.glassfish.jersey.jackson.internal.jackson.jaxrs.json.JacksonJaxbJsonProvider;
7 import org.glassfish.jersey.jackson.internal.jackson.jaxrs.json.JacksonJsonProvider;
8 import org.glassfish.jersey.logging.LoggingFeature;
9 import org.glassfish.jersey.media.multipart.MultiPartFeature;
10 import org.glassfish.jersey.server.ResourceConfig;
11 import org.glassfish.jersey.test.JerseyTest;
12 import org.glassfish.jersey.test.TestProperties;
13 import org.junit.BeforeClass;
14 import org.openecomp.sdc.be.servlets.exception.ComponentExceptionMapper;
15 import org.openecomp.sdc.be.servlets.exception.DefaultExceptionMapper;
16 import org.openecomp.sdc.be.servlets.exception.StorageExceptionMapper;
17 import org.springframework.context.ApplicationContext;
18 import org.springframework.context.annotation.AnnotationConfigApplicationContext;
20 import javax.servlet.http.HttpServletRequest;
21 import javax.ws.rs.core.Feature;
22 import java.util.logging.Level;
23 import java.util.logging.Logger;
25 import static org.mockito.Mockito.mock;
26 public abstract class JerseySpringBaseTest extends JerseyTest {
28 private static final Logger log = Logger.getLogger(JerseySpringBaseTest.class.getName());
29 protected static HttpServletRequest request;
30 private final static JacksonJsonProvider jacksonJsonProvider = new JacksonJaxbJsonProvider().configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
31 private final static Feature loggingFeature = new LoggingFeature(log, Level.INFO, LoggingFeature.Verbosity.PAYLOAD_ANY, null);
34 public static void initBaseClass() {
35 request = mock(HttpServletRequest.class);
39 protected void configureClient(ClientConfig config) {
40 config.register(MultiPartFeature.class)
41 .register(loggingFeature)
42 .register(jacksonJsonProvider);
45 protected ResourceConfig configure() {
46 return configure(BaseTestConfig.class);
49 protected ResourceConfig configure(Class<?> springConfig) {
50 ApplicationContext context = new AnnotationConfigApplicationContext(springConfig);
51 forceSet(TestProperties.CONTAINER_PORT, "0");
52 return new ResourceConfig()
53 .register(new AbstractBinder() {
55 protected void configure() {
56 bind(request).to(HttpServletRequest.class);
59 .register(DefaultExceptionMapper.class)
60 .register(ComponentExceptionMapper.class)
61 .register(StorageExceptionMapper.class)
62 .register(MultiPartFeature.class)
63 .register(jacksonJsonProvider)
64 .register(loggingFeature)
65 .property("jersey.config.server.provider.classnames", "org.openecomp.sdc.be.view.MixinModelWriter")
66 .property("contextConfig", context);