diff options
3 files changed, 69 insertions, 41 deletions
diff --git a/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/audit/AuditStackServiceData.java b/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/audit/AuditStackServiceData.java index ffbe1b4c46..d1f952c829 100644 --- a/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/audit/AuditStackServiceData.java +++ b/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/audit/AuditStackServiceData.java @@ -4,6 +4,8 @@ * ================================================================================ * Copyright (C) 2017-2019 AT&T Intellectual Property. All rights reserved. * ================================================================================ + * Modifications Copyright (c) 2019 Samsung + * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at @@ -20,7 +22,6 @@ package org.onap.so.adapters.audit; -import java.util.Collections; import org.camunda.bpm.client.task.ExternalTask; import org.camunda.bpm.client.task.ExternalTaskService; @@ -82,7 +83,7 @@ public class AuditStackServiceData { } private void setupMDC(ExternalTask externalTask) { - String msoRequestId = (String)externalTask.getVariable("mso-request-id"); + String msoRequestId = externalTask.getVariable("mso-request-id"); if(msoRequestId != null && !msoRequestId.isEmpty()) MDC.put(ONAPLogConstants.MDCs.REQUEST_ID, msoRequestId); } diff --git a/asdc-controller/src/main/java/org/onap/so/asdc/installer/bpmn/BpmnInstaller.java b/asdc-controller/src/main/java/org/onap/so/asdc/installer/bpmn/BpmnInstaller.java index cd9a121ddb..59030e6c22 100644 --- a/asdc-controller/src/main/java/org/onap/so/asdc/installer/bpmn/BpmnInstaller.java +++ b/asdc-controller/src/main/java/org/onap/so/asdc/installer/bpmn/BpmnInstaller.java @@ -4,6 +4,8 @@ * ================================================================================ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. * ================================================================================ + * Modifications Copyright (c) 2019 Samsung + * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at @@ -31,7 +33,6 @@ import java.util.Enumeration; import java.util.zip.ZipEntry; import java.util.zip.ZipFile; import java.util.zip.ZipInputStream; - import org.apache.commons.io.IOUtils; import org.apache.http.HttpEntity; import org.apache.http.HttpResponse; @@ -110,32 +111,29 @@ public class BpmnInstaller { ex.getMessage(), "", "", MsoLogger.ErrorCode.DataError, "ASDC reading CSAR with workflows failed"); } return; - } + } - public boolean containsWorkflows(String csarFilePath) { - boolean workflowsInCsar = false; - try { - ZipFile zipFile = new ZipFile(csarFilePath); - Enumeration<? extends ZipEntry> zipEntries = zipFile.entries(); - while (zipEntries.hasMoreElements()) { - String fileName = ((ZipEntry) zipEntries.nextElement()).getName(); - if (fileName.endsWith(BPMN_SUFFIX)) { - workflowsInCsar = true; - break; - } - } - } - catch (Exception e) { - LOGGER.debug("Exception :",e); + public boolean containsWorkflows(String csarFilePath) { + boolean workflowsInCsar = false; + try (ZipFile zipFile = new ZipFile(csarFilePath)) { + Enumeration<? extends ZipEntry> zipEntries = zipFile.entries(); + while (zipEntries.hasMoreElements()) { + String fileName = zipEntries.nextElement().getName(); + if (fileName.endsWith(BPMN_SUFFIX)) { + workflowsInCsar = true; + break; + } + } + } catch (Exception e) { + LOGGER.debug("Exception :", e); LOGGER.error(MessageEnum.ASDC_ARTIFACT_CHECK_EXC, - csarFilePath, - "", - "", - e.getMessage(), "", "", MsoLogger.ErrorCode.DataError, "ASDC Unable to check CSAR entries"); - } - return workflowsInCsar; - } - + csarFilePath,"","", + e.getMessage(), "", "", + MsoLogger.ErrorCode.DataError, "ASDC Unable to check CSAR entries"); + } + return workflowsInCsar; + } + protected HttpResponse sendDeploymentRequest(String bpmnFileName) throws Exception { HttpClient client = HttpClientBuilder.create().build(); URI deploymentUri = new URI(this.env.getProperty(CAMUNDA_URL) + CREATE_DEPLOYMENT_PATH); diff --git a/asdc-controller/src/test/java/org/onap/so/asdc/installer/bpmn/BpmnInstallerTest.java b/asdc-controller/src/test/java/org/onap/so/asdc/installer/bpmn/BpmnInstallerTest.java index c572097103..e780a259ea 100644 --- a/asdc-controller/src/test/java/org/onap/so/asdc/installer/bpmn/BpmnInstallerTest.java +++ b/asdc-controller/src/test/java/org/onap/so/asdc/installer/bpmn/BpmnInstallerTest.java @@ -4,6 +4,8 @@ * ================================================================================ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. * ================================================================================ + * Modifications Copyright (c) 2019 Samsung + * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at @@ -21,9 +23,15 @@ package org.onap.so.asdc.installer.bpmn; import static org.assertj.core.api.Assertions.assertThat; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; import static org.mockito.ArgumentMatchers.any; +import static org.mockito.ArgumentMatchers.anyString; import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.spy; +import static org.mockito.Mockito.times; +import static org.mockito.Mockito.verify; import java.io.File; import java.io.FileInputStream; @@ -31,9 +39,7 @@ import java.io.InputStream; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; - import javax.transaction.Transactional; - import org.apache.commons.io.IOUtils; import org.apache.http.HttpEntity; import org.apache.http.HttpResponse; @@ -42,6 +48,7 @@ import org.apache.http.client.HttpClient; import org.apache.http.client.methods.HttpPost; import org.apache.http.message.BasicHttpResponse; import org.apache.http.message.BasicStatusLine; +import org.junit.AfterClass; import org.junit.Before; import org.junit.Rule; import org.junit.Test; @@ -49,22 +56,31 @@ import org.junit.rules.TemporaryFolder; @Transactional public class BpmnInstallerTest { - + private BpmnInstaller bpmnInstaller = new BpmnInstaller(); - + + private static final String TEST_CSAR = "src/test/resources/resource-examples/WorkflowBpmn/service-CxSvc-csar.csar"; + private Path tempDirectoryPath; + @Rule - public TemporaryFolder folder= new TemporaryFolder(); + public TemporaryFolder folder = new TemporaryFolder(); @Before public void init() throws Exception { - System.setProperty("mso.config.path", folder.getRoot().toString()); + System.setProperty("mso.config.path", folder.getRoot().toString()); + // we need to have this directory created for InstallBPMN test success + tempDirectoryPath = Paths.get(folder.getRoot().toString(), "ASDC"); + Files.createDirectories(tempDirectoryPath); + } + + @AfterClass + public static void cleanup() { + System.clearProperty("mso.config.path"); } @Test public void buildMimeMultiPart_Test() throws Exception { - Path tempDirectoryPath = Paths.get(folder.getRoot().toString(), "ASDC"); Path tempFilePath = Paths.get(tempDirectoryPath.toAbsolutePath().toString(), "TestBB.bpmn"); - Files.createDirectories(tempDirectoryPath); Files.createFile(tempFilePath); HttpEntity entity = bpmnInstaller.buildMimeMultipart("TestBB.bpmn"); String mimeMultipartBodyFilePath = "src/test/resources" + "/mime-multipart-body.txt"; @@ -79,11 +95,24 @@ public class BpmnInstallerTest { @Test public void installBpmn_Test() throws Exception { - HttpResponse response = new BasicHttpResponse(new BasicStatusLine(new ProtocolVersion("HTTP", 1, 1), 200, "")); - HttpClient httpClient = mock(HttpClient.class); - String csarPath = "src/test/resources" + "/resource-examples/WorkflowBpmn/service-CxSvc-csar.csar"; - doReturn(response).when(httpClient).execute(any(HttpPost.class)); - bpmnInstaller.installBpmn(csarPath); + BpmnInstaller bpmnInstallerSpy = spy(bpmnInstaller); + HttpResponse response = new BasicHttpResponse( + new BasicStatusLine(new ProtocolVersion("HTTP", 1, 1), 200, "")); + HttpClient httpClient = mock(HttpClient.class); + doReturn(response).when(httpClient).execute(any(HttpPost.class)); + bpmnInstallerSpy.installBpmn(TEST_CSAR); + verify(bpmnInstallerSpy, times(1)).sendDeploymentRequest(anyString()); + } + + @Test + public void containsWorkflowsSuccess() { + boolean result = bpmnInstaller.containsWorkflows(TEST_CSAR); + assertTrue(result); + } + + @Test + public void containsWorkflowsFailure() { + boolean result = bpmnInstaller.containsWorkflows("DOESNOTEXIST.csar"); + assertFalse(result); } - } |