aboutsummaryrefslogtreecommitdiffstats
path: root/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/unifiedmodel/commands/SubInterfaceNewNodeTemplateIdGeneratorTest.java
diff options
context:
space:
mode:
Diffstat (limited to 'openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/unifiedmodel/commands/SubInterfaceNewNodeTemplateIdGeneratorTest.java')
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/unifiedmodel/commands/SubInterfaceNewNodeTemplateIdGeneratorTest.java191
1 files changed, 191 insertions, 0 deletions
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/unifiedmodel/commands/SubInterfaceNewNodeTemplateIdGeneratorTest.java b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/unifiedmodel/commands/SubInterfaceNewNodeTemplateIdGeneratorTest.java
new file mode 100644
index 0000000000..11b20fa0b1
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/unifiedmodel/commands/SubInterfaceNewNodeTemplateIdGeneratorTest.java
@@ -0,0 +1,191 @@
+/*
+ * 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.services.heattotosca.unifiedmodel.commands;
+
+import org.openecomp.sdc.tosca.datatypes.ToscaServiceModel;
+import org.openecomp.sdc.tosca.datatypes.model.ServiceTemplate;
+import org.openecomp.sdc.translator.TestUtils;
+import org.openecomp.sdc.translator.datatypes.heattotosca.TranslationContext;
+import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.composition.UnifiedCompositionData;
+import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.composition.commands.UnifiedSubstitutionNodeTemplateIdGenerator;
+import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.composition.commands.impl.SubInterfaceNewNodeTemplateIdGenerator;
+import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.composition.to.UnifiedCompositionTo;
+import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolidation.ComputeTemplateConsolidationData;
+import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolidation.ConsolidationData;
+import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolidation.FilePortConsolidationData;
+import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolidation.PortTemplateConsolidationData;
+import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolidation.SubInterfaceTemplateConsolidationData;
+import org.openecomp.sdc.translator.services.heattotosca.impl.resourcetranslation.BaseResourceTranslationTest;
+import org.testng.Assert;
+import org.testng.annotations.BeforeClass;
+import org.testng.annotations.Test;
+
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Optional;
+
+public class SubInterfaceNewNodeTemplateIdGeneratorTest extends BaseResourceTranslationTest {
+
+ private static final String VDBE_UNTR_1_PORT = "vdbe_untr_1_port";
+ private static final String VDBE_UNTR_1_SUBPORTS = "vdbe_untr_1_subports";
+ private static final String MAIN_SERVICE_TEMPLATE_YAML = "MainServiceTemplate.yaml";
+ private static final String VDBE_UNTR_2_SUBPORTS = "vdbe_untr_2_subports";
+ private static final String SUBINTERFACE_TYPE_NESTED =
+ "org.openecomp.resource.abstract.nodes.heat.subinterface.nested";
+
+ private UnifiedSubstitutionNodeTemplateIdGenerator unifiedSubstitutionNodeTemplateIdGenerator;
+
+ @BeforeClass
+ public void setUp(){
+ unifiedSubstitutionNodeTemplateIdGenerator = new SubInterfaceNewNodeTemplateIdGenerator();
+ }
+
+ @Test
+ public void testGenerateNewSubInterfaceNodeTemplateId() throws IOException {
+ UnifiedCompositionTo unifiedCompositionTo = new UnifiedCompositionTo(getTestInitSubInterfaceServiceTemplate(), null,
+ getUnifiedCompositionDataListWithOnePortAndSubInterface(), getContext(false));
+ Optional<String>
+ nodeTemplateId = unifiedSubstitutionNodeTemplateIdGenerator.generate(unifiedCompositionTo, VDBE_UNTR_1_SUBPORTS);
+ if (nodeTemplateId.isPresent()) {
+ Assert.assertEquals(nodeTemplateId.get(), "vdbe_vdbe_untr_1_port_nested");
+ } else {
+ Assert.fail();
+ }
+ }
+
+ @Test
+ public void testGeneratePortIdMultipleSubInterfacesOfSameTypeToOnePort() throws IOException {
+ UnifiedCompositionTo unifiedCompositionTo =
+ new UnifiedCompositionTo(getTestSubInterfaceServiceTemplateMultipleVlan(), null,
+ getUnifiedCompositionDataListWithTwoSubInterfacesOfSameType(), getContext(true));
+ Optional<String>
+ nodeTemplateId = unifiedSubstitutionNodeTemplateIdGenerator.generate(unifiedCompositionTo, VDBE_UNTR_1_SUBPORTS);
+ if (nodeTemplateId.isPresent()) {
+ Assert.assertEquals(nodeTemplateId.get(), "vdbe_vdbe_untr_1_port_vdbe_untr_1_subports");
+ } else {
+ Assert.fail();
+ }
+
+ nodeTemplateId = unifiedSubstitutionNodeTemplateIdGenerator.generate(unifiedCompositionTo, VDBE_UNTR_2_SUBPORTS);
+ if (nodeTemplateId.isPresent()) {
+ Assert.assertEquals(nodeTemplateId.get(), "vdbe_vdbe_untr_1_port_vdbe_untr_2_subports");
+ } else {
+ Assert.fail();
+ }
+ }
+
+ @Test
+ public void testGenerateInvalidOriginalNodeTemplateId() throws IOException {
+ UnifiedCompositionTo unifiedCompositionTo = new UnifiedCompositionTo(getTestInitSubInterfaceServiceTemplate(), null,
+ getUnifiedCompositionDataListWithOnePortAndSubInterface(), getContext(false));
+ Optional<String>
+ nodeTemplateId = unifiedSubstitutionNodeTemplateIdGenerator.generate(unifiedCompositionTo,
+ VDBE_UNTR_1_SUBPORTS + "_Invalid");
+ Assert.assertEquals(nodeTemplateId.isPresent(), false);
+ }
+
+ private ServiceTemplate getTestInitSubInterfaceServiceTemplate() throws IOException {
+ ToscaServiceModel serviceModel = TestUtils.loadToscaServiceModel
+ ("/mock/services/heattotosca/unifiedComposition/commands/newnodetemplateidgenerator/oneportsubinterfacetype",
+ null, null);
+ Optional<ServiceTemplate> serviceTemplate = serviceModel.getServiceTemplate("MainServiceTemplate.yaml");
+ return serviceTemplate.get();
+ }
+
+ private ServiceTemplate getTestSubInterfaceServiceTemplateMultipleVlan() throws IOException {
+ ToscaServiceModel serviceModel = TestUtils.loadToscaServiceModel
+ ("/mock/services/heattotosca/unifiedComposition/commands/newnodetemplateidgenerator/multiplevlansametype",
+ null, null);
+ Optional<ServiceTemplate> serviceTemplate = serviceModel.getServiceTemplate("MainServiceTemplate.yaml");
+ return serviceTemplate.get();
+ }
+
+ private List<UnifiedCompositionData> getInitUnifiedCompositionDataList() {
+ List<UnifiedCompositionData> unifiedCompositionDataList = new ArrayList<>(1);
+ UnifiedCompositionData unifiedCompositionData = new UnifiedCompositionData();
+ ComputeTemplateConsolidationData computeTemplateConsolidationData = new ComputeTemplateConsolidationData();
+ computeTemplateConsolidationData.setNodeTemplateId("vdbe_node_1");
+ unifiedCompositionData.setComputeTemplateConsolidationData(computeTemplateConsolidationData);
+ unifiedCompositionDataList.add(unifiedCompositionData);
+ return unifiedCompositionDataList;
+ }
+
+ private List<UnifiedCompositionData> getUnifiedCompositionDataListWithOnePortAndSubInterface() {
+ List<UnifiedCompositionData> unifiedCompositionDataList = getInitUnifiedCompositionDataList();
+ UnifiedCompositionData unifiedCompositionData = unifiedCompositionDataList.get(0);
+ ComputeTemplateConsolidationData computeTemplateConsolidationData = unifiedCompositionData
+ .getComputeTemplateConsolidationData();
+ List<String> ports = new ArrayList<>(1);
+ ports.add(VDBE_UNTR_1_PORT);
+ Map<String, List<String>> portMap = new HashMap<>();
+ portMap.put(VDBE_UNTR_1_PORT, ports);
+ computeTemplateConsolidationData.setPorts(portMap);
+
+
+ PortTemplateConsolidationData portTemplateConsolidationData = new PortTemplateConsolidationData();
+ portTemplateConsolidationData.setNodeTemplateId(VDBE_UNTR_1_PORT);
+ SubInterfaceTemplateConsolidationData subInterfaceTemplateConsolidationData = new
+ SubInterfaceTemplateConsolidationData();
+ subInterfaceTemplateConsolidationData.setNodeTemplateId(VDBE_UNTR_1_SUBPORTS);
+ subInterfaceTemplateConsolidationData.setParentPortNodeTemplateId(VDBE_UNTR_1_PORT);
+ List<SubInterfaceTemplateConsolidationData> subInterfaceTemplateConsolidationDataList = new ArrayList<>(1);
+ subInterfaceTemplateConsolidationDataList.add(subInterfaceTemplateConsolidationData);
+ portTemplateConsolidationData.addSubInterfaceConsolidationData(
+ SUBINTERFACE_TYPE_NESTED,
+ subInterfaceTemplateConsolidationData);
+
+ List<PortTemplateConsolidationData> portTemplateConsolidationDataList = new ArrayList<>(1);
+ portTemplateConsolidationDataList.add(portTemplateConsolidationData);
+ unifiedCompositionData.setPortTemplateConsolidationDataList(portTemplateConsolidationDataList);
+ unifiedCompositionData.setSubInterfaceTemplateConsolidationDataList(subInterfaceTemplateConsolidationDataList);
+
+
+ return unifiedCompositionDataList;
+ }
+
+ private List<UnifiedCompositionData> getUnifiedCompositionDataListWithTwoSubInterfacesOfSameType() {
+ List<UnifiedCompositionData> unifiedCompositionDataList = getUnifiedCompositionDataListWithOnePortAndSubInterface();
+ List<SubInterfaceTemplateConsolidationData> subInterfaceTemplateConsolidationDataList = unifiedCompositionDataList
+ .get(0).getSubInterfaceTemplateConsolidationDataList();
+ SubInterfaceTemplateConsolidationData anotherSubInterfaceData = new SubInterfaceTemplateConsolidationData();
+ anotherSubInterfaceData.setNodeTemplateId(VDBE_UNTR_2_SUBPORTS);
+ anotherSubInterfaceData.setParentPortNodeTemplateId(VDBE_UNTR_1_PORT);
+ subInterfaceTemplateConsolidationDataList.add(anotherSubInterfaceData);
+ unifiedCompositionDataList.get(0).getPortTemplateConsolidationDataList().get(0).addSubInterfaceConsolidationData
+ (SUBINTERFACE_TYPE_NESTED, anotherSubInterfaceData);
+ return unifiedCompositionDataList;
+ }
+
+ private TranslationContext getContext(boolean isMultipleSubInterfaceTest) {
+ FilePortConsolidationData filePortConsolidationData = new FilePortConsolidationData();
+ PortTemplateConsolidationData portTemplateConsolidationData = isMultipleSubInterfaceTest
+ ? getUnifiedCompositionDataListWithTwoSubInterfacesOfSameType().get(0).getPortTemplateConsolidationDataList().get(0)
+ : getUnifiedCompositionDataListWithOnePortAndSubInterface().get(0).getPortTemplateConsolidationDataList().get(0);
+ filePortConsolidationData.setPortTemplateConsolidationData(portTemplateConsolidationData
+ .getNodeTemplateId(), portTemplateConsolidationData);
+ TranslationContext context = new TranslationContext();
+ context.setConsolidationData(new ConsolidationData());
+ context.getConsolidationData().getPortConsolidationData()
+ .setFilePortConsolidationData(MAIN_SERVICE_TEMPLATE_YAML, filePortConsolidationData);
+ context.getConsolidationData().getPortConsolidationData().getFilePortConsolidationData(MAIN_SERVICE_TEMPLATE_YAML);
+ return context;
+ }
+
+}