Fix VfModuleCustomizationToVduMapperTest

- Moved VfModuleCustomizationToVduMapperTest to mso-openstack-adapters
module, where the tested implementation actually is.
- Fixed and reimplemented tests

Change-Id: If5b4a29be22b7cbb59642eff78e471f294a512a7
Issue-ID: SO-865
Signed-off-by: Michal Kabaj <michal.kabaj@nokia.com>
diff --git a/adapters/mso-openstack-adapters/src/test/java/org/onap/so/adapters/vdu/mapper/VfModuleCustomizationToVduMapperTest.java b/adapters/mso-openstack-adapters/src/test/java/org/onap/so/adapters/vdu/mapper/VfModuleCustomizationToVduMapperTest.java
new file mode 100644
index 0000000..c982f8b
--- /dev/null
+++ b/adapters/mso-openstack-adapters/src/test/java/org/onap/so/adapters/vdu/mapper/VfModuleCustomizationToVduMapperTest.java
@@ -0,0 +1,146 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP - SO
+ * ================================================================================
+ * Copyright (C) 2018 Nokia
+ * ================================================================================
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.so.adapters.vdu.mapper;
+
+import static org.assertj.core.api.Assertions.assertThat;
+
+import com.google.common.collect.Lists;
+import java.util.List;
+import org.junit.Test;
+import org.onap.so.adapters.vdu.VduArtifact;
+import org.onap.so.adapters.vdu.VduArtifact.ArtifactType;
+import org.onap.so.adapters.vdu.VduModelInfo;
+import org.onap.so.db.catalog.beans.HeatEnvironment;
+import org.onap.so.db.catalog.beans.HeatFiles;
+import org.onap.so.db.catalog.beans.HeatTemplate;
+import org.onap.so.db.catalog.beans.VfModule;
+import org.onap.so.db.catalog.beans.VfModuleCustomization;
+
+public class VfModuleCustomizationToVduMapperTest {
+
+    private static final String MODEL_CUSTOMIZATION_UUID = "modelCustomizationUUID";
+    private static final String HEAT_ENV_NAME = "heatEnvName";
+    private static final String HEAT_ENV_CONTENT = "heatEnvContent";
+    private static final String MODULE_HEAT_TEMPLATE_NAME = "moduleHeatTemplateName";
+    private static final String MODULE_HEAT_TEMPLATE_BODY = "moduleHeatTemplateBody";
+    private static final String NESTED_TEMPLATE_NAME = "nestedTemplateName";
+    private static final String NESTED_TEMPLATE_BODY = "nestedTemplateBody";
+    private static final int TIMEOUT_IN_MIN = 66;
+    private static final String VF_MODULE_MODEL_INVARIANT_UUID = "vfModuleModelInvariantUUID";
+    private static final String CLOUD_FILE_NAME = "cloudFileName";
+    private static final String CLOUD_FILE_BODY = "cloudFileBody";
+
+
+    @Test
+    public void mapVfModuleCustomizationToVdu_successful() {
+        // GIVEN
+        VfModuleCustomization vfModuleCustomization = createVfModuleCustomization();
+        vfModuleCustomization.setHeatEnvironment(createHeatEnvironment(HEAT_ENV_NAME, HEAT_ENV_CONTENT));
+        VfModule vfModule = createVfModule();
+        vfModule.setModuleHeatTemplate(createHeatTemplate(
+            MODULE_HEAT_TEMPLATE_NAME, MODULE_HEAT_TEMPLATE_BODY,
+            NESTED_TEMPLATE_NAME, NESTED_TEMPLATE_BODY));
+        vfModuleCustomization.setVfModule(vfModule);
+
+        // WHEN
+        VduModelInfo vduModelInfo = new VfModuleCustomizationToVduMapper()
+            .mapVfModuleCustomizationToVdu(vfModuleCustomization);
+
+        // THEN
+        assertThat(vduModelInfo.getModelCustomizationUUID()).isEqualTo(MODEL_CUSTOMIZATION_UUID);
+        assertThat(vduModelInfo.getTimeoutMinutes()).isEqualTo(TIMEOUT_IN_MIN);
+        assertThat(vduModelInfo.getArtifacts()).containsExactlyElementsOf(createExpectedVduArtifacts());
+    }
+
+    @Test
+    public void mapVfModuleCustVolumeToVdu_successful() {
+        // GIVEN
+        VfModuleCustomization vfModuleCustomization = createVfModuleCustomization();
+        vfModuleCustomization.setVolumeHeatEnv(createHeatEnvironment(HEAT_ENV_NAME, HEAT_ENV_CONTENT));
+        VfModule vfModule = createVfModule();
+        vfModule.setVolumeHeatTemplate(createHeatTemplate(
+            MODULE_HEAT_TEMPLATE_NAME, MODULE_HEAT_TEMPLATE_BODY,
+            NESTED_TEMPLATE_NAME, NESTED_TEMPLATE_BODY));
+        vfModuleCustomization.setVfModule(vfModule);
+
+        // WHEN
+        VduModelInfo vduModelInfo = new VfModuleCustomizationToVduMapper()
+            .mapVfModuleCustVolumeToVdu(vfModuleCustomization);
+
+        // THEN
+        assertThat(vduModelInfo.getModelCustomizationUUID()).isEqualTo(MODEL_CUSTOMIZATION_UUID);
+        assertThat(vduModelInfo.getTimeoutMinutes()).isEqualTo(TIMEOUT_IN_MIN);
+        assertThat(vduModelInfo.getArtifacts()).containsExactlyElementsOf(createExpectedVduArtifacts());
+    }
+
+    private VfModuleCustomization createVfModuleCustomization() {
+        VfModuleCustomization vfModuleCustomization = new VfModuleCustomization();
+        vfModuleCustomization.setModelCustomizationUUID(MODEL_CUSTOMIZATION_UUID);
+        return vfModuleCustomization;
+    }
+
+    private HeatEnvironment createHeatEnvironment(String volHeatEnvName, String volHeatEnvContent) {
+        HeatEnvironment heatEnvironment = new HeatEnvironment();
+        heatEnvironment.setName(volHeatEnvName);
+        heatEnvironment.setEnvironment(volHeatEnvContent);
+        return heatEnvironment;
+    }
+
+    private VfModule createVfModule() {
+        VfModule vfModule = new VfModule();
+        vfModule.setModelInvariantUUID(VF_MODULE_MODEL_INVARIANT_UUID);
+        vfModule.setHeatFiles(createHeatFiles(CLOUD_FILE_NAME, CLOUD_FILE_BODY));
+        return vfModule;
+    }
+
+    private List<HeatFiles> createHeatFiles(String fileName, String fileBody) {
+        HeatFiles heatFiles = new HeatFiles();
+        heatFiles.setFileName(fileName);
+        heatFiles.setFileBody(fileBody);
+        return Lists.newArrayList(heatFiles);
+    }
+
+    private HeatTemplate createHeatTemplate(String moduleHeatTemplateName, String moduleHeatTemplateBody,
+        String childTemplateName, String childTemplateBody) {
+        HeatTemplate heatTemplate = new HeatTemplate();
+        heatTemplate.setTemplateName(moduleHeatTemplateName);
+        heatTemplate.setTemplateBody(moduleHeatTemplateBody);
+        heatTemplate.setTimeoutMinutes(TIMEOUT_IN_MIN);
+        heatTemplate.setChildTemplates(createChildHeatTemplate(childTemplateName, childTemplateBody));
+        return heatTemplate;
+    }
+
+    private List<HeatTemplate> createChildHeatTemplate(String moduleHeatTemplateName, String moduleHeatTemplateBody) {
+        HeatTemplate heatTemplate = new HeatTemplate();
+        heatTemplate.setTemplateName(moduleHeatTemplateName);
+        heatTemplate.setTemplateBody(moduleHeatTemplateBody);
+        return Lists.newArrayList(heatTemplate);
+    }
+
+    private List<VduArtifact> createExpectedVduArtifacts() {
+        return Lists.newArrayList(
+            new VduArtifact(MODULE_HEAT_TEMPLATE_NAME, MODULE_HEAT_TEMPLATE_BODY.getBytes(),
+                ArtifactType.MAIN_TEMPLATE),
+            new VduArtifact(NESTED_TEMPLATE_NAME, NESTED_TEMPLATE_BODY.getBytes(), ArtifactType.NESTED_TEMPLATE),
+            new VduArtifact(CLOUD_FILE_NAME, CLOUD_FILE_BODY.getBytes(), ArtifactType.TEXT_FILE),
+            new VduArtifact(HEAT_ENV_NAME, HEAT_ENV_CONTENT.getBytes(), ArtifactType.ENVIRONMENT));
+    }
+}
diff --git a/adapters/mso-vnf-adapter/src/test/java/org/onap/so/adapters/vdu/mapper/VfModuleCustomizationToVduMapperTest.java b/adapters/mso-vnf-adapter/src/test/java/org/onap/so/adapters/vdu/mapper/VfModuleCustomizationToVduMapperTest.java
deleted file mode 100644
index c3d9cca..0000000
--- a/adapters/mso-vnf-adapter/src/test/java/org/onap/so/adapters/vdu/mapper/VfModuleCustomizationToVduMapperTest.java
+++ /dev/null
@@ -1,158 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP - SO
- * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
- * ================================================================================
- * 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.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END=========================================================
- */
-
-package org.onap.so.adapters.vdu.mapper;
-
-import static org.assertj.core.api.Assertions.assertThat;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.when;
-
-import java.util.HashMap;
-import java.util.Map;
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.onap.so.adapters.vdu.VduArtifact;
-import org.onap.so.adapters.vdu.VduArtifact.ArtifactType;
-import org.onap.so.adapters.vdu.VduModelInfo;
-import org.onap.so.db.catalog.CatalogDatabase;
-import org.onap.so.db.catalog.beans.HeatEnvironment;
-import org.onap.so.db.catalog.beans.HeatFiles;
-import org.onap.so.db.catalog.beans.HeatTemplate;
-import org.onap.so.db.catalog.beans.VfModule;
-import org.onap.so.db.catalog.beans.VfModuleCustomization;
-import org.powermock.api.mockito.PowerMockito;
-import org.powermock.core.classloader.annotations.PrepareForTest;
-import org.powermock.modules.junit4.PowerMockRunner;
-
-@RunWith(PowerMockRunner.class)
-@PrepareForTest({CatalogDatabase.class})
-public class VfModuleCustomizationToVduMapperTest {
-
-    private static final String HEAT_TEMPLATE_ARTIFACT_UUID = "testHeatTemplate";
-    private static final String VF_MODULE_MODEL_UUID = "vfModuleUuid";
-    private static final String HEAT_ENV_ARTIFACT_UUID = "heatEnvArtifactUuid";
-    private static final String MAIN_TEMPLATE_NAME = "testTempName";
-    private static final String MAIN_TEMPLATE_BODY = "testTempBody";
-    private static final String NESTED_TEMPLATE_KEY = "testKey";
-    private static final String NESTED_TEMPLATE_VALUE = "nestedTemplateTest";
-    private static final String HEAT_FILE_NAME = "heatFileName";
-    private static final String HEAT_FILE_BODY = "heatFileBodyTest";
-    private static final String HEAT_ENV_NAME = "heatEnvName";
-    private static final String HEAT_ENV = "heatEnv";
-    private static final String VOL_HEAT_TEMPLATE_ARTIFACT = "volEnvArtifact";
-    private static final String VOL_ENV_ARTIFACT_UUID = "volEnvArtifactUuid";
-
-    private VfModuleCustomizationToVduMapper testedObject;
-    private CatalogDatabase catalogDatabaseMock;
-
-    @Before
-    public void init() {
-        PowerMockito.mockStatic(CatalogDatabase.class);
-        catalogDatabaseMock = mock(CatalogDatabase.class);
-        testedObject = new VfModuleCustomizationToVduMapper();
-        PowerMockito.when(CatalogDatabase.getInstance()).thenReturn(catalogDatabaseMock);
-        when(catalogDatabaseMock.getNestedTemplates(HEAT_TEMPLATE_ARTIFACT_UUID)).thenReturn(createNestedTemplates());
-        when(catalogDatabaseMock.getHeatFilesForVfModule(VF_MODULE_MODEL_UUID)).thenReturn(createHeatFileMap());
-    }
-
-    @Test
-    public void mapVfModuleCustomizationToVdu_successful() {
-        when(catalogDatabaseMock.getHeatTemplateByArtifactUuid(HEAT_TEMPLATE_ARTIFACT_UUID))
-                .thenReturn(createHeatTemplate());
-        when(catalogDatabaseMock.getHeatEnvironmentByArtifactUuid(HEAT_ENV_ARTIFACT_UUID))
-                .thenReturn(createHeatEnvironment());
-        VduModelInfo result = testedObject.mapVfModuleCustomizationToVdu(createVfModuleCustomization());
-        assertThat(result.getArtifacts()).containsExactly(createExpectedResultArray());
-    }
-
-    @Test
-    public void mapVfModuleCustVolumeToVdu_successful() {
-        when(catalogDatabaseMock.getHeatTemplateByArtifactUuid(VOL_HEAT_TEMPLATE_ARTIFACT))
-                .thenReturn(createHeatTemplate());
-        when(catalogDatabaseMock.getHeatEnvironmentByArtifactUuid(VOL_ENV_ARTIFACT_UUID))
-                .thenReturn(createHeatEnvironment());
-        VduModelInfo result = testedObject.mapVfModuleCustVolumeToVdu(createVfModuleCustomization());
-        assertThat(result.getArtifacts()).containsExactly(createExpectedResultArray());
-    }
-
-    private VfModuleCustomization createVfModuleCustomization() {
-        VfModuleCustomization vfModuleCustomization = new VfModuleCustomization();
-        VfModule vfModule = new VfModule();
-        vfModule.setHeatTemplateArtifactUUId(HEAT_TEMPLATE_ARTIFACT_UUID);
-        vfModule.setVolHeatTemplateArtifactUUId(VOL_HEAT_TEMPLATE_ARTIFACT);
-        vfModuleCustomization.setVfModule(vfModule);
-        vfModuleCustomization.setVfModuleModelUuid(VF_MODULE_MODEL_UUID);
-        vfModuleCustomization.setHeatEnvironmentArtifactUuid(HEAT_ENV_ARTIFACT_UUID);
-        vfModuleCustomization.setVolEnvironmentArtifactUuid(VOL_ENV_ARTIFACT_UUID);
-        return vfModuleCustomization;
-    }
-
-    private HeatTemplate createHeatTemplate() {
-        HeatTemplate heatTemplate = new HeatTemplate();
-        heatTemplate.setTemplateName(MAIN_TEMPLATE_NAME);
-        heatTemplate.setTemplateBody(MAIN_TEMPLATE_BODY);
-        heatTemplate.setArtifactUuid(HEAT_TEMPLATE_ARTIFACT_UUID);
-        return heatTemplate;
-    }
-
-    private Map<String, Object> createNestedTemplates() {
-        Map<String, Object> map = new HashMap<>();
-        map.put(NESTED_TEMPLATE_KEY, NESTED_TEMPLATE_VALUE);
-        return map;
-    }
-
-    private Map<String, HeatFiles> createHeatFileMap() {
-        HeatFiles heatFiles = new HeatFiles();
-        heatFiles.setFileName(HEAT_FILE_NAME);
-        heatFiles.setFileBody(HEAT_FILE_BODY);
-        Map<String, HeatFiles> map = new HashMap<>();
-        map.put("heatFileKey", heatFiles);
-        return map;
-    }
-
-    private HeatEnvironment createHeatEnvironment() {
-        HeatEnvironment heatEnvironment = new HeatEnvironment();
-        heatEnvironment.setName(HEAT_ENV_NAME);
-        heatEnvironment.setEnvironment(HEAT_ENV);
-        return heatEnvironment;
-    }
-
-
-    private VduArtifact[] createExpectedResultArray() {
-        VduArtifact[] vduArtifactsArray = new VduArtifact[4];
-        vduArtifactsArray[0] = new VduArtifact(MAIN_TEMPLATE_NAME, MAIN_TEMPLATE_BODY.getBytes(),
-                ArtifactType.MAIN_TEMPLATE);
-        vduArtifactsArray[1] = new VduArtifact(NESTED_TEMPLATE_KEY, NESTED_TEMPLATE_VALUE.getBytes(),
-                ArtifactType.NESTED_TEMPLATE);
-        vduArtifactsArray[2] = createVduArtifact(HEAT_FILE_NAME, HEAT_FILE_BODY, ArtifactType.TEXT_FILE);
-        vduArtifactsArray[3] = createVduArtifact(HEAT_ENV_NAME, HEAT_ENV, ArtifactType.ENVIRONMENT);
-        return vduArtifactsArray;
-    }
-
-    private VduArtifact createVduArtifact(String name, String content, ArtifactType artifactType) {
-        VduArtifact vduArtifact = new VduArtifact();
-        vduArtifact.setName(name);
-        vduArtifact.setContent(content.getBytes());
-        vduArtifact.setType(artifactType);
-        return vduArtifact;
-    }
-
-}