Sync Integ to Master
[sdc.git] / catalog-be / src / test / java / org / openecomp / sdc / be / servlets / ResourceUploadServletTest.java
index ff69241..23daab9 100644 (file)
 
 package org.openecomp.sdc.be.servlets;
 
-import static org.mockito.ArgumentMatchers.anyObject;
-import static org.mockito.ArgumentMatchers.eq;
-import static org.mockito.Mockito.when;
-
-import java.io.File;
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.ArrayList;
-import java.util.List;
-
-import javax.servlet.ServletContext;
-import javax.servlet.ServletInputStream;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpSession;
-import javax.ws.rs.client.Entity;
-import javax.ws.rs.core.Application;
-import javax.ws.rs.core.MediaType;
-import javax.ws.rs.core.Response;
-
+import com.google.gson.Gson;
 import org.glassfish.hk2.utilities.binding.AbstractBinder;
 import org.glassfish.jersey.client.ClientConfig;
 import org.glassfish.jersey.media.multipart.FormDataBodyPart;
@@ -53,6 +35,7 @@ import org.junit.Test;
 import org.mockito.Mockito;
 import org.openecomp.sdc.be.auditing.impl.AuditingManager;
 import org.openecomp.sdc.be.config.ConfigurationManager;
+import org.openecomp.sdc.be.config.SpringConfig;
 import org.openecomp.sdc.be.dao.api.ResourceUploadStatus;
 import org.openecomp.sdc.be.impl.WebAppContextWrapper;
 import org.openecomp.sdc.be.model.UploadResourceInfo;
@@ -64,125 +47,105 @@ import org.openecomp.sdc.common.impl.ExternalConfiguration;
 import org.openecomp.sdc.common.impl.FSConfigurationSource;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
+import org.springframework.context.ApplicationContext;
+import org.springframework.context.annotation.AnnotationConfigApplicationContext;
 import org.springframework.web.context.WebApplicationContext;
 
-import com.google.gson.Gson;
+import javax.servlet.ServletContext;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpSession;
+import javax.ws.rs.client.Entity;
+import javax.ws.rs.core.Application;
+import javax.ws.rs.core.MediaType;
+import javax.ws.rs.core.Response;
+import java.io.File;
+import java.util.ArrayList;
+import java.util.List;
+
+import static org.mockito.Matchers.anyObject;
+import static org.mockito.Matchers.eq;
+import static org.mockito.Mockito.when;
 
 public class ResourceUploadServletTest extends JerseyTest {
-       private static Logger log = LoggerFactory.getLogger(ResourceUploadServletTest.class.getName());
-       final HttpServletRequest request = Mockito.mock(HttpServletRequest.class);
-       final HttpSession session = Mockito.mock(HttpSession.class);
-       final ServletContext servletContext = Mockito.mock(ServletContext.class);
-       final WebAppContextWrapper webAppContextWrapper = Mockito.mock(WebAppContextWrapper.class);
-       final WebApplicationContext webApplicationContext = Mockito.mock(WebApplicationContext.class);
-       final IResourceUploader iResourceUploader = Mockito.mock(IResourceUploader.class);
-       final AuditingManager iAuditingManager = Mockito.mock(AuditingManager.class);
-
-       Gson gson = new Gson();
-
-       public void zipDirectory() {
-
-       }
-
-       @Before
-       public void setup() {
-               ExternalConfiguration.setAppName("catalog-be");
-
-               when(servletContext.getAttribute(Constants.WEB_APPLICATION_CONTEXT_WRAPPER_ATTR)).thenReturn(webAppContextWrapper);
-               // when(servletContext.getAttribute(Constants.AUDITING_MANAGER)).thenReturn(iAuditingManager);
-               when(webAppContextWrapper.getWebAppContext(servletContext)).thenReturn(webApplicationContext);
-               when(webApplicationContext.getBean(IResourceUploader.class)).thenReturn(iResourceUploader);
-               when(iResourceUploader.saveArtifact((ESArtifactData) anyObject(), eq(true))).thenReturn(ResourceUploadStatus.OK);
-               when(webApplicationContext.getBean(AuditingManager.class)).thenReturn(iAuditingManager);
-       }
-
-       @Override
-       protected Application configure() {
-
-               ResourceConfig resourceConfig = new ResourceConfig(ResourceUploadServlet.class);
-
-               resourceConfig.register(MultiPartFeature.class);
-               resourceConfig.register(new AbstractBinder() {
-
-                       @Override
-                       protected void configure() {
-                               // The below code was cut-pasted to here from setup() because
-                               // due to it now has
-                               // to be executed during servlet initialization
-                               bind(request).to(HttpServletRequest.class);
-                               when(request.getSession()).thenReturn(session);
-                               when(session.getServletContext()).thenReturn(servletContext);
-                               String appConfigDir = "src/test/resources/config/catalog-be";
-                               ConfigurationSource configurationSource = new FSConfigurationSource(ExternalConfiguration.getChangeListener(), appConfigDir);
-                               ConfigurationManager configurationManager = new ConfigurationManager(configurationSource);
-                               for (String mandatoryHeader : configurationManager.getConfiguration().getIdentificationHeaderFields()) {
-
-                                       when(request.getHeader(mandatoryHeader)).thenReturn(mandatoryHeader);
-
-                               }
-
-                               when(servletContext.getAttribute(Constants.CONFIGURATION_MANAGER_ATTR)).thenReturn(configurationManager);
-                       }
-               });
-
-               return resourceConfig;
-       }
-
-       @Override
-       protected void configureClient(ClientConfig config) {
-               config.register(MultiPartFeature.class);
-       }
-
-       public class DelegatingServletInputStream extends ServletInputStream {
-
-               private final InputStream sourceStream;
-
-               /**
-                * Create a DelegatingServletInputStream for the given source stream.
-                * 
-                * @param sourceStream
-                *            the source stream (never <code>null</code>)
-                */
-               public DelegatingServletInputStream(InputStream sourceStream) {
-                       // Assert.notNull(sourceStream,
-                       // "Source InputStream must not be null");
-                       this.sourceStream = sourceStream;
-               }
-
-               /**
-                * Return the underlying source stream (never <code>null</code>).
-                */
-               public final InputStream getSourceStream() {
-                       return this.sourceStream;
-               }
-
-               public int read() throws IOException {
-                       return this.sourceStream.read();
-               }
-
-               public void close() throws IOException {
-                       super.close();
-                       this.sourceStream.close();
-               }
-
-       }
-
-       @Test
-       public void testMultipart() {
-               FileDataBodyPart filePart = new FileDataBodyPart("resourceZip", new File("src/test/resources/config/normative-types-root.zip"));
-
-               List<String> tags = new ArrayList<String>();
-               tags.add("tag1");
-               tags.add("tag2");
-               UploadResourceInfo resourceInfo = new UploadResourceInfo("payload", "normative-types-root.yml", "my_description", "category/mycategory", tags, null);
-
-               FormDataBodyPart metadataPart = new FormDataBodyPart("resourceMetadata", gson.toJson(resourceInfo), MediaType.APPLICATION_JSON_TYPE);
-               MultiPart multipartEntity = new FormDataMultiPart();
-               multipartEntity.bodyPart(filePart);
-               multipartEntity.bodyPart(metadataPart);
-
-               Response response = target().path("/v1/catalog/upload/" + ResourceUploadServlet.NORMATIVE_TYPE_RESOURCE).request(MediaType.APPLICATION_JSON).post(Entity.entity(multipartEntity, MediaType.MULTIPART_FORM_DATA), Response.class);
-               log.debug("{}", response);
-       }
+    private static final Logger log = LoggerFactory.getLogger(ResourceUploadServletTest.class);
+    final HttpServletRequest request = Mockito.mock(HttpServletRequest.class);
+    final HttpSession session = Mockito.mock(HttpSession.class);
+    final ServletContext servletContext = Mockito.mock(ServletContext.class);
+    final WebAppContextWrapper webAppContextWrapper = Mockito.mock(WebAppContextWrapper.class);
+    final WebApplicationContext webApplicationContext = Mockito.mock(WebApplicationContext.class);
+    final IResourceUploader iResourceUploader = Mockito.mock(IResourceUploader.class);
+    final AuditingManager iAuditingManager = Mockito.mock(AuditingManager.class);
+
+    Gson gson = new Gson();
+
+    public void zipDirectory() {
+
+    }
+
+    @Before
+    public void setup() {
+        ExternalConfiguration.setAppName("catalog-be");
+
+        when(servletContext.getAttribute(Constants.WEB_APPLICATION_CONTEXT_WRAPPER_ATTR)).thenReturn(webAppContextWrapper);
+        // when(servletContext.getAttribute(Constants.AUDITING_MANAGER)).thenReturn(iAuditingManager);
+        when(webAppContextWrapper.getWebAppContext(servletContext)).thenReturn(webApplicationContext);
+        when(webApplicationContext.getBean(IResourceUploader.class)).thenReturn(iResourceUploader);
+        when(iResourceUploader.saveArtifact((ESArtifactData) anyObject(), eq(true))).thenReturn(ResourceUploadStatus.OK);
+        when(webApplicationContext.getBean(AuditingManager.class)).thenReturn(iAuditingManager);
+    }
+
+    @Override
+    protected Application configure() {
+
+        ApplicationContext context = new AnnotationConfigApplicationContext(SpringConfig.class);
+        return new ResourceConfig(ResourceUploadServlet.class)
+                .register(MultiPartFeature.class)
+                .register(new AbstractBinder() {
+
+                    @Override
+                    protected void configure() {
+                        // The below code was cut-pasted to here from setup() because
+                        // due to it now has
+                        // to be executed during servlet initialization
+                        bind(request).to(HttpServletRequest.class);
+                        when(request.getSession()).thenReturn(session);
+                        when(session.getServletContext()).thenReturn(servletContext);
+                        String appConfigDir = "src/test/resources/config/catalog-be";
+                        ConfigurationSource configurationSource = new FSConfigurationSource(ExternalConfiguration.getChangeListener(), appConfigDir);
+                        ConfigurationManager configurationManager = new ConfigurationManager(configurationSource);
+                        for (String mandatoryHeader : configurationManager.getConfiguration().getIdentificationHeaderFields()) {
+
+                            when(request.getHeader(mandatoryHeader)).thenReturn(mandatoryHeader);
+
+                        }
+
+                        when(servletContext.getAttribute(Constants.CONFIGURATION_MANAGER_ATTR)).thenReturn(configurationManager);
+                    }
+                })
+                .property("contextConfig", context);
+
+    }
+
+    @Override
+    protected void configureClient(ClientConfig config) {
+        config.register(MultiPartFeature.class);
+    }
+
+    @Test
+    public void testMultipart() {
+        FileDataBodyPart filePart = new FileDataBodyPart("resourceZip", new File("src/test/resources/config/normative-types-root.zip"));
+        List<String> tags = new ArrayList<String>();
+        tags.add("tag1");
+        tags.add("tag2");
+        UploadResourceInfo resourceInfo = new UploadResourceInfo("payload", "normative-types-root.yml", "my_description", "category/mycategory", tags, null);
+
+        FormDataBodyPart metadataPart = new FormDataBodyPart("resourceMetadata", gson.toJson(resourceInfo), MediaType.APPLICATION_JSON_TYPE);
+        MultiPart multipartEntity = new FormDataMultiPart();
+        multipartEntity.bodyPart(filePart);
+        multipartEntity.bodyPart(metadataPart);
+
+        Response response = target().path("/v1/catalog/upload/" + ResourceUploadServlet.NORMATIVE_TYPE_RESOURCE).request(MediaType.APPLICATION_JSON).post(Entity.entity(multipartEntity, MediaType.MULTIPART_FORM_DATA), Response.class);
+        log.debug("{}", response);
+    }
 
 }