summaryrefslogtreecommitdiffstats
path: root/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/datatypes/heattotosca/unifiedmodel/consolidation/PortConsolidationDataTest.java
diff options
context:
space:
mode:
Diffstat (limited to 'openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/datatypes/heattotosca/unifiedmodel/consolidation/PortConsolidationDataTest.java')
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/datatypes/heattotosca/unifiedmodel/consolidation/PortConsolidationDataTest.java225
1 files changed, 225 insertions, 0 deletions
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/datatypes/heattotosca/unifiedmodel/consolidation/PortConsolidationDataTest.java b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/datatypes/heattotosca/unifiedmodel/consolidation/PortConsolidationDataTest.java
new file mode 100644
index 0000000000..05382e12ce
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/datatypes/heattotosca/unifiedmodel/consolidation/PortConsolidationDataTest.java
@@ -0,0 +1,225 @@
+/*
+ * Copyright © 2016-2018 European Support Limited
+ *
+ * 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.
+ */
+
+package org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolidation;
+
+import java.util.EnumMap;
+import java.util.HashSet;
+import java.util.Set;
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Test;
+import org.mockito.Mock;
+import org.mockito.Mockito;
+import org.mockito.MockitoAnnotations;
+import org.openecomp.sdc.heat.datatypes.model.Resource;
+
+public class PortConsolidationDataTest {
+
+ private static final String PORT_NODE_TYPE_1 = "portNodeType1";
+ private static final String PORT_NODE_TYPE_2 = "portNodeType2";
+ private static final String PORT_NODE_TEMPLATE_ID_1 = "portNodeTemplateId1";
+ private static final String PORT_NODE_TEMPLATE_ID_2 = "portNodeTemplateId2";
+ private static final String SUB_INTERFACE_NODE_TEMPLATE_ID_1 = "subInterfaceNodeTemplateId1";
+ private static final String SUB_INTERFACE_NODE_TEMPLATE_ID_2 = "subInterfaceNodeTemplateId2";
+ private static final String PORT_RESOURCE_ID = "portResourceId";
+ private static final String PORT_RESOURCE_TYPE = "portResourceType";
+
+ private final EnumMap<ServiceTemplateFileNameEnum, FilePortConsolidationData> mockMap =
+ new EnumMap<>(ServiceTemplateFileNameEnum.class);
+
+ @Mock
+ private FilePortConsolidationData mockFilePortConsolidationData1;
+ @Mock
+ private FilePortConsolidationData mockFilePortConsolidationData2;
+
+ private final Resource resource = new Resource();
+ private final PortConsolidationData consolidationData = new PortConsolidationData();
+
+ @Before
+ public void setUp() {
+ MockitoAnnotations.initMocks(this);
+ addMocksToMap();
+ }
+
+ @Test
+ public void testAddConsolidationData_noNewCreated() {
+ String serviceTemplateName = ServiceTemplateFileNameEnum.SERVICE_TEMPLATE_FILE_NAME_1.name();
+ consolidationData.addPortTemplateConsolidationData(serviceTemplateName, PORT_NODE_TYPE_1,
+ PORT_RESOURCE_ID, PORT_RESOURCE_TYPE);
+ consolidationData.getFilePortConsolidationData(serviceTemplateName);
+ Set<String> expectedServiceTemplateNames = new HashSet<>();
+ expectedServiceTemplateNames.add(serviceTemplateName);
+ checkPortConsolidationData(consolidationData, serviceTemplateName, expectedServiceTemplateNames);
+
+ consolidationData.addPortTemplateConsolidationData(serviceTemplateName, PORT_NODE_TYPE_1,
+ PORT_RESOURCE_ID, PORT_RESOURCE_TYPE);
+ consolidationData.getFilePortConsolidationData(serviceTemplateName);
+ checkPortConsolidationData(consolidationData, serviceTemplateName, expectedServiceTemplateNames);
+ }
+
+ @Test
+ public void testAddConsolidationData_DiffNodeTypes() {
+ String serviceTemplateName = ServiceTemplateFileNameEnum.SERVICE_TEMPLATE_FILE_NAME_1.name();
+ consolidationData.addPortTemplateConsolidationData(serviceTemplateName, PORT_NODE_TYPE_1,
+ PORT_RESOURCE_ID, PORT_RESOURCE_TYPE);
+ Set<String> expectedServiceTemplateNames = new HashSet<>();
+ expectedServiceTemplateNames.add(serviceTemplateName);
+ checkPortConsolidationData(consolidationData, serviceTemplateName, expectedServiceTemplateNames);
+ consolidationData.addPortTemplateConsolidationData(serviceTemplateName, PORT_NODE_TYPE_2,
+ PORT_RESOURCE_ID, PORT_RESOURCE_TYPE);
+ checkPortConsolidationData(consolidationData, serviceTemplateName, expectedServiceTemplateNames);
+ }
+
+ @Test
+ public void testAddConsolidationData_DiffServiceTemplate() {
+ String serviceTemplateName1 = ServiceTemplateFileNameEnum.SERVICE_TEMPLATE_FILE_NAME_1.name();
+ consolidationData.addPortTemplateConsolidationData(
+ serviceTemplateName1, PORT_NODE_TYPE_1, PORT_RESOURCE_ID, PORT_RESOURCE_TYPE);
+ Set<String> expectedServiceTemplateNames = new HashSet<>();
+ expectedServiceTemplateNames.add(serviceTemplateName1);
+ checkPortConsolidationData(consolidationData, serviceTemplateName1, expectedServiceTemplateNames);
+
+ String serviceTemplateName2 = ServiceTemplateFileNameEnum.SERVICE_TEMPLATE_FILE_NAME_2.name();
+ consolidationData.addPortTemplateConsolidationData(
+ serviceTemplateName2, PORT_NODE_TYPE_2, PORT_RESOURCE_ID, PORT_RESOURCE_TYPE);
+ expectedServiceTemplateNames.add(serviceTemplateName2);
+ checkPortConsolidationData(consolidationData, serviceTemplateName2, expectedServiceTemplateNames);
+ }
+
+ @Test
+ public void testAddConsolidationData_DiffNodeTypes_testWithMock() throws Exception {
+ String serviceTemplateName = ServiceTemplateFileNameEnum.SERVICE_TEMPLATE_FILE_NAME_1.name();
+ addAndCheckPortTemplateConsolidationData(serviceTemplateName,
+ PORT_NODE_TYPE_1);
+ addAndCheckPortTemplateConsolidationData(serviceTemplateName,
+ PORT_NODE_TYPE_2);
+ }
+
+ @Test
+ public void testAddConsolidationData_DiffServiceTemplate_testWithMock() throws Exception {
+ addAndCheckPortTemplateConsolidationData(ServiceTemplateFileNameEnum.SERVICE_TEMPLATE_FILE_NAME_1.name(),
+ PORT_NODE_TYPE_1);
+ addAndCheckPortTemplateConsolidationData(ServiceTemplateFileNameEnum.SERVICE_TEMPLATE_FILE_NAME_2.name(),
+ PORT_NODE_TYPE_2);
+ }
+
+ @Test
+ public void testAddSubInterfaceConsolidationData_Same() throws Exception {
+ String serviceTemplateName = ServiceTemplateFileNameEnum.SERVICE_TEMPLATE_FILE_NAME_1.name();
+ addAndCheckSubInterfaceTemplateConsolidationData(serviceTemplateName,
+ SUB_INTERFACE_NODE_TEMPLATE_ID_1, PORT_NODE_TEMPLATE_ID_1);
+ addAndCheckSubInterfaceTemplateConsolidationData(serviceTemplateName,
+ SUB_INTERFACE_NODE_TEMPLATE_ID_1, PORT_NODE_TEMPLATE_ID_1, 2);
+ }
+
+ @Test
+ public void testAddSubInterfaceConsolidationData_diffNodeTempId() throws Exception {
+ String serviceTemplateName = ServiceTemplateFileNameEnum.SERVICE_TEMPLATE_FILE_NAME_1.name();
+ addAndCheckSubInterfaceTemplateConsolidationData(serviceTemplateName,
+ SUB_INTERFACE_NODE_TEMPLATE_ID_1, PORT_NODE_TEMPLATE_ID_1);
+ addAndCheckSubInterfaceTemplateConsolidationData(serviceTemplateName,
+ SUB_INTERFACE_NODE_TEMPLATE_ID_2, PORT_NODE_TEMPLATE_ID_1);
+ }
+
+ @Test
+ public void testAddSubInterfaceConsolidationData_diffNodeTempId_diffParentPort() throws Exception {
+ String serviceTemplateName = ServiceTemplateFileNameEnum.SERVICE_TEMPLATE_FILE_NAME_1.name();
+ addAndCheckSubInterfaceTemplateConsolidationData(serviceTemplateName,
+ SUB_INTERFACE_NODE_TEMPLATE_ID_1, PORT_NODE_TEMPLATE_ID_1);
+ addAndCheckSubInterfaceTemplateConsolidationData(serviceTemplateName,
+ SUB_INTERFACE_NODE_TEMPLATE_ID_2, PORT_NODE_TEMPLATE_ID_2);
+ }
+
+ @Test
+ public void testAddSubInterfaceConsolidationData_diffServiceTemp() throws Exception {
+ addAndCheckSubInterfaceTemplateConsolidationData(
+ ServiceTemplateFileNameEnum.SERVICE_TEMPLATE_FILE_NAME_1.name(),
+ SUB_INTERFACE_NODE_TEMPLATE_ID_1, SUB_INTERFACE_NODE_TEMPLATE_ID_1);
+ addAndCheckSubInterfaceTemplateConsolidationData(
+ ServiceTemplateFileNameEnum.SERVICE_TEMPLATE_FILE_NAME_2.name(),
+ SUB_INTERFACE_NODE_TEMPLATE_ID_2, SUB_INTERFACE_NODE_TEMPLATE_ID_2);
+ }
+
+ private void addAndCheckPortTemplateConsolidationData(String serviceTemplateFileName,
+ String portNodeType) throws Exception {
+ FilePortConsolidationData filePortConsolidationDataMock =
+ setFilePortConsolidationDataMock(serviceTemplateFileName);
+
+ consolidationData.addPortTemplateConsolidationData(
+ serviceTemplateFileName, portNodeType, PORT_RESOURCE_ID, PORT_RESOURCE_TYPE);
+
+ Mockito.verify(filePortConsolidationDataMock)
+ .addPortTemplateConsolidationData(portNodeType, PORT_RESOURCE_ID, PORT_RESOURCE_TYPE);
+ }
+
+ private void addAndCheckSubInterfaceTemplateConsolidationData(String serviceTemplateFileName,
+ String subInterfaceNodeTemplateId, String subInterfaceNodeTemplateType) throws Exception {
+ addAndCheckSubInterfaceTemplateConsolidationData(serviceTemplateFileName, subInterfaceNodeTemplateId,
+ subInterfaceNodeTemplateType, 1);
+ }
+
+ private void addAndCheckSubInterfaceTemplateConsolidationData(String serviceTemplateFileName,
+ String subInterfaceNodeTemplateId, String parentPortNodeTemplateId, int expectedTime) throws Exception {
+
+ FilePortConsolidationData filePortConsolidationDataMock =
+ setFilePortConsolidationDataMock(serviceTemplateFileName);
+ consolidationData.addSubInterfaceTemplateConsolidationData(serviceTemplateFileName, resource,
+ subInterfaceNodeTemplateId, parentPortNodeTemplateId);
+
+ Mockito.verify(filePortConsolidationDataMock, Mockito.times(expectedTime))
+ .addSubInterfaceTemplateConsolidationData(resource, subInterfaceNodeTemplateId,
+ parentPortNodeTemplateId);
+ }
+
+ private void addMocksToMap() {
+ mockMap.put(ServiceTemplateFileNameEnum.SERVICE_TEMPLATE_FILE_NAME_1, mockFilePortConsolidationData1);
+ mockMap.put(ServiceTemplateFileNameEnum.SERVICE_TEMPLATE_FILE_NAME_2, mockFilePortConsolidationData2);
+ }
+
+ private FilePortConsolidationData setFilePortConsolidationDataMock(String serviceTemplateName) throws Exception {
+ FilePortConsolidationData filePortConsolidationDataMock =
+ getFileComputeConsolidationDataMock(serviceTemplateName);
+ consolidationData.setFilePortConsolidationData(serviceTemplateName, filePortConsolidationDataMock);
+ return filePortConsolidationDataMock;
+ }
+
+ private FilePortConsolidationData getFileComputeConsolidationDataMock(String serviceTemplateName) throws Exception {
+ ServiceTemplateFileNameEnum enumValue = ServiceTemplateFileNameEnum.valueOf(serviceTemplateName);
+ FilePortConsolidationData mock = mockMap.get(enumValue);
+ if (mock == null) {
+ throw new Exception("This service Template File Name doesn't supported. "
+ + "Please add it to ServiceTemplateFileName enum");
+ }
+ return mock;
+ }
+
+ private void checkPortConsolidationData(PortConsolidationData consolidationData,
+ String serviceTemplateFileName, Set<String> expectedServiceTemplateNames) {
+ FilePortConsolidationData filePortConsolidationData = consolidationData
+ .getFilePortConsolidationData(serviceTemplateFileName);
+ Assert.assertNotNull(filePortConsolidationData);
+ checkGetAllServiceTemplateFileNames(consolidationData, expectedServiceTemplateNames);
+ }
+
+ private void checkGetAllServiceTemplateFileNames(PortConsolidationData consolidationData,
+ Set<String> expectedServiceTemplateNames) {
+ Set<String> allServiceTemplateFileNames = consolidationData.getAllServiceTemplateFileNames();
+ Assert.assertNotNull(allServiceTemplateFileNames);
+ Assert.assertEquals(expectedServiceTemplateNames.size(), allServiceTemplateFileNames.size());
+ Assert.assertTrue(allServiceTemplateFileNames.containsAll(expectedServiceTemplateNames));
+ }
+}