Create plugin point for csar generation
[sdc.git] / catalog-be / src / test / java / org / openecomp / sdc / be / tosca / CsarUtilsTest.java
index c7dced7..b749ef6 100644 (file)
@@ -7,9 +7,9 @@
  * 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
- * 
+ *
  *      http://www.apache.org/licenses/LICENSE-2.0
- * 
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -22,13 +22,19 @@ package org.openecomp.sdc.be.tosca;
 
 import static org.hamcrest.MatcherAssert.assertThat;
 import static org.hamcrest.Matchers.is;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertTrue;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertFalse;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertThrows;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+import static org.junit.jupiter.api.Assertions.fail;
+import static org.openecomp.sdc.be.tosca.ComponentCache.MergeStrategy.overwriteIfSameVersions;
+import static org.openecomp.sdc.be.tosca.ComponentCache.entry;
 
 import fj.data.Either;
+import java.io.File;
 import java.io.IOException;
+import java.io.InputStream;
 import java.nio.ByteBuffer;
 import java.nio.file.Files;
 import java.nio.file.Path;
@@ -40,25 +46,28 @@ import java.util.HashSet;
 import java.util.List;
 import java.util.Map;
 import java.util.Map.Entry;
+import java.util.Objects;
+import java.util.Optional;
 import java.util.Set;
 import java.util.zip.ZipEntry;
 import java.util.zip.ZipOutputStream;
 import mockit.Deencapsulation;
 import org.apache.commons.collections.CollectionUtils;
+import org.apache.commons.io.IOUtils;
 import org.apache.commons.io.output.ByteArrayOutputStream;
 import org.apache.commons.lang3.tuple.ImmutablePair;
 import org.apache.commons.lang3.tuple.ImmutableTriple;
 import org.apache.commons.lang3.tuple.Triple;
-import org.junit.Assert;
-import org.junit.Before;
-import org.junit.Test;
+import org.junit.jupiter.api.BeforeAll;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
 import org.mockito.InjectMocks;
 import org.mockito.Mock;
 import org.mockito.Mockito;
 import org.mockito.MockitoAnnotations;
-import org.openecomp.sdc.be.components.BeConfDependentTest;
 import org.openecomp.sdc.be.components.impl.ArtifactsBusinessLogic;
-import org.openecomp.sdc.be.components.impl.ArtifactsBusinessLogic.ArtifactOperationInfo;
+import org.openecomp.sdc.be.components.impl.artifact.ArtifactOperationInfo;
+import org.openecomp.sdc.be.config.ConfigurationManager;
 import org.openecomp.sdc.be.dao.api.ActionStatus;
 import org.openecomp.sdc.be.dao.cassandra.ArtifactCassandraDao;
 import org.openecomp.sdc.be.dao.cassandra.CassandraOperationStatus;
@@ -77,17 +86,24 @@ import org.openecomp.sdc.be.model.jsonjanusgraph.operations.ToscaOperationFacade
 import org.openecomp.sdc.be.model.operations.api.StorageOperationStatus;
 import org.openecomp.sdc.be.resources.data.DAOArtifactData;
 import org.openecomp.sdc.be.resources.data.SdcSchemaFilesData;
+import org.openecomp.sdc.be.tosca.ComponentCache.CacheEntry;
 import org.openecomp.sdc.be.tosca.CsarUtils.NonMetaArtifactInfo;
 import org.openecomp.sdc.be.tosca.model.ToscaTemplate;
 import org.openecomp.sdc.common.api.ArtifactGroupTypeEnum;
 import org.openecomp.sdc.common.api.ArtifactTypeEnum;
+import org.openecomp.sdc.common.api.ConfigurationSource;
 import org.openecomp.sdc.common.impl.ExternalConfiguration;
+import org.openecomp.sdc.common.impl.FSConfigurationSource;
+import org.openecomp.sdc.common.test.BaseConfDependent;
 import org.openecomp.sdc.exception.ResponseFormat;
 
-public class CsarUtilsTest extends BeConfDependentTest {
+class CsarUtilsTest extends BaseConfDependent {
 
        @InjectMocks
-       CsarUtils testSubject;
+       private CsarUtils testSubject;
+
+    @InjectMocks
+       private CommonCsarGenerator commonCsarGenerator;
 
        @Mock
        private ArtifactCassandraDao artifactCassandraDao;
@@ -107,14 +123,37 @@ public class CsarUtilsTest extends BeConfDependentTest {
        @Mock
        private ArtifactsBusinessLogic artifactsBusinessLogic;
 
-       @Before
-       public void setUpMock() throws Exception {
+       private final List<String> nodesFromPackage = Arrays.asList("tosca.nodes.Root", "tosca.nodes.Container.Application");
+
+       private final byte[] contentData;
+
+    public CsarUtilsTest() throws IOException {
+               contentData = getFileResource("yamlValidation/resource-serviceTemplate.yml");
+       }
+
+       @BeforeAll
+       public static void setupBeforeClass() {
+               componentName = "catalog-be";
+               confPath = "src/test/resources/config";
+               setUp();
+       }
+
+       @BeforeEach
+       public void setUpMock() {
                ExternalConfiguration.setAppName("catalog-be");
-               MockitoAnnotations.initMocks(this);
-               
+               MockitoAnnotations.openMocks(this);
+               initConfigurationManager();
        }
 
-       private final List<String> nodesFromPackage = Arrays.asList("tosca.nodes.Root", "tosca.nodes.Container.Application");
+       private static void initConfigurationManager() {
+               final String confPath = new File(Objects
+                       .requireNonNull(
+                               CsarUtilsTest.class.getClassLoader().getResource("config/catalog-be/configuration.yaml"))
+                       .getFile()).getParent();
+               final ConfigurationSource confSource =
+                       new FSConfigurationSource(ExternalConfiguration.getChangeListener(), confPath);
+               new ConfigurationManager(confSource);
+       }
 
        private NonMetaArtifactInfo createNonMetaArtifactInfoTestSubject() {
                return new CsarUtils.NonMetaArtifactInfo("mock", "mock", ArtifactTypeEnum.AAI_SERVICE_MODEL.getType(),
@@ -122,15 +161,20 @@ public class CsarUtilsTest extends BeConfDependentTest {
        }
 
        @Test
-       public void testCreateCsar() {
+       void testCreateCsar() throws IOException {
                Component component = new Resource();
-               Map<String, ArtifactDefinition> toscaArtifacts = new HashMap<>();
+               Map<String, ArtifactDefinition> artifactDefinitionHashMap = new HashMap<>();
                ArtifactDefinition artifact = new ArtifactDefinition();
                artifact.setArtifactName("artifactName");
                artifact.setEsId("esId");
-               toscaArtifacts.put("assettoscatemplate", artifact);
+               artifactDefinitionHashMap.put("assettoscatemplate", artifact);
 
-               component.setToscaArtifacts(toscaArtifacts);
+               component.setToscaArtifacts(artifactDefinitionHashMap);
+               component.setArtifacts(artifactDefinitionHashMap);
+               component.setDeploymentArtifacts(artifactDefinitionHashMap);
+
+        ByteArrayOutputStream out = new ByteArrayOutputStream();
+        ZipOutputStream zip = new ZipOutputStream(out);
 
                Mockito.when(artifactCassandraDao.getArtifact(Mockito.any(String.class)))
                                .thenReturn(Either.right(CassandraOperationStatus.GENERAL_ERROR));
@@ -138,11 +182,13 @@ public class CsarUtilsTest extends BeConfDependentTest {
                Mockito.when(componentsUtils.convertFromStorageResponse(Mockito.any(StorageOperationStatus.class)))
                                .thenReturn(ActionStatus.GENERAL_ERROR);
 
-               testSubject.createCsar(component, true, true);
+        assertNotNull(commonCsarGenerator.generateCsarZip(component, false, zip,
+            false,  true,
+            "Definitions/", true, false).right());
        }
 
        @Test
-       public void testCreateCsarWithGenerateCsarZipResponseIsLeft() {
+       void testCreateCsarWithGenerateCsarZipResponseIsLeft() throws IOException {
                Component component = new Resource();
                Map<String, ArtifactDefinition> toscaArtifacts = new HashMap<>();
                ArtifactDefinition artifact = new ArtifactDefinition();
@@ -169,6 +215,9 @@ public class CsarUtilsTest extends BeConfDependentTest {
                filedata.setPayloadAsArray(data);
                filesData.add(filedata);
 
+        ByteArrayOutputStream out = new ByteArrayOutputStream();
+        ZipOutputStream zip = new ZipOutputStream(out);
+
                Mockito.when(artifactCassandraDao.getArtifact(Mockito.any(String.class))).thenReturn(Either.left(artifactData));
 
                Mockito.when(componentsUtils.convertFromStorageResponse(Mockito.any(StorageOperationStatus.class)))
@@ -181,11 +230,13 @@ public class CsarUtilsTest extends BeConfDependentTest {
                                sdcSchemaFilesCassandraDao.getSpecificSchemaFiles(Mockito.any(String.class), Mockito.any(String.class)))
                                .thenReturn(Either.left(filesData));
 
-               testSubject.createCsar(component, false, true);
+        assertNotNull(commonCsarGenerator.generateCsarZip(component, false, zip,
+            false, true,
+            "Definitions/", true, false).right());
        }
 
        @Test
-       public void testPopulateZipWhenGetDependenciesIsRight() {
+       void testPopulateZipWhenGetDependenciesIsRight() {
                Component component = new Service();
                boolean getFromCS = false;
 
@@ -206,8 +257,7 @@ public class CsarUtilsTest extends BeConfDependentTest {
                ByteBuffer bufferData = ByteBuffer.wrap(data);
                artifactData.setData(bufferData);
 
-               ToscaRepresentation tosca = new ToscaRepresentation();
-               tosca.setMainYaml("value");
+               ToscaRepresentation tosca = ToscaRepresentation.make("value".getBytes());
 
                Mockito.when(artifactCassandraDao.getArtifact(Mockito.any(String.class))).thenReturn(Either.left(artifactData));
 
@@ -216,15 +266,15 @@ public class CsarUtilsTest extends BeConfDependentTest {
                Mockito.when(toscaExportUtils.getDependencies(Mockito.any(Component.class)))
                                .thenReturn(Either.right(ToscaError.GENERAL_ERROR));
 
-               try (ByteArrayOutputStream out = new ByteArrayOutputStream(); ZipOutputStream zip = new ZipOutputStream(out);) {
-                       Deencapsulation.invoke(testSubject, "populateZip", component, getFromCS, zip, false);
-               } catch (Exception e) {
-                       e.printStackTrace();
-               }
+        try (ByteArrayOutputStream out = new ByteArrayOutputStream(); ZipOutputStream zip = new ZipOutputStream(out);) {
+            Deencapsulation.invoke(commonCsarGenerator, "generateCsarZip", component, getFromCS, zip, true, true, "Definitions/", true, false);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
        }
 
        @Test
-       public void testPopulateZipWhenExportComponentIsRight() {
+       void testPopulateZipWhenExportComponentIsRight() {
                Component component = new Resource();
                boolean getFromCS = false;
 
@@ -248,15 +298,15 @@ public class CsarUtilsTest extends BeConfDependentTest {
                Mockito.when(toscaExportUtils.exportComponent(Mockito.any(Component.class)))
                                .thenReturn(Either.right(ToscaError.GENERAL_ERROR));
 
-               try (ByteArrayOutputStream out = new ByteArrayOutputStream(); ZipOutputStream zip = new ZipOutputStream(out);) {
-                       Deencapsulation.invoke(testSubject, "populateZip", component, getFromCS, zip, false);
-               } catch (Exception e) {
-                       e.printStackTrace();
-               }
+        try (ByteArrayOutputStream out = new ByteArrayOutputStream(); ZipOutputStream zip = new ZipOutputStream(out);) {
+            Deencapsulation.invoke(commonCsarGenerator, "generateCsarZip", component, getFromCS, zip, true, true, "Definitions/", true, false);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
        }
 
        @Test
-       public void testPopulateZipWhenComponentIsServiceAndCollectComponentCsarDefinitionIsRight() {
+       void testPopulateZipWhenComponentIsServiceAndCollectComponentCsarDefinitionIsRight() {
                Component component = new Service();
                boolean getFromCS = false;
 
@@ -279,13 +329,12 @@ public class CsarUtilsTest extends BeConfDependentTest {
                component.setLastUpdaterUserId("userId");
                component.setUniqueId("uid");
                DAOArtifactData artifactData = new DAOArtifactData();
-               byte[] data = "value".getBytes();
-               ByteBuffer bufferData = ByteBuffer.wrap(data);
+               ByteBuffer bufferData = ByteBuffer.wrap(contentData);
                artifactData.setData(bufferData);
 
                List<SdcSchemaFilesData> filesData = new ArrayList<>();
                SdcSchemaFilesData filedata = new SdcSchemaFilesData();
-               filedata.setPayloadAsArray(data);
+               filedata.setPayloadAsArray(contentData);
                filesData.add(filedata);
 
                ToscaTemplate toscaTemplate = new ToscaTemplate("version");
@@ -294,8 +343,7 @@ public class CsarUtilsTest extends BeConfDependentTest {
                dependencies.add(triple);
                toscaTemplate.setDependencies(dependencies);
 
-               ToscaRepresentation tosca = new ToscaRepresentation();
-               tosca.setMainYaml("value");
+               ToscaRepresentation tosca = ToscaRepresentation.make("value".getBytes());
 
                Mockito.when(artifactCassandraDao.getArtifact(Mockito.any(String.class))).thenReturn(Either.left(artifactData));
 
@@ -322,14 +370,14 @@ public class CsarUtilsTest extends BeConfDependentTest {
                                .thenReturn(Either.left(Mockito.any(ArtifactDefinition.class)));
 
                try (ByteArrayOutputStream out = new ByteArrayOutputStream(); ZipOutputStream zip = new ZipOutputStream(out);) {
-                       Deencapsulation.invoke(testSubject, "populateZip", component, getFromCS, zip, true);
+                       Deencapsulation.invoke(commonCsarGenerator, "generateCsarZip", component, getFromCS, zip, true, true, "/Definitions", true, false);
                } catch (Exception e) {
                        e.printStackTrace();
                }
        }
 
        @Test
-       public void testPopulateZipWhenGetEntryDataIsRight() {
+       void testPopulateZipWhenGetEntryDataIsRight() {
                Component component = new Service();
                boolean getFromCS = true;
 
@@ -370,15 +418,15 @@ public class CsarUtilsTest extends BeConfDependentTest {
                Mockito.when(toscaExportUtils.getDependencies(Mockito.any(Component.class)))
                                .thenReturn(Either.left(toscaTemplate));
 
-               try (ByteArrayOutputStream out = new ByteArrayOutputStream(); ZipOutputStream zip = new ZipOutputStream(out);) {
-                       Deencapsulation.invoke(testSubject, "populateZip", component, getFromCS, zip, true);
-               } catch (Exception e) {
-                       e.printStackTrace();
-               }
+        try (ByteArrayOutputStream out = new ByteArrayOutputStream(); ZipOutputStream zip = new ZipOutputStream(out);) {
+            Deencapsulation.invoke(commonCsarGenerator, "generateCsarZip", component, getFromCS, zip, true, true, "Definitions/", true, false);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
        }
 
        @Test
-       public void testPopulateZipWhenGetEntryDataOfInnerComponentIsRight() {
+       void testPopulateZipWhenGetEntryDataOfInnerComponentIsRight() {
                Component component = new Service();
                boolean getFromCS = false;
 
@@ -401,8 +449,7 @@ public class CsarUtilsTest extends BeConfDependentTest {
                component.setLastUpdaterUserId("userId");
                component.setUniqueId("uid");
                DAOArtifactData artifactData = new DAOArtifactData();
-               byte[] data = "value".getBytes();
-               ByteBuffer bufferData = ByteBuffer.wrap(data);
+               ByteBuffer bufferData = ByteBuffer.wrap(contentData);
                artifactData.setData(bufferData);
 
                ToscaTemplate toscaTemplate = new ToscaTemplate("version");
@@ -411,8 +458,7 @@ public class CsarUtilsTest extends BeConfDependentTest {
                dependencies.add(triple);
                toscaTemplate.setDependencies(dependencies);
 
-               ToscaRepresentation tosca = new ToscaRepresentation();
-               tosca.setMainYaml("value");
+               ToscaRepresentation tosca = ToscaRepresentation.make(contentData);
 
                Mockito.when(artifactCassandraDao.getArtifact(Mockito.any(String.class))).thenReturn(Either.left(artifactData));
 
@@ -422,15 +468,15 @@ public class CsarUtilsTest extends BeConfDependentTest {
                Mockito.when(toscaExportUtils.getDependencies(Mockito.any(Component.class)))
                                .thenReturn(Either.left(toscaTemplate));
 
-               try (ByteArrayOutputStream out = new ByteArrayOutputStream(); ZipOutputStream zip = new ZipOutputStream(out);) {
-                       Deencapsulation.invoke(testSubject, "populateZip", component, getFromCS, zip, true);
-               } catch (Exception e) {
-                       e.printStackTrace();
-               }
+        try (ByteArrayOutputStream out = new ByteArrayOutputStream(); ZipOutputStream zip = new ZipOutputStream(out);) {
+            Deencapsulation.invoke(commonCsarGenerator, "generateCsarZip", component, getFromCS, zip, true, true, "Definitions/", true, false);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
        }
 
        @Test
-       public void testPopulateZipWhenLatestSchemaFilesFromCassandraIsRight() {
+       void testPopulateZipWhenLatestSchemaFilesFromCassandraIsRight() {
                Component component = new Service();
                boolean getFromCS = false;
 
@@ -453,8 +499,7 @@ public class CsarUtilsTest extends BeConfDependentTest {
                component.setLastUpdaterUserId("userId");
                component.setUniqueId("uid");
                DAOArtifactData artifactData = new DAOArtifactData();
-               byte[] data = "value".getBytes();
-               ByteBuffer bufferData = ByteBuffer.wrap(data);
+               ByteBuffer bufferData = ByteBuffer.wrap(contentData);
                artifactData.setData(bufferData);
 
                ToscaTemplate toscaTemplate = new ToscaTemplate("version");
@@ -463,8 +508,7 @@ public class CsarUtilsTest extends BeConfDependentTest {
                dependencies.add(triple);
                toscaTemplate.setDependencies(dependencies);
 
-               ToscaRepresentation tosca = new ToscaRepresentation();
-               tosca.setMainYaml("value");
+               ToscaRepresentation tosca = ToscaRepresentation.make(contentData);
 
                Mockito.when(artifactCassandraDao.getArtifact(Mockito.any(String.class))).thenReturn(Either.left(artifactData));
 
@@ -478,15 +522,15 @@ public class CsarUtilsTest extends BeConfDependentTest {
                                .thenReturn(Either.right(CassandraOperationStatus.GENERAL_ERROR));
 
                try (ByteArrayOutputStream out = new ByteArrayOutputStream(); ZipOutputStream zip = new ZipOutputStream(out);) {
-                       Deencapsulation.invoke(testSubject, "populateZip", component, getFromCS, zip, true);
+                       Deencapsulation.invoke(commonCsarGenerator, "generateCsarZip", component, getFromCS, zip, true, "toscaMetaFileName", true, "Definitions/", true, false);
                } catch (Exception e) {
                        e.printStackTrace();
                }
        }
 
        @Test
-       public void testAddInnerComponentsToCache() {
-               Map<String, ImmutableTriple<String, String, Component>> componentCache = new HashMap<>();
+       void testAddInnerComponentsToCache() {
+               ComponentCache componentCache = ComponentCache.overwritable(overwriteIfSameVersions());
                Component childComponent = new Resource();
                Component componentRI = new Service();
                List<ComponentInstance> componentInstances = new ArrayList<>();
@@ -511,13 +555,14 @@ public class CsarUtilsTest extends BeConfDependentTest {
                Mockito.when(toscaOperationFacade.getToscaElement(Mockito.any(String.class)))
                                .thenReturn(Either.left(componentRI));
 
-               Deencapsulation.invoke(testSubject, "addInnerComponentsToCache", componentCache, childComponent);
+               Deencapsulation.invoke(commonCsarGenerator, "addInnerComponentsToCache", componentCache, childComponent);
 
-               assertTrue(componentCache.containsValue(ImmutableTriple.of("esId","artifactName",componentRI)));
+               io.vavr.collection.List<CacheEntry> expected = io.vavr.collection.List.of(entry("esId","artifactName",componentRI));
+               assertEquals(expected, componentCache.all().toList());
        }
 
        @Test
-       public void testAddInnerComponentsToCacheWhenGetToscaElementIsRight() {
+       void testAddInnerComponentsToCacheWhenGetToscaElementIsRight() {
                Map<String, ImmutableTriple<String, String, Component>> componentCache = new HashMap<>();
                Component childComponent = new Resource();
 
@@ -550,70 +595,51 @@ public class CsarUtilsTest extends BeConfDependentTest {
        }
 
        @Test
-       public void testAddComponentToCache() {
-               Map<String, ImmutableTriple<String, String, Component>> componentCache = new HashMap<>();
-               String id = "id";
-               String fileName = "fileName";
-               Component component = new Resource();
-               component.setInvariantUUID("key");
-               component.setVersion("1.0");
-
-               Component cachedComponent = new Resource();
-               cachedComponent.setVersion("0.3");
-
-               componentCache.put("key", new ImmutableTriple<String, String, Component>(id, fileName, cachedComponent));
-
-               Deencapsulation.invoke(testSubject, "addComponentToCache", componentCache, id, fileName, component);
-       }
-
-       @Test
-       public void testWriteComponentInterface() throws IOException {
+       void testWriteComponentInterface() throws IOException {
                String fileName = "name.hello";
-               ToscaRepresentation tosca = new ToscaRepresentation();
-               tosca.setMainYaml("value");
+               ToscaRepresentation tosca = ToscaRepresentation.make("value".getBytes());
 
                Mockito.when(toscaExportUtils.exportComponentInterface(Mockito.any(Component.class), Mockito.any(Boolean.class)))
                                .thenReturn(Either.left(tosca));
 
 
                try (ByteArrayOutputStream out = new ByteArrayOutputStream(); ZipOutputStream zip = new ZipOutputStream(out)) {
-                       Either<ZipOutputStream, ResponseFormat> output = Deencapsulation.invoke(testSubject, "writeComponentInterface", new Resource(), zip, fileName, false);
-
+                   List<Triple<String, String, Component>> output = Deencapsulation.invoke(commonCsarGenerator, "writeComponentInterface", new Resource(),
+                zip, fileName, "Definitions/");
                        assertNotNull(output);
-                       assertTrue(output.isLeft());
                }
        }
 
        @Test
-       public void testGetEntryData() {
+       void testGetEntryData() {
                String cassandraId = "id";
                Component childComponent = new Resource();
 
                Mockito.when(artifactCassandraDao.getArtifact(Mockito.any(String.class)))
                                .thenReturn(Either.right(CassandraOperationStatus.GENERAL_ERROR));
 
-               Either<byte[], ActionStatus> output = Deencapsulation.invoke(testSubject, "getEntryData", cassandraId, childComponent);
+               Either<byte[], ActionStatus> output = Deencapsulation.invoke(commonCsarGenerator, "getEntryData", cassandraId, childComponent);
 
                assertNotNull(output);
                assertTrue(output.isRight());
        }
 
        @Test
-       public void testGetLatestSchemaFilesFromCassandraWhenListOfSchemasIsEmpty() {
+       void testGetLatestSchemaFilesFromCassandraWhenListOfSchemasIsEmpty() {
                List<SdcSchemaFilesData> filesData = new ArrayList<>();
 
                Mockito.when(
                                sdcSchemaFilesCassandraDao.getSpecificSchemaFiles(Mockito.any(String.class), Mockito.any(String.class)))
                                .thenReturn(Either.left(filesData));
 
-               Either<byte[], ResponseFormat> output = Deencapsulation.invoke(testSubject, "getLatestSchemaFilesFromCassandra");
+               Either<byte[], ResponseFormat> output = Deencapsulation.invoke(commonCsarGenerator, "getLatestSchemaFilesFromCassandra");
 
                assertNotNull(output);
                assertTrue(output.isRight());
        }
 
        @Test
-       public void testExtractVfcsArtifactsFromCsar() {
+       void testExtractVfcsArtifactsFromCsar() {
                String key = "Artifacts/org.openecomp.resource.some/Deployment/to/resource";
                byte[] data = "value".getBytes();
 
@@ -628,7 +654,7 @@ public class CsarUtilsTest extends BeConfDependentTest {
        }
 
        @Test
-       public void testAddExtractedVfcArtifactWhenArtifactsContainsExtractedArtifactKey() {
+       void testAddExtractedVfcArtifactWhenArtifactsContainsExtractedArtifactKey() {
                ImmutablePair<String, ArtifactDefinition> extractedVfcArtifact = new ImmutablePair<String, ArtifactDefinition>(
                                "key", new ArtifactDefinition());
                Map<String, List<ArtifactDefinition>> artifacts = new HashMap<>();
@@ -640,7 +666,7 @@ public class CsarUtilsTest extends BeConfDependentTest {
        }
 
        @Test
-       public void testAddExtractedVfcArtifactWhenArtifactsDoesntContainsExtractedArtifactKey() {
+       void testAddExtractedVfcArtifactWhenArtifactsDoesntContainsExtractedArtifactKey() {
                ImmutablePair<String, ArtifactDefinition> extractedVfcArtifact = new ImmutablePair<String, ArtifactDefinition>(
                                "key", new ArtifactDefinition());
                Map<String, List<ArtifactDefinition>> artifacts = new HashMap<>();
@@ -654,20 +680,24 @@ public class CsarUtilsTest extends BeConfDependentTest {
        }
 
        @Test
-       public void testExtractVfcArtifact() {
+       void testExtractVfcArtifact() {
                String path = "path/to/informational/artificat";
                Map<String, byte[]> map = new HashMap<>();
                map.put(path, "value".getBytes());
                Entry<String, byte[]> entry = map.entrySet().iterator().next();
 
-               ImmutablePair<String, ArtifactDefinition> output = Deencapsulation.invoke(testSubject, "extractVfcArtifact", entry, new HashMap<>());
+               Optional<ImmutablePair<String, ArtifactDefinition>> output =
+                       Deencapsulation.invoke(testSubject, "extractVfcArtifact", entry, new HashMap<>());
 
-               assertNotNull(output);
-               assertEquals("to",output.left);
+               if(output.isPresent()) {
+                       assertEquals("to", output.get().left);
+               } else {
+                       fail("`output` is empty!");
+               }
        }
 
        @Test
-       public void testDetectArtifactGroupTypeWithExceptionBeingCaught() {
+       void testDetectArtifactGroupTypeWithExceptionBeingCaught() {
                Either<ArtifactGroupTypeEnum, Boolean> output = Deencapsulation.invoke(testSubject, "detectArtifactGroupType", "type", Map.class);
 
                assertNotNull(output);
@@ -676,7 +706,7 @@ public class CsarUtilsTest extends BeConfDependentTest {
        }
 
        @Test
-       public void testDetectArtifactGroupTypeWWhenCollectedWarningMessagesContainesKey() {
+       void testDetectArtifactGroupTypeWWhenCollectedWarningMessagesContainesKey() {
                Map<String, Set<List<String>>> collectedWarningMessages = new HashMap<>();
 
                collectedWarningMessages.put("Warning - unrecognized artifact group type {} was received.", new HashSet<>());
@@ -688,112 +718,12 @@ public class CsarUtilsTest extends BeConfDependentTest {
        }
 
        @Test
-       public void testNonMetaArtifactInfoCtor() {
-               createNonMetaArtifactInfoTestSubject();
-       }
-
-       @Test
-       public void testNonMetaArtifactInfoGetPath() {
-               NonMetaArtifactInfo testSubject = createNonMetaArtifactInfoTestSubject();
-
-               testSubject.getPath();
-       }
-
-       @Test
-       public void testNonMetaArtifactInfoGetArtifactName() {
-               NonMetaArtifactInfo testSubject = createNonMetaArtifactInfoTestSubject();
-
-               testSubject.getArtifactName();
-       }
-
-       @Test
-       public void testNonMetaArtifactInfoGetArtifactType() {
-               final NonMetaArtifactInfo testSubject = createNonMetaArtifactInfoTestSubject();
-               assertThat("The artifact type should be as expected",
-                       testSubject.getArtifactType(), is(ArtifactTypeEnum.AAI_SERVICE_MODEL.getType()));
-       }
-
-       @Test
-       public void testNonMetaArtifactInfoGetDisplayName() {
-               NonMetaArtifactInfo testSubject = createNonMetaArtifactInfoTestSubject();
-
-               testSubject.getDisplayName();
-       }
-
-       @Test
-       public void testNonMetaArtifactInfoGetArtifactGroupType() {
-               NonMetaArtifactInfo testSubject = createNonMetaArtifactInfoTestSubject();
-
-               testSubject.getArtifactGroupType();
-       }
-
-       @Test
-       public void testNonMetaArtifactInfoGetArtifactLabel() {
-               NonMetaArtifactInfo testSubject = createNonMetaArtifactInfoTestSubject();
-
-               testSubject.getArtifactLabel();
-       }
-
-       @Test
-       public void testNonMetaArtifactInfoGetIsFromCsar() {
-               NonMetaArtifactInfo testSubject = createNonMetaArtifactInfoTestSubject();
-
-               testSubject.isFromCsar();
-       }
-
-       @Test
-       public void testNonMetaArtifactInfoGetPayloadData() {
-               NonMetaArtifactInfo testSubject = createNonMetaArtifactInfoTestSubject();
-
-               testSubject.getPayloadData();
-       }
-
-       @Test
-       public void testNonMetaArtifactInfoGetArtifaactChecksum() {
-               NonMetaArtifactInfo testSubject = createNonMetaArtifactInfoTestSubject();
-
-               testSubject.getArtifactChecksum();
-       }
-
-       @Test
-       public void testNonMetaArtifactInfoGetArtifactUniqueId() {
-               NonMetaArtifactInfo testSubject = createNonMetaArtifactInfoTestSubject();
-
-               testSubject.getArtifactUniqueId();
-       }
-
-       @Test
-       public void testNonMetaArtifactInfosetArtifactUniqueId() {
-               NonMetaArtifactInfo testSubject = createNonMetaArtifactInfoTestSubject();
-
-               testSubject.setArtifactUniqueId("artifactUniqueId");
-       }
-
-       @Test
-       public void testValidateNonMetaArtifactWithExceptionCaught() {
+       void testValidateNonMetaArtifactWithExceptionCaught() {
                CsarUtils.validateNonMetaArtifact("", new byte[0], new HashMap<>());
        }
 
        @Test
-       public void testWriteArtifactDefinition() throws IOException {
-               Component component = new Service();
-               List<ArtifactDefinition> artifactDefinitionList = new ArrayList<>();
-               String artifactPathAndFolder = "";
-
-               ArtifactDefinition artifact = new ArtifactDefinition();
-               artifact.setArtifactType(ArtifactTypeEnum.HEAT_ENV.getType());
-               artifactDefinitionList.add(artifact);
-
-               try (ByteArrayOutputStream out = new ByteArrayOutputStream(); ZipOutputStream zip = new ZipOutputStream(out);) {
-                       Either<ZipOutputStream, ResponseFormat> output = Deencapsulation.invoke(testSubject, "writeArtifactDefinition", component, zip, artifactDefinitionList, artifactPathAndFolder, false);
-
-                       assertNotNull(output);
-                       assertTrue(output.isLeft());
-               }
-       }
-
-       @Test
-       public void testCollectComponentCsarDefinitionWhenComponentIsServiceAndGetToscaElementIsLeft() {
+       void testCollectComponentCsarDefinitionWhenComponentIsServiceAndGetToscaElementIsLeft() {
                Component component = new Service();
                component.setUniqueId("uniqueId");
                List<ComponentInstance> resourceInstances = new ArrayList<>();
@@ -825,7 +755,7 @@ public class CsarUtilsTest extends BeConfDependentTest {
        }
 
        @Test
-       public void testCollectComponentTypeArtifactsWhenFetchedComponentHasComponentInstances() {
+       void testCollectComponentTypeArtifactsWhenFetchedComponentHasComponentInstances() {
                Component component = new Service();
                Component fetchedComponent = new Resource();
                component.setUniqueId("uniqueId");
@@ -863,7 +793,7 @@ public class CsarUtilsTest extends BeConfDependentTest {
        }
 
        @Test
-       public void testCollectComponentTypeArtifactsWhenFetchedComponentDontHaveComponentInstances() {
+       void testCollectComponentTypeArtifactsWhenFetchedComponentDontHaveComponentInstances() {
                Component component = new Service();
                Component fetchedComponent = new Resource();
                component.setUniqueId("uniqueId");
@@ -903,7 +833,7 @@ public class CsarUtilsTest extends BeConfDependentTest {
        }
 
        @Test
-       public void testValidateNonMetaArtifactHappyScenario() {
+       void testValidateNonMetaArtifactHappyScenario() {
                String artifactPath = "Artifacts/Deployment/YANG_XML/myYang.xml";
                byte[] payloadData = "some payload data".getBytes();
                Map<String, Set<List<String>>> collectedWarningMessages = new HashMap<>();
@@ -919,7 +849,7 @@ public class CsarUtilsTest extends BeConfDependentTest {
        }
 
        @Test
-       public void testValidateNonMetaArtifactScenarioWithWarnnings() {
+       void testValidateNonMetaArtifactScenarioWithWarnnings() {
                String artifactPath = "Artifacts/Deployment/Buga/myYang.xml";
                byte[] payloadData = "some payload data".getBytes();
                Map<String, Set<List<String>>> collectedWarningMessages = new HashMap<>();
@@ -931,42 +861,35 @@ public class CsarUtilsTest extends BeConfDependentTest {
                eitherNonMetaArtifact = CsarUtils.validateNonMetaArtifact(artifactPath, payloadData, collectedWarningMessages);
                assertTrue(eitherNonMetaArtifact.isLeft());
 
-               assertTrue(collectedWarningMessages.size() == 1);
-               assertTrue(collectedWarningMessages.values().iterator().next().size() == 2);
+               assertEquals(1, collectedWarningMessages.size());
+               assertEquals(2, collectedWarningMessages.values().iterator().next().size());
        }
 
        @Test
-       public void testValidateNonMetaArtifactUnhappyScenario() {
+       void testValidateNonMetaArtifactUnhappyScenario() {
                String artifactPath = "Artifacts/Buga/YANG_XML/myYang.xml";
                byte[] payloadData = "some payload data".getBytes();
                Map<String, Set<List<String>>> collectedWarningMessages = new HashMap<>();
                Either<NonMetaArtifactInfo, Boolean> eitherNonMetaArtifact = CsarUtils.validateNonMetaArtifact(artifactPath,
                                payloadData, collectedWarningMessages);
                assertTrue(eitherNonMetaArtifact.isRight());
-               assertTrue(!collectedWarningMessages.isEmpty());
+               assertFalse(collectedWarningMessages.isEmpty());
        }
 
-       @Test(expected = IOException.class)
-       public void testAddSchemaFilesFromCassandraAddingDuplicatedEntry() throws IOException {
+       @Test
+       void testAddSchemaFilesFromCassandraAddingDuplicatedEntry() throws IOException {
                final String rootPath = System.getProperty("user.dir");
                final Path path = Paths.get(rootPath + "/src/test/resources/sdc.zip");
-               try {
-                       final byte[] data = Files.readAllBytes(path);
-                       try (final ByteArrayOutputStream out = new ByteArrayOutputStream();
-                               final ZipOutputStream zip = new ZipOutputStream(out);) {
-                               Deencapsulation.invoke(testSubject, "addSchemaFilesFromCassandra",
-                                       zip, data, nodesFromPackage);
-                               zip.putNextEntry(new ZipEntry("Definitions/nodes.yml"));
-                               zip.finish();
-                       }
-               } catch (final IOException e) {
-                       Assert.assertTrue("duplicate entry: Definitions/nodes.yml".equals(e.getMessage()));
-                       throw new IOException("Could not add Schema Files From Cassandra", e);
+               final byte[] data = Files.readAllBytes(path);
+               try (final ByteArrayOutputStream out = new ByteArrayOutputStream(); final ZipOutputStream zip = new ZipOutputStream(out)) {
+                       Deencapsulation.invoke(commonCsarGenerator, "addSchemaFilesFromCassandra", zip, data, nodesFromPackage, "Definitions/");
+                       final IOException actualException = assertThrows(IOException.class, () -> zip.putNextEntry(new ZipEntry("Definitions/nodes.yml")));
+                       assertEquals("duplicate entry: Definitions/nodes.yml", actualException.getMessage());
                }
        }
 
        @Test
-       public void testFindNonRootNodesFromPackage() {
+       void testFindNonRootNodesFromPackage() {
                final Resource resource = new Resource();
                resource.setDerivedList(nodesFromPackage);
                final Component component = resource;
@@ -974,10 +897,20 @@ public class CsarUtilsTest extends BeConfDependentTest {
                final Triple<String, String, Component> triple = Triple.of("fileName", "cassandraId", component);
                dependencies.add(triple);
                final List<String> expectedResult = Arrays.asList("tosca.nodes.Container.Application");
-               final List<String> result = Deencapsulation.invoke(testSubject,
+               final List<String> result = Deencapsulation.invoke(commonCsarGenerator,
                        "findNonRootNodesFromPackage", dependencies);
                assertTrue(CollectionUtils.isNotEmpty(result));
                assertEquals(expectedResult, result);
        }
 
+    private byte[] getFileResource(final String filePath) throws IOException {
+        try (final InputStream inputStream = getFileResourceAsInputStream(filePath)) {
+            return IOUtils.toByteArray(inputStream);
+        }
+    }
+
+    private InputStream getFileResourceAsInputStream(final String filePath) {
+        return Thread.currentThread().getContextClassLoader().getResourceAsStream(filePath);
+    }
+
 }