From 9200382f2ce7b4bb729aa287d0878004b2d2b4f9 Mon Sep 17 00:00:00 2001 From: siddharth0905 Date: Mon, 23 Jul 2018 17:01:41 +0300 Subject: Refactoring Consolidation Service Changes as per comments Change-Id: Ic2c800513265daf4bbed1f15920864ba0cb28859 Issue-ID: SDC-1330 Signed-off-by: siddharth0905 --- .../org/openecomp/sdc/translator/TestUtils.java | 24 +- .../ComputeConsolidationDataHandlerTest.java | 119 +- .../ComputeConsolidationDataTest.java | 20 + .../ComputeTemplateConsolidationDataTest.java | 135 ++- .../consolidation/EntityConsolidationDataTest.java | 85 +- .../FileComputeConsolidationDataTest.java | 30 + .../NestedConsolidationDataHandlerTest.java | 47 + .../consolidation/NestedConsolidationDataTest.java | 40 + .../TypeComputeConsolidationDataTest.java | 177 ++- .../heattotosca/UnifiedCompositionServiceTest.java | 30 +- .../ConsolidationDataTestUtil.java | 1140 +++++++++----------- .../BaseResourceTranslationTest.java | 15 +- 12 files changed, 1114 insertions(+), 748 deletions(-) create mode 100644 openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/datatypes/heattotosca/unifiedmodel/consolidation/NestedConsolidationDataHandlerTest.java create mode 100644 openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/datatypes/heattotosca/unifiedmodel/consolidation/NestedConsolidationDataTest.java (limited to 'openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp') diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/TestUtils.java b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/TestUtils.java index 95adef3a8c..0d981f320a 100644 --- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/TestUtils.java +++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/TestUtils.java @@ -18,6 +18,9 @@ package org.openecomp.sdc.translator; import static org.junit.Assert.assertEquals; +import com.google.common.collect.ArrayListMultimap; +import com.google.common.collect.Multimap; + import java.io.File; import java.io.FileInputStream; import java.io.IOException; @@ -355,7 +358,7 @@ public class TestUtils { initComputeNodeTemplateIdInConsolidationData(serviceTemplateFileName, computeNodeTypeName, computeNodeTemplateId, consolidationData); - Map> volumes = + Multimap volumes = consolidationData.getComputeConsolidationData().getFileComputeConsolidationData (serviceTemplateFileName).getTypeComputeConsolidationData(computeNodeTypeName) .getComputeTemplateConsolidationData(computeNodeTemplateId).getVolumes(); @@ -439,7 +442,7 @@ public class TestUtils { public static ComputeTemplateConsolidationData createComputeTemplateConsolidationData( String computeNodeTemplateId, List> portTypeToIdList, - Map> volumes) { + Multimap volumes) { ComputeTemplateConsolidationData compute = new ComputeTemplateConsolidationData(); compute.setNodeTemplateId(computeNodeTemplateId); if (portTypeToIdList != null) { @@ -525,9 +528,9 @@ public class TestUtils { computeNodeTypeName, new TypeComputeConsolidationData()); } - public static Map> getNodeConnectedOutList( + public static Multimap getNodeConnectedOutList( NodeTemplate nodeTemplate, String requirementKey) { - Map> requirementAssignmentDataMap = new HashMap<>(); + Multimap requirementAssignmentDataMap = ArrayListMultimap.create(); Optional> requirementAssignmentDataList = TestUtils.createRequirementAssignmentDataList(nodeTemplate, requirementKey); if (requirementAssignmentDataList.isPresent()) { @@ -535,9 +538,7 @@ public class TestUtils { .get()) { String connectedNodeTemplateId = requirementAssignmentData.getRequirementAssignment() .getNode(); - requirementAssignmentDataMap - .computeIfAbsent(connectedNodeTemplateId, k -> new ArrayList<>()); - requirementAssignmentDataMap.get(connectedNodeTemplateId).add(requirementAssignmentData); + requirementAssignmentDataMap.put(connectedNodeTemplateId, requirementAssignmentData); } } return requirementAssignmentDataMap; @@ -575,12 +576,12 @@ public class TestUtils { } } - public static Map> getNodeConnectedInList( + public static Multimap getNodeConnectedInList( String sourceNodeTemplateId, ServiceTemplate serviceTemplate, String requirementKey) { - Optional> requirementAssignmentDataList = Optional.empty(); + Optional> requirementAssignmentDataList; List assignmentDataList = new ArrayList<>(); - Map> requirementAssignmentDataMap = new HashMap<>(); + Multimap requirementAssignmentDataMap = ArrayListMultimap.create(); Map nodeTemplates = serviceTemplate.getTopology_template() .getNode_templates(); for (Map.Entry entry : nodeTemplates.entrySet()) { @@ -603,8 +604,7 @@ public class TestUtils { if (requirementAssignmentDataList.isPresent()) { for (RequirementAssignmentData requirementAssignmentData : requirementAssignmentDataList .get()) { - requirementAssignmentDataMap.computeIfAbsent(nodeTemplateId, k -> new ArrayList<>()); - requirementAssignmentDataMap.get(nodeTemplateId).add(requirementAssignmentData); + requirementAssignmentDataMap.put(nodeTemplateId, requirementAssignmentData); } } requirementAssignmentDataList = Optional.empty(); 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/ComputeConsolidationDataHandlerTest.java b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/datatypes/heattotosca/unifiedmodel/consolidation/ComputeConsolidationDataHandlerTest.java index 6df781e375..e3d166f853 100644 --- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/datatypes/heattotosca/unifiedmodel/consolidation/ComputeConsolidationDataHandlerTest.java +++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/datatypes/heattotosca/unifiedmodel/consolidation/ComputeConsolidationDataHandlerTest.java @@ -47,6 +47,7 @@ public class ComputeConsolidationDataHandlerTest { private static final String REQUIREMENT_ID = "requirementId"; private static final String SERVICE_FILE_NAME_PREFIX = "Main"; private static final String SERVICE_FILE_NAME = SERVICE_FILE_NAME_PREFIX + "ServiceTemplate.yaml"; + private static final String MAIN_SERVICE_TEMPLATE = "MainServiceTemplate.yaml"; @Before public void setUp() { @@ -71,23 +72,23 @@ public class ComputeConsolidationDataHandlerTest { @Test public void testAddNodesConnectedOut() { mockEntities(COMPUTE_NODE_TEMPLATE_ID_1); - consolidationDataHandler.addNodesConnectedOut( - translateTo, COMPUTE_NODE_TEMPLATE_ID_1, REQUIREMENT_ID, requirementAssignment); - Mockito.verify(computeConsolidationData).addComputeTemplateConsolidationData( - SERVICE_FILE_NAME, COMPUTE_NODE_TYPE_1, COMPUTE_NODE_TEMPLATE_ID_1); - Mockito.verify(consolidationData).addNodesConnectedOut( - COMPUTE_NODE_TEMPLATE_ID_1, REQUIREMENT_ID, requirementAssignment); + consolidationDataHandler + .addNodesConnectedOut(translateTo, COMPUTE_NODE_TEMPLATE_ID_1, REQUIREMENT_ID, requirementAssignment); + Mockito.verify(computeConsolidationData) + .addComputeTemplateConsolidationData(SERVICE_FILE_NAME, COMPUTE_NODE_TYPE_1, COMPUTE_NODE_TEMPLATE_ID_1); + Mockito.verify(consolidationData) + .addNodesConnectedOut(COMPUTE_NODE_TEMPLATE_ID_1, REQUIREMENT_ID, requirementAssignment); } @Test public void testAddNodesConnectedOut_consolidationDataNotExist() { mockEntities_NullConsolidationData(COMPUTE_NODE_TEMPLATE_ID_1); - consolidationDataHandler.addNodesConnectedOut( - translateTo, COMPUTE_NODE_TEMPLATE_ID_1, REQUIREMENT_ID, requirementAssignment); - Mockito.verify(computeConsolidationData).addComputeTemplateConsolidationData( - SERVICE_FILE_NAME, COMPUTE_NODE_TYPE_1, COMPUTE_NODE_TEMPLATE_ID_1); - Mockito.verify(consolidationData, Mockito.times(0)).addNodesConnectedOut( - Mockito.any(), Mockito.any(), Mockito.any()); + consolidationDataHandler + .addNodesConnectedOut(translateTo, COMPUTE_NODE_TEMPLATE_ID_1, REQUIREMENT_ID, requirementAssignment); + Mockito.verify(computeConsolidationData) + .addComputeTemplateConsolidationData(SERVICE_FILE_NAME, COMPUTE_NODE_TYPE_1, COMPUTE_NODE_TEMPLATE_ID_1); + Mockito.verify(consolidationData, Mockito.times(0)) + .addNodesConnectedOut(Mockito.any(), Mockito.any(), Mockito.any()); } @Test @@ -95,73 +96,76 @@ public class ComputeConsolidationDataHandlerTest { String sourceNodeTemplateId = COMPUTE_NODE_TEMPLATE_ID_1; String dependentNodeTemplateId = COMPUTE_NODE_TEMPLATE_ID_2; mockEntities(dependentNodeTemplateId); - consolidationDataHandler.addNodesConnectedIn(translateTo, sourceNodeTemplateId, - dependentNodeTemplateId, "targetResourceId", REQUIREMENT_ID, requirementAssignment); - Mockito.verify(computeConsolidationData).addComputeTemplateConsolidationData( - SERVICE_FILE_NAME, COMPUTE_NODE_TYPE_1, dependentNodeTemplateId); - Mockito.verify(consolidationData).addNodesConnectedIn( - sourceNodeTemplateId, REQUIREMENT_ID, requirementAssignment); + consolidationDataHandler + .addNodesConnectedIn(translateTo, sourceNodeTemplateId, dependentNodeTemplateId, "targetResourceId", + REQUIREMENT_ID, requirementAssignment); + Mockito.verify(computeConsolidationData) + .addComputeTemplateConsolidationData(SERVICE_FILE_NAME, COMPUTE_NODE_TYPE_1, dependentNodeTemplateId); + Mockito.verify(consolidationData) + .addNodesConnectedIn(sourceNodeTemplateId, REQUIREMENT_ID, requirementAssignment); } @Test public void testAddNodesConnectedIn_consolidationDataNotExist() { String dependentNodeTemplateId = COMPUTE_NODE_TEMPLATE_ID_2; mockEntities_NullConsolidationData(dependentNodeTemplateId); - consolidationDataHandler.addNodesConnectedIn(translateTo, COMPUTE_NODE_TEMPLATE_ID_1, - dependentNodeTemplateId, "targetResourceId", REQUIREMENT_ID, requirementAssignment); - Mockito.verify(computeConsolidationData).addComputeTemplateConsolidationData( - SERVICE_FILE_NAME, COMPUTE_NODE_TYPE_1, dependentNodeTemplateId); - Mockito.verify(consolidationData, Mockito.times(0)).addNodesConnectedIn( - Mockito.any(), Mockito.any(), Mockito.any()); + consolidationDataHandler.addNodesConnectedIn(translateTo, COMPUTE_NODE_TEMPLATE_ID_1, dependentNodeTemplateId, + "targetResourceId", REQUIREMENT_ID, requirementAssignment); + Mockito.verify(computeConsolidationData) + .addComputeTemplateConsolidationData(SERVICE_FILE_NAME, COMPUTE_NODE_TYPE_1, dependentNodeTemplateId); + Mockito.verify(consolidationData, Mockito.times(0)) + .addNodesConnectedIn(Mockito.any(), Mockito.any(), Mockito.any()); } @Test public void testRemoveParamNameFromAttrFuncList() { mockEntities(COMPUTE_NODE_TEMPLATE_ID_2); - consolidationDataHandler.removeParamNameFromAttrFuncList(serviceTemplate, heatOrchestrationTemplate, - "paramName", COMPUTE_NODE_TEMPLATE_ID_1, COMPUTE_NODE_TEMPLATE_ID_2); - Mockito.verify(computeConsolidationData).addComputeTemplateConsolidationData( - SERVICE_FILE_NAME, COMPUTE_NODE_TYPE_1, COMPUTE_NODE_TEMPLATE_ID_2); + consolidationDataHandler + .removeParamNameFromAttrFuncList(serviceTemplate, heatOrchestrationTemplate, "paramName", + COMPUTE_NODE_TEMPLATE_ID_1, COMPUTE_NODE_TEMPLATE_ID_2); + Mockito.verify(computeConsolidationData) + .addComputeTemplateConsolidationData(SERVICE_FILE_NAME, COMPUTE_NODE_TYPE_1, COMPUTE_NODE_TEMPLATE_ID_2); Mockito.verify(consolidationData).removeParamNameFromAttrFuncList("paramName"); } @Test public void testRemoveParamNameFromAttrFuncList_consolidationDataNotExist() { mockEntities_NullConsolidationData(COMPUTE_NODE_TEMPLATE_ID_2); - consolidationDataHandler.removeParamNameFromAttrFuncList(serviceTemplate, heatOrchestrationTemplate, - "paramName", COMPUTE_NODE_TEMPLATE_ID_1, COMPUTE_NODE_TEMPLATE_ID_2); - Mockito.verify(computeConsolidationData).addComputeTemplateConsolidationData( - SERVICE_FILE_NAME, COMPUTE_NODE_TYPE_1, COMPUTE_NODE_TEMPLATE_ID_2); - Mockito.verify(consolidationData, Mockito.times(0)) - .removeParamNameFromAttrFuncList(Mockito.any()); + consolidationDataHandler + .removeParamNameFromAttrFuncList(serviceTemplate, heatOrchestrationTemplate, "paramName", + COMPUTE_NODE_TEMPLATE_ID_1, COMPUTE_NODE_TEMPLATE_ID_2); + Mockito.verify(computeConsolidationData) + .addComputeTemplateConsolidationData(SERVICE_FILE_NAME, COMPUTE_NODE_TYPE_1, COMPUTE_NODE_TEMPLATE_ID_2); + Mockito.verify(consolidationData, Mockito.times(0)).removeParamNameFromAttrFuncList(Mockito.any()); } @Test public void testAddConsolidationData() { - consolidationDataHandler.addConsolidationData(SERVICE_FILE_NAME, - COMPUTE_NODE_TYPE_1, COMPUTE_NODE_TEMPLATE_ID_1); - Mockito.verify(computeConsolidationData).addComputeTemplateConsolidationData( - SERVICE_FILE_NAME, COMPUTE_NODE_TYPE_1, COMPUTE_NODE_TEMPLATE_ID_1); + consolidationDataHandler + .addConsolidationData(SERVICE_FILE_NAME, COMPUTE_NODE_TYPE_1, COMPUTE_NODE_TEMPLATE_ID_1); + Mockito.verify(computeConsolidationData) + .addComputeTemplateConsolidationData(SERVICE_FILE_NAME, COMPUTE_NODE_TYPE_1, COMPUTE_NODE_TEMPLATE_ID_1); } @Test public void testAddPortToConsolidationData() { mockEntities(COMPUTE_NODE_TEMPLATE_ID_1); - consolidationDataHandler.addPortToConsolidationData(translateTo, COMPUTE_NODE_TYPE_1, - COMPUTE_NODE_TEMPLATE_ID_1, PORT_NODE_TYPE_1, PORT_NODE_TEMPLATE_ID_1); - Mockito.verify(computeConsolidationData).addComputeTemplateConsolidationData( - SERVICE_FILE_NAME, COMPUTE_NODE_TYPE_1, COMPUTE_NODE_TEMPLATE_ID_1); + consolidationDataHandler + .addPortToConsolidationData(translateTo, COMPUTE_NODE_TYPE_1, COMPUTE_NODE_TEMPLATE_ID_1, + PORT_NODE_TYPE_1, PORT_NODE_TEMPLATE_ID_1); + Mockito.verify(computeConsolidationData) + .addComputeTemplateConsolidationData(SERVICE_FILE_NAME, COMPUTE_NODE_TYPE_1, COMPUTE_NODE_TEMPLATE_ID_1); Mockito.verify(consolidationData).addPort(PORT_NODE_TYPE_1, PORT_NODE_TEMPLATE_ID_1); } @Test public void testAddVolumeToConsolidationData() { mockEntities(COMPUTE_NODE_TEMPLATE_ID_1); - consolidationDataHandler.addVolumeToConsolidationData( - translateTo, COMPUTE_NODE_TYPE_1, COMPUTE_NODE_TEMPLATE_ID_1, + consolidationDataHandler + .addVolumeToConsolidationData(translateTo, COMPUTE_NODE_TYPE_1, COMPUTE_NODE_TEMPLATE_ID_1, REQUIREMENT_ID, requirementAssignment); - Mockito.verify(computeConsolidationData).addComputeTemplateConsolidationData( - SERVICE_FILE_NAME, COMPUTE_NODE_TYPE_1, COMPUTE_NODE_TEMPLATE_ID_1); + Mockito.verify(computeConsolidationData) + .addComputeTemplateConsolidationData(SERVICE_FILE_NAME, COMPUTE_NODE_TYPE_1, COMPUTE_NODE_TEMPLATE_ID_1); Mockito.verify(consolidationData).addVolume(REQUIREMENT_ID, requirementAssignment); } @@ -169,10 +173,10 @@ public class ComputeConsolidationDataHandlerTest { @Test public void testAddGroupIdToConsolidationData() { mockEntities(COMPUTE_NODE_TEMPLATE_ID_1); - consolidationDataHandler.addGroupIdToConsolidationData( - translateTo, COMPUTE_NODE_TYPE_1, COMPUTE_NODE_TEMPLATE_ID_1, GROUP_ID); - Mockito.verify(computeConsolidationData).addComputeTemplateConsolidationData( - SERVICE_FILE_NAME, COMPUTE_NODE_TYPE_1, COMPUTE_NODE_TEMPLATE_ID_1); + consolidationDataHandler + .addGroupIdToConsolidationData(translateTo, COMPUTE_NODE_TYPE_1, COMPUTE_NODE_TEMPLATE_ID_1, GROUP_ID); + Mockito.verify(computeConsolidationData) + .addComputeTemplateConsolidationData(SERVICE_FILE_NAME, COMPUTE_NODE_TYPE_1, COMPUTE_NODE_TEMPLATE_ID_1); Mockito.verify(consolidationData).addGroupId(GROUP_ID); } @@ -204,8 +208,8 @@ public class ComputeConsolidationDataHandlerTest { private void mockComputeConsolidationData() { Mockito.when(computeConsolidationData - .addComputeTemplateConsolidationData(Mockito.anyString(), Mockito.anyString(), - Mockito.anyString())).thenReturn(consolidationData); + .addComputeTemplateConsolidationData(Mockito.anyString(), Mockito.anyString(), + Mockito.anyString())).thenReturn(consolidationData); } private void mockNullConsolidationData() { @@ -214,7 +218,7 @@ public class ComputeConsolidationDataHandlerTest { Mockito.anyString())).thenReturn(null); } - private TopologyTemplate createTopologyTemplate(String nodeTemplateId) { + private TopologyTemplate createTopologyTemplate(String nodeTemplateId) { TopologyTemplate topologyTemplate = new TopologyTemplate(); Map nodeTemplates = new HashMap<>(); NodeTemplate nodeTemplate = new NodeTemplate(); @@ -224,4 +228,13 @@ public class ComputeConsolidationDataHandlerTest { return topologyTemplate; } + @Test + public void isNumberOfComputeTypesLegalPositive() { + ComputeConsolidationDataHandler computeConsolidationDataHandler = + new ComputeConsolidationDataHandler(computeConsolidationData); + + computeConsolidationDataHandler.isNumberOfComputeTypesLegal(MAIN_SERVICE_TEMPLATE); + + Mockito.verify(computeConsolidationData).isNumberOfComputeTypesLegal(MAIN_SERVICE_TEMPLATE); + } } 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/ComputeConsolidationDataTest.java b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/datatypes/heattotosca/unifiedmodel/consolidation/ComputeConsolidationDataTest.java index 32e9f0d30d..344fbd9b94 100644 --- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/datatypes/heattotosca/unifiedmodel/consolidation/ComputeConsolidationDataTest.java +++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/datatypes/heattotosca/unifiedmodel/consolidation/ComputeConsolidationDataTest.java @@ -32,6 +32,10 @@ public class ComputeConsolidationDataTest { private static final String COMPUTE_NODE_TEMPLATE_ID_2 = "computeNodeTemplateId2"; private static final String COMPUTE_NODE_TYPE_1 = "computeNodeType1"; private static final String COMPUTE_NODE_TYPE_2 = "computeNodeType2"; + private static final String MAIN_SERVICE_TEMPLATE = "MainServiceTemplate.yaml"; + + @Mock + private FileComputeConsolidationData fileComputeConsolidationDataMock; private final EnumMap mockMap = new EnumMap<>(ServiceTemplateFileNameEnum.class); @@ -189,4 +193,20 @@ public class ComputeConsolidationDataTest { return mock; } + @Test + public void isNumberOfComputeTypesLegal() { + ComputeConsolidationData computeConsolidationData = new ComputeConsolidationData(); + computeConsolidationData.setFileComputeConsolidationData(MAIN_SERVICE_TEMPLATE, + fileComputeConsolidationDataMock); + + computeConsolidationData.isNumberOfComputeTypesLegal(MAIN_SERVICE_TEMPLATE); + Mockito.verify(fileComputeConsolidationDataMock).isNumberOfComputeTypesLegal(); + } + + @Test + public void isNumberOfComputeTypesLegalNegative() { + ComputeConsolidationData computeConsolidationData = new ComputeConsolidationData(); + + Assert.assertFalse(computeConsolidationData.isNumberOfComputeTypesLegal(MAIN_SERVICE_TEMPLATE)); + } } 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/ComputeTemplateConsolidationDataTest.java b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/datatypes/heattotosca/unifiedmodel/consolidation/ComputeTemplateConsolidationDataTest.java index 9f32aec8aa..36a0b7ec72 100644 --- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/datatypes/heattotosca/unifiedmodel/consolidation/ComputeTemplateConsolidationDataTest.java +++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/datatypes/heattotosca/unifiedmodel/consolidation/ComputeTemplateConsolidationDataTest.java @@ -16,10 +16,17 @@ package org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolidation; +import com.google.common.collect.Multimap; + +import java.util.AbstractMap; +import java.util.ArrayList; import java.util.Arrays; +import java.util.Collection; +import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.Objects; import org.junit.Assert; import org.junit.Test; @@ -36,59 +43,67 @@ public class ComputeTemplateConsolidationDataTest { private static final String PORT_TYPE_2 = "portType2"; private static final String PORT_NODE_TEMPLATE_ID_1 = "portNodeTemplateId1"; private static final String PORT_NODE_TEMPLATE_ID_2 = "portNodeTemplateId2"; + private static final String PORT_NEUTRON = "port_neutron"; + private static final String PORT_NEUTRON_1 = "port_neutron_1"; + private static final String PORT_NEUTRON_2 = "port_neutron_2"; + private static final String PORT_NEUTRON_3 = "port_neutron_3"; + private ComputeTemplateConsolidationData computeTemplateConsolidationData = new ComputeTemplateConsolidationData(); + + private Map> mapToBeModified = new HashMap>() { + { + put(PORT_NEUTRON, new ArrayList<>(Collections.singletonList(PORT_NEUTRON_3))); + } + }; - private final ComputeTemplateConsolidationData consolidationData - = new ComputeTemplateConsolidationData(); + private final ComputeTemplateConsolidationData consolidationData = new ComputeTemplateConsolidationData(); @Test public void testAddPort_SamePortType() { Map expectedPorts = new HashMap<>(); - expectedPorts.put(PORT_TYPE_1, new String[]{PORT_NODE_TEMPLATE_ID_1}); + expectedPorts.put(PORT_TYPE_1, new String[] {PORT_NODE_TEMPLATE_ID_1}); addAndCheckPorts(PORT_TYPE_1, PORT_NODE_TEMPLATE_ID_1, expectedPorts); - expectedPorts.put(PORT_TYPE_1, new String[]{PORT_NODE_TEMPLATE_ID_1, PORT_NODE_TEMPLATE_ID_2}); + expectedPorts.put(PORT_TYPE_1, new String[] {PORT_NODE_TEMPLATE_ID_1, PORT_NODE_TEMPLATE_ID_2}); addAndCheckPorts(PORT_TYPE_1, PORT_NODE_TEMPLATE_ID_2, expectedPorts); } @Test public void testAddPort_DiffPortType() { Map expectedPorts = new HashMap<>(); - expectedPorts.put(PORT_TYPE_1, new String[]{PORT_NODE_TEMPLATE_ID_1}); + expectedPorts.put(PORT_TYPE_1, new String[] {PORT_NODE_TEMPLATE_ID_1}); addAndCheckPorts(PORT_TYPE_1, PORT_NODE_TEMPLATE_ID_1, expectedPorts); - expectedPorts.put(PORT_TYPE_2, new String[]{PORT_NODE_TEMPLATE_ID_2}); + expectedPorts.put(PORT_TYPE_2, new String[] {PORT_NODE_TEMPLATE_ID_2}); addAndCheckPorts(PORT_TYPE_2, PORT_NODE_TEMPLATE_ID_2, expectedPorts); } @Test public void testAddVolume_SameComputeNode() { Map expectedVolumes = new HashMap<>(); - expectedVolumes.put(COMPUTE_NODE_TEMPLATE_ID_1, new String[]{REQUIREMENT_ID_1}); + expectedVolumes.put(COMPUTE_NODE_TEMPLATE_ID_1, new String[] {REQUIREMENT_ID_1}); addAndCheckVolume(REQUIREMENT_ID_1, COMPUTE_NODE_TEMPLATE_ID_1, expectedVolumes); - expectedVolumes.put(COMPUTE_NODE_TEMPLATE_ID_1, new String[]{REQUIREMENT_ID_1, REQUIREMENT_ID_2}); + expectedVolumes.put(COMPUTE_NODE_TEMPLATE_ID_1, new String[] {REQUIREMENT_ID_1, REQUIREMENT_ID_2}); addAndCheckVolume(REQUIREMENT_ID_2, COMPUTE_NODE_TEMPLATE_ID_1, expectedVolumes); } @Test public void testAddVolume_DiffComputeNode() { Map expectedVolumes = new HashMap<>(); - expectedVolumes.put(COMPUTE_NODE_TEMPLATE_ID_1, new String[]{REQUIREMENT_ID_1}); + expectedVolumes.put(COMPUTE_NODE_TEMPLATE_ID_1, new String[] {REQUIREMENT_ID_1}); addAndCheckVolume(REQUIREMENT_ID_1, COMPUTE_NODE_TEMPLATE_ID_1, expectedVolumes); - expectedVolumes.put(COMPUTE_NODE_TEMPLATE_ID_2, new String[]{REQUIREMENT_ID_2}); + expectedVolumes.put(COMPUTE_NODE_TEMPLATE_ID_2, new String[] {REQUIREMENT_ID_2}); addAndCheckVolume(REQUIREMENT_ID_2, COMPUTE_NODE_TEMPLATE_ID_2, expectedVolumes); } - private void addAndCheckPorts(String portType, String portNodeTemplateId, - Map expectedPorts) { + private void addAndCheckPorts(String portType, String portNodeTemplateId, Map expectedPorts) { consolidationData.addPort(portType, portNodeTemplateId); checkPorts(consolidationData.getPorts(), expectedPorts); } - private void checkPorts(Map> actualAllPorts, - Map expectedAllPorts) { + private void checkPorts(Map> actualAllPorts, Map expectedAllPorts) { Assert.assertNotNull(actualAllPorts); expectedAllPorts.keySet().forEach(expectedPortType -> { Assert.assertTrue(actualAllPorts.containsKey(expectedPortType)); @@ -97,39 +112,38 @@ public class ComputeTemplateConsolidationDataTest { }); } - private void checkPortsPerType(Map> actualAllPorts, Map expectedAllPorts, - String expectedPortType) { + private void checkPortsPerType(Map> actualAllPorts, Map expectedAllPorts, + String expectedPortType) { List actualPorts = actualAllPorts.get(expectedPortType); List expectedPortList = Arrays.asList(expectedAllPorts.get(expectedPortType)); Assert.assertEquals(expectedPortList.size(), actualPorts.size()); - actualPorts.forEach(actualPort -> - Assert.assertTrue(expectedPortList.contains(actualPort))); + actualPorts.forEach(actualPort -> Assert.assertTrue(expectedPortList.contains(actualPort))); } private void addAndCheckVolume(String requirementId, String computeNodeTemplateId, - Map expectedVolumes) { + Map expectedVolumes) { RequirementAssignment requirementAssignment1 = createRequirement(computeNodeTemplateId); consolidationData.addVolume(requirementId, requirementAssignment1); checkVolumes(consolidationData.getVolumes(), expectedVolumes); } - private void checkVolumes(Map> actualVolumes, + private void checkVolumes(Multimap actualVolumes, Map expectedVolumes) { Assert.assertNotNull(actualVolumes); expectedVolumes.keySet().forEach(nodeTemplateId -> { Assert.assertTrue(actualVolumes.containsKey(nodeTemplateId)); - Assert.assertEquals(expectedVolumes.size(), actualVolumes.size()); + Assert.assertEquals(expectedVolumes.size(), actualVolumes.keySet().size()); checkVolumesPerType(actualVolumes, expectedVolumes, nodeTemplateId); }); } - private void checkVolumesPerType(Map> - actualVolumes, Map expectedVolumes, String nodeTemplateId) { - List actualRequirementAssignmentData = actualVolumes.get(nodeTemplateId); + private void checkVolumesPerType(Multimap actualVolumes, + Map expectedVolumes, String nodeTemplateId) { + Collection actualRequirementAssignmentData = actualVolumes.get(nodeTemplateId); List requirementIds = Arrays.asList(expectedVolumes.get(nodeTemplateId)); Assert.assertEquals(requirementIds.size(), actualRequirementAssignmentData.size()); - actualRequirementAssignmentData.forEach(actualRequirementAssignment -> - Assert.assertTrue(requirementIds.contains(actualRequirementAssignment.getRequirementId()))); + actualRequirementAssignmentData.forEach(actualRequirementAssignment -> Assert.assertTrue( + requirementIds.contains(actualRequirementAssignment.getRequirementId()))); } private RequirementAssignment createRequirement(String nodeTemplateId) { @@ -137,4 +151,73 @@ public class ComputeTemplateConsolidationDataTest { requirementAssignment.setNode(nodeTemplateId); return requirementAssignment; } + + @Test + public void collectAllPortsOfEachTypeFromComputeKeyPresent() { + Map> portMap = new HashMap<>(); + portMap.put(PORT_NEUTRON, new ArrayList<>(Arrays.asList(PORT_NEUTRON_1, PORT_NEUTRON_2))); + + computeTemplateConsolidationData.setPorts(portMap); + + computeTemplateConsolidationData.collectAllPortsOfEachTypeFromCompute(mapToBeModified); + + Assert.assertTrue(mapToBeModified.size() == 1 && mapToBeModified.get(PORT_NEUTRON).size() == 3); + Assert.assertTrue(mapToBeModified.get(PORT_NEUTRON).containsAll( + Arrays.asList(PORT_NEUTRON_1, PORT_NEUTRON_2, PORT_NEUTRON_3))); + + } + + @Test + public void collectAllPortsOfEachTypeFromComputeKeyAbsent() { + Map> portMap = new HashMap<>(); + portMap.put(PORT_NEUTRON, new ArrayList<>(Arrays.asList(PORT_NEUTRON_1, PORT_NEUTRON_2))); + + computeTemplateConsolidationData.setPorts(portMap); + + Map> mapToBeModified = new HashMap<>(); + + computeTemplateConsolidationData.collectAllPortsOfEachTypeFromCompute(mapToBeModified); + + Assert.assertTrue(mapToBeModified.size() == 1 && Objects.nonNull(mapToBeModified.get(PORT_NEUTRON)) + && mapToBeModified.get(PORT_NEUTRON).size() == 2); + Assert.assertTrue(mapToBeModified.get(PORT_NEUTRON).containsAll( + Arrays.asList(PORT_NEUTRON_1, PORT_NEUTRON_2))); + } + + @Test + public void isNumberOfPortFromEachTypeLegal_Empty() { + Assert.assertTrue(computeTemplateConsolidationData.isNumberOfPortFromEachTypeLegal()); + } + + @Test + public void isNumberOfPortFromEachTypeLegal_OnePort() { + computeTemplateConsolidationData.setPorts(mapToBeModified); + + Assert.assertTrue(computeTemplateConsolidationData.isNumberOfPortFromEachTypeLegal()); + } + + @Test + public void isNumberOfPortFromEachTypeLegal_MultiplePorts() { + mapToBeModified.get(PORT_NEUTRON).addAll(Collections.singletonList("port_neutron_4")); + computeTemplateConsolidationData.setPorts(mapToBeModified); + + Assert.assertFalse(computeTemplateConsolidationData.isNumberOfPortFromEachTypeLegal()); + } + + @Test + public void getPortsIdsAndSizeEmpty() { + Assert.assertNotNull(computeTemplateConsolidationData.getPortsIds()); + Assert.assertEquals(0, computeTemplateConsolidationData.getNumberOfPorts()); + } + + @Test + public void getPortsIdsWithData() { + computeTemplateConsolidationData.setPorts(mapToBeModified); + Map.Entry entry = new AbstractMap.SimpleEntry<>("port_neutron", PORT_NEUTRON_3); + + Assert.assertNotNull(computeTemplateConsolidationData.getPortsIds()); + Assert.assertEquals(1, computeTemplateConsolidationData.getNumberOfPorts()); + Assert.assertEquals("port_neutron", + computeTemplateConsolidationData.getPorts().entrySet().stream().findFirst().get().getKey()); + } } 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/EntityConsolidationDataTest.java b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/datatypes/heattotosca/unifiedmodel/consolidation/EntityConsolidationDataTest.java index 447314c25f..e536647741 100644 --- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/datatypes/heattotosca/unifiedmodel/consolidation/EntityConsolidationDataTest.java +++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/datatypes/heattotosca/unifiedmodel/consolidation/EntityConsolidationDataTest.java @@ -16,7 +16,10 @@ package org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolidation; +import com.google.common.collect.Multimap; + import java.util.Arrays; +import java.util.Collection; import java.util.Collections; import java.util.HashMap; import java.util.List; @@ -38,6 +41,12 @@ public class EntityConsolidationDataTest { private static final String GROUP_ID_2 = "groupId2"; private static final String FIELD_1 = "field1"; private static final String FIELD_2 = "field2"; + private static final String SERVER_NETWORKROLE_1_PORT = "server_networkrole_1_port"; + private static final String SERVER_0_NETWORKROLE_1_PORT = "server_0_networkrole_1_port"; + private static final String SERVER_0_NETWORKROLE_2_PORT = "server_0_networkrole_2_port"; + private static final String VMAC_ADDRESS = "vmac_address"; + private static final String ACCESS_IPV4 = "accessIPv4"; + private static final String SERVER_1_NETWORKROLE_1_PORT = "server_1_networkrole_1_port"; private final EntityConsolidationData consolidationData = new EntityConsolidationData(); @@ -45,16 +54,16 @@ public class EntityConsolidationDataTest { @Test public void testIsGetAttrOutFromEntityLegal() { Map> ports = new HashMap<>(); - ports.put("server_networkrole_1_port", - Arrays.asList("server_0_networkrole_1_port", "server_1_networkrole_1_port")); + ports.put(SERVER_NETWORKROLE_1_PORT, + Arrays.asList(SERVER_0_NETWORKROLE_1_PORT, SERVER_1_NETWORKROLE_1_PORT)); - GetAttrFuncData getAttrFuncData = new GetAttrFuncData("vmac_address", "accessIPv4"); + GetAttrFuncData getAttrFuncData = new GetAttrFuncData(VMAC_ADDRESS, ACCESS_IPV4); Map> getAttOutMap = new HashMap<>(); - getAttOutMap.put("server_0_networkrole_1_port", Collections.singletonList(getAttrFuncData)); + getAttOutMap.put(SERVER_0_NETWORKROLE_1_PORT, Collections.singletonList(getAttrFuncData)); - GetAttrFuncData getAttrFuncData1 = new GetAttrFuncData("vmac_address", "accessIPv4"); + GetAttrFuncData getAttrFuncData1 = new GetAttrFuncData(VMAC_ADDRESS, ACCESS_IPV4); Map> getAttOutMap1 = new HashMap<>(); - getAttOutMap1.put("server_1_networkrole_1_port", Collections.singletonList(getAttrFuncData1)); + getAttOutMap1.put(SERVER_1_NETWORKROLE_1_PORT, Collections.singletonList(getAttrFuncData1)); EntityConsolidationData entityConsolidationData = new EntityConsolidationData(); @@ -71,12 +80,32 @@ public class EntityConsolidationDataTest { } @Test - public void testIsGetAttrOutFromEntityLegalNegative() { + public void testIsGetAttrOutFromEntityLegal_EntityConsolidationDataListEmptyOrNull() { + EntityConsolidationData entityConsolidationData = new EntityConsolidationData(); + + Assert.assertTrue(entityConsolidationData.isGetAttrOutFromEntityLegal(null, null)); + Assert.assertTrue(entityConsolidationData.isGetAttrOutFromEntityLegal( + Collections.emptyList(), Collections.emptyMap())); + } + + @Test + public void testIsGetAttrOutFromEntityLegal_PortTypeToIdsEmptyOrNull() { + EntityConsolidationData entityConsolidationData = new EntityConsolidationData(); + + Assert.assertTrue(entityConsolidationData.isGetAttrOutFromEntityLegal( + Collections.singletonList(entityConsolidationData), null)); + + Assert.assertTrue(entityConsolidationData.isGetAttrOutFromEntityLegal( + Collections.singletonList(entityConsolidationData), Collections.emptyMap())); + } + + @Test + public void testIsGetAttrOutFromEntityLegal_Negative() { Map> ports = new HashMap<>(); - ports.put("server_networkrole_1_port", - Arrays.asList("server_0_networkrole_1_port", "server_0_networkrole_2_port")); + ports.put(SERVER_NETWORKROLE_1_PORT, + Arrays.asList(SERVER_0_NETWORKROLE_1_PORT, SERVER_0_NETWORKROLE_2_PORT)); - GetAttrFuncData getAttrFuncData = new GetAttrFuncData("vmac_address", "accessIPv4"); + GetAttrFuncData getAttrFuncData = new GetAttrFuncData(VMAC_ADDRESS, ACCESS_IPV4); Map> getAttOutMap = new HashMap<>(); getAttOutMap.put("server_0_networkrole_1_port", Collections.singletonList(getAttrFuncData)); @@ -97,22 +126,34 @@ public class EntityConsolidationDataTest { } @Test - public void testIsGetAttrOutFromEntityLegalMultiplePortWithDiffAttr() { + public void testIsGetAttrOutFromEntityLegal_EmptyList() { + Map> ports = new HashMap<>(); + ports.put(SERVER_NETWORKROLE_1_PORT, + Arrays.asList(SERVER_0_NETWORKROLE_1_PORT, SERVER_0_NETWORKROLE_2_PORT)); + + EntityConsolidationData entityConsolidationData = new EntityConsolidationData(); + + Assert.assertTrue(entityConsolidationData + .isGetAttrOutFromEntityLegal(Collections.emptyList(), ports)); + } + + @Test + public void testIsGetAttrOutFromEntityLegal_MultiplePortWithDiffAttr() { Map> ports = new HashMap<>(); - ports.put("server_networkrole_1_port", - Arrays.asList("server_0_networkrole_1_port", "server_1_networkrole_1_port")); + ports.put(SERVER_NETWORKROLE_1_PORT, + Arrays.asList(SERVER_0_NETWORKROLE_1_PORT, SERVER_1_NETWORKROLE_1_PORT)); ports.put("server_networkrole_2_port", - Arrays.asList("server_0_networkrole_2_port", "server_0_networkrole_2_port")); + Arrays.asList(SERVER_0_NETWORKROLE_2_PORT, "server_1_networkrole_2_port")); - GetAttrFuncData getAttrFuncData = new GetAttrFuncData("vmac_address", "accessIPv4"); + GetAttrFuncData getAttrFuncData = new GetAttrFuncData(VMAC_ADDRESS, ACCESS_IPV4); Map> getAttOutMap = new HashMap<>(); - getAttOutMap.put("server_0_networkrole_1_port", Collections.singletonList(getAttrFuncData)); - getAttOutMap.put("server_0_networkrole_2_port", Collections.singletonList(getAttrFuncData)); + getAttOutMap.put(SERVER_0_NETWORKROLE_1_PORT, Collections.singletonList(getAttrFuncData)); + getAttOutMap.put(SERVER_0_NETWORKROLE_2_PORT, Collections.singletonList(getAttrFuncData)); - GetAttrFuncData getAttrFuncData1 = new GetAttrFuncData("vmac_address", "accessIPv4"); + GetAttrFuncData getAttrFuncData1 = new GetAttrFuncData(VMAC_ADDRESS, ACCESS_IPV4); Map> getAttOutMap1 = new HashMap<>(); - getAttOutMap.put("server_0_networkrole_1_port", Collections.singletonList(getAttrFuncData1)); + getAttOutMap1.put(SERVER_0_NETWORKROLE_1_PORT, Collections.singletonList(getAttrFuncData1)); EntityConsolidationData entityConsolidationData = new EntityConsolidationData(); @@ -230,15 +271,15 @@ public class EntityConsolidationDataTest { return getAttrFuncData; } - private void checkNodesConnected(Map> actualNodesConnected, + private void checkNodesConnected(Multimap actualNodesConnected, Map expectedNodesConnected) { Assert.assertNotNull(actualNodesConnected); expectedNodesConnected.keySet().forEach(expectedNodeTemplateId -> { Assert.assertTrue(actualNodesConnected.containsKey(expectedNodeTemplateId)); - Assert.assertEquals(expectedNodesConnected.size(), actualNodesConnected.size()); + Assert.assertEquals(expectedNodesConnected.size(), actualNodesConnected.keySet().size()); - List actualRequirementAssignmentData = + Collection actualRequirementAssignmentData = actualNodesConnected.get(expectedNodeTemplateId); List expectedRequirementIdList = Arrays.asList(expectedNodesConnected.get(expectedNodeTemplateId)); 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/FileComputeConsolidationDataTest.java b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/datatypes/heattotosca/unifiedmodel/consolidation/FileComputeConsolidationDataTest.java index 5d3d58e74c..aa71909c3c 100644 --- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/datatypes/heattotosca/unifiedmodel/consolidation/FileComputeConsolidationDataTest.java +++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/datatypes/heattotosca/unifiedmodel/consolidation/FileComputeConsolidationDataTest.java @@ -47,6 +47,9 @@ public class FileComputeConsolidationDataTest { @Mock private TypeComputeConsolidationData mockTypeComputeConsolidationData2; + @Mock + TypeComputeConsolidationData typeComputeConsolidationDataMock; + @Before public void setUp() { MockitoAnnotations.initMocks(this); @@ -122,6 +125,33 @@ public class FileComputeConsolidationDataTest { addAndCheckComputeTemplateConsolidationData(computeNodeType, COMPUTE_NODE_TEMPLATE_ID_2); } + @Test + public void isNumberOfComputeTypesLegalPositive() { + FileComputeConsolidationData fileComputeConsolidationData = new FileComputeConsolidationData(); + fileComputeConsolidationData.setTypeComputeConsolidationData("server_oam", + typeComputeConsolidationDataMock); + + Mockito.when(typeComputeConsolidationDataMock.isNumberOfComputeConsolidationDataPerTypeLegal()) + .thenReturn(true); + + Assert.assertTrue(fileComputeConsolidationData.isNumberOfComputeTypesLegal()); + } + + @Test + public void isNumberOfComputeTypesLegalNegative() { + TypeComputeConsolidationData typeComputeConsolidationData = new TypeComputeConsolidationData(); + typeComputeConsolidationData.setComputeTemplateConsolidationData( + "server_oam_1", new ComputeTemplateConsolidationData()); + typeComputeConsolidationData.setComputeTemplateConsolidationData( + "server_oam_2", new ComputeTemplateConsolidationData()); + + + FileComputeConsolidationData fileComputeConsolidationData = new FileComputeConsolidationData(); + fileComputeConsolidationData.setTypeComputeConsolidationData("server_oam", typeComputeConsolidationData); + + Assert.assertFalse(fileComputeConsolidationData.isNumberOfComputeTypesLegal()); + } + private void checkComputeConsolidationData(FileComputeConsolidationData fileComputeConsolidationData, String computeNodeType, Set expectedComputeNodeTypes) { TypeComputeConsolidationData typeComputeConsolidationData = 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/NestedConsolidationDataHandlerTest.java b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/datatypes/heattotosca/unifiedmodel/consolidation/NestedConsolidationDataHandlerTest.java new file mode 100644 index 0000000000..09dd9f8fad --- /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/NestedConsolidationDataHandlerTest.java @@ -0,0 +1,47 @@ +/* + * 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 org.junit.Before; +import org.junit.Test; +import org.mockito.Mock; +import org.mockito.Mockito; +import org.mockito.MockitoAnnotations; + +public class NestedConsolidationDataHandlerTest { + + private NestedConsolidationData nestedConsolidationData = new NestedConsolidationData(); + + @Mock + NestedConsolidationData nestedConsolidationDataMock; + + @Before + public void setUp() { + MockitoAnnotations.initMocks(this); + } + + @Test + public void isNestedConsolidationDataExist() { + String nestedFileName = "nestedFileName"; + NestedConsolidationDataHandler nestedConsolidationDataHandler = + new NestedConsolidationDataHandler(nestedConsolidationDataMock); + + nestedConsolidationDataHandler.isNestedConsolidationDataExist(nestedFileName); + + Mockito.verify(nestedConsolidationDataMock).isNestedConsolidationDataExist(nestedFileName); + } +} 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/NestedConsolidationDataTest.java b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/datatypes/heattotosca/unifiedmodel/consolidation/NestedConsolidationDataTest.java new file mode 100644 index 0000000000..d10acb6bba --- /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/NestedConsolidationDataTest.java @@ -0,0 +1,40 @@ +/* + * 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 org.junit.Assert; +import org.junit.Test; + +public class NestedConsolidationDataTest { + + @Test + public void isNestedConsolidationDataExistNotNull() { + String nestedFileName = "nestedFileName"; + + NestedConsolidationData nestedConsolidationData = new NestedConsolidationData(); + nestedConsolidationData.setFileNestedConsolidationData(nestedFileName, new FileNestedConsolidationData()); + + Assert.assertTrue(nestedConsolidationData.isNestedConsolidationDataExist(nestedFileName)); + } + + @Test + public void isNestedConsolidationDataExistNull() { + NestedConsolidationData nestedConsolidationData = new NestedConsolidationData(); + + Assert.assertFalse(nestedConsolidationData.isNestedConsolidationDataExist(null)); + } +} 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/TypeComputeConsolidationDataTest.java b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/datatypes/heattotosca/unifiedmodel/consolidation/TypeComputeConsolidationDataTest.java index 727dd5c43c..06fde3c506 100644 --- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/datatypes/heattotosca/unifiedmodel/consolidation/TypeComputeConsolidationDataTest.java +++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/datatypes/heattotosca/unifiedmodel/consolidation/TypeComputeConsolidationDataTest.java @@ -18,6 +18,7 @@ package org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolid import java.util.Arrays; import java.util.Collection; +import java.util.Collections; import java.util.HashMap; import java.util.HashSet; import java.util.List; @@ -27,21 +28,52 @@ import java.util.Set; import org.apache.commons.collections4.MapUtils; import org.junit.Assert; +import org.junit.Before; import org.junit.Test; +import org.mockito.Mock; +import org.mockito.Mockito; +import org.mockito.MockitoAnnotations; public class TypeComputeConsolidationDataTest { private static final String COMPUTE_NODE_TEMPLATE_ID_1 = "computeNodeTemplateId1"; private static final String COMPUTE_NODE_TEMPLATE_ID_2 = "computeNodeTemplateId2"; - private static final String SERVER_NETWORK_ROLE_1_PORT = "server_network_role_1_port"; - private static final String SERVER_NETWORK_ROLE_2_PORT = "server_network_role_2_port"; + private static final String SERVER_NETWORK_ROLE_1_PORT = "server_networkrole_1_port"; + private static final String SERVER_NETWORK_ROLE_2_PORT = "server_networkrole_2_port"; + private static final String SERVER_NETWORK_ROLE_1_PORT1 = "server_networkrole_1_port"; + private static final String SERVER_OAM = "server_oam"; + private static final String SERVER_CMAUI = "server_cmaui"; + private static final String SERVER_0_NETWORK_ROLE_1_PORT = "server_0_networkrole_1_port"; + private static final String SERVER_1_NETWORK_ROLE_1_PORT = "server_1_networkrole_1_port"; + private static final String SERVER_TYPE = "server_type"; + + @Mock + private ComputeTemplateConsolidationData computeTemplateConsolidationDataMock; + + @Before + public void setUp() { + MockitoAnnotations.initMocks(this); + } + + private Map> multipleNumberOfPortInEachTypeTypeMap = new HashMap>() { + { + put("oam_untr_port", Arrays.asList("oam_1_untr_port_1", "oam_1_untr_port_2")); + put("cmaui_untr_port", Arrays.asList("cmaui_1_untr_port_1", "cmaui_1_untr_port_2")); + } + }; + + private Map> singleNumberOfPortTypeMap = new HashMap>() { + { + put("oam_untr_port", Collections.singletonList("oam_1_untr_port_1")); + } + }; private final TypeComputeConsolidationData consolidationData = new TypeComputeConsolidationData(); @Test public void testCollectAllPortsOfEachTypeFromComputesNoPorts() { ComputeTemplateConsolidationData computeTemplateConsolidationData = new ComputeTemplateConsolidationData(); - consolidationData.setComputeTemplateConsolidationData("server_type", + consolidationData.setComputeTemplateConsolidationData(SERVER_TYPE, computeTemplateConsolidationData); Map> stringListMap = consolidationData.collectAllPortsOfEachTypeFromComputes(); @@ -52,12 +84,12 @@ public class TypeComputeConsolidationDataTest { public void testCollectAllPortsOfEachTypeFromComputes() { Map> ports = new HashMap<>(); ports.put(SERVER_NETWORK_ROLE_1_PORT, - Arrays.asList("server_0_network_role_1_port", "server_1_network_role_1_port")); + Arrays.asList(SERVER_0_NETWORK_ROLE_1_PORT, SERVER_1_NETWORK_ROLE_1_PORT)); ComputeTemplateConsolidationData computeTemplateConsolidationData = new ComputeTemplateConsolidationData(); computeTemplateConsolidationData.setPorts(ports); - consolidationData.setComputeTemplateConsolidationData("server_type", + consolidationData.setComputeTemplateConsolidationData(SERVER_TYPE, computeTemplateConsolidationData); Map> stringListMap = consolidationData.collectAllPortsOfEachTypeFromComputes(); @@ -81,19 +113,19 @@ public class TypeComputeConsolidationDataTest { ComputeTemplateConsolidationData computeTemplateConsolidationData1 = new ComputeTemplateConsolidationData(); computeTemplateConsolidationData1.setPorts(ports1); - consolidationData.setComputeTemplateConsolidationData("server_type", + consolidationData.setComputeTemplateConsolidationData(SERVER_TYPE, computeTemplateConsolidationData); consolidationData.setComputeTemplateConsolidationData("server_type1", computeTemplateConsolidationData1); Map> stringListMap = consolidationData.collectAllPortsOfEachTypeFromComputes(); - Assert.assertTrue(stringListMap.size() == 2); - Assert.assertTrue(stringListMap.get(SERVER_NETWORK_ROLE_1_PORT).size() == 2); + Assert.assertEquals(2, stringListMap.size()); + Assert.assertEquals(2, stringListMap.get(SERVER_NETWORK_ROLE_1_PORT).size()); Assert.assertTrue(stringListMap.get(SERVER_NETWORK_ROLE_1_PORT).contains("server_0_network_role_1_port_1") && stringListMap.get(SERVER_NETWORK_ROLE_1_PORT).contains("server_1_network_role_1_port_2")); - Assert.assertTrue(stringListMap.get(SERVER_NETWORK_ROLE_2_PORT).size() == 2); + Assert.assertEquals(2, stringListMap.get(SERVER_NETWORK_ROLE_2_PORT).size()); Assert.assertTrue(stringListMap.get(SERVER_NETWORK_ROLE_2_PORT).contains("server_0_network_role_2_port_1") && stringListMap.get(SERVER_NETWORK_ROLE_2_PORT).contains("server_1_network_role_2_port_2")); } @@ -136,6 +168,133 @@ public class TypeComputeConsolidationDataTest { Assert.assertNotEquals(firstComputeTemplateConsolidationData, secondComputeTemplateConsolidationData); } + @Test + public void isThereMoreThanOneComputeTypeInstancePositive() { + TypeComputeConsolidationData typeComputeConsolidationData = new TypeComputeConsolidationData(); + typeComputeConsolidationData.setComputeTemplateConsolidationData( + SERVER_OAM, new ComputeTemplateConsolidationData()); + typeComputeConsolidationData.setComputeTemplateConsolidationData( + "server_mao", new ComputeTemplateConsolidationData()); + + Assert.assertTrue(typeComputeConsolidationData.isThereMoreThanOneComputeTypeInstance()); + } + + @Test + public void isThereMoreThanOneComputeTypeInstanceNegative() { + TypeComputeConsolidationData typeComputeConsolidationData = new TypeComputeConsolidationData(); + typeComputeConsolidationData.setComputeTemplateConsolidationData( + "server_mao", new ComputeTemplateConsolidationData()); + + Assert.assertFalse(typeComputeConsolidationData.isThereMoreThanOneComputeTypeInstance()); + } + + @Test + public void isThereMoreThanOneComputeTypeInstanceEmpty() { + TypeComputeConsolidationData typeComputeConsolidationData = new TypeComputeConsolidationData(); + Assert.assertFalse(typeComputeConsolidationData.isThereMoreThanOneComputeTypeInstance()); + } + + @Test + public void isNumberOfPortFromEachTypeLegal() { + TypeComputeConsolidationData typeComputeConsolidationData = new TypeComputeConsolidationData(); + typeComputeConsolidationData.setComputeTemplateConsolidationData( + SERVER_OAM, computeTemplateConsolidationDataMock); + + typeComputeConsolidationData.isNumberOfPortFromEachTypeLegal(); + + Mockito.verify(computeTemplateConsolidationDataMock).isNumberOfPortFromEachTypeLegal(); + } + + @Test + public void isPortTypesAndNumberOfPortEqualsBetweenComputeNodesPositive() { + TypeComputeConsolidationData typeComputeConsolidationData = new TypeComputeConsolidationData(); + + ComputeTemplateConsolidationData firstComputeTemplate = new ComputeTemplateConsolidationData(); + firstComputeTemplate.setPorts(singleNumberOfPortTypeMap); + + ComputeTemplateConsolidationData secondComputeTemplate = new ComputeTemplateConsolidationData(); + secondComputeTemplate.setPorts(singleNumberOfPortTypeMap); + + typeComputeConsolidationData.setComputeTemplateConsolidationData(SERVER_OAM, firstComputeTemplate); + typeComputeConsolidationData.setComputeTemplateConsolidationData(SERVER_CMAUI, secondComputeTemplate); + + Assert.assertTrue(typeComputeConsolidationData.isPortTypesEqualsBetweenComputeNodes()); + Assert.assertTrue(typeComputeConsolidationData.isNumberOfPortsEqualsBetweenComputeNodes()); + } + + @Test + public void isPortTypesAndNumberOfPortEqualsBetweenComputeNodesNegative() { + TypeComputeConsolidationData typeComputeConsolidationData = new TypeComputeConsolidationData(); + + ComputeTemplateConsolidationData firstComputeTemplate = new ComputeTemplateConsolidationData(); + firstComputeTemplate.setPorts(multipleNumberOfPortInEachTypeTypeMap); + typeComputeConsolidationData.setComputeTemplateConsolidationData(SERVER_OAM, firstComputeTemplate); + + ComputeTemplateConsolidationData secondComputeTemplate = new ComputeTemplateConsolidationData(); + secondComputeTemplate.setPorts(singleNumberOfPortTypeMap); + typeComputeConsolidationData.setComputeTemplateConsolidationData(SERVER_CMAUI, secondComputeTemplate); + + Assert.assertFalse(typeComputeConsolidationData.isPortTypesEqualsBetweenComputeNodes()); + Assert.assertFalse(typeComputeConsolidationData.isNumberOfPortsEqualsBetweenComputeNodes()); + } + + @Test + public void isNumberOfComputeConsolidationDataPerTypeLegalPositive() { + TypeComputeConsolidationData typeComputeConsolidationData = new TypeComputeConsolidationData(); + typeComputeConsolidationData.setComputeTemplateConsolidationData( + SERVER_CMAUI, new ComputeTemplateConsolidationData()); + + Assert.assertTrue(typeComputeConsolidationData.isNumberOfComputeConsolidationDataPerTypeLegal()); + } + + @Test + public void isNumberOfComputeConsolidationDataPerTypeLegalNegative() { + TypeComputeConsolidationData typeComputeConsolidationData = new TypeComputeConsolidationData(); + typeComputeConsolidationData.setComputeTemplateConsolidationData( + SERVER_CMAUI, new ComputeTemplateConsolidationData()); + typeComputeConsolidationData.setComputeTemplateConsolidationData( + SERVER_OAM, new ComputeTemplateConsolidationData()); + + Assert.assertFalse(typeComputeConsolidationData.isNumberOfComputeConsolidationDataPerTypeLegal()); + } + + @Test + public void isGetAttrOutFromEntityLegal() { + Map> ports = new HashMap<>(); + ports.put(SERVER_NETWORK_ROLE_1_PORT1, + Arrays.asList(SERVER_0_NETWORK_ROLE_1_PORT, SERVER_1_NETWORK_ROLE_1_PORT)); + + Mockito.when(computeTemplateConsolidationDataMock.isGetAttrOutFromEntityLegal(Mockito.any(), Mockito.any())) + .thenReturn(true); + + TypeComputeConsolidationData typeComputeConsolidationData = new TypeComputeConsolidationData(); + typeComputeConsolidationData.setComputeTemplateConsolidationData("server_oam_1", computeTemplateConsolidationDataMock); + + Assert.assertTrue(typeComputeConsolidationData.isGetAttrOutFromEntityLegal(ports)); + Mockito.verify(computeTemplateConsolidationDataMock, Mockito.times(1)) + .isGetAttrOutFromEntityLegal(Mockito.any(), Mockito.any()); + } + + @Test + public void testIsGetAttrOutFromEntityLegalNegative() { + Map> ports = new HashMap<>(); + ports.put(SERVER_NETWORK_ROLE_1_PORT1, + Arrays.asList(SERVER_0_NETWORK_ROLE_1_PORT, SERVER_1_NETWORK_ROLE_1_PORT)); + + TypeComputeConsolidationData typeComputeConsolidationData = new TypeComputeConsolidationData(); + typeComputeConsolidationData.setComputeTemplateConsolidationData("server_oam_1", + computeTemplateConsolidationDataMock); + + Mockito.when(computeTemplateConsolidationDataMock.isGetAttrOutFromEntityLegal(Mockito.any(), Mockito.any())) + .thenReturn(false); + + Assert.assertFalse(typeComputeConsolidationData.isGetAttrOutFromEntityLegal(ports)); + + Mockito.verify(computeTemplateConsolidationDataMock, Mockito.times(1)) + .isGetAttrOutFromEntityLegal(Mockito.any(), Mockito.any()); + + } + private void verifyComputeTemplateConsolidationData(TypeComputeConsolidationData typeComputeConsolidationData, String computeNodeTemplateId, Set expectedComputeNodeTemplateIds) { ComputeTemplateConsolidationData computeTemplateConsolidationData = diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/UnifiedCompositionServiceTest.java b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/UnifiedCompositionServiceTest.java index 4eeecea3d1..92faf85541 100644 --- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/UnifiedCompositionServiceTest.java +++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/UnifiedCompositionServiceTest.java @@ -20,6 +20,9 @@ import static org.junit.Assert.assertEquals; import static org.mockito.Matchers.anyObject; import static org.mockito.Matchers.anyString; +import com.google.common.collect.ArrayListMultimap; +import com.google.common.collect.Multimap; + import org.apache.commons.lang3.tuple.ImmutablePair; import org.apache.commons.lang3.tuple.Pair; import org.junit.Before; @@ -1046,7 +1049,7 @@ public class UnifiedCompositionServiceTest { .put(MAIN_SERVICE_TEMPLATE_YAML, inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML)); context.addUnifiedNestedNodeTemplateId(MAIN_SERVICE_TEMPLATE_YAML, "server_pcm_001", "abstract_pcm_server_0"); - Map> nodeConnectedInList = + Multimap nodeConnectedInList = TestUtils.getNodeConnectedInList("server_pcm_001", inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML), DEPENDENCY); UnifiedCompositionData unifiedComposition = @@ -1080,7 +1083,7 @@ public class UnifiedCompositionServiceTest { .put(MAIN_SERVICE_TEMPLATE_YAML, inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML)); context.addUnifiedNestedNodeTemplateId(MAIN_SERVICE_TEMPLATE_YAML, "server_pcm_001", "abstract_pcm_server_0"); - Map> nodeConnectedInList = + Multimap nodeConnectedInList = TestUtils.getNodeConnectedInList("server_pcm_001", inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML), DEPENDENCY); UnifiedCompositionData unifiedComposition = @@ -1118,7 +1121,7 @@ public class UnifiedCompositionServiceTest { .put(MAIN_SERVICE_TEMPLATE_YAML, inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML)); context.addUnifiedNestedNodeTemplateId(MAIN_SERVICE_TEMPLATE_YAML, "server_pcm_001", "abstract_pcm_server_0"); - Map> nodeConnectedInList = + Multimap nodeConnectedInList = TestUtils.getNodeConnectedInList("server_pcm_001", inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML), DEPENDENCY); UnifiedCompositionData unifiedComposition = @@ -1317,7 +1320,7 @@ public class UnifiedCompositionServiceTest { TestUtils.getRequirementAssignmentDataList(computeNodeTemplate, "local_storage"); List requirementAssignmentList = (requirementAssignmentDataList.isPresent()) ? requirementAssignmentDataList.get() : null; - Map> volume = null; + Multimap volume = null; if (requirementAssignmentList != null) { volume = getVolume(requirementAssignmentList); } @@ -1329,7 +1332,7 @@ public class UnifiedCompositionServiceTest { NodeTemplate portNodeTemplate = DataModelUtil.getNodeTemplate(inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML), port.getRight()); - Map> nodeConnectedOut = + Multimap nodeConnectedOut = TestUtils.getNodeConnectedOutList(portNodeTemplate, "link"); PortTemplateConsolidationData portTemplateConsolidationData = TestUtils.createPortTemplateConsolidationData(port.getRight()); @@ -1370,14 +1373,14 @@ public class UnifiedCompositionServiceTest { DataModelUtil.getNodeTemplate(inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML), computeNodeTemplateId); Optional> requirementAssignmentDataList = TestUtils.getRequirementAssignmentDataList(computeNodeTemplate, "local_storage"); - Map> volume = null; + Multimap volume = null; if (requirementAssignmentDataList.isPresent()) { volume = getVolume(requirementAssignmentDataList.get()); } UnifiedCompositionData data = new UnifiedCompositionData(); - Map> computeNodeConnectedOut = + Multimap computeNodeConnectedOut = TestUtils.getNodeConnectedOutList(computeNodeTemplate, DEPENDENCY); - Map> computeNodeConnectedIn = + Multimap computeNodeConnectedIn = TestUtils .getNodeConnectedInList(computeNodeTemplateId, inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML), DEPENDENCY); @@ -1415,14 +1418,14 @@ public class UnifiedCompositionServiceTest { } } } - Map> portNodeConnectedOut = + Multimap portNodeConnectedOut = TestUtils.getNodeConnectedOutList(portNodeTemplate, "link"); PortTemplateConsolidationData portTemplateConsolidationData = TestUtils .createPortTemplateConsolidationData(port.getRight()); portTemplateConsolidationData.setNodesConnectedOut(portNodeConnectedOut); //Add node connected in info to test data - Map> portNodeConnectedIn = + Multimap portNodeConnectedIn = TestUtils.getNodeConnectedInList(port.getRight(), inputServiceTemplates.get(MAIN_SERVICE_TEMPLATE_YAML), PORT); portTemplateConsolidationData.setNodesConnectedIn(portNodeConnectedIn); @@ -1438,13 +1441,12 @@ public class UnifiedCompositionServiceTest { addGetAttrForPort(data); } - private Map> getVolume( + private Multimap getVolume( List requirementAssignmentList) { - Map> volume = new HashMap<>(); + Multimap volume = ArrayListMultimap.create(); for (RequirementAssignmentData requirementAssignmentData : requirementAssignmentList) { String volumeNodeTemplateId = requirementAssignmentData.getRequirementAssignment().getNode(); - volume.computeIfAbsent(volumeNodeTemplateId, k -> new ArrayList<>()); - volume.get(volumeNodeTemplateId).add(requirementAssignmentData); + volume.put(volumeNodeTemplateId, requirementAssignmentData); } return volume; } diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/buildconsolidationdata/ConsolidationDataTestUtil.java b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/buildconsolidationdata/ConsolidationDataTestUtil.java index 4381b37912..1fedc7b09c 100644 --- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/buildconsolidationdata/ConsolidationDataTestUtil.java +++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/buildconsolidationdata/ConsolidationDataTestUtil.java @@ -31,14 +31,19 @@ import static org.openecomp.sdc.translator.services.heattotosca.buildconsolidati import static org.openecomp.sdc.translator.services.heattotosca.buildconsolidationdata.TestConstants.TEST_SINGLE_NESTED_RESOURCE; import com.fasterxml.jackson.databind.ObjectMapper; + import com.google.common.collect.ArrayListMultimap; +import com.google.common.collect.Multimap; + import org.apache.commons.collections4.CollectionUtils; import org.junit.Assert; +import org.openecomp.sdc.tosca.datatypes.ToscaCapabilityType; import org.openecomp.sdc.tosca.datatypes.ToscaNodeType; import org.onap.sdc.tosca.datatypes.model.GroupDefinition; import org.onap.sdc.tosca.datatypes.model.NodeTemplate; import org.onap.sdc.tosca.datatypes.model.NodeType; import org.onap.sdc.tosca.datatypes.model.RequirementAssignment; import org.onap.sdc.tosca.datatypes.model.ServiceTemplate; +import org.openecomp.sdc.tosca.datatypes.ToscaRelationshipType; import org.openecomp.sdc.tosca.services.DataModelUtil; import org.openecomp.sdc.tosca.services.ToscaConstants; import org.openecomp.sdc.tosca.services.impl.ToscaAnalyzerServiceImpl; @@ -55,6 +60,7 @@ import org.openecomp.sdc.translator.services.heattotosca.ConsolidationDataUtil; import org.openecomp.sdc.translator.services.heattotosca.HeatToToscaUtil; import java.util.ArrayList; +import java.util.Collection; import java.util.HashMap; import java.util.Iterator; import java.util.LinkedHashMap; @@ -74,7 +80,7 @@ public class ConsolidationDataTestUtil { String testName) { Assert.assertNotNull(computeTemplateConsolidationData); //Get the volume information from consolidation data - Map> volumeConsolidationData = + Multimap volumeConsolidationData = computeTemplateConsolidationData.getVolumes(); if(testName.equals("Negative")) { @@ -111,20 +117,20 @@ public class ConsolidationDataTestUtil { } } - private static void isVolumeComputeRequirement(List computeVolumeRequirementsNodes, - Map> - volumeConsolidationData) { - Assert.assertEquals(computeVolumeRequirementsNodes.size(), volumeConsolidationData.size()); - for(String volumeNodeTemplateId : computeVolumeRequirementsNodes) { - Assert.assertNotNull(volumeConsolidationData.containsKey(volumeNodeTemplateId)); - List requirementAssignmentDataList = volumeConsolidationData.get - (volumeNodeTemplateId); - for(RequirementAssignmentData requirementAssignmentData : requirementAssignmentDataList){ - Assert.assertTrue(requirementAssignmentData.getRequirementId().equals(ToscaConstants - .LOCAL_STORAGE_REQUIREMENT_ID)); - } + private static void isVolumeComputeRequirement(List computeVolumeRequirementsNodes, + Multimap + volumeConsolidationData) { + Assert.assertEquals(computeVolumeRequirementsNodes.size(), volumeConsolidationData.size()); + for (String volumeNodeTemplateId : computeVolumeRequirementsNodes) { + Assert.assertNotNull(volumeConsolidationData.containsKey(volumeNodeTemplateId)); + Collection requirementAssignmentDataList = volumeConsolidationData.get + (volumeNodeTemplateId); + for (RequirementAssignmentData requirementAssignmentData : requirementAssignmentDataList) { + Assert.assertTrue(requirementAssignmentData.getRequirementId().equals(ToscaConstants + .LOCAL_STORAGE_REQUIREMENT_ID)); + } + } } - } public static void validatePortsInConsolidationData(String computeNodeTemplateId, @@ -151,94 +157,95 @@ public class ConsolidationDataTestUtil { } } - public static void validateDependsOnInConsolidationData(String computeNodeTemplateId, - ComputeTemplateConsolidationData computeTemplateConsolidationData, - ServiceTemplate outputServiceTemplate, - String testName) { - Map outputNodeTemplates = outputServiceTemplate.getTopology_template() - .getNode_templates(); - Map> nodesConnectedIn = - computeTemplateConsolidationData.getNodesConnectedIn(); - Map> nodesConnectedOut = - computeTemplateConsolidationData.getNodesConnectedOut(); - - if(testName.equals(TEST_DEPENDS_ON_INVALID_DEPENDENCY_CANDIDATE) || - testName.equals(TEST_DEPENDS_ON_NO_DEPENDENCY)) { - Assert.assertNull(nodesConnectedIn); - Assert.assertNull(nodesConnectedOut); - return; - } - //key - nodetemplate id , value - requirementassignment - Map> outputDependsOnNodeRequirementMap = new HashMap<>(); - for(Map.Entry entry : outputNodeTemplates.entrySet()) { - NodeTemplate nodeTemplate = entry.getValue(); - List> nodeRequirements = nodeTemplate.getRequirements(); - if(nodeRequirements != null){ - for(Map req : nodeRequirements) { - Set keySet = req.keySet(); - for(String key : keySet) { - if(key.equals(ToscaConstants.DEPENDS_ON_REQUIREMENT_ID)) - //collect all dependency requirements in a map with key -> node template id - outputDependsOnNodeRequirementMap.computeIfAbsent(entry.getKey(), k -> new ArrayList<>()) - .add(req.get(key)); - } + public static void validateDependsOnInConsolidationData(String computeNodeTemplateId, + ComputeTemplateConsolidationData + computeTemplateConsolidationData, + ServiceTemplate outputServiceTemplate, + String testName) { + Map outputNodeTemplates = outputServiceTemplate.getTopology_template() + .getNode_templates(); + Multimap nodesConnectedIn = + computeTemplateConsolidationData.getNodesConnectedIn(); + Multimap nodesConnectedOut = + computeTemplateConsolidationData.getNodesConnectedOut(); + + if (testName.equals(TEST_DEPENDS_ON_INVALID_DEPENDENCY_CANDIDATE) || + testName.equals(TEST_DEPENDS_ON_NO_DEPENDENCY)) { + Assert.assertNull(nodesConnectedIn); + Assert.assertNull(nodesConnectedOut); + return; + } + //key - nodetemplate id , value - requirementassignment + Multimap outputDependsOnNodeRequirementMap = ArrayListMultimap.create(); + for (Map.Entry entry : outputNodeTemplates.entrySet()) { + NodeTemplate nodeTemplate = entry.getValue(); + List> nodeRequirements = nodeTemplate.getRequirements(); + if (nodeRequirements != null) { + for (Map req : nodeRequirements) { + Set keySet = req.keySet(); + for (String key : keySet) { + if (key.equals(ToscaConstants.DEPENDS_ON_REQUIREMENT_ID)) + //collect all dependency requirements in a map with key -> node template id + { + outputDependsOnNodeRequirementMap.put(entry.getKey(), req.get(key)); + } + } + } + } } - } - } - if(testName.equals(TEST_DEPENDS_ON_NODES_CONNECTED_OUT)){ - Assert.assertNull(nodesConnectedIn); - validateDependsOnNodesConnectedOut(computeNodeTemplateId, nodesConnectedOut, - outputDependsOnNodeRequirementMap, outputServiceTemplate); - } + if (testName.equals(TEST_DEPENDS_ON_NODES_CONNECTED_OUT)) { + Assert.assertNull(nodesConnectedIn); + validateDependsOnNodesConnectedOut(computeNodeTemplateId, nodesConnectedOut, + outputDependsOnNodeRequirementMap, outputServiceTemplate); + } - if(testName.equals(TEST_DEPENDS_ON_NODES_CONNECTED_IN)){ - Assert.assertNull(nodesConnectedOut); - validateDependsOnNodesConnectedIn(computeNodeTemplateId, nodesConnectedIn, - outputDependsOnNodeRequirementMap, - outputServiceTemplate); - } + if (testName.equals(TEST_DEPENDS_ON_NODES_CONNECTED_IN)) { + Assert.assertNull(nodesConnectedOut); + validateDependsOnNodesConnectedIn(computeNodeTemplateId, nodesConnectedIn, + outputDependsOnNodeRequirementMap, + outputServiceTemplate); + } - if(testName.equals(TEST_DEPENDS_ON_NODES_CONNECTED_IN_AND_OUT)){ - Assert.assertNotNull(nodesConnectedIn); - Assert.assertNotNull(nodesConnectedOut); - validateDependsOnNodesConnectedOut(computeNodeTemplateId, nodesConnectedOut, - outputDependsOnNodeRequirementMap, - outputServiceTemplate); - validateDependsOnNodesConnectedIn(computeNodeTemplateId, nodesConnectedIn, - outputDependsOnNodeRequirementMap, - outputServiceTemplate); - } + if (testName.equals(TEST_DEPENDS_ON_NODES_CONNECTED_IN_AND_OUT)) { + Assert.assertNotNull(nodesConnectedIn); + Assert.assertNotNull(nodesConnectedOut); + validateDependsOnNodesConnectedOut(computeNodeTemplateId, nodesConnectedOut, + outputDependsOnNodeRequirementMap, + outputServiceTemplate); + validateDependsOnNodesConnectedIn(computeNodeTemplateId, nodesConnectedIn, + outputDependsOnNodeRequirementMap, + outputServiceTemplate); + } - if(testName.equals(TEST_DEPENDS_ON_MULTIPLE_COMPUTE)){ - if(nodesConnectedOut != null) - validateDependsOnNodesConnectedOut(computeNodeTemplateId, nodesConnectedOut, - outputDependsOnNodeRequirementMap, - outputServiceTemplate); - if(nodesConnectedIn != null) - validateDependsOnNodesConnectedIn(computeNodeTemplateId, nodesConnectedIn, - outputDependsOnNodeRequirementMap, - outputServiceTemplate); - } + if (testName.equals(TEST_DEPENDS_ON_MULTIPLE_COMPUTE)) { + if (nodesConnectedOut != null) { + validateDependsOnNodesConnectedOut(computeNodeTemplateId, nodesConnectedOut, + outputDependsOnNodeRequirementMap, + outputServiceTemplate); + } + if (nodesConnectedIn != null) { + validateDependsOnNodesConnectedIn(computeNodeTemplateId, nodesConnectedIn, + outputDependsOnNodeRequirementMap, + outputServiceTemplate); + } + } - } + } private static void validateDependsOnNodesConnectedIn(String computeNodeTemplateId, - Map> + Multimap nodesConnectedIn, - Map> + Multimap outputDependsOnNodeRequirementMap, ServiceTemplate outputServiceTemplate) { ToscaAnalyzerServiceImpl analyzerService = new ToscaAnalyzerServiceImpl(); - for(Map.Entry> entry : outputDependsOnNodeRequirementMap - .entrySet()) { - String sourceNodeTemplateId = entry.getKey(); + for(String sourceNodeTemplateId : outputDependsOnNodeRequirementMap.keySet()) { Optional sourceNodeTemplate = analyzerService.getNodeTemplateById (outputServiceTemplate, sourceNodeTemplateId); String sourceNodeType = sourceNodeTemplate.get().getType(); - for(Object obj : entry.getValue()){ + for(Object obj : outputDependsOnNodeRequirementMap.get(sourceNodeTemplateId)){ RequirementAssignment req = new ObjectMapper().convertValue(obj, RequirementAssignment .class); String targetNodeTemplateId = req.getNode(); @@ -255,8 +262,8 @@ public class ConsolidationDataTestUtil { if(isValidTargetForConnectedIn) { //Should be present if target node is compute or port - if(computeNodeTemplateId.equals(entry.getKey())) - Assert.assertTrue(nodesConnectedIn.containsKey(entry.getKey())); + if(computeNodeTemplateId.equals(sourceNodeTemplateId)) + Assert.assertTrue(nodesConnectedIn.containsKey(sourceNodeTemplateId)); } if(sourceNodeType.startsWith(ToscaNodeType.NOVA_SERVER) @@ -310,59 +317,61 @@ public class ConsolidationDataTestUtil { return false; } - private static void validateDependsOnNodesConnectedOut(String computeNodeTemplateId, - Map> - nodesConnectedOut, - Map> - outputDependsOnNodeRequirementMap, - ServiceTemplate outputServiceTemplate) { - ToscaAnalyzerServiceImpl analyzerService = new ToscaAnalyzerServiceImpl(); - //Iterating the map - for(Map.Entry> entry : outputDependsOnNodeRequirementMap - .entrySet()) { - String sourceNodeTemplateId = entry.getKey(); - Optional sourceNodeTemplate = analyzerService.getNodeTemplateById - (outputServiceTemplate, sourceNodeTemplateId); - String sourceNodeType = sourceNodeTemplate.get().getType(); - boolean isValidSourceForConnectedOut = false; - if(isComputeNodeType(outputServiceTemplate, sourceNodeType)) { - isValidSourceForConnectedOut = true; - } else if(isPortNodeType(outputServiceTemplate, sourceNodeType)) { - isValidSourceForConnectedOut = true; - } - for(Object obj : entry.getValue()){ - RequirementAssignment req = new ObjectMapper().convertValue(obj, RequirementAssignment - .class); - String targetNodeTemplateId = req.getNode(); - Optional targetNodeTemplate = analyzerService.getNodeTemplateById - (outputServiceTemplate, targetNodeTemplateId); - String targetNodeType = targetNodeTemplate.get().getType(); - - if(isValidSourceForConnectedOut) { - //Should be present if source node is compute or port - if(computeNodeTemplateId.equals(entry.getKey())) - Assert.assertTrue(nodesConnectedOut.containsKey(targetNodeTemplateId)); - } - - if(sourceNodeType.startsWith(ToscaNodeType.NOVA_SERVER) - && (targetNodeType.startsWith(ToscaNodeType.NOVA_SERVER) - || targetNodeType.startsWith(ToscaNodeType.NEUTRON_PORT) - || targetNodeType.startsWith(ToscaNodeType.CONTRAILV2_VIRTUAL_MACHINE_INTERFACE))) { - //Ignore Compute->Port, Compute->Compute, Compute->Volume relationship - Assert.assertFalse(nodesConnectedOut.containsKey(targetNodeTemplateId)); + private static void validateDependsOnNodesConnectedOut(String computeNodeTemplateId, + Multimap + nodesConnectedOut, + Multimap + outputDependsOnNodeRequirementMap, + ServiceTemplate outputServiceTemplate) { + ToscaAnalyzerServiceImpl analyzerService = new ToscaAnalyzerServiceImpl(); + //Iterating the map + /*for(Map.Entry> entry : outputDependsOnNodeRequirementMap + .entrySet()) {*/ + for (String sourceNodeTemplateId : outputDependsOnNodeRequirementMap.keySet()) { + Optional sourceNodeTemplate = analyzerService.getNodeTemplateById + (outputServiceTemplate, sourceNodeTemplateId); + + String sourceNodeType = sourceNodeTemplate.get().getType(); + boolean isValidSourceForConnectedOut = false; + if (isComputeNodeType(outputServiceTemplate, sourceNodeType)) { + isValidSourceForConnectedOut = true; + } else if (isPortNodeType(outputServiceTemplate, sourceNodeType)) { + isValidSourceForConnectedOut = true; + } + for (Object obj : outputDependsOnNodeRequirementMap.get(sourceNodeTemplateId)) { + RequirementAssignment req = new ObjectMapper().convertValue(obj, RequirementAssignment + .class); + String targetNodeTemplateId = req.getNode(); + Optional targetNodeTemplate = analyzerService.getNodeTemplateById + (outputServiceTemplate, targetNodeTemplateId); + String targetNodeType = targetNodeTemplate.get().getType(); + + if (isValidSourceForConnectedOut) { + //Should be present if source node is compute or port + if (computeNodeTemplateId.equals(sourceNodeTemplateId)) { + Assert.assertTrue(nodesConnectedOut.containsKey(targetNodeTemplateId)); + } + } + + if (sourceNodeType.startsWith(ToscaNodeType.NOVA_SERVER) + && (targetNodeType.startsWith(ToscaNodeType.NOVA_SERVER) + || targetNodeType.startsWith(ToscaNodeType.NEUTRON_PORT) + || targetNodeType.startsWith(ToscaNodeType.CONTRAILV2_VIRTUAL_MACHINE_INTERFACE))) { + //Ignore Compute->Port, Compute->Compute, Compute->Volume relationship + Assert.assertFalse(nodesConnectedOut.containsKey(targetNodeTemplateId)); + } + + if (sourceNodeType.startsWith(ToscaNodeType.NEUTRON_PORT) + && (targetNodeType.startsWith(ToscaNodeType.NOVA_SERVER) + || targetNodeType.startsWith(ToscaNodeType.NEUTRON_PORT) + || targetNodeType.startsWith(ToscaNodeType.CONTRAILV2_VIRTUAL_MACHINE_INTERFACE))) { + //Ignore Port->Port, Port->Compute, Port->Volume relationship + Assert.assertFalse(nodesConnectedOut.containsKey(targetNodeTemplateId)); + } + } } - if(sourceNodeType.startsWith(ToscaNodeType.NEUTRON_PORT) - && (targetNodeType.startsWith(ToscaNodeType.NOVA_SERVER) - || targetNodeType.startsWith(ToscaNodeType.NEUTRON_PORT) - || targetNodeType.startsWith(ToscaNodeType.CONTRAILV2_VIRTUAL_MACHINE_INTERFACE))) { - //Ignore Port->Port, Port->Compute, Port->Volume relationship - Assert.assertFalse(nodesConnectedOut.containsKey(targetNodeTemplateId)); - } - } } - } private static Map>> getPortsInConsolidationData(ServiceTemplate output){ @@ -453,180 +462,116 @@ public class ConsolidationDataTestUtil { Set nestedNodeTemplateIds = fileNestedConsolidationData.getAllNestedNodeTemplateIds(); if (nestedNodeTemplateIds != null) { - List fileNestedNodeTemplateIds = new ArrayList<>(); - fileNestedNodeTemplateIds.addAll(nestedNodeTemplateIds); + List fileNestedNodeTemplateIds = new ArrayList<>(nestedNodeTemplateIds); nestedNodeTemplateIdMap.put(fileName, fileNestedNodeTemplateIds); } } return nestedNodeTemplateIdMap; } - private static Map> getSubstituteMapping(Map - expectedServiceTemplateModels ){ - Map> map = new LinkedHashMap<>(); - for(String key : expectedServiceTemplateModels.keySet()){ - ServiceTemplate serviceTemplate = expectedServiceTemplateModels.get(key); - if(serviceTemplate.getTopology_template() != null && serviceTemplate - .getTopology_template().getNode_templates() != null) { - for (String key1 : serviceTemplate.getTopology_template().getNode_templates().keySet()) { - NodeTemplate nodeTemplate = serviceTemplate.getTopology_template().getNode_templates() - .get(key1); - if (nodeTemplate.getType().contains(ToscaNodeType.ABSTRACT_NODE_TYPE_PREFIX + "heat.")) { - - List subNodeTempIdList = map.get(key); - if (subNodeTempIdList == null) { - subNodeTempIdList = new ArrayList<>(); - map.put(key, subNodeTempIdList); + private static Map> getSubstituteMapping(Map + expectedServiceTemplateModels) { + Map> map = new LinkedHashMap<>(); + for (String key : expectedServiceTemplateModels.keySet()) { + ServiceTemplate serviceTemplate = expectedServiceTemplateModels.get(key); + if (serviceTemplate.getTopology_template() != null && serviceTemplate + .getTopology_template().getNode_templates() != null) { + for (String key1 : serviceTemplate.getTopology_template().getNode_templates().keySet()) { + NodeTemplate nodeTemplate = serviceTemplate.getTopology_template().getNode_templates() + .get(key1); + if (nodeTemplate.getType().contains(ToscaNodeType.ABSTRACT_NODE_TYPE_PREFIX + "heat.")) { + List subNodeTempIdList = map.computeIfAbsent(key, k -> new ArrayList<>()); + subNodeTempIdList.add(key1); + } + } } - subNodeTempIdList.add(key1); - } } - } + return map; } - return map; - } - public static void validateComputeConnectivityIn(ComputeTemplateConsolidationData - computeTemplateConsolidationData, - ServiceTemplate expectedServiceTemplate){ - Map> nodesConnectedIn = computeTemplateConsolidationData. - getNodesConnectedIn(); - if(nodesConnectedIn==null){ - return; - } - boolean found = false; - for(String nodeIdConnTo : nodesConnectedIn.keySet()){ - List connectToList = nodesConnectedIn.get(nodeIdConnTo); - List> requirementsList = expectedServiceTemplate - .getTopology_template().getNode_templates().get(nodeIdConnTo).getRequirements(); - for(RequirementAssignmentData requirementAssignmentData : connectToList) { - for (Map requirementAssignmentMap : requirementsList) { - RequirementAssignment requirementAssignment = - new ObjectMapper().convertValue(requirementAssignmentMap.values().iterator().next(), - RequirementAssignment.class); - if (requirementAssignment.getNode().equals(requirementAssignmentData.getRequirementAssignment().getNode())) { - Assert.assertEquals(requirementAssignment.getCapability(),requirementAssignmentData.getRequirementAssignment().getCapability()); - Assert.assertEquals(requirementAssignment.getNode(),requirementAssignmentData.getRequirementAssignment().getNode()); - Assert.assertEquals(requirementAssignment.getRelationship(),requirementAssignmentData.getRequirementAssignment() - .getRelationship()); - found = true; - } - } - if (!found) { - Assert.fail(); + public static void validateComputeConnectivityIn(ComputeTemplateConsolidationData + computeTemplateConsolidationData, + ServiceTemplate expectedServiceTemplate) { + Multimap nodesConnectedIn = + computeTemplateConsolidationData.getNodesConnectedIn(); + if (nodesConnectedIn == null) { + return; } - found = false; - } - } - } - public static void validateComputeConnectivityOut(String computeNodeTemplateId, - ComputeTemplateConsolidationData - computeTemplateConsolidationData, - ServiceTemplate expectedServiceTemplate){ - Map> nodesConnectedOut = computeTemplateConsolidationData. - getNodesConnectedOut(); - if(nodesConnectedOut==null){ - return; + validateConnectivity(null, nodesConnectedIn, expectedServiceTemplate); } - boolean found = false; - for(String nodeIdConnFrom : nodesConnectedOut.keySet()){ - List connectToList = nodesConnectedOut.get(nodeIdConnFrom); - List> requirementsList = expectedServiceTemplate - .getTopology_template().getNode_templates().get(computeNodeTemplateId).getRequirements(); - for(RequirementAssignmentData requirementAssignmentData : connectToList) { - for (Map requirementAssignmentMap : requirementsList) { - RequirementAssignment requirementAssignment = - new ObjectMapper().convertValue(requirementAssignmentMap.values().iterator().next(), - RequirementAssignment.class); - if (requirementAssignment.getNode().equals(requirementAssignmentData.getRequirementAssignment().getNode())) { - Assert.assertEquals(requirementAssignment.getCapability(),requirementAssignmentData.getRequirementAssignment().getCapability()); - Assert.assertEquals(requirementAssignment.getNode(),requirementAssignmentData.getRequirementAssignment().getNode()); - Assert.assertEquals(requirementAssignment.getRelationship(),requirementAssignmentData.getRequirementAssignment() - .getRelationship()); - found = true; - } - } - if (!found) { - Assert.fail(); + + public static void validateComputeConnectivityOut(String computeNodeTemplateId, + ComputeTemplateConsolidationData computeTemplateConsolidationData, + ServiceTemplate expectedServiceTemplate) { + Multimap nodesConnectedOut = + computeTemplateConsolidationData.getNodesConnectedOut(); + if (nodesConnectedOut == null) { + return; } - found = false; - } - } - } - public static void validatePortConnectivityIn(PortTemplateConsolidationData - portTemplateConsolidationData, - ServiceTemplate expectedServiceTemplate){ - Map> nodesConnectedIn = portTemplateConsolidationData. - getNodesConnectedIn(); - if(nodesConnectedIn==null){ - return; + validateConnectivity(computeNodeTemplateId, nodesConnectedOut, expectedServiceTemplate); } - boolean found = false; - for(String nodeIdConnTo : nodesConnectedIn.keySet()){ - List connectToList = nodesConnectedIn.get(nodeIdConnTo); - List> requirementsList = expectedServiceTemplate - .getTopology_template().getNode_templates().get(nodeIdConnTo).getRequirements(); - for(RequirementAssignmentData requirementAssignmentData : connectToList) { - for (Map requirementAssignmentMap : requirementsList) { - RequirementAssignment requirementAssignment = - new ObjectMapper().convertValue(requirementAssignmentMap.values().iterator().next(), - RequirementAssignment.class); - if (requirementAssignment.getNode().equals(requirementAssignmentData.getRequirementAssignment().getNode())) { - Assert.assertEquals(requirementAssignment.getCapability(),requirementAssignmentData.getRequirementAssignment().getCapability()); - Assert.assertEquals(requirementAssignment.getNode(),requirementAssignmentData.getRequirementAssignment().getNode()); - Assert.assertEquals(requirementAssignment.getRelationship(),requirementAssignmentData.getRequirementAssignment() - .getRelationship()); - found = true; - } - } - if (!found) { - Assert.fail(); + + public static void validatePortConnectivityIn(PortTemplateConsolidationData portTemplateConsolidationData, + ServiceTemplate expectedServiceTemplate) { + Multimap nodesConnectedIn = + portTemplateConsolidationData.getNodesConnectedIn(); + if (nodesConnectedIn == null) { + return; } - found = false; - } - } - } - public static void validatePortConnectivityOut(String portNodeTemplateId, - PortTemplateConsolidationData - portTemplateConsolidationData, - ServiceTemplate expectedServiceTemplate){ - Map> nodesConnectedOut = - portTemplateConsolidationData.getNodesConnectedOut(); - if(nodesConnectedOut==null){ - return; + validateConnectivity(null, nodesConnectedIn, expectedServiceTemplate); } - boolean found = false; - for(String nodeIdConnFrom : nodesConnectedOut.keySet()){ - List connectToList = nodesConnectedOut.get(nodeIdConnFrom); - List> requirementsList = expectedServiceTemplate - .getTopology_template().getNode_templates().get(portNodeTemplateId).getRequirements(); - for(RequirementAssignmentData requirementAssignmentData : connectToList) { - for (Map requirementAssignmentMap : requirementsList) { - RequirementAssignment requirementAssignment = - new ObjectMapper().convertValue(requirementAssignmentMap.values().iterator().next(), - RequirementAssignment.class); - if (requirementAssignment.getNode().equals(requirementAssignmentData.getRequirementAssignment().getNode())) { - Assert.assertEquals(requirementAssignment.getCapability(),requirementAssignmentData.getRequirementAssignment().getCapability()); - Assert.assertEquals(requirementAssignment.getNode(),requirementAssignmentData.getRequirementAssignment().getNode()); - Assert.assertEquals(requirementAssignment.getRelationship(),requirementAssignmentData.getRequirementAssignment() - .getRelationship()); - found = true; - } + + public static void validatePortConnectivityOut(String portNodeTemplateId, + PortTemplateConsolidationData portTemplateConsolidationData, + ServiceTemplate expectedServiceTemplate) { + Multimap nodesConnectedOut = + portTemplateConsolidationData.getNodesConnectedOut(); + if (nodesConnectedOut == null) { + return; } - if (!found) { - Assert.fail(); + + validateConnectivity(portNodeTemplateId, nodesConnectedOut, expectedServiceTemplate); + } + + private static void validateConnectivity(String nodeTemplateId, + Multimap nodesConnected, + ServiceTemplate expectedServiceTemplate) { + boolean found = false; + for (String nodeIdConnTo : nodesConnected.keySet()) { + Collection connectToList = nodesConnected.get(nodeIdConnTo); + List> requirementsList = expectedServiceTemplate + .getTopology_template().getNode_templates() + .get(nodeTemplateId != null ? nodeTemplateId : nodeIdConnTo).getRequirements(); + + for (RequirementAssignmentData requirementAssignmentData : connectToList) { + for (Map requirementAssignmentMap : requirementsList) { + RequirementAssignment requirementAssignment = + new ObjectMapper().convertValue(requirementAssignmentMap.values().iterator().next(), + RequirementAssignment.class); + if (requirementAssignment.getNode() + .equals(requirementAssignmentData.getRequirementAssignment().getNode())) { + Assert.assertEquals(requirementAssignment.getCapability(), + requirementAssignmentData.getRequirementAssignment().getCapability()); + Assert.assertEquals(requirementAssignment.getNode(), + requirementAssignmentData.getRequirementAssignment().getNode()); + Assert.assertEquals(requirementAssignment.getRelationship(), + requirementAssignmentData.getRequirementAssignment() + .getRelationship()); + found = true; + } + } + if (!found) { + Assert.fail(); + } + found = false; + } } - found = false; - } } - } - public static void validateGetAttr(TranslationContext translationContext, Map - expectedServiceTemplateModels,String testName){ + public static void validateGetAttr(TranslationContext translationContext, String testName){ ConsolidationData consolidationData = translationContext.getConsolidationData(); Assert.assertNotNull(consolidationData); if(TestConstants.TEST_GET_ATTR_FOR_MORE_THAN_ONE_ATTR_IN_ATTR_LIST.equals(testName)){ @@ -788,328 +733,317 @@ public class ConsolidationDataTestUtil { } } - public static void validateNestedConsolidationData(TranslationContext context, - String testName) { - ConsolidationData consolidationData = context.getConsolidationData(); - if (testName.equals(TEST_SINGLE_NESTED_RESOURCE)) { - String nestedNodeTemplateId = "server_pcm_001"; - NestedTemplateConsolidationData nestedTemplateConsolidationData = - consolidationData.getNestedConsolidationData() - .getFileNestedConsolidationData(MAIN_SERVICE_TEMPLATE) - .getNestedTemplateConsolidationData(nestedNodeTemplateId); - //Validate basic null attributes - validateBasicNestedConsolidationData(nestedTemplateConsolidationData); - //Validate nodeTemplateId - Assert.assertEquals(nestedTemplateConsolidationData.getNodeTemplateId(), nestedNodeTemplateId); - //Validate nodes connected in (will only be populated for dependsOn relationships) - Map> nodesConnectedIn = - nestedTemplateConsolidationData.getNodesConnectedIn(); - List dependentNodes = new LinkedList<>(); - dependentNodes.add("packet_mirror_network"); - - //Validate get attribute in - Map> nodesGetAttrIn = - nestedTemplateConsolidationData.getNodesGetAttrIn(); - String getAttrNodeTemplateId = "server_compute_get_attr_test"; - List getAttrFuncData = nodesGetAttrIn.get(getAttrNodeTemplateId); - Assert.assertNotNull(getAttrFuncData); - Assert.assertEquals(getAttrFuncData.size(), 2); - Assert.assertEquals(getAttrFuncData.get(0).getFieldName(), "metadata"); - Assert.assertEquals(getAttrFuncData.get(0).getAttributeName(), "server_pcm_id"); - Assert.assertEquals(getAttrFuncData.get(1).getFieldName(), "user_data_format"); - Assert.assertEquals(getAttrFuncData.get(1).getAttributeName(), "oam_net_gw"); - - //Validate output parameter get attribute in - List outputParametersGetAttrIn = - nestedTemplateConsolidationData.getOutputParametersGetAttrIn(); - Assert.assertNotNull(outputParametersGetAttrIn); - Assert.assertEquals(outputParametersGetAttrIn.size(), 1); - Assert.assertEquals(outputParametersGetAttrIn.get(0).getFieldName(), "output_attr_1"); - Assert.assertEquals(outputParametersGetAttrIn.get(0).getAttributeName(), "pcm_vol"); - - } else if (testName.equals(TEST_MULTIPLE_NESTED_RESOURCE)) { - List nestedNodeTemplateIds = new ArrayList<>(); - nestedNodeTemplateIds.add("server_pcm_001"); - nestedNodeTemplateIds.add("server_pcm_002"); - nestedNodeTemplateIds.add("server_pcm_003"); - - for (String nestedNodeTemplateId : nestedNodeTemplateIds) { - NestedTemplateConsolidationData nestedTemplateConsolidationData = - consolidationData.getNestedConsolidationData() - .getFileNestedConsolidationData(MAIN_SERVICE_TEMPLATE) - .getNestedTemplateConsolidationData(nestedNodeTemplateId); - //Validate basic null attributes - validateBasicNestedConsolidationData(nestedTemplateConsolidationData); - //Validate nodeTemplateId - Assert.assertEquals(nestedTemplateConsolidationData.getNodeTemplateId(), - nestedNodeTemplateId); - if (nestedNodeTemplateId.equals("server_pcm_001")) { - //Validate nodes connected in (will only be populated for dependsOn relationships) - Map> nodesConnectedIn = - nestedTemplateConsolidationData.getNodesConnectedIn(); - List dependentNodes = new LinkedList<>(); - dependentNodes.add("packet_mirror_network"); - } else { - Assert.assertNull(nestedTemplateConsolidationData.getNodesConnectedIn()); + public static void validateNestedConsolidationData(TranslationContext context, + String testName) { + ConsolidationData consolidationData = context.getConsolidationData(); + if (testName.equals(TEST_SINGLE_NESTED_RESOURCE)) { + String nestedNodeTemplateId = "server_pcm_001"; + NestedTemplateConsolidationData nestedTemplateConsolidationData = + consolidationData.getNestedConsolidationData() + .getFileNestedConsolidationData(MAIN_SERVICE_TEMPLATE) + .getNestedTemplateConsolidationData(nestedNodeTemplateId); + //Validate basic null attributes + validateBasicNestedConsolidationData(nestedTemplateConsolidationData); + //Validate nodeTemplateId + Assert.assertEquals(nestedTemplateConsolidationData.getNodeTemplateId(), nestedNodeTemplateId); + //Validate nodes connected in (will only be populated for dependsOn relationships) + List dependentNodes = new LinkedList<>(); + dependentNodes.add("packet_mirror_network"); + + //Validate get attribute in + Map> nodesGetAttrIn = + nestedTemplateConsolidationData.getNodesGetAttrIn(); + String getAttrNodeTemplateId = "server_compute_get_attr_test"; + List getAttrFuncData = nodesGetAttrIn.get(getAttrNodeTemplateId); + Assert.assertNotNull(getAttrFuncData); + Assert.assertEquals(getAttrFuncData.size(), 2); + Assert.assertEquals(getAttrFuncData.get(0).getFieldName(), "metadata"); + Assert.assertEquals(getAttrFuncData.get(0).getAttributeName(), "server_pcm_id"); + Assert.assertEquals(getAttrFuncData.get(1).getFieldName(), "user_data_format"); + Assert.assertEquals(getAttrFuncData.get(1).getAttributeName(), "oam_net_gw"); + + //Validate output parameter get attribute in + List outputParametersGetAttrIn = + nestedTemplateConsolidationData.getOutputParametersGetAttrIn(); + Assert.assertNotNull(outputParametersGetAttrIn); + Assert.assertEquals(outputParametersGetAttrIn.size(), 1); + Assert.assertEquals(outputParametersGetAttrIn.get(0).getFieldName(), "output_attr_1"); + Assert.assertEquals(outputParametersGetAttrIn.get(0).getAttributeName(), "pcm_vol"); + + } else if (testName.equals(TEST_MULTIPLE_NESTED_RESOURCE)) { + List nestedNodeTemplateIds = new ArrayList<>(); + nestedNodeTemplateIds.add("server_pcm_001"); + nestedNodeTemplateIds.add("server_pcm_002"); + nestedNodeTemplateIds.add("server_pcm_003"); + + for (String nestedNodeTemplateId : nestedNodeTemplateIds) { + NestedTemplateConsolidationData nestedTemplateConsolidationData = + consolidationData.getNestedConsolidationData() + .getFileNestedConsolidationData(MAIN_SERVICE_TEMPLATE) + .getNestedTemplateConsolidationData(nestedNodeTemplateId); + //Validate basic null attributes + validateBasicNestedConsolidationData(nestedTemplateConsolidationData); + //Validate nodeTemplateId + Assert.assertEquals(nestedTemplateConsolidationData.getNodeTemplateId(), + nestedNodeTemplateId); + if (!nestedNodeTemplateId.equals("server_pcm_001")) { + Assert.assertNull(nestedTemplateConsolidationData.getNodesConnectedIn()); + } + } + String nestedNodeTemplateId = "server_pcm_001"; + + //Validate get attribute in + NestedTemplateConsolidationData nestedTemplateConsolidationData = + consolidationData.getNestedConsolidationData() + .getFileNestedConsolidationData(MAIN_SERVICE_TEMPLATE) + .getNestedTemplateConsolidationData("server_pcm_002"); + Map> nodesGetAttrIn = + nestedTemplateConsolidationData.getNodesGetAttrIn(); + String getAttrNodeTemplateId = "server_pcm_001"; + List getAttrFuncData = nodesGetAttrIn.get(getAttrNodeTemplateId); + Assert.assertNotNull(getAttrFuncData); + Assert.assertEquals(getAttrFuncData.size(), 1); + Assert.assertEquals(getAttrFuncData.get(0).getFieldName(), "user_data_format"); + Assert.assertEquals(getAttrFuncData.get(0).getAttributeName(), "pcm_vol"); + //Validate output parameter get attribute in + List outputParametersGetAttrIn = + nestedTemplateConsolidationData.getOutputParametersGetAttrIn(); + Assert.assertNotNull(outputParametersGetAttrIn); + Assert.assertEquals(outputParametersGetAttrIn.size(), 1); + Assert.assertEquals(outputParametersGetAttrIn.get(0).getFieldName(), "output_attr_2"); + Assert.assertEquals(outputParametersGetAttrIn.get(0).getAttributeName(), "oam_net_ip"); + + + nestedTemplateConsolidationData = consolidationData.getNestedConsolidationData() + .getFileNestedConsolidationData(MAIN_SERVICE_TEMPLATE) + .getNestedTemplateConsolidationData("server_pcm_001"); + nodesGetAttrIn = nestedTemplateConsolidationData.getNodesGetAttrIn(); + getAttrNodeTemplateId = "server_pcm_002"; + getAttrFuncData = nodesGetAttrIn.get(getAttrNodeTemplateId); + Assert.assertNotNull(getAttrFuncData); + Assert.assertEquals(getAttrFuncData.size(), 1); + Assert.assertEquals(getAttrFuncData.get(0).getFieldName(), "metadata"); + Assert.assertEquals(getAttrFuncData.get(0).getAttributeName(), "server_pcm_id"); + //Validate output parameter get attribute in + outputParametersGetAttrIn = nestedTemplateConsolidationData.getOutputParametersGetAttrIn(); + Assert.assertNotNull(outputParametersGetAttrIn); + Assert.assertEquals(outputParametersGetAttrIn.size(), 1); + Assert.assertEquals(outputParametersGetAttrIn.get(0).getFieldName(), "output_attr_1"); + Assert.assertEquals(outputParametersGetAttrIn.get(0).getAttributeName(), "pcm_vol"); + + nestedTemplateConsolidationData = consolidationData.getNestedConsolidationData() + .getFileNestedConsolidationData(MAIN_SERVICE_TEMPLATE) + .getNestedTemplateConsolidationData("server_pcm_003"); + Assert.assertNull(nestedTemplateConsolidationData.getNodesGetAttrIn()); + Assert.assertNull(nestedTemplateConsolidationData.getOutputParametersGetAttrIn()); + + } else if (testName.equals(TEST_MULTIPLE_MULTI_LEVEL_NESTED_RESOURCE)) { + String nestedNodeTemplateId = "test_nested"; + NestedTemplateConsolidationData nestedTemplateConsolidationData = + consolidationData.getNestedConsolidationData() + .getFileNestedConsolidationData(MAIN_SERVICE_TEMPLATE) + .getNestedTemplateConsolidationData(nestedNodeTemplateId); + //Validate basic null attributes + validateBasicNestedConsolidationData(nestedTemplateConsolidationData); + //Validate nodeTemplateId + Assert.assertEquals(nestedTemplateConsolidationData.getNodeTemplateId(), + nestedNodeTemplateId); + //Validate nodes connected in (will only be populated for dependsOn relationships) + Multimap nodesConnectedIn = + nestedTemplateConsolidationData.getNodesConnectedIn(); + List dependentNodes = new LinkedList<>(); + dependentNodes.add("packet_mirror_network"); + //Validate output parameter get attribute in + List getAttrFuncData = + nestedTemplateConsolidationData.getNodesGetAttrIn().get("packet_mirror_network"); + Assert.assertNotNull(getAttrFuncData); + Assert.assertEquals(getAttrFuncData.size(), 1); + Assert.assertEquals(getAttrFuncData.get(0).getFieldName(), "shared"); + Assert.assertEquals(getAttrFuncData.get(0).getAttributeName(), "output_attr_1"); + Assert.assertNull(nestedTemplateConsolidationData.getOutputParametersGetAttrIn()); + + nestedNodeTemplateId = "test_nested2"; + nestedTemplateConsolidationData = consolidationData.getNestedConsolidationData() + .getFileNestedConsolidationData("nestedServiceTemplate.yaml") + .getNestedTemplateConsolidationData(nestedNodeTemplateId); + //Validate basic null attributes + validateBasicNestedConsolidationData(nestedTemplateConsolidationData); + //Validate nodeTemplateId + Assert.assertEquals(nestedTemplateConsolidationData.getNodeTemplateId(), + nestedNodeTemplateId); + Assert.assertNull(nestedTemplateConsolidationData.getNodesConnectedIn()); + //Validate output parameter get attribute in + getAttrFuncData = nestedTemplateConsolidationData.getNodesGetAttrIn().get("server_cmaui_1"); + Assert.assertNotNull(getAttrFuncData); + Assert.assertEquals(getAttrFuncData.size(), 1); + Assert.assertEquals(getAttrFuncData.get(0).getFieldName(), "metadata"); + Assert.assertEquals(getAttrFuncData.get(0).getAttributeName(), "availability_zone_0"); + + List outputParametersGetAttrIn1 = + nestedTemplateConsolidationData.getOutputParametersGetAttrIn(); + Assert.assertNotNull(outputParametersGetAttrIn1); + Assert.assertEquals(outputParametersGetAttrIn1.size(), 1); + Assert.assertEquals(outputParametersGetAttrIn1.get(0).getFieldName(), "output_attr_1"); + Assert.assertEquals(outputParametersGetAttrIn1.get(0).getAttributeName(), "availability_zone_0"); } - } - String nestedNodeTemplateId = "server_pcm_001"; - - //Validate get attribute in - NestedTemplateConsolidationData nestedTemplateConsolidationData = - consolidationData.getNestedConsolidationData() - .getFileNestedConsolidationData(MAIN_SERVICE_TEMPLATE) - .getNestedTemplateConsolidationData("server_pcm_002"); - Map> nodesGetAttrIn = - nestedTemplateConsolidationData.getNodesGetAttrIn(); - String getAttrNodeTemplateId = "server_pcm_001"; - List getAttrFuncData = nodesGetAttrIn.get(getAttrNodeTemplateId); - Assert.assertNotNull(getAttrFuncData); - Assert.assertEquals(getAttrFuncData.size(), 1); - Assert.assertEquals(getAttrFuncData.get(0).getFieldName(), "user_data_format"); - Assert.assertEquals(getAttrFuncData.get(0).getAttributeName(), "pcm_vol"); - //Validate output parameter get attribute in - List outputParametersGetAttrIn = - nestedTemplateConsolidationData.getOutputParametersGetAttrIn(); - Assert.assertNotNull(outputParametersGetAttrIn); - Assert.assertEquals(outputParametersGetAttrIn.size(), 1); - Assert.assertEquals(outputParametersGetAttrIn.get(0).getFieldName(), "output_attr_2"); - Assert.assertEquals(outputParametersGetAttrIn.get(0).getAttributeName(), "oam_net_ip"); - - - nestedTemplateConsolidationData = consolidationData.getNestedConsolidationData() - .getFileNestedConsolidationData(MAIN_SERVICE_TEMPLATE) - .getNestedTemplateConsolidationData("server_pcm_001"); - nodesGetAttrIn = nestedTemplateConsolidationData.getNodesGetAttrIn(); - getAttrNodeTemplateId = "server_pcm_002"; - getAttrFuncData = nodesGetAttrIn.get(getAttrNodeTemplateId); - Assert.assertNotNull(getAttrFuncData); - Assert.assertEquals(getAttrFuncData.size(), 1); - Assert.assertEquals(getAttrFuncData.get(0).getFieldName(), "metadata"); - Assert.assertEquals(getAttrFuncData.get(0).getAttributeName(), "server_pcm_id"); - //Validate output parameter get attribute in - outputParametersGetAttrIn = nestedTemplateConsolidationData.getOutputParametersGetAttrIn(); - Assert.assertNotNull(outputParametersGetAttrIn); - Assert.assertEquals(outputParametersGetAttrIn.size(), 1); - Assert.assertEquals(outputParametersGetAttrIn.get(0).getFieldName(), "output_attr_1"); - Assert.assertEquals(outputParametersGetAttrIn.get(0).getAttributeName(), "pcm_vol"); - - nestedTemplateConsolidationData = consolidationData.getNestedConsolidationData() - .getFileNestedConsolidationData(MAIN_SERVICE_TEMPLATE) - .getNestedTemplateConsolidationData("server_pcm_003"); - Assert.assertNull(nestedTemplateConsolidationData.getNodesGetAttrIn()); - Assert.assertNull(nestedTemplateConsolidationData.getOutputParametersGetAttrIn()); - - } else if (testName.equals(TEST_MULTIPLE_MULTI_LEVEL_NESTED_RESOURCE)) { - String nestedNodeTemplateId = "test_nested"; - NestedTemplateConsolidationData nestedTemplateConsolidationData = - consolidationData.getNestedConsolidationData() - .getFileNestedConsolidationData(MAIN_SERVICE_TEMPLATE) - .getNestedTemplateConsolidationData(nestedNodeTemplateId); - //Validate basic null attributes - validateBasicNestedConsolidationData(nestedTemplateConsolidationData); - //Validate nodeTemplateId - Assert.assertEquals(nestedTemplateConsolidationData.getNodeTemplateId(), - nestedNodeTemplateId); - //Validate nodes connected in (will only be populated for dependsOn relationships) - Map> nodesConnectedIn = - nestedTemplateConsolidationData.getNodesConnectedIn(); - List dependentNodes = new LinkedList<>(); - dependentNodes.add("packet_mirror_network"); - //Validate output parameter get attribute in - List getAttrFuncData = - nestedTemplateConsolidationData.getNodesGetAttrIn().get("packet_mirror_network"); - Assert.assertNotNull(getAttrFuncData); - Assert.assertEquals(getAttrFuncData.size(), 1); - Assert.assertEquals(getAttrFuncData.get(0).getFieldName(), "shared"); - Assert.assertEquals(getAttrFuncData.get(0).getAttributeName(), "output_attr_1"); - Assert.assertNull(nestedTemplateConsolidationData.getOutputParametersGetAttrIn()); - - nestedNodeTemplateId = "test_nested2"; - nestedTemplateConsolidationData = consolidationData.getNestedConsolidationData() - .getFileNestedConsolidationData("nestedServiceTemplate.yaml") - .getNestedTemplateConsolidationData(nestedNodeTemplateId); - //Validate basic null attributes - validateBasicNestedConsolidationData(nestedTemplateConsolidationData); - //Validate nodeTemplateId - Assert.assertEquals(nestedTemplateConsolidationData.getNodeTemplateId(), - nestedNodeTemplateId); - Assert.assertNull(nestedTemplateConsolidationData.getNodesConnectedIn()); - //Validate output parameter get attribute in - getAttrFuncData = nestedTemplateConsolidationData.getNodesGetAttrIn().get("server_cmaui_1"); - Assert.assertNotNull(getAttrFuncData); - Assert.assertEquals(getAttrFuncData.size(), 1); - Assert.assertEquals(getAttrFuncData.get(0).getFieldName(), "metadata"); - Assert.assertEquals(getAttrFuncData.get(0).getAttributeName(), "availability_zone_0"); - - List outputParametersGetAttrIn1 = - nestedTemplateConsolidationData.getOutputParametersGetAttrIn(); - Assert.assertNotNull(outputParametersGetAttrIn1); - Assert.assertEquals(outputParametersGetAttrIn1.size(), 1); - Assert.assertEquals(outputParametersGetAttrIn1.get(0).getFieldName(), "output_attr_1"); - Assert.assertEquals(outputParametersGetAttrIn1.get(0).getAttributeName(), "availability_zone_0"); } - } - private static void validateBasicNestedConsolidationData(NestedTemplateConsolidationData - nestedTemplateConsolidationData) { - Assert.assertNull(nestedTemplateConsolidationData.getGroupIds()); - Assert.assertNull(nestedTemplateConsolidationData.getNodesConnectedOut()); - } + private static void validateBasicNestedConsolidationData(NestedTemplateConsolidationData + nestedTemplateConsolidationData) { + Assert.assertNull(nestedTemplateConsolidationData.getGroupIds()); + Assert.assertNull(nestedTemplateConsolidationData.getNodesConnectedOut()); + } - public static void validateNestedNodesConnectedInSecurityRuleToPort(String testName, - TranslationContext context) { - ConsolidationData consolidationData = context.getConsolidationData(); - if (testName.equals(TEST_SECURITY_RULE_PORT_NESTED_CONNECTION) || - testName.equals(TestConstants.TEST_SECURITY_RULE_PORT_NESTED_SHARED_PORT)) { - String nestedNodeTemplateId = "test_nested"; - NestedTemplateConsolidationData nestedTemplateConsolidationData = - consolidationData.getNestedConsolidationData() - .getFileNestedConsolidationData(MAIN_SERVICE_TEMPLATE) - .getNestedTemplateConsolidationData(nestedNodeTemplateId); - //Validate basic null attributes - validateBasicNestedConsolidationData(nestedTemplateConsolidationData); - //Validate nodeTemplateId - Assert - .assertEquals(nestedTemplateConsolidationData.getNodeTemplateId(), nestedNodeTemplateId); - String securityRuleNodeTemplateId = "jsa_security_group1"; - validateNestedNodesConnectedInSecurityRuleToPort(HeatToToscaUtil - .getServiceTemplateFromContext(MAIN_SERVICE_TEMPLATE, context).get(), - nestedNodeTemplateId, securityRuleNodeTemplateId, - nestedTemplateConsolidationData); - securityRuleNodeTemplateId = "jsa_security_group2"; - validateNestedNodesConnectedInSecurityRuleToPort(HeatToToscaUtil - .getServiceTemplateFromContext(MAIN_SERVICE_TEMPLATE, context).get(), - nestedNodeTemplateId, securityRuleNodeTemplateId, - nestedTemplateConsolidationData); - if (testName.equals(TestConstants.TEST_SECURITY_RULE_PORT_NESTED_SHARED_PORT)) { - nestedNodeTemplateId = "test_nestedArrayParam"; - Assert.assertEquals(nestedNodeTemplateId, consolidationData.getNestedConsolidationData() - .getFileNestedConsolidationData(MAIN_SERVICE_TEMPLATE) - .getNestedTemplateConsolidationData(nestedNodeTemplateId).getNodeTemplateId()); - Assert.assertNull(consolidationData.getNestedConsolidationData() - .getFileNestedConsolidationData(MAIN_SERVICE_TEMPLATE) - .getNestedTemplateConsolidationData(nestedNodeTemplateId).getNodesConnectedIn()); - } - } else if (testName.equals(TEST_SECURITY_RULE_PORT_MULTI_LEVEL_NESTED_CONNECTION) || - testName.equals(TEST_SECURITY_RULE_PORT_MULTI_LEVEL_NESTED_SHARED_PORT)) { - String nestedNodeTemplateId = "test_nested2Level"; - Assert.assertEquals(nestedNodeTemplateId, consolidationData.getNestedConsolidationData() - .getFileNestedConsolidationData("nested1ServiceTemplate.yaml") - .getNestedTemplateConsolidationData(nestedNodeTemplateId).getNodeTemplateId()); - Assert.assertNull(consolidationData.getNestedConsolidationData() - .getFileNestedConsolidationData("nested1ServiceTemplate.yaml") - .getNestedTemplateConsolidationData(nestedNodeTemplateId).getNodesConnectedIn()); - nestedNodeTemplateId = "test_nested3Level"; - Assert.assertEquals(nestedNodeTemplateId, consolidationData.getNestedConsolidationData() - .getFileNestedConsolidationData("nested2ServiceTemplate.yaml") - .getNestedTemplateConsolidationData(nestedNodeTemplateId).getNodeTemplateId()); - Assert.assertNull(consolidationData.getNestedConsolidationData() - .getFileNestedConsolidationData("nested2ServiceTemplate.yaml") - .getNestedTemplateConsolidationData(nestedNodeTemplateId).getNodesConnectedIn()); - nestedNodeTemplateId = "test_nested4Level"; - Assert.assertEquals(nestedNodeTemplateId, consolidationData.getNestedConsolidationData() - .getFileNestedConsolidationData("nested3ServiceTemplate.yaml") - .getNestedTemplateConsolidationData(nestedNodeTemplateId).getNodeTemplateId()); - Assert.assertNull(consolidationData.getNestedConsolidationData() - .getFileNestedConsolidationData("nested3ServiceTemplate.yaml") - .getNestedTemplateConsolidationData(nestedNodeTemplateId).getNodesConnectedIn()); - - //Validate main service template - - nestedNodeTemplateId = "test_nested1Level"; - NestedTemplateConsolidationData nestedTemplateConsolidationData = - consolidationData.getNestedConsolidationData() - .getFileNestedConsolidationData(MAIN_SERVICE_TEMPLATE) - .getNestedTemplateConsolidationData(nestedNodeTemplateId); - //Validate basic null attributes - validateBasicNestedConsolidationData(nestedTemplateConsolidationData); - //Validate nodeTemplateId - Assert - .assertEquals(nestedTemplateConsolidationData.getNodeTemplateId(), nestedNodeTemplateId); - String securityRuleNodeTemplateId = "jsa_security_group1"; - validateNestedNodesConnectedInSecurityRuleToPort(HeatToToscaUtil - .getServiceTemplateFromContext(MAIN_SERVICE_TEMPLATE, context).get(), - nestedNodeTemplateId, securityRuleNodeTemplateId, - nestedTemplateConsolidationData); - securityRuleNodeTemplateId = "jsa_security_group2"; - validateNestedNodesConnectedInSecurityRuleToPort(HeatToToscaUtil - .getServiceTemplateFromContext(MAIN_SERVICE_TEMPLATE, context).get(), - nestedNodeTemplateId, securityRuleNodeTemplateId, - nestedTemplateConsolidationData); - - nestedNodeTemplateId = "test_resourceGroup"; - nestedTemplateConsolidationData = consolidationData.getNestedConsolidationData() - .getFileNestedConsolidationData(MAIN_SERVICE_TEMPLATE) - .getNestedTemplateConsolidationData(nestedNodeTemplateId); - //Validate basic null attributes - validateBasicNestedConsolidationData(nestedTemplateConsolidationData); - //Validate nodeTemplateId - Assert - .assertEquals(nestedTemplateConsolidationData.getNodeTemplateId(), nestedNodeTemplateId); - securityRuleNodeTemplateId = "jsa_security_group2"; - validateNestedNodesConnectedInSecurityRuleToPort(HeatToToscaUtil - .getServiceTemplateFromContext(MAIN_SERVICE_TEMPLATE, context).get(), - nestedNodeTemplateId, securityRuleNodeTemplateId, - nestedTemplateConsolidationData); - securityRuleNodeTemplateId = "jsa_security_group2"; - validateNestedNodesConnectedInSecurityRuleToPort(HeatToToscaUtil - .getServiceTemplateFromContext(MAIN_SERVICE_TEMPLATE, context).get(), - nestedNodeTemplateId, securityRuleNodeTemplateId, - nestedTemplateConsolidationData); - - nestedNodeTemplateId = "test_nestedInvalidConnectionToNova"; - Assert.assertEquals(nestedNodeTemplateId, consolidationData.getNestedConsolidationData() - .getFileNestedConsolidationData(MAIN_SERVICE_TEMPLATE) - .getNestedTemplateConsolidationData(nestedNodeTemplateId).getNodeTemplateId()); - Assert.assertNull(consolidationData.getNestedConsolidationData() - .getFileNestedConsolidationData(MAIN_SERVICE_TEMPLATE) - .getNestedTemplateConsolidationData(nestedNodeTemplateId).getNodesConnectedIn()); + public static void validateNestedNodesConnectedInSecurityRuleToPort(String testName, TranslationContext context) { + ConsolidationData consolidationData = context.getConsolidationData(); + if (testName.equals(TEST_SECURITY_RULE_PORT_NESTED_CONNECTION) || + testName.equals(TestConstants.TEST_SECURITY_RULE_PORT_NESTED_SHARED_PORT)) { + String nestedNodeTemplateId = "test_nested"; + NestedTemplateConsolidationData nestedTemplateConsolidationData = + consolidationData.getNestedConsolidationData() + .getFileNestedConsolidationData(MAIN_SERVICE_TEMPLATE) + .getNestedTemplateConsolidationData(nestedNodeTemplateId); + //Validate basic null attributes + validateBasicNestedConsolidationData(nestedTemplateConsolidationData); + //Validate nodeTemplateId + Assert + .assertEquals(nestedTemplateConsolidationData.getNodeTemplateId(), nestedNodeTemplateId); + String securityRuleNodeTemplateId = "jsa_security_group1"; + validateNestedNodesConnectedInSecurityRuleToPort(HeatToToscaUtil + .getServiceTemplateFromContext(MAIN_SERVICE_TEMPLATE, context).get(), + nestedNodeTemplateId, securityRuleNodeTemplateId, + nestedTemplateConsolidationData); + securityRuleNodeTemplateId = "jsa_security_group2"; + validateNestedNodesConnectedInSecurityRuleToPort(HeatToToscaUtil + .getServiceTemplateFromContext(MAIN_SERVICE_TEMPLATE, context).get(), + nestedNodeTemplateId, securityRuleNodeTemplateId, + nestedTemplateConsolidationData); + if (testName.equals(TestConstants.TEST_SECURITY_RULE_PORT_NESTED_SHARED_PORT)) { + nestedNodeTemplateId = "test_nestedArrayParam"; + Assert.assertEquals(nestedNodeTemplateId, consolidationData.getNestedConsolidationData() + .getFileNestedConsolidationData(MAIN_SERVICE_TEMPLATE) + .getNestedTemplateConsolidationData(nestedNodeTemplateId).getNodeTemplateId()); + Assert.assertNull(consolidationData.getNestedConsolidationData() + .getFileNestedConsolidationData(MAIN_SERVICE_TEMPLATE) + .getNestedTemplateConsolidationData(nestedNodeTemplateId).getNodesConnectedIn()); + } + } else if (testName.equals(TEST_SECURITY_RULE_PORT_MULTI_LEVEL_NESTED_CONNECTION) || + testName.equals(TEST_SECURITY_RULE_PORT_MULTI_LEVEL_NESTED_SHARED_PORT)) { + String nestedNodeTemplateId = "test_nested2Level"; + Assert.assertEquals(nestedNodeTemplateId, consolidationData.getNestedConsolidationData() + .getFileNestedConsolidationData("nested1ServiceTemplate.yaml") + .getNestedTemplateConsolidationData(nestedNodeTemplateId).getNodeTemplateId()); + Assert.assertNull(consolidationData.getNestedConsolidationData() + .getFileNestedConsolidationData("nested1ServiceTemplate.yaml") + .getNestedTemplateConsolidationData(nestedNodeTemplateId).getNodesConnectedIn()); + nestedNodeTemplateId = "test_nested3Level"; + Assert.assertEquals(nestedNodeTemplateId, consolidationData.getNestedConsolidationData() + .getFileNestedConsolidationData("nested2ServiceTemplate.yaml") + .getNestedTemplateConsolidationData(nestedNodeTemplateId).getNodeTemplateId()); + Assert.assertNull(consolidationData.getNestedConsolidationData() + .getFileNestedConsolidationData("nested2ServiceTemplate.yaml") + .getNestedTemplateConsolidationData(nestedNodeTemplateId).getNodesConnectedIn()); + nestedNodeTemplateId = "test_nested4Level"; + Assert.assertEquals(nestedNodeTemplateId, consolidationData.getNestedConsolidationData() + .getFileNestedConsolidationData("nested3ServiceTemplate.yaml") + .getNestedTemplateConsolidationData(nestedNodeTemplateId).getNodeTemplateId()); + Assert.assertNull(consolidationData.getNestedConsolidationData() + .getFileNestedConsolidationData("nested3ServiceTemplate.yaml") + .getNestedTemplateConsolidationData(nestedNodeTemplateId).getNodesConnectedIn()); + + //Validate main service template + + nestedNodeTemplateId = "test_nested1Level"; + NestedTemplateConsolidationData nestedTemplateConsolidationData = + consolidationData.getNestedConsolidationData() + .getFileNestedConsolidationData(MAIN_SERVICE_TEMPLATE) + .getNestedTemplateConsolidationData(nestedNodeTemplateId); + //Validate basic null attributes + validateBasicNestedConsolidationData(nestedTemplateConsolidationData); + //Validate nodeTemplateId + Assert + .assertEquals(nestedTemplateConsolidationData.getNodeTemplateId(), nestedNodeTemplateId); + String securityRuleNodeTemplateId = "jsa_security_group1"; + validateNestedNodesConnectedInSecurityRuleToPort(HeatToToscaUtil + .getServiceTemplateFromContext(MAIN_SERVICE_TEMPLATE, context).get(), + nestedNodeTemplateId, securityRuleNodeTemplateId, + nestedTemplateConsolidationData); + securityRuleNodeTemplateId = "jsa_security_group2"; + validateNestedNodesConnectedInSecurityRuleToPort(HeatToToscaUtil + .getServiceTemplateFromContext(MAIN_SERVICE_TEMPLATE, context).get(), + nestedNodeTemplateId, securityRuleNodeTemplateId, + nestedTemplateConsolidationData); + + nestedNodeTemplateId = "test_resourceGroup"; + nestedTemplateConsolidationData = consolidationData.getNestedConsolidationData() + .getFileNestedConsolidationData(MAIN_SERVICE_TEMPLATE) + .getNestedTemplateConsolidationData(nestedNodeTemplateId); + //Validate basic null attributes + validateBasicNestedConsolidationData(nestedTemplateConsolidationData); + //Validate nodeTemplateId + Assert + .assertEquals(nestedTemplateConsolidationData.getNodeTemplateId(), nestedNodeTemplateId); + securityRuleNodeTemplateId = "jsa_security_group2"; + validateNestedNodesConnectedInSecurityRuleToPort(HeatToToscaUtil + .getServiceTemplateFromContext(MAIN_SERVICE_TEMPLATE, context).get(), + nestedNodeTemplateId, securityRuleNodeTemplateId, + nestedTemplateConsolidationData); + securityRuleNodeTemplateId = "jsa_security_group2"; + validateNestedNodesConnectedInSecurityRuleToPort(HeatToToscaUtil + .getServiceTemplateFromContext(MAIN_SERVICE_TEMPLATE, context).get(), + nestedNodeTemplateId, securityRuleNodeTemplateId, + nestedTemplateConsolidationData); + + nestedNodeTemplateId = "test_nestedInvalidConnectionToNova"; + Assert.assertEquals(nestedNodeTemplateId, consolidationData.getNestedConsolidationData() + .getFileNestedConsolidationData(MAIN_SERVICE_TEMPLATE) + .getNestedTemplateConsolidationData(nestedNodeTemplateId).getNodeTemplateId()); + Assert.assertNull(consolidationData.getNestedConsolidationData() + .getFileNestedConsolidationData(MAIN_SERVICE_TEMPLATE) + .getNestedTemplateConsolidationData(nestedNodeTemplateId).getNodesConnectedIn()); + } } - } - private static void validateNestedNodesConnectedInSecurityRuleToPort(ServiceTemplate - serviceTemplate, - String nestedNodeTemplateId, - String - securityRuleNodeTemplateId, - NestedTemplateConsolidationData nestedTemplateConsolidationData) { - Map> consolidationDataNodesConnectedIn = - nestedTemplateConsolidationData.getNodesConnectedIn(); - Assert.assertNotNull(consolidationDataNodesConnectedIn); - NodeTemplate securityRuleNodeTemplate = DataModelUtil.getNodeTemplate(serviceTemplate, - securityRuleNodeTemplateId); - List> securityRuleNodeTemplateRequirements = - securityRuleNodeTemplate.getRequirements(); - for (Map req : securityRuleNodeTemplateRequirements) { - String requirementId = req.keySet().toArray()[0].toString(); - if (requirementId.equals(ToscaConstants.PORT_REQUIREMENT_ID)) { - RequirementAssignment requirementAssignment = req.get(requirementId); - if (requirementAssignment.getNode().equals(nestedNodeTemplateId)) { - validateSecurityRulePortNestedConsolidationData(requirementAssignment, - securityRuleNodeTemplateId, consolidationDataNodesConnectedIn); + private static void validateNestedNodesConnectedInSecurityRuleToPort(ServiceTemplate serviceTemplate, + String nestedNodeTemplateId, + String securityRuleNodeTemplateId, + NestedTemplateConsolidationData + nestedTemplateConsolidationData) { + Multimap consolidationDataNodesConnectedIn = + nestedTemplateConsolidationData.getNodesConnectedIn(); + Assert.assertNotNull(consolidationDataNodesConnectedIn); + NodeTemplate securityRuleNodeTemplate = DataModelUtil.getNodeTemplate(serviceTemplate, + securityRuleNodeTemplateId); + List> securityRuleNodeTemplateRequirements = + securityRuleNodeTemplate.getRequirements(); + for (Map req : securityRuleNodeTemplateRequirements) { + String requirementId = req.keySet().toArray()[0].toString(); + if (requirementId.equals(ToscaConstants.PORT_REQUIREMENT_ID)) { + RequirementAssignment requirementAssignment = req.get(requirementId); + if (requirementAssignment.getNode().equals(nestedNodeTemplateId)) { + validateSecurityRulePortNestedConsolidationData(requirementAssignment, + securityRuleNodeTemplateId, consolidationDataNodesConnectedIn); + } + } } - } } - } - private static void validateSecurityRulePortNestedConsolidationData(RequirementAssignment - requirementAssignment, - String securityRuleNodeTemplateId, - Map> consolidationDataNodesConnectedIn) { - List requirementAssignmentDataList = - consolidationDataNodesConnectedIn.get(securityRuleNodeTemplateId); - Assert.assertNotNull(requirementAssignmentDataList); - boolean result = false; - for (RequirementAssignmentData data : requirementAssignmentDataList) { - RequirementAssignment dataRequirementAssignment = data.getRequirementAssignment(); - result = DataModelUtil - .compareRequirementAssignment(requirementAssignment, dataRequirementAssignment); - if (result) { - break; - } + private static void validateSecurityRulePortNestedConsolidationData(RequirementAssignment requirementAssignment, + String securityRuleNodeTemplateId, + Multimap + consolidationDataNodesConnectedIn) { + Collection requirementAssignmentDataList = + consolidationDataNodesConnectedIn.get(securityRuleNodeTemplateId); + Assert.assertNotNull(requirementAssignmentDataList); + boolean result = false; + for (RequirementAssignmentData data : requirementAssignmentDataList) { + RequirementAssignment dataRequirementAssignment = data.getRequirementAssignment(); + result = DataModelUtil + .compareRequirementAssignment(requirementAssignment, dataRequirementAssignment); + if (result) { + break; + } + } + Assert.assertTrue(result); } - Assert.assertTrue(result); - } } diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/resourcetranslation/BaseResourceTranslationTest.java b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/resourcetranslation/BaseResourceTranslationTest.java index f399cc15e0..56d0b2da9f 100644 --- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/resourcetranslation/BaseResourceTranslationTest.java +++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/resourcetranslation/BaseResourceTranslationTest.java @@ -260,8 +260,8 @@ public class BaseResourceTranslationTest { case VALIDATE_CONNECTIVITY: validateComputeConnectivityIn(computeTemplateConsolidationData, expectedServiceTemplate); - validateComputeConnectivityOut(computeNodeTemplateId,computeTemplateConsolidationData, - expectedServiceTemplate); + validateComputeConnectivityOut(computeNodeTemplateId, computeTemplateConsolidationData, + expectedServiceTemplate); break; case VALIDATE_DEPENDS_ON: validateDependsOnInConsolidationData(computeNodeTemplateId, @@ -274,11 +274,9 @@ public class BaseResourceTranslationTest { } } - protected void validateGetAttribute(String testName){ - Map expectedServiceTemplateModels = TestUtils.getServiceTemplates - (expectedResultMap); - validateGetAttr(translationContext,expectedServiceTemplateModels,testName); - } + protected void validateGetAttribute(String testName) { + validateGetAttr(translationContext, testName); + } protected void validateNestedTemplateConsolidationData(String testName){ validateNestedConsolidationData(translationContext, testName); @@ -311,8 +309,7 @@ public class BaseResourceTranslationTest { switch(ConsolidationDataValidationType.VALIDATE_CONNECTIVITY){ case VALIDATE_CONNECTIVITY: validatePortConnectivityIn(portTemplateConsolidationData,expectedServiceTemplate); - validatePortConnectivityOut(portNodeTemplateId, portTemplateConsolidationData, - expectedServiceTemplate); + validatePortConnectivityOut(portNodeTemplateId, portTemplateConsolidationData, expectedServiceTemplate); break; } } -- cgit 1.2.3-korg