aboutsummaryrefslogtreecommitdiffstats
path: root/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp
diff options
context:
space:
mode:
authorAviZi <avi.ziv@amdocs.com>2017-06-09 02:39:56 +0300
committerAviZi <avi.ziv@amdocs.com>2017-06-09 02:39:56 +0300
commit280f8015d06af1f41a3ef12e8300801c7a5e0d54 (patch)
tree9c1d3978c04cd28068f02073038c936bb49ca9e0 /openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp
parentfd3821dad11780d33c5373d74c957c442489945e (diff)
[SDC-29] Amdocs OnBoard 1707 initial commit.
Change-Id: Ie4d12a3f574008b792899b368a0902a8b46b5370 Signed-off-by: AviZi <avi.ziv@amdocs.com>
Diffstat (limited to 'openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp')
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/TestUtils.java576
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/impl/heattotosca/nested/multi/Translate_Heat_Nested_Multi.java22
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/impl/heattotosca/nested/nestedvolumelocal/NestedVolumelocal.java22
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/impl/heattotosca/nested/nestedvolumeseperatefile/NestedVolumeSeperateFile.java22
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/impl/heattotosca/nested/recursive/TranslateHeatNestedRecursiveTest.java25
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/impl/heattotosca/nested/reusenestedfrommultibase/Translate_Heat_Nested_From_Multi_Base.java24
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/impl/heattotosca/nested/separatevol/NestedAndSeparateVolTranslationTest.java25
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/impl/heattotosca/nested/single/TranslateHeatNestedSingle.java25
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/impl/heattotosca/outputs/HeatOutputConversionTest.java53
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/impl/heattotosca/parameters/HeatParameterConversionTest.java58
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/impl/heattotosca/resources/ContrailNetworkRuleTest.java22
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/impl/heattotosca/resources/OSContrailVirtualNetworkTest.java22
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/impl/heattotosca/resources/OSNeutronNetTest.java22
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/impl/heattotosca/resources/OSNovaServerTest.java51
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/impl/heattotosca/sharedresource/HeatSharedResourceTest.java22
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/ConsolidationServiceTest.java1990
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/GlobalTypesGeneratorTest.java18
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/UnifiedCompositionServiceTest.java1640
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/buildconsolidationdata/BuildConsolidationDataTest.java24
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/buildconsolidationdata/ConsolidationDataTestUtil.java1095
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/buildconsolidationdata/ConsolidationDataValidationType.java10
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/buildconsolidationdata/TestConstants.java56
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/fullvfexample/hotmog/HotMogTranslationTest.java24
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/fullvfexample/vmmesmall/VmmeSmallTranslationTest.java25
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/helper/ContrailTranslationHelperTest.java149
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/ContrailV2VMInterfaceToNetResourceConnectionTest.java46
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/DependsOnResourceBaseTranslationlTest.java15
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/MultipleHeatTranslationTest.java31
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/PortToContrailV2VirtualNetworkResourceConnectionTest.java45
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/PortToNetResourceConnectionTest.java38
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/ResourceTranslationCinderVolumeAttachmentImplTest.java52
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/ResourceTranslationCinderVolumeImplTest.java15
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/ResourceTranslationContrailServiceInstanceImplTest.java72
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/ResourceTranslationContrailServiceTemplateImplTest.java55
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/ResourceTranslationContrailV2VMInterfaceImplTest.java36
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/ResourceTranslationNeutronPortImplTest.java17
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/ResourceTranslationNeutronSecurityGroupImplTest.java19
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/ResourceTranslationNovaServerGroupsImplTest.java16
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/SecurityGroupToNovaResourceConnectionTest.java24
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/SecurityRulesToPortResourceConnectionTest.java55
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/fulltest/UnifiedCompositionCatalogInstanceFullTest.java53
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/fulltest/UnifiedCompositionMixPatternFullTest.java72
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/fulltest/UnifiedCompositionNestedSingleComputeFullTest.java154
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/fulltest/UnifiedCompositionScalingInstancesFullTest.java169
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/fulltest/UnifiedCompositionSingleSubstitutionFullTest.java227
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/functiontranslation/FunctionTranslationGetAttrImplTest.java104
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/functiontranslation/FunctionTranslationGetFileImplTest.java97
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/functiontranslation/FunctionTranslationGetParamImplTest.java249
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/nameextractor/NameExtractorContrailComputeImplTest.java98
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/nameextractor/NameExtractorNovaServerImplTest.java (renamed from openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/helper/impl/NameExtractorServiceImplTest.java)77
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/resourcetranslation/BaseFullTranslationTest.java (renamed from openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/BaseResourceTranslationTest.java)90
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/resourcetranslation/BaseResourceTranslationTest.java366
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/resourcetranslation/ContrailV2VlanToInterfaceResourceConnectionTest.java77
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/resourcetranslation/ContrailV2VmInterfaceToNetResourceConnectionTest.java138
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/resourcetranslation/DependsOnResourceBaseTranslationlTest.java148
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/resourcetranslation/MultipleHeatTranslationTest.java52
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/resourcetranslation/NovaToVolResourceConnectionTest.java (renamed from openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/NovaToVolResourceConnectionTest.java)75
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/resourcetranslation/PortToContrailV2VirtualNetworkResourceConnectionTest.java66
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/resourcetranslation/PortToNetResourceConnectionTest.java78
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/resourcetranslation/ResourceTranslationCinderVolumeAttachmentImplTest.java85
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/resourcetranslation/ResourceTranslationCinderVolumeImplTest.java36
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/resourcetranslation/ResourceTranslationContrailServiceInstanceImplTest.java99
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/resourcetranslation/ResourceTranslationContrailV2Test.java (renamed from openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/ResourceTranslationContrailV2Test.java)24
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/resourcetranslation/ResourceTranslationContrailV2VlanSubInterfaceImplTest.java62
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/resourcetranslation/ResourceTranslationContrailV2VmInterfaceImplTest.java113
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/resourcetranslation/ResourceTranslationNeutronPortImplTest.java60
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/resourcetranslation/ResourceTranslationNeutronSecurityGroupImplTest.java40
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/resourcetranslation/ResourceTranslationNovaServerGroupsImplTest.java72
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/resourcetranslation/ResourceTranslationResourceGroupImplTest.java (renamed from openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/ResourceTranslationResourceGroupImplTest.java)41
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/resourcetranslation/SecurityGroupToNovaResourceConnectionTest.java44
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/resourcetranslation/SecurityRulesToPortResourceConnectionTest.java109
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/mapping/TranslatorHeatToToscaFunctionConverterTest.java68
72 files changed, 9016 insertions, 785 deletions
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 b52abfa927..763631ff5e 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
@@ -1,14 +1,51 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
package org.openecomp.sdc.translator;
-import org.openecomp.sdc.common.utils.AsdcCommon;
+import org.apache.commons.collections4.CollectionUtils;
+import org.apache.commons.lang3.tuple.Pair;
+import org.junit.Assert;
import org.openecomp.core.translator.api.HeatToToscaTranslator;
import org.openecomp.core.utilities.file.FileUtils;
-import org.junit.Assert;
+import org.openecomp.sdc.common.utils.SdcCommon;
+import org.openecomp.sdc.tosca.datatypes.ToscaServiceModel;
+import org.openecomp.sdc.tosca.datatypes.model.GroupDefinition;
+import org.openecomp.sdc.tosca.datatypes.model.NodeTemplate;
+import org.openecomp.sdc.tosca.datatypes.model.RequirementAssignment;
+import org.openecomp.sdc.tosca.datatypes.model.ServiceTemplate;
+import org.openecomp.sdc.tosca.services.DataModelUtil;
+import org.openecomp.sdc.tosca.services.yamlutil.ToscaExtensionYamlUtil;
+import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolidation.*;
-import java.io.*;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
+import java.io.IOException;
+import java.io.InputStream;
+import java.net.URL;
+import java.nio.file.NotDirectoryException;
+import java.util.*;
public class TestUtils {
- private static final String MANIFEST_NAME = AsdcCommon.MANIFEST_NAME;
+ private static final String MANIFEST_NAME = SdcCommon.MANIFEST_NAME;
private static String zipFilename = "VSP.zip";
private static String validationFilename = "validationOutput.json";
@@ -40,4 +77,535 @@ public class TestUtils {
}
}
}
+
+ /**
+ * Get tosca service template models for the files in a directory
+ * @param baseDirPath base directory for the tosca file
+ * @return Map of <ServiceTemplateFilename, ServiceTemplate> for the files in this directory
+ */
+ public static Map<String, ServiceTemplate> getServiceTemplates(String baseDirPath){
+ Map<String, ServiceTemplate> serviceTemplateMap = new HashMap<>();
+ ToscaExtensionYamlUtil toscaExtensionYamlUtil = new ToscaExtensionYamlUtil();
+ baseDirPath = "."+baseDirPath+"/";
+ try {
+ String[] fileList = {};
+ URL filesDirUrl = TestUtils.class.getClassLoader().getResource(baseDirPath);
+ if (filesDirUrl != null && filesDirUrl.getProtocol().equals("file")) {
+ fileList = new File(filesDirUrl.toURI()).list();
+ } else {
+ Assert.fail("Invalid expected output files directory");
+ }
+ for (int i = 0; i < fileList.length; i++) {
+ InputStream serviceTemplateInputStream = FileUtils.getFileInputStream(TestUtils.class
+ .getClassLoader().getResource(baseDirPath + fileList[i]));
+ ServiceTemplate serviceTemplate = toscaExtensionYamlUtil.yamlToObject
+ (serviceTemplateInputStream, ServiceTemplate.class);
+ serviceTemplateMap.put(fileList[i], serviceTemplate);
+ }
+ } catch (Exception e) {
+ Assert.fail(e.getMessage());
+ }
+ return serviceTemplateMap;
+ }
+
+ /**
+ * Get tosca service template models
+ * @param expectedResultMap Map of filename and payload of the expected result files
+ * @return Map of <ServiceTemplateFilename, ServiceTemplate> for the files in this directory
+ */
+ public static Map<String, ServiceTemplate> getServiceTemplates(Map<String, byte[]>
+ expectedResultMap){
+ Map<String, ServiceTemplate> serviceTemplateMap = new HashMap<>();
+ ToscaExtensionYamlUtil toscaExtensionYamlUtil = new ToscaExtensionYamlUtil();
+ for(String fileName : expectedResultMap.keySet()){
+ ServiceTemplate serviceTemplate = toscaExtensionYamlUtil.yamlToObject
+ (new String(expectedResultMap.get(fileName)), ServiceTemplate.class);
+ serviceTemplateMap.put(fileName, serviceTemplate);
+ }
+ return serviceTemplateMap;
+ }
+
+
+ public static ToscaServiceModel loadToscaServiceModel(String serviceTemplatesPath,
+ String globalServiceTemplatesPath,
+ String entryDefinitionServiceTemplate)
+ throws IOException {
+ ToscaExtensionYamlUtil toscaExtensionYamlUtil = new ToscaExtensionYamlUtil();
+ Map<String, ServiceTemplate> serviceTemplates = new HashMap<>();
+ if (entryDefinitionServiceTemplate == null) {
+ entryDefinitionServiceTemplate = "MainServiceTemplate.yaml";
+ }
+
+ serviceTemplates = getServiceTemplates(serviceTemplatesPath);
+ if (globalServiceTemplatesPath != null) {
+ serviceTemplates = getServiceTemplates(globalServiceTemplatesPath);
+ }
+
+ return new ToscaServiceModel(null, serviceTemplates, entryDefinitionServiceTemplate);
+ }
+
+ public static ServiceTemplate loadServiceTemplate(String serviceTemplatePath)
+ throws IOException {
+ ServiceTemplate serviceTemplateFromYaml = new ServiceTemplate();
+ ToscaExtensionYamlUtil toscaExtensionYamlUtil = new ToscaExtensionYamlUtil();
+ URL urlFile = TestUtils.class.getResource(serviceTemplatePath);
+ if (urlFile != null) {
+ File pathFile = new File(urlFile.getFile());
+ File[] files = pathFile.listFiles();
+ for (File file : files) {
+ try (InputStream yamlFile = new FileInputStream(file)) {
+ serviceTemplateFromYaml =
+ toscaExtensionYamlUtil.yamlToObject(yamlFile, ServiceTemplate.class);
+ createConcreteRequirementObjectsInServiceTemplate(serviceTemplateFromYaml, toscaExtensionYamlUtil);
+ try {
+ yamlFile.close();
+ } catch (IOException ignore) {
+ }
+ } catch (FileNotFoundException e) {
+ throw e;
+ } catch (IOException e) {
+ throw e;
+ }
+ }
+ } else {
+ throw new NotDirectoryException(serviceTemplatePath);
+ }
+ return serviceTemplateFromYaml;
+ }
+
+
+ public static void loadServiceTemplates(String serviceTemplatesPath,
+ ToscaExtensionYamlUtil toscaExtensionYamlUtil,
+ Map<String, ServiceTemplate> serviceTemplates)
+ throws IOException {
+ URL urlFile = TestUtils.class.getResource(serviceTemplatesPath);
+ if (urlFile != null) {
+ File pathFile = new File(urlFile.getFile());
+ File[] files = pathFile.listFiles();
+ if (files != null) {
+ addServiceTemplateFiles(serviceTemplates, files, toscaExtensionYamlUtil);
+ } else {
+ throw new NotDirectoryException(serviceTemplatesPath);
+ }
+ } else {
+ throw new NotDirectoryException(serviceTemplatesPath);
+ }
+ }
+
+ private static void addServiceTemplateFiles(Map<String, ServiceTemplate> serviceTemplates,
+ File[] files,
+ ToscaExtensionYamlUtil toscaExtensionYamlUtil)
+ throws IOException {
+ for (File file : files) {
+ try (InputStream yamlFile = new FileInputStream(file)) {
+ ServiceTemplate serviceTemplateFromYaml =
+ toscaExtensionYamlUtil.yamlToObject(yamlFile, ServiceTemplate.class);
+ createConcreteRequirementObjectsInServiceTemplate(serviceTemplateFromYaml, toscaExtensionYamlUtil);
+ serviceTemplates.put(file.getName(), serviceTemplateFromYaml);
+ try {
+ yamlFile.close();
+ } catch (IOException ignore) {
+ }
+ } catch (FileNotFoundException e) {
+ throw e;
+ } catch (IOException e) {
+ throw e;
+ }
+ }
+ }
+
+ private static void createConcreteRequirementObjectsInServiceTemplate(ServiceTemplate
+ serviceTemplateFromYaml,
+ ToscaExtensionYamlUtil
+ toscaExtensionYamlUtil) {
+
+ if (serviceTemplateFromYaml == null
+ || serviceTemplateFromYaml.getTopology_template() == null
+ || serviceTemplateFromYaml.getTopology_template().getNode_templates() == null) {
+ return;
+ }
+
+ //Creating concrete objects
+ Map<String, NodeTemplate> nodeTemplates =
+ serviceTemplateFromYaml.getTopology_template().getNode_templates();
+ for (Map.Entry<String, NodeTemplate> entry : nodeTemplates.entrySet()) {
+ NodeTemplate nodeTemplate = entry.getValue();
+ List<Map<String, RequirementAssignment>> requirements = nodeTemplate.getRequirements();
+ List<Map<String, RequirementAssignment>> concreteRequirementList = new ArrayList<>();
+ if (requirements != null) {
+ ListIterator<Map<String, RequirementAssignment>> reqListIterator = requirements
+ .listIterator();
+ while (reqListIterator.hasNext()){
+ Map<String, RequirementAssignment> requirement = reqListIterator.next();
+ Map<String, RequirementAssignment> concreteRequirement = new HashMap<>();
+ for (Map.Entry<String, RequirementAssignment> reqEntry : requirement.entrySet()) {
+ RequirementAssignment requirementAssignment = (toscaExtensionYamlUtil
+ .yamlToObject(toscaExtensionYamlUtil.objectToYaml(reqEntry.getValue()),
+ RequirementAssignment.class));
+ concreteRequirement.put(reqEntry.getKey(), requirementAssignment);
+ concreteRequirementList.add(concreteRequirement);
+ reqListIterator.remove();
+ }
+ }
+ requirements.clear();
+ requirements.addAll(concreteRequirementList);
+ nodeTemplate.setRequirements(requirements);
+ }
+ System.out.println();
+ //toscaExtensionYamlUtil.yamlToObject(nodeTemplate, NodeTemplate.class);
+ }
+ }
+
+ public static void updateMultiplePortConsolidationDatas(String serviceTemplateName,
+ List<String> portNodeTemplateIds,
+ List<List<String>> nodesConnectedInIds,
+ List<List<String>> nodesConnectedOutIds,
+ List<List<String>> groupIds,
+ List<List<String>> getAttrInIds,
+ List<List<Pair<String, GetAttrFuncData>>> getAttrOutFuncDataList,
+ ConsolidationData consolidationData){
+ for(int i = 0; i < portNodeTemplateIds.size(); i++){
+ updatePortConsolidationData(serviceTemplateName, portNodeTemplateIds.get(i),
+ nodesConnectedInIds.get(i), nodesConnectedOutIds.get(i),
+ groupIds.get(i), getAttrInIds.get(i),getAttrOutFuncDataList.get(i), consolidationData);
+ }
+ }
+
+ public static void updatePortConsolidationData(String serviceTemplateFileName,
+ String portNodeTemplateId,
+ List<String> nodesConnectedInIds,
+ List<String> nodesConnectedOutIds,
+ List<String> groupIds, List<String> getAttrInIds,
+ List<Pair<String, GetAttrFuncData>> getAttrOutFuncDataList,
+ ConsolidationData consolidationData) {
+
+ PortTemplateConsolidationData portTemplateConsolidationData =
+ createPortTemplateConsolidationData(portNodeTemplateId);
+
+ updateRelationsForEntityConsolidationData(portNodeTemplateId, nodesConnectedInIds,
+ nodesConnectedOutIds, groupIds, getAttrInIds, getAttrOutFuncDataList, portTemplateConsolidationData);
+
+ consolidationData.getPortConsolidationData()
+ .getFilePortConsolidationData(serviceTemplateFileName)
+ .setPortTemplateConsolidationData(portNodeTemplateId, portTemplateConsolidationData);
+ }
+
+ public static PortTemplateConsolidationData createPortTemplateConsolidationData(
+ String portNodeTemplateId) {
+ PortTemplateConsolidationData portTemplateConsolidationData =
+ new PortTemplateConsolidationData();
+ portTemplateConsolidationData.setNodeTemplateId(portNodeTemplateId);
+ return portTemplateConsolidationData;
+ }
+
+ public static void initPortConsolidationData(String serviceTemplateFileName,
+ ConsolidationData consolidationData) {
+
+ consolidationData.getPortConsolidationData()
+ .setFilePortConsolidationData(serviceTemplateFileName, new FilePortConsolidationData());
+ }
+
+ public static void updateComputeTemplateConsolidationData(String serviceTemplateFileName,
+ String computeNodeTypeName,
+ String computeNodeTemplateId,
+ List<String> nodeIdsConnectedIn,
+ List<String> nodeIdsConnectedOut,
+ List<String> volumeIds,
+ List<String> groupIds,
+ List<String> getAttrInIds,
+ List<Pair<String, GetAttrFuncData>> getAttrOutIds,
+ List<Pair<String, String>> portTypeToIdList,
+ ConsolidationData consolidationData) {
+
+ initComputeNodeTemplateIdInConsolidationData(serviceTemplateFileName, computeNodeTypeName,
+ computeNodeTemplateId, consolidationData);
+
+ Map<String, List<RequirementAssignmentData>> volumes =
+ consolidationData.getComputeConsolidationData().getFileComputeConsolidationData
+ (serviceTemplateFileName).getTypeComputeConsolidationData(computeNodeTypeName)
+ .getComputeTemplateConsolidationData(computeNodeTemplateId).getVolumes();
+
+ ComputeTemplateConsolidationData computeTemplateConsolidationData =
+ createComputeTemplateConsolidationData(computeNodeTemplateId, portTypeToIdList, volumes);
+
+ updateRelationsForEntityConsolidationData(computeNodeTemplateId, nodeIdsConnectedIn,
+ nodeIdsConnectedOut, groupIds, getAttrInIds, getAttrOutIds, computeTemplateConsolidationData);
+
+ updateVolumes(computeTemplateConsolidationData, volumeIds);
+
+ consolidationData.getComputeConsolidationData()
+ .getFileComputeConsolidationData(serviceTemplateFileName)
+ .getTypeComputeConsolidationData(computeNodeTypeName)
+ .setComputeTemplateConsolidationData(computeNodeTemplateId,
+ computeTemplateConsolidationData);
+ }
+
+ private static void updateRelationsForEntityConsolidationData(String entityNodeTemplateId,
+ List<String> nodeIdsConnectedIn,
+ List<String> nodeIdsConnectedOut,
+ List<String> groupIds,
+ List<String> getAttrInIds,
+ List<Pair<String, GetAttrFuncData>> getAttrOutFuncDataList,
+ EntityConsolidationData entity) {
+ updateRelationsIn(entity, nodeIdsConnectedIn);
+ updateRelationsOut(entity, entityNodeTemplateId, nodeIdsConnectedOut);
+ updateGetAttrIn(entity, getAttrInIds);
+ updateGetAttrOut(entity, getAttrOutFuncDataList);
+ entity.setGroupIds(groupIds);
+ }
+
+ public static void initComputeNodeTemplateIdInConsolidationData(String serviceTemplateFileName,
+ String computeNodeTypeName,
+ String computeNodeTemplateId,
+ ConsolidationData consolidationData) {
+
+ if(Objects.isNull(consolidationData.getComputeConsolidationData().getFileComputeConsolidationData
+ (serviceTemplateFileName))) {
+ consolidationData.getComputeConsolidationData().setFileComputeConsolidationData
+ (serviceTemplateFileName, new FileComputeConsolidationData());
+ }
+ TypeComputeConsolidationData typeComputeConsolidationData =
+ consolidationData.getComputeConsolidationData().getFileComputeConsolidationData
+ (serviceTemplateFileName).getTypeComputeConsolidationData(computeNodeTypeName);
+
+ if(
+ typeComputeConsolidationData.getComputeTemplateConsolidationData(computeNodeTemplateId) == null) {
+
+ consolidationData.getComputeConsolidationData()
+ .getFileComputeConsolidationData(serviceTemplateFileName)
+ .getTypeComputeConsolidationData(computeNodeTypeName)
+ .setComputeTemplateConsolidationData(computeNodeTemplateId, new ComputeTemplateConsolidationData());
+
+ }
+ }
+
+ public static void updateNestedConsolidationData(String serviceTemplateName,
+ List<String> substitutionNodeTemplateIds,
+ ConsolidationData consolidationData){
+ if(Objects.isNull(consolidationData.getNestedConsolidationData())){
+ consolidationData.setNestedConsolidationData(new NestedConsolidationData());
+ }
+
+ FileNestedConsolidationData fileNestedConsolidationData = new FileNestedConsolidationData();
+ for(String substitutionNodeTemplateId : substitutionNodeTemplateIds) {
+ NestedTemplateConsolidationData nestedTemplateConsolidationData = new NestedTemplateConsolidationData();
+ nestedTemplateConsolidationData.setNodeTemplateId(substitutionNodeTemplateId);
+ fileNestedConsolidationData.setNestedTemplateConsolidationData(substitutionNodeTemplateId, nestedTemplateConsolidationData);
+ }
+ consolidationData.getNestedConsolidationData().setFileNestedConsolidationData(serviceTemplateName, fileNestedConsolidationData);
+ }
+
+ public static ComputeTemplateConsolidationData createComputeTemplateConsolidationData(String computeNodeTemplateId,
+ List<Pair<String, String>> portTypeToIdList,
+ Map<String,List<RequirementAssignmentData>> volumes) {
+ ComputeTemplateConsolidationData compute = new ComputeTemplateConsolidationData();
+ compute.setNodeTemplateId(computeNodeTemplateId);
+ if (portTypeToIdList != null) {
+ for (Pair<String, String> port : portTypeToIdList) {
+ compute.addPort(port.getLeft(), port.getRight());
+ }
+ }
+ compute.setVolumes(volumes);
+ return compute;
+ }
+
+ public static void updateRelationsIn(EntityConsolidationData entity,
+ List<String> idsPontingTome){
+ if(CollectionUtils.isEmpty(idsPontingTome)){
+ return;
+ }
+
+ for(String pointingId : idsPontingTome){
+ entity.addNodesConnectedIn(pointingId, entity.getNodeTemplateId(), new RequirementAssignment());
+ }
+ }
+
+ public static void updateRelationsOut(EntityConsolidationData entity,
+ String nodeTemplateId,
+ List<String> idsToUpdate){
+ if(CollectionUtils.isEmpty(idsToUpdate)){
+ return;
+ }
+
+ for(String id : idsToUpdate){
+ entity.addNodesConnectedOut(id, id, new RequirementAssignment());
+ }
+ }
+
+ public static void updateGetAttrIn(EntityConsolidationData entity,
+ List<String> idsToUpdate){
+ if(CollectionUtils.isEmpty(idsToUpdate)){
+ return;
+ }
+
+ for(String id : idsToUpdate){
+ entity.addNodesGetAttrIn(id, new GetAttrFuncData());
+ }
+ }
+
+ public static void updateGetAttrOut(EntityConsolidationData entity,
+ List<Pair<String, GetAttrFuncData>> getAttrOutIds){
+ if(CollectionUtils.isEmpty(getAttrOutIds)){
+ return;
+ }
+
+ for(Pair<String, GetAttrFuncData> getAttrOutFunc : getAttrOutIds){
+ entity.addNodesGetAttrOut(getAttrOutFunc.getLeft(), getAttrOutFunc.getRight());
+ }
+ }
+
+ public static void updateVolumes(ComputeTemplateConsolidationData compute,
+ List<String> volumeIds){
+ if(CollectionUtils.isEmpty(volumeIds)){
+ return;
+ }
+
+ for(String id : volumeIds){
+ RequirementAssignment requirementAssignment = new RequirementAssignment();
+ requirementAssignment.setNode(id);
+ compute.addVolume(id, requirementAssignment);
+ }
+ }
+
+ public static void initComputeNodeTypeInConsolidationData(String serviceTemplateFileName,
+ String computeNodeTypeName,
+ ConsolidationData consolidationData) {
+ ComputeConsolidationData computeConsolidationData =
+ consolidationData.getComputeConsolidationData();
+ if (!computeConsolidationData.getAllServiceTemplateFileNames()
+ .contains(serviceTemplateFileName)) {
+ computeConsolidationData
+ .setFileComputeConsolidationData(serviceTemplateFileName,
+ new FileComputeConsolidationData());
+ }
+ computeConsolidationData
+ .getFileComputeConsolidationData(serviceTemplateFileName).setTypeComputeConsolidationData(
+ computeNodeTypeName, new TypeComputeConsolidationData());
+ }
+
+ public static Map<String, List<RequirementAssignmentData>> getNodeConnectedOutList(
+ NodeTemplate nodeTemplate, String requirementKey) {
+ Map<String, List<RequirementAssignmentData>> requirementAssignmentDataMap = new HashMap<>();
+ Optional<List<RequirementAssignmentData>> requirementAssignmentDataList =
+ TestUtils.createRequirementAssignmentDataList(nodeTemplate, requirementKey);
+ if (requirementAssignmentDataList.isPresent()) {
+ for (RequirementAssignmentData requirementAssignmentData : requirementAssignmentDataList
+ .get()) {
+ String connectedNodeTemplateId = requirementAssignmentData.getRequirementAssignment()
+ .getNode();
+ requirementAssignmentDataMap
+ .computeIfAbsent(connectedNodeTemplateId, k -> new ArrayList<>());
+ requirementAssignmentDataMap.get(connectedNodeTemplateId).add(requirementAssignmentData);
+ }
+ }
+ return requirementAssignmentDataMap;
+ }
+
+ public static void updatePortsInComputeTemplateConsolidationData(
+ List<Pair<String, String>> portIdToTypeList, ComputeTemplateConsolidationData
+ compute){
+ compute.setPorts(new HashMap<>());
+ for(Pair<String, String> portIdToType : portIdToTypeList){
+ compute.getPorts().putIfAbsent(portIdToType.getLeft(), new ArrayList<>());
+ compute.getPorts().get(portIdToType.getLeft()).add(portIdToType.getRight());
+ }
+ }
+
+ public static Map<String, List<RequirementAssignmentData>> getNodeConnectedInList(
+ String sourceNodeTemplateId,
+ ServiceTemplate serviceTemplate, String requirementKey) {
+ Optional<List<RequirementAssignmentData>> requirementAssignmentDataList = Optional.empty();
+ List<RequirementAssignmentData> assignmentDataList = new ArrayList<>();
+ Map<String, List<RequirementAssignmentData>> requirementAssignmentDataMap = new HashMap<>();
+ Map<String, NodeTemplate> nodeTemplates = serviceTemplate.getTopology_template()
+ .getNode_templates();
+ for (Map.Entry<String, NodeTemplate> entry : nodeTemplates.entrySet()) {
+ String nodeTemplateId = entry.getKey();
+ List<Map<String, RequirementAssignment>> requirements = entry.getValue().getRequirements();
+ if (requirements != null) {
+ for (Map<String, RequirementAssignment> requirement : requirements) {
+ if (requirement.get(requirementKey) != null) {
+ RequirementAssignment requirementAssignment = requirement.get(requirementKey);
+ if (requirementAssignment != null) {
+ if (requirementAssignment.getNode().equals(sourceNodeTemplateId)) {
+ RequirementAssignmentData data = new RequirementAssignmentData(requirementKey,
+ requirementAssignment);
+ assignmentDataList.add(data);
+ }
+ }
+ }
+ }
+ requirementAssignmentDataList = Optional.ofNullable(assignmentDataList);
+ if (requirementAssignmentDataList.isPresent()) {
+ for (RequirementAssignmentData requirementAssignmentData : requirementAssignmentDataList
+ .get()) {
+ requirementAssignmentDataMap.computeIfAbsent(nodeTemplateId, k -> new ArrayList<>());
+ requirementAssignmentDataMap.get(nodeTemplateId).add(requirementAssignmentData);
+ }
+ }
+ requirementAssignmentDataList = Optional.empty();
+ }
+ }
+ return requirementAssignmentDataMap;
+ }
+
+ public static List<String> getGroupsForNode(ServiceTemplate serviceTemplate, String
+ nodeTemplateId) {
+ List<String> entityGroups = new ArrayList<>();
+ Map<String, GroupDefinition> groups = serviceTemplate.getTopology_template().getGroups();
+ Map<String, NodeTemplate> nodeTemplates =
+ serviceTemplate.getTopology_template().getNode_templates();
+ for (Map.Entry<String, GroupDefinition> entry : groups.entrySet()) {
+ String groupId = entry.getKey();
+ GroupDefinition groupDefinition = entry.getValue();
+ if (groupDefinition.getType().contains("HeatStack"))
+ continue;
+ List<String> groupMembers = groupDefinition.getMembers();
+ for (String member : groupMembers) {
+ if (groups.containsKey(member))
+ continue;
+ if (member.equals(nodeTemplateId)) {
+ entityGroups.add(groupId);
+ }
+ }
+ }
+ return entityGroups;
+ }
+
+ private static Optional<List<RequirementAssignmentData>> createRequirementAssignmentDataList(
+ NodeTemplate nodeTemplate, String requirementKey) {
+
+ Optional<List<RequirementAssignment>> requirementAssignmentLink =
+ DataModelUtil.getRequirementAssignment(nodeTemplate.getRequirements(), requirementKey);
+ if (!requirementAssignmentLink.isPresent()) {
+ return Optional.empty();
+ }
+
+ List<RequirementAssignmentData> requirementAssignmentDataList = new ArrayList<>();
+ for (RequirementAssignment requirementAssignment : requirementAssignmentLink.get()) {
+ RequirementAssignmentData requirementAssignmentData = new RequirementAssignmentData
+ (requirementKey, requirementAssignment);
+ requirementAssignmentDataList.add(requirementAssignmentData);
+ }
+ return Optional.ofNullable(requirementAssignmentDataList);
+ }
+
+ public static Optional<List<RequirementAssignmentData>> getRequirementAssignmentDataList(
+ NodeTemplate nodeTemplate, String requirementKey) {
+ List<RequirementAssignmentData> returnedReqAssignmentDataList = new ArrayList<>();
+ Optional<List<RequirementAssignmentData>> requirementAssignmentDataList =
+ TestUtils.createRequirementAssignmentDataList(nodeTemplate, requirementKey);
+
+ if (requirementAssignmentDataList.isPresent()) {
+ for (RequirementAssignmentData requirementAssignmentData : requirementAssignmentDataList
+ .get()) {
+ returnedReqAssignmentDataList.add(requirementAssignmentData);
+ }
+ return Optional.of(returnedReqAssignmentDataList);
+ }
+ return Optional.empty();
+ }
+
+
+
}
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/impl/heattotosca/nested/multi/Translate_Heat_Nested_Multi.java b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/impl/heattotosca/nested/multi/Translate_Heat_Nested_Multi.java
index 4be63258ae..10462c2838 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/impl/heattotosca/nested/multi/Translate_Heat_Nested_Multi.java
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/impl/heattotosca/nested/multi/Translate_Heat_Nested_Multi.java
@@ -1,7 +1,27 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
package org.openecomp.sdc.translator.impl.heattotosca.nested.multi;
-import org.openecomp.sdc.translator.services.heattotosca.impl.BaseResourceTranslationTest;
import org.junit.Test;
+import org.openecomp.sdc.translator.services.heattotosca.impl.resourcetranslation.BaseResourceTranslationTest;
public class Translate_Heat_Nested_Multi extends BaseResourceTranslationTest {
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/impl/heattotosca/nested/nestedvolumelocal/NestedVolumelocal.java b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/impl/heattotosca/nested/nestedvolumelocal/NestedVolumelocal.java
index 4f2f3af33a..84f05ce891 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/impl/heattotosca/nested/nestedvolumelocal/NestedVolumelocal.java
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/impl/heattotosca/nested/nestedvolumelocal/NestedVolumelocal.java
@@ -1,7 +1,27 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
package org.openecomp.sdc.translator.impl.heattotosca.nested.nestedvolumelocal;
-import org.openecomp.sdc.translator.services.heattotosca.impl.BaseResourceTranslationTest;
import org.junit.Test;
+import org.openecomp.sdc.translator.services.heattotosca.impl.resourcetranslation.BaseResourceTranslationTest;
public class NestedVolumelocal extends BaseResourceTranslationTest {
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/impl/heattotosca/nested/nestedvolumeseperatefile/NestedVolumeSeperateFile.java b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/impl/heattotosca/nested/nestedvolumeseperatefile/NestedVolumeSeperateFile.java
index 02a8fb6ce4..bd59303305 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/impl/heattotosca/nested/nestedvolumeseperatefile/NestedVolumeSeperateFile.java
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/impl/heattotosca/nested/nestedvolumeseperatefile/NestedVolumeSeperateFile.java
@@ -1,7 +1,27 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
package org.openecomp.sdc.translator.impl.heattotosca.nested.nestedvolumeseperatefile;
-import org.openecomp.sdc.translator.services.heattotosca.impl.BaseResourceTranslationTest;
import org.junit.Test;
+import org.openecomp.sdc.translator.services.heattotosca.impl.resourcetranslation.BaseResourceTranslationTest;
public class NestedVolumeSeperateFile extends BaseResourceTranslationTest {
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/impl/heattotosca/nested/recursive/TranslateHeatNestedRecursiveTest.java b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/impl/heattotosca/nested/recursive/TranslateHeatNestedRecursiveTest.java
index 792f4f4bf5..5cad472aa0 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/impl/heattotosca/nested/recursive/TranslateHeatNestedRecursiveTest.java
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/impl/heattotosca/nested/recursive/TranslateHeatNestedRecursiveTest.java
@@ -1,8 +1,29 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
package org.openecomp.sdc.translator.impl.heattotosca.nested.recursive;
-import org.openecomp.sdc.translator.services.heattotosca.impl.BaseResourceTranslationTest;
import org.junit.Before;
import org.junit.Test;
+import org.openecomp.sdc.translator.services.heattotosca.buildconsolidationdata.TestConstants;
+import org.openecomp.sdc.translator.services.heattotosca.impl.resourcetranslation.BaseResourceTranslationTest;
import java.io.IOException;
@@ -29,6 +50,8 @@ public class TranslateHeatNestedRecursiveTest extends BaseResourceTranslationTes
outputFilesPath = "/mock/heat/nested/nested2levels/expectedoutputfiles";
initTranslatorAndTranslate();
testTranslation();
+ validateNestedTemplateConsolidationData(TestConstants
+ .TEST_MULTIPLE_MULTI_LEVEL_NESTED_RESOURCE);
}
@Test
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/impl/heattotosca/nested/reusenestedfrommultibase/Translate_Heat_Nested_From_Multi_Base.java b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/impl/heattotosca/nested/reusenestedfrommultibase/Translate_Heat_Nested_From_Multi_Base.java
index 005bcd0db0..b715316146 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/impl/heattotosca/nested/reusenestedfrommultibase/Translate_Heat_Nested_From_Multi_Base.java
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/impl/heattotosca/nested/reusenestedfrommultibase/Translate_Heat_Nested_From_Multi_Base.java
@@ -1,7 +1,28 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
package org.openecomp.sdc.translator.impl.heattotosca.nested.reusenestedfrommultibase;
-import org.openecomp.sdc.translator.services.heattotosca.impl.BaseResourceTranslationTest;
import org.junit.Test;
+import org.openecomp.sdc.translator.services.heattotosca.buildconsolidationdata.TestConstants;
+import org.openecomp.sdc.translator.services.heattotosca.impl.resourcetranslation.BaseResourceTranslationTest;
public class Translate_Heat_Nested_From_Multi_Base extends BaseResourceTranslationTest {
@@ -13,6 +34,7 @@ public class Translate_Heat_Nested_From_Multi_Base extends BaseResourceTranslati
@Test
public void testTranslate() throws Exception {
testTranslation();
+ validateNestedTemplateConsolidationData(TestConstants.TEST_MULTIPLE_NESTED_RESOURCE);
}
}
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/impl/heattotosca/nested/separatevol/NestedAndSeparateVolTranslationTest.java b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/impl/heattotosca/nested/separatevol/NestedAndSeparateVolTranslationTest.java
index 4269705923..d867dc4597 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/impl/heattotosca/nested/separatevol/NestedAndSeparateVolTranslationTest.java
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/impl/heattotosca/nested/separatevol/NestedAndSeparateVolTranslationTest.java
@@ -1,11 +1,32 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
package org.openecomp.sdc.translator.impl.heattotosca.nested.separatevol;
-import org.openecomp.sdc.translator.services.heattotosca.impl.BaseResourceTranslationTest;
import org.junit.Before;
import org.junit.Test;
+import org.openecomp.sdc.translator.services.heattotosca.impl.resourcetranslation.BaseResourceTranslationTest;
import java.io.IOException;
+
public class NestedAndSeparateVolTranslationTest extends BaseResourceTranslationTest {
@Before
@@ -19,4 +40,4 @@ public class NestedAndSeparateVolTranslationTest extends BaseResourceTranslation
public void testTranslate() throws Exception {
testTranslation();
}
-} \ No newline at end of file
+}
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/impl/heattotosca/nested/single/TranslateHeatNestedSingle.java b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/impl/heattotosca/nested/single/TranslateHeatNestedSingle.java
index 1d80551f27..f81da11bc9 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/impl/heattotosca/nested/single/TranslateHeatNestedSingle.java
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/impl/heattotosca/nested/single/TranslateHeatNestedSingle.java
@@ -1,7 +1,29 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
package org.openecomp.sdc.translator.impl.heattotosca.nested.single;
-import org.openecomp.sdc.translator.services.heattotosca.impl.BaseResourceTranslationTest;
import org.junit.Test;
+import org.openecomp.sdc.translator.services.heattotosca.buildconsolidationdata.ConsolidationDataTestUtil;
+import org.openecomp.sdc.translator.services.heattotosca.buildconsolidationdata.TestConstants;
+import org.openecomp.sdc.translator.services.heattotosca.impl.resourcetranslation.BaseResourceTranslationTest;
public class TranslateHeatNestedSingle extends BaseResourceTranslationTest {
@@ -13,5 +35,6 @@ public class TranslateHeatNestedSingle extends BaseResourceTranslationTest {
@Test
public void testTranslate() throws Exception {
testTranslation();
+ validateNestedTemplateConsolidationData(TestConstants.TEST_SINGLE_NESTED_RESOURCE);
}
}
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/impl/heattotosca/outputs/HeatOutputConversionTest.java b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/impl/heattotosca/outputs/HeatOutputConversionTest.java
index fd3543a051..e3197770a7 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/impl/heattotosca/outputs/HeatOutputConversionTest.java
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/impl/heattotosca/outputs/HeatOutputConversionTest.java
@@ -1,7 +1,27 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
package org.openecomp.sdc.translator.impl.heattotosca.outputs;
-import org.openecomp.sdc.translator.services.heattotosca.impl.BaseResourceTranslationTest;
import org.junit.Test;
+import org.openecomp.sdc.translator.services.heattotosca.impl.resourcetranslation.BaseResourceTranslationTest;
public class HeatOutputConversionTest extends BaseResourceTranslationTest {
@@ -16,35 +36,4 @@ public class HeatOutputConversionTest extends BaseResourceTranslationTest {
}
- //private static final String MANIFEST_NAME = "MANIFEST.json";
-
- /* @Test
- public void testTranslate_outputs() throws IOException {
-
- HeatToToscaTranslator heatToToscaTranslator = HeatToToscaTranslatorFactory.getInstance().createInterface();
- URL url = this.getClass().getResource("/mock/heat/outputs");
- File manifestFile = new File(url.getPath());
- File[] files = manifestFile.listFiles();
- FileInputStream fis;
- byte[] fileContent;
- for (File file : files) {
- fis = new FileInputStream(file);
- fileContent = FileUtils.toByteArray(fis);
- if (file.getName().equals(MANIFEST_NAME)) {
- heatToToscaTranslator.addManifest(MANIFEST_NAME, new String(fileContent));
- } else {
- heatToToscaTranslator.addFile(file.getName(), fileContent);
- }
- }
-
- TranslatorOutput translatorOutput = heatToToscaTranslator.translate();
- Assert.assertNotNull(translatorOutput);
- File file = new File("Outputs.zip");
- FileOutputStream fos = new FileOutputStream(file);
- fos.write(translatorOutput.getTranslationContent());
- fos.close();
-
- }*/
-
-
}
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/impl/heattotosca/parameters/HeatParameterConversionTest.java b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/impl/heattotosca/parameters/HeatParameterConversionTest.java
index 4feef0e094..5f2c3691c2 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/impl/heattotosca/parameters/HeatParameterConversionTest.java
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/impl/heattotosca/parameters/HeatParameterConversionTest.java
@@ -1,7 +1,27 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
package org.openecomp.sdc.translator.impl.heattotosca.parameters;
-import org.openecomp.sdc.translator.services.heattotosca.impl.BaseResourceTranslationTest;
import org.junit.Test;
+import org.openecomp.sdc.translator.services.heattotosca.impl.resourcetranslation.BaseResourceTranslationTest;
public class HeatParameterConversionTest extends BaseResourceTranslationTest {
@@ -15,40 +35,4 @@ public class HeatParameterConversionTest extends BaseResourceTranslationTest {
testTranslation();
}
-
- /*
-
- private static final String MANIFEST_NAME = "MANIFEST.json";
-
- @Test
- public void testTranslate_parameters() throws IOException {
-
-
-
- HeatToToscaTranslator heatToToscaTranslator = HeatToToscaTranslatorFactory.getInstance().createInterface();
- URL url = this.getClass().getResource("/mock/heat/parameters");
- File manifestFile = new File(url.getPath());
- File[] files = manifestFile.listFiles();
- FileInputStream fis;
- byte[] fileContent;
- for (File file : files) {
- fis = new FileInputStream(file);
- fileContent = FileUtils.toByteArray(fis);
- if (file.getName().equals(MANIFEST_NAME)) {
- heatToToscaTranslator.addManifest(MANIFEST_NAME, new String(fileContent));
- } else {
- heatToToscaTranslator.addFile(file.getName(), fileContent);
- }
- }
-
- TranslatorOutput translatorOutput = heatToToscaTranslator.translate();
- Assert.assertNotNull(translatorOutput);
- File file = new File("Parameters.zip");
- FileOutputStream fos = new FileOutputStream(file);
- fos.write(translatorOutput.getTranslationContent());
- fos.close();
-
- }
- */
-
}
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/impl/heattotosca/resources/ContrailNetworkRuleTest.java b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/impl/heattotosca/resources/ContrailNetworkRuleTest.java
index f8b3022155..b4ae36d289 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/impl/heattotosca/resources/ContrailNetworkRuleTest.java
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/impl/heattotosca/resources/ContrailNetworkRuleTest.java
@@ -1,7 +1,27 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
package org.openecomp.sdc.translator.impl.heattotosca.resources;
-import org.openecomp.sdc.translator.services.heattotosca.impl.BaseResourceTranslationTest;
import org.junit.Test;
+import org.openecomp.sdc.translator.services.heattotosca.impl.resourcetranslation.BaseResourceTranslationTest;
public class ContrailNetworkRuleTest extends BaseResourceTranslationTest {
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/impl/heattotosca/resources/OSContrailVirtualNetworkTest.java b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/impl/heattotosca/resources/OSContrailVirtualNetworkTest.java
index b1305c3b2c..0b55173c6e 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/impl/heattotosca/resources/OSContrailVirtualNetworkTest.java
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/impl/heattotosca/resources/OSContrailVirtualNetworkTest.java
@@ -1,7 +1,27 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
package org.openecomp.sdc.translator.impl.heattotosca.resources;
-import org.openecomp.sdc.translator.services.heattotosca.impl.BaseResourceTranslationTest;
import org.junit.Test;
+import org.openecomp.sdc.translator.services.heattotosca.impl.resourcetranslation.BaseResourceTranslationTest;
public class OSContrailVirtualNetworkTest extends BaseResourceTranslationTest {
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/impl/heattotosca/resources/OSNeutronNetTest.java b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/impl/heattotosca/resources/OSNeutronNetTest.java
index 3b312a804d..f5568e3fb6 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/impl/heattotosca/resources/OSNeutronNetTest.java
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/impl/heattotosca/resources/OSNeutronNetTest.java
@@ -1,7 +1,27 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
package org.openecomp.sdc.translator.impl.heattotosca.resources;
-import org.openecomp.sdc.translator.services.heattotosca.impl.BaseResourceTranslationTest;
import org.junit.Test;
+import org.openecomp.sdc.translator.services.heattotosca.impl.resourcetranslation.BaseResourceTranslationTest;
public class OSNeutronNetTest extends BaseResourceTranslationTest {
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/impl/heattotosca/resources/OSNovaServerTest.java b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/impl/heattotosca/resources/OSNovaServerTest.java
index 6d194ea220..ebb34503bb 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/impl/heattotosca/resources/OSNovaServerTest.java
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/impl/heattotosca/resources/OSNovaServerTest.java
@@ -1,17 +1,62 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
package org.openecomp.sdc.translator.impl.heattotosca.resources;
-import org.openecomp.sdc.translator.services.heattotosca.impl.BaseResourceTranslationTest;
+import static org.openecomp.sdc.translator.services.heattotosca.buildconsolidationdata.TestConstants.TEST_PORT_POSITIVE;
+import static org.openecomp.sdc.translator.services.heattotosca.buildconsolidationdata.TestConstants.TEST_VOLUME_POSITIVE;
+
+import org.junit.Before;
import org.junit.Test;
+import org.openecomp.sdc.translator.services.heattotosca.buildconsolidationdata.ConsolidationDataValidationType;
+import org.openecomp.sdc.translator.services.heattotosca.impl.resourcetranslation.BaseResourceTranslationTest;
+
+import java.io.IOException;
public class OSNovaServerTest extends BaseResourceTranslationTest {
- {
+ @Override
+ @Before
+ public void setUp() throws IOException {
+ // do not delete this function. it prevents the superclass setup from running
+ }
+
+ @Test
+ public void testTranslate() throws Exception {
inputFilesPath = "/mock/heat/resources/OS_Nova_Server/inputs";
outputFilesPath = "/mock/heat/resources/OS_Nova_Server/expectedoutputfiles";
+ initTranslatorAndTranslate();
+ testTranslation();
+ validateComputeTemplateConsolidationData(ConsolidationDataValidationType.VALIDATE_VOLUME,
+ TEST_VOLUME_POSITIVE);
+ validateComputeTemplateConsolidationData(ConsolidationDataValidationType.VALIDATE_PORT,
+ TEST_PORT_POSITIVE);
}
@Test
- public void testTranslate() throws Exception {
+ public void testTranslateWithOnlyPorts() throws Exception {
+ inputFilesPath = "/mock/heat/resources/Port/inputfiles";
+ outputFilesPath = "/mock/heat/resources/Port/expectedoutputfiles";
+ initTranslatorAndTranslate();
testTranslation();
+ validateComputeTemplateConsolidationData(ConsolidationDataValidationType.VALIDATE_PORT,
+ TEST_PORT_POSITIVE);
}
}
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/impl/heattotosca/sharedresource/HeatSharedResourceTest.java b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/impl/heattotosca/sharedresource/HeatSharedResourceTest.java
index 2395fa00db..d518e9ce11 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/impl/heattotosca/sharedresource/HeatSharedResourceTest.java
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/impl/heattotosca/sharedresource/HeatSharedResourceTest.java
@@ -1,7 +1,27 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
package org.openecomp.sdc.translator.impl.heattotosca.sharedresource;
-import org.openecomp.sdc.translator.services.heattotosca.impl.BaseResourceTranslationTest;
import org.junit.Test;
+import org.openecomp.sdc.translator.services.heattotosca.impl.resourcetranslation.BaseResourceTranslationTest;
public class HeatSharedResourceTest extends BaseResourceTranslationTest {
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/ConsolidationServiceTest.java b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/ConsolidationServiceTest.java
new file mode 100644
index 0000000000..61777a6586
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/ConsolidationServiceTest.java
@@ -0,0 +1,1990 @@
+package org.openecomp.sdc.translator.services.heattotosca;
+
+import org.apache.commons.lang3.tuple.ImmutablePair;
+import org.apache.commons.lang3.tuple.Pair;
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Test;
+import org.mockito.*;
+import org.openecomp.sdc.tosca.datatypes.ToscaServiceModel;
+import org.openecomp.sdc.tosca.datatypes.model.ServiceTemplate;
+import org.openecomp.sdc.tosca.services.ToscaConstants;
+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.UnifiedCompositionMode;
+import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolidation.ConsolidationData;
+import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolidation.GetAttrFuncData;
+
+import java.io.IOException;
+import java.util.*;
+
+import static org.mockito.Matchers.any;
+import static org.mockito.Matchers.eq;
+import static org.mockito.Mockito.never;
+import static org.mockito.Mockito.times;
+import static org.mockito.Mockito.verify;
+
+/**
+ * Created by TALIO on 3/7/2017.
+ */
+public class ConsolidationServiceTest {
+
+ @Spy
+ private TranslationContext translationContext = new TranslationContext();
+ private static String mainST = "MainServiceTemplate.yaml";
+
+ @Mock
+ private UnifiedCompositionService unifiedCompositionServiceMock;
+
+ @Captor
+ private ArgumentCaptor<List<UnifiedCompositionData>> unifiedModelListArg;
+ @Captor
+ private ArgumentCaptor<UnifiedCompositionMode> unifiedCompositionModeArg;
+
+ @InjectMocks
+ private ConsolidationService consolidationService;
+
+ @Before
+ public void setUp() throws Exception {
+ MockitoAnnotations.initMocks(this);
+ }
+
+ @Test
+ public void testConsolidationValidPreCondition() throws IOException {
+
+ ConsolidationData consolidationData = new ConsolidationData();
+ String computeNodeTypeName = "org.openecomp.resource.vfc.nodes.heat.ps_server";
+ ToscaServiceModel toscaServiceModel = TestUtils.loadToscaServiceModel(
+ "/mock/services/heattotosca/consolidation/translatedfiles/pre_condition/valid_pre_condition/", null,
+ null);
+
+ TestUtils.initComputeNodeTypeInConsolidationData(mainST, computeNodeTypeName,
+ consolidationData);
+
+ List<Pair<String, String>> portTypeToIdList = new ArrayList<>();
+ portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_1"));
+ portTypeToIdList.add(new ImmutablePair<>("sm01_port", "sm01_port_1"));
+
+ TestUtils.updateComputeTemplateConsolidationData(
+ mainST,
+ computeNodeTypeName, "server_ps01",
+ null, null, null, null, null, null,
+ portTypeToIdList, consolidationData);
+
+ TestUtils.updateComputeTemplateConsolidationData(
+ mainST,
+ computeNodeTypeName, "server_ps02", null, null, null, null, null, null,
+ portTypeToIdList, consolidationData);
+
+ TestUtils.initPortConsolidationData(mainST, consolidationData);
+ TestUtils.updatePortConsolidationData(mainST, "cm01_port_1",
+ null, null, null, null, null,
+ consolidationData);
+ TestUtils.updatePortConsolidationData(mainST, "sm01_port_1",
+ null, null, null, null, null,
+ consolidationData);
+
+ translationContext.setConsolidationData(consolidationData);
+ List<UnifiedCompositionMode> expectedUnifiedModes =
+ Arrays.asList(UnifiedCompositionMode.ScalingInstances);
+
+ verifyMainServiceTemplateConsolidation(1, expectedUnifiedModes, toscaServiceModel);
+ }
+
+ @Test
+ public void testConsolidationFalsePreConditionOneComputeNode() throws IOException {
+ ConsolidationData consolidationData = new ConsolidationData();
+ String computeNodeTypeName = "org.openecomp.resource.vfc.nodes.heat.ps_server";
+ ToscaServiceModel toscaServiceModel = TestUtils.loadToscaServiceModel
+ ("/mock/services/heattotosca/consolidation/translatedfiles/pre_condition/one_compute_node/", null, null);
+
+ TestUtils.initComputeNodeTypeInConsolidationData(mainST, computeNodeTypeName, consolidationData);
+
+ List<Pair<String, String>> portTypeToIdList = new ArrayList<>();
+ portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_1"));
+ portTypeToIdList.add(new ImmutablePair<>("sm01_port", "sm01_port_1"));
+
+ TestUtils.updateComputeTemplateConsolidationData(
+ mainST,
+ computeNodeTypeName, "server_ps01",
+ null, null, null, null, null, null,
+ portTypeToIdList, consolidationData);
+
+ TestUtils.initPortConsolidationData(mainST, consolidationData);
+ TestUtils.updatePortConsolidationData(mainST, "cm01_port_1",
+ null, null, null, null, null,
+ consolidationData);
+ TestUtils.updatePortConsolidationData(mainST, "sm01_port_1",
+ null, null, null, null, null,
+ consolidationData);
+
+ translationContext.setConsolidationData(consolidationData);
+ List<UnifiedCompositionMode> expectedUnifiedModes =
+ Arrays.asList(UnifiedCompositionMode.SingleSubstitution);
+ verifyMainServiceTemplateConsolidation(1, expectedUnifiedModes, toscaServiceModel);
+ }
+
+ @Test
+ public void testConsolidationFalsePreConditionMoreThanOnePortPerType() throws IOException {
+ ConsolidationData consolidationData = new ConsolidationData();
+ String computeNodeTypeName = "org.openecomp.resource.vfc.nodes.heat.ps_server";
+ ToscaServiceModel toscaServiceModel = TestUtils.loadToscaServiceModel
+ ("/mock/services/heattotosca/consolidation/translatedfiles/pre_condition/more_than_one_port/",
+ null, null);
+
+ TestUtils.initComputeNodeTypeInConsolidationData(mainST, computeNodeTypeName, consolidationData);
+
+ List<Pair<String, String>> portTypeToIdList = new ArrayList<>();
+ portTypeToIdList.add(new ImmutablePair<>("sm01_port", "sm01_port_1"));
+ portTypeToIdList.add(new ImmutablePair<>("sm01_port", "sm01_port_2"));
+
+ TestUtils.updateComputeTemplateConsolidationData(
+ mainST,
+ computeNodeTypeName, "server_ps01",
+ null, null, null, null, null, null,
+ portTypeToIdList, consolidationData);
+
+ TestUtils.updateComputeTemplateConsolidationData(
+ mainST,
+ computeNodeTypeName, "server_ps02",
+ null, null, null, null, null, null,
+ portTypeToIdList, consolidationData);
+
+
+ TestUtils.initPortConsolidationData(mainST, consolidationData);
+
+ translationContext.setConsolidationData(consolidationData);
+ List<UnifiedCompositionMode> expectedUnifiedModes =
+ Arrays.asList(UnifiedCompositionMode.SingleSubstitution);
+ verifyMainServiceTemplateConsolidation(1, expectedUnifiedModes, toscaServiceModel);
+ }
+
+ @Test
+ public void testConsolidationFalsePreConditionDifferentPortTypesBetweenComputes()
+ throws IOException {
+ ConsolidationData consolidationData = new ConsolidationData();
+ String computeNodeTypeName = "org.openecomp.resource.vfc.nodes.heat.ps_server";
+ ToscaServiceModel toscaServiceModel = TestUtils.loadToscaServiceModel
+ ("/mock/services/heattotosca/consolidation/translatedfiles/pre_condition/different_port_types",
+ null, null);
+
+ TestUtils.initComputeNodeTypeInConsolidationData(mainST, computeNodeTypeName, consolidationData);
+
+ List<Pair<String, String>> portTypeToIdList = new ArrayList<>();
+ portTypeToIdList.add(new ImmutablePair<>("sm01_port", "sm01_port_1"));
+
+ TestUtils.updateComputeTemplateConsolidationData(
+ mainST,
+ computeNodeTypeName, "server_ps01",
+ null, null, null, null, null, null,
+ portTypeToIdList, consolidationData);
+
+ portTypeToIdList = new ArrayList<>();
+ portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_1"));
+
+ TestUtils.updateComputeTemplateConsolidationData(
+ mainST,
+ computeNodeTypeName, "server_ps02",
+ null, null, null, null, null, null,
+ portTypeToIdList, consolidationData);
+
+ TestUtils.initPortConsolidationData(mainST, consolidationData);
+ TestUtils.updatePortConsolidationData(mainST, "cm01_port_1",
+ null, null, null, null, null,
+ consolidationData);
+ TestUtils.updatePortConsolidationData(mainST, "sm01_port_1",
+ null, null, null, null, null,
+ consolidationData);
+
+ translationContext.setConsolidationData(consolidationData);
+ List<UnifiedCompositionMode> expectedUnifiedModes =
+ Arrays.asList(UnifiedCompositionMode.SingleSubstitution);
+ verifyMainServiceTemplateConsolidation(1, expectedUnifiedModes, toscaServiceModel);
+
+ }
+
+ @Test
+ public void testConsolidationResultTrueWithMoreThanTwoCompute() throws IOException {
+ ConsolidationData consolidationData = new ConsolidationData();
+ String computeNodeTypeName = "org.openecomp.resource.vfc.nodes.heat.ps_server";
+ ToscaServiceModel toscaServiceModel = TestUtils.loadToscaServiceModel
+ ("/mock/services/heattotosca/consolidation/translatedfiles/pre_condition/three_compute_valid",
+ null, null);
+
+ TestUtils.initComputeNodeTypeInConsolidationData(mainST, computeNodeTypeName, consolidationData);
+
+ List<Pair<String, String>> portTypeToIdList = new ArrayList<>();
+ portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_1"));
+ portTypeToIdList.add(new ImmutablePair<>("sm01_port", "sm01_port_1"));
+
+ TestUtils.updateComputeTemplateConsolidationData(
+ mainST,
+ computeNodeTypeName, "server_ps01",
+ null, null, null, null, null, null,
+ portTypeToIdList, consolidationData);
+
+ TestUtils.updateComputeTemplateConsolidationData(
+ mainST,
+ computeNodeTypeName, "server_ps02",
+ null, null, null, null, null, null,
+ portTypeToIdList, consolidationData);
+
+ TestUtils.updateComputeTemplateConsolidationData(
+ mainST,
+ computeNodeTypeName, "server_ps03",
+ null, null, null, null, null, null,
+ portTypeToIdList, consolidationData);
+
+ TestUtils.initPortConsolidationData(mainST, consolidationData);
+ TestUtils.updatePortConsolidationData(mainST, "cm01_port_1",
+ null, null, null, null, null,
+ consolidationData);
+ TestUtils.updatePortConsolidationData(mainST, "sm01_port_1",
+ null, null, null, null, null,
+ consolidationData);
+
+ translationContext.setConsolidationData(consolidationData);
+
+ List<UnifiedCompositionMode> expectedUnifiedModes =
+ Arrays.asList(UnifiedCompositionMode.ScalingInstances);
+ verifyMainServiceTemplateConsolidation(1, expectedUnifiedModes, toscaServiceModel);
+ }
+
+ @Test
+ public void testConsolidationResultFalseWithMoreThanTwoComputeOneIsDiff() throws IOException {
+ ConsolidationData consolidationData = new ConsolidationData();
+ String computeNodeTypeName = "org.openecomp.resource.vfc.nodes.heat.ps_server";
+ ToscaServiceModel toscaServiceModel = TestUtils.loadToscaServiceModel
+ ("/mock/services/heattotosca/consolidation/translatedfiles/pre_condition/three_compute_valid",
+ null, null);
+
+ TestUtils.initComputeNodeTypeInConsolidationData(mainST, computeNodeTypeName, consolidationData);
+
+ List<Pair<String, String>> portTypeToIdList = new ArrayList<>();
+ portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_1"));
+ portTypeToIdList.add(new ImmutablePair<>("sm01_port", "sm01_port_1"));
+
+ TestUtils.updateComputeTemplateConsolidationData(
+ mainST,
+ computeNodeTypeName, "server_ps01",
+ null, null, null, null, null, null,
+ portTypeToIdList, consolidationData);
+
+ TestUtils.updateComputeTemplateConsolidationData(
+ mainST,
+ computeNodeTypeName, "server_ps02",
+ null, null, null, null, null, null,
+ portTypeToIdList, consolidationData);
+
+ portTypeToIdList = new ArrayList<>();
+ portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_1"));
+ TestUtils.updateComputeTemplateConsolidationData(
+ mainST,
+ computeNodeTypeName, "server_ps03",
+ null, null, null, null, null, null,
+ portTypeToIdList, consolidationData);
+
+ TestUtils.initPortConsolidationData(mainST, consolidationData);
+ TestUtils.updatePortConsolidationData(mainST, "cm01_port_1",
+ null, null, null, null, null,
+ consolidationData);
+ TestUtils.updatePortConsolidationData(mainST, "sm01_port_1",
+ null, null, null, null, null,
+ consolidationData);
+
+ translationContext.setConsolidationData(consolidationData);
+ List<UnifiedCompositionMode> expectedUnifiedModes =
+ Arrays.asList(UnifiedCompositionMode.SingleSubstitution);
+ verifyMainServiceTemplateConsolidation(1, expectedUnifiedModes, toscaServiceModel);
+ }
+
+ @Test
+ public void testConsolidationResultFalseForTwoTypesOfComputeWithOneInstanceEach()
+ throws IOException {
+ ConsolidationData consolidationData = new ConsolidationData();
+ String computeNodeTypeName1 = "org.openecomp.resource.vfc.nodes.heat.ps_server";
+ String computeNodeTypeName2 = "org.openecomp.resource.vfc.nodes.heat.cmaui";
+ ToscaServiceModel toscaServiceModel = TestUtils.loadToscaServiceModel
+ ("/mock/services/heattotosca/consolidation/translatedfiles/pre_condition/three_compute_valid",
+ null, null);
+
+ TestUtils.initComputeNodeTypeInConsolidationData
+ (mainST, computeNodeTypeName1, consolidationData);
+ TestUtils.initComputeNodeTypeInConsolidationData
+ (mainST, computeNodeTypeName2, consolidationData);
+
+ List<Pair<String, String>> portTypeToIdList = new ArrayList<>();
+ portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_1"));
+ portTypeToIdList.add(new ImmutablePair<>("sm01_port", "sm01_port_1"));
+
+ TestUtils.updateComputeTemplateConsolidationData(
+ mainST,
+ computeNodeTypeName1, "server_ps01",
+ null, null, null, null, null, null,
+ portTypeToIdList, consolidationData);
+
+ TestUtils.updateComputeTemplateConsolidationData(
+ mainST,
+ computeNodeTypeName2, "server_ps02",
+ null, null, null, null, null, null,
+ portTypeToIdList, consolidationData);
+
+ TestUtils.initPortConsolidationData(mainST, consolidationData);
+ TestUtils.updatePortConsolidationData(mainST, "cm01_port_1",
+ null, null, null, null, null,
+ consolidationData);
+ TestUtils.updatePortConsolidationData(mainST, "sm01_port_1",
+ null, null, null, null, null,
+ consolidationData);
+
+ translationContext.setConsolidationData(consolidationData);
+
+ List<UnifiedCompositionMode> expectedUnifiedModes =
+ Arrays.asList(UnifiedCompositionMode.SingleSubstitution, UnifiedCompositionMode.SingleSubstitution);
+ verifyMainServiceTemplateConsolidation(2, expectedUnifiedModes, toscaServiceModel);
+ }
+
+ @Test
+ public void testConsolidationValidForTwoSimilarComputeAndFalseForSingleCompute() throws IOException {
+ ConsolidationData consolidationData = new ConsolidationData();
+ String computeNodeTypeName1 = "org.openecomp.resource.vfc.nodes.heat.ps_server";
+ String computeNodeTypeName2 = "org.openecomp.resource.vfc.nodes.heat.cmaui";
+ ToscaServiceModel toscaServiceModel = TestUtils.loadToscaServiceModel
+ ("/mock/services/heattotosca/consolidation/translatedfiles/pre_condition/three_compute_two_similar_one_diff",
+ null, null);
+
+ TestUtils.initComputeNodeTypeInConsolidationData(mainST, computeNodeTypeName1, consolidationData);
+ TestUtils.initComputeNodeTypeInConsolidationData(mainST, computeNodeTypeName2, consolidationData);
+
+ List<Pair<String, String>> portTypeToIdList = new ArrayList<>();
+ portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_1"));
+ portTypeToIdList.add(new ImmutablePair<>("sm01_port", "sm01_port_1"));
+
+ TestUtils.updateComputeTemplateConsolidationData(
+ mainST,
+ computeNodeTypeName1, "server_ps01",
+ null, null, null, null, null, null,
+ portTypeToIdList, consolidationData);
+
+ TestUtils.updateComputeTemplateConsolidationData(
+ mainST,
+ computeNodeTypeName1, "server_ps02",
+ null, null, null, null, null, null,
+ portTypeToIdList, consolidationData);
+ TestUtils.updateComputeTemplateConsolidationData(
+ mainST,
+ computeNodeTypeName2, "server_ps03",
+ null, null, null, null, null, null,
+ portTypeToIdList, consolidationData);
+
+ TestUtils.initPortConsolidationData(mainST, consolidationData);
+ TestUtils.updatePortConsolidationData(mainST, "cm01_port_1",
+ null, null, null, null, null,
+ consolidationData);
+ TestUtils.updatePortConsolidationData(mainST, "sm01_port_1",
+ null, null, null, null, null,
+ consolidationData);
+
+ translationContext.setConsolidationData(consolidationData);
+ List<UnifiedCompositionMode> expectedUnifiedModes =
+ Arrays.asList(
+ UnifiedCompositionMode.ScalingInstances, UnifiedCompositionMode.SingleSubstitution);
+ verifyMainServiceTemplateConsolidation(2, expectedUnifiedModes, toscaServiceModel);
+ }
+
+ @Test
+ public void testValidComputeAndPortConsolidation() throws IOException {
+ ConsolidationData consolidationData = new ConsolidationData();
+ String computeNodeTypeName = "org.openecomp.resource.vfc.nodes.heat.ps_server";
+ ToscaServiceModel toscaServiceModel = TestUtils.loadToscaServiceModel
+ ("/mock/services/heattotosca/consolidation/translatedfiles/computeportconsolidation/three_compute_valid",
+ null, null);
+
+ TestUtils.initComputeNodeTypeInConsolidationData(mainST, computeNodeTypeName, consolidationData);
+
+ List<Pair<String, String>> portTypeToIdList = new ArrayList<>();
+ portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_1"));
+ portTypeToIdList.add(new ImmutablePair<>("sm01_port", "sm01_port_1"));
+
+ TestUtils.updateComputeTemplateConsolidationData(
+ mainST,
+ computeNodeTypeName, "server_ps01",
+ null, null, null, null, null, null,
+ portTypeToIdList, consolidationData);
+
+ TestUtils.updateComputeTemplateConsolidationData(
+ mainST,
+ computeNodeTypeName, "server_ps02",
+ null, null, null, null, null, null,
+ portTypeToIdList, consolidationData);
+
+ TestUtils.updateComputeTemplateConsolidationData(
+ mainST,
+ computeNodeTypeName, "server_ps03",
+ null, null, null, null, null, null,
+ portTypeToIdList, consolidationData);
+
+ TestUtils.initPortConsolidationData(mainST, consolidationData);
+ TestUtils.updatePortConsolidationData(mainST, "cm01_port_1",
+ null, null, null, null, null,
+ consolidationData);
+ TestUtils.updatePortConsolidationData(mainST, "sm01_port_1",
+ null, null, null, null, null,
+ consolidationData);
+
+ translationContext.setConsolidationData(consolidationData);
+ List<UnifiedCompositionMode> expectedUnifiedModes =
+ Arrays.asList(UnifiedCompositionMode.ScalingInstances);
+ verifyMainServiceTemplateConsolidation(1, expectedUnifiedModes, toscaServiceModel);
+ }
+
+ @Test
+ public void testFalseComputeConsolidationForTwoSimilarImageNamesAndOneDiff() throws IOException {
+ ConsolidationData consolidationData = new ConsolidationData();
+ String computeNodeTypeName1 = "org.openecomp.resource.vfc.nodes.heat.ps_server";
+ String computeNodeTypeName2 = "org.openecomp.resource.vfc.nodes.heat.pd_server";
+ ToscaServiceModel toscaServiceModel = TestUtils.loadToscaServiceModel
+ ("/mock/services/heattotosca/consolidation/translatedfiles/computeportconsolidation/one_image_name_diff",
+ null, null);
+
+ TestUtils.initComputeNodeTypeInConsolidationData(
+ mainST, computeNodeTypeName1, consolidationData);
+ TestUtils.initComputeNodeTypeInConsolidationData(
+ mainST, computeNodeTypeName2, consolidationData);
+
+ List<Pair<String, String>> portTypeToIdList = new ArrayList<>();
+ portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_1"));
+ portTypeToIdList.add(new ImmutablePair<>("sm01_port", "sm01_port_1"));
+
+ TestUtils.updateComputeTemplateConsolidationData(
+ mainST,
+ computeNodeTypeName1, "server_ps01",
+ null, null, null, null, null, null,
+ portTypeToIdList, consolidationData);
+
+ TestUtils.updateComputeTemplateConsolidationData(
+ mainST,
+ computeNodeTypeName1, "server_ps02",
+ null, null, null, null, null, null,
+ portTypeToIdList, consolidationData);
+
+ TestUtils.updateComputeTemplateConsolidationData(
+ mainST,
+ computeNodeTypeName1, "server_ps03",
+ null, null, null, null, null, null,
+ portTypeToIdList, consolidationData);
+
+ TestUtils.updateComputeTemplateConsolidationData(
+ mainST,
+ computeNodeTypeName2, "server_pd01",
+ null, null, null, null, null, null,
+ portTypeToIdList, consolidationData);
+
+ TestUtils.updateComputeTemplateConsolidationData(
+ mainST,
+ computeNodeTypeName2, "server_pd02",
+ null, null, null, null, null, null,
+ portTypeToIdList, consolidationData);
+
+ TestUtils.updateComputeTemplateConsolidationData(
+ mainST,
+ computeNodeTypeName2, "server_pd03",
+ null, null, null, null, null, null,
+ portTypeToIdList, consolidationData);
+
+ TestUtils.initPortConsolidationData(mainST, consolidationData);
+ TestUtils.updatePortConsolidationData(mainST, "cm01_port_1",
+ null, null, null, null, null,
+ consolidationData);
+ TestUtils.updatePortConsolidationData(mainST, "sm01_port_1",
+ null, null, null, null, null,
+ consolidationData);
+
+ translationContext.setConsolidationData(consolidationData);
+ List<UnifiedCompositionMode> expectedUnifiedModes =
+ Arrays.asList(UnifiedCompositionMode.CatalogInstance, UnifiedCompositionMode.CatalogInstance);
+ verifyMainServiceTemplateConsolidation(2, expectedUnifiedModes, toscaServiceModel);
+ }
+
+ @Test
+ public void testFalseComputeConsolidationForTwoSimilarFlavorNamesAndOneDiff() throws IOException {
+ ConsolidationData consolidationData = new ConsolidationData();
+ String computeNodeTypeName = "org.openecomp.resource.vfc.nodes.heat.ps_server";
+ ToscaServiceModel toscaServiceModel = TestUtils.loadToscaServiceModel
+ ("/mock/services/heattotosca/consolidation/translatedfiles/computeportconsolidation/one_flavor_name_diff",
+ null, null);
+
+ TestUtils.initComputeNodeTypeInConsolidationData(mainST, computeNodeTypeName, consolidationData);
+
+ List<Pair<String, String>> portTypeToIdList = new ArrayList<>();
+ portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_1"));
+ portTypeToIdList.add(new ImmutablePair<>("sm01_port", "sm01_port_1"));
+
+ TestUtils.updateComputeTemplateConsolidationData(
+ mainST,
+ computeNodeTypeName, "server_ps01", null, null, null, null, null, null,
+ portTypeToIdList, consolidationData);
+
+ TestUtils.updateComputeTemplateConsolidationData(
+ mainST,
+ computeNodeTypeName, "server_ps02", null, null, null, null, null, null,
+ portTypeToIdList, consolidationData);
+
+ TestUtils.updateComputeTemplateConsolidationData(
+ mainST,
+ computeNodeTypeName, "server_ps03", null, null, null, null, null, null,
+ portTypeToIdList, consolidationData);
+
+ TestUtils.initPortConsolidationData(mainST, consolidationData);
+ TestUtils.updatePortConsolidationData(mainST, "cm01_port_1",
+ null, null, null, null, null,
+ consolidationData);
+ TestUtils.updatePortConsolidationData(mainST, "sm01_port_1",
+ null, null, null, null, null,
+ consolidationData);
+
+ translationContext.setConsolidationData(consolidationData);
+ List<UnifiedCompositionMode> expectedUnifiedModes =
+ Arrays.asList(UnifiedCompositionMode.CatalogInstance);
+ verifyMainServiceTemplateConsolidation(1, expectedUnifiedModes, toscaServiceModel);
+ }
+
+ @Test
+ public void testFalsePortConsolidationForTwoPortsWithFixedIpsAndOneWithout() throws IOException {
+ ConsolidationData consolidationData = new ConsolidationData();
+ String computeNodeTypeName = "org.openecomp.resource.vfc.nodes.heat.ps_server";
+ ToscaServiceModel toscaServiceModel = TestUtils.loadToscaServiceModel
+ ("/mock/services/heattotosca/consolidation/translatedfiles/computeportconsolidation/one_port_without_fixed_ips",
+ null, null);
+
+ TestUtils.initComputeNodeTypeInConsolidationData(mainST, computeNodeTypeName, consolidationData);
+
+ List<Pair<String, String>> portTypeToIdList = new ArrayList<>();
+ portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_1"));
+ TestUtils.updateComputeTemplateConsolidationData(
+ mainST,
+ computeNodeTypeName, "server_ps01", null, null, null, null, null, null,
+ portTypeToIdList, consolidationData);
+
+ portTypeToIdList = new ArrayList<>();
+ portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_2"));
+ TestUtils.updateComputeTemplateConsolidationData(
+ mainST,
+ computeNodeTypeName, "server_ps02", null, null, null, null, null, null,
+ portTypeToIdList, consolidationData);
+
+ portTypeToIdList = new ArrayList<>();
+ portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_3"));
+ TestUtils.updateComputeTemplateConsolidationData(
+ mainST,
+ computeNodeTypeName, "server_ps03", null, null, null, null, null, null,
+ portTypeToIdList, consolidationData);
+
+ TestUtils.initPortConsolidationData(mainST, consolidationData);
+ TestUtils.updatePortConsolidationData(mainST, "cm01_port_1",
+ null, null, null, null, null,
+ consolidationData);
+
+ translationContext.setConsolidationData(consolidationData);
+ List<UnifiedCompositionMode> expectedUnifiedModes =
+ Arrays.asList(UnifiedCompositionMode.CatalogInstance);
+ verifyMainServiceTemplateConsolidation(1, expectedUnifiedModes, toscaServiceModel);
+ }
+
+ @Test
+ public void testFalsePortConsolidationForTwoPortsWithAddressPairsAndOneWithout()
+ throws IOException {
+ ConsolidationData consolidationData = new ConsolidationData();
+ String computeNodeTypeName = "org.openecomp.resource.vfc.nodes.heat.ps_server";
+ ToscaServiceModel toscaServiceModel = TestUtils.loadToscaServiceModel
+ ("/mock/services/heattotosca/consolidation/translatedfiles/computeportconsolidation/one_port_without_allowed_address_pairs",
+ null, null);
+
+ TestUtils.initComputeNodeTypeInConsolidationData(mainST, computeNodeTypeName, consolidationData);
+
+ List<Pair<String, String>> portTypeToIdList = new ArrayList<>();
+ portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_1"));
+ TestUtils.updateComputeTemplateConsolidationData(
+ mainST,
+ computeNodeTypeName, "server_ps01", null, null, null, null, null, null,
+ portTypeToIdList, consolidationData);
+ portTypeToIdList = new ArrayList<>();
+ portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_2"));
+ TestUtils.updateComputeTemplateConsolidationData(
+ mainST,
+ computeNodeTypeName, "server_ps02", null, null, null, null, null, null,
+ portTypeToIdList, consolidationData);
+
+ portTypeToIdList = new ArrayList<>();
+ portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_3"));
+ TestUtils.updateComputeTemplateConsolidationData(
+ mainST,
+ computeNodeTypeName, "server_ps03", null, null, null, null, null, null,
+ portTypeToIdList, consolidationData);
+
+ TestUtils.initPortConsolidationData(mainST, consolidationData);
+ TestUtils.updatePortConsolidationData(mainST, "cm01_port_1",
+ null, null, null, null, null,
+ consolidationData);
+
+ translationContext.setConsolidationData(consolidationData);
+ List<UnifiedCompositionMode> expectedUnifiedModes =
+ Arrays.asList(UnifiedCompositionMode.CatalogInstance);
+ verifyMainServiceTemplateConsolidation(1, expectedUnifiedModes, toscaServiceModel);
+ }
+
+ @Test
+ public void testFalsePortConsolidationForTwoPortsWithMacAddressAndOneWithout()
+ throws IOException {
+ ConsolidationData consolidationData = new ConsolidationData();
+ String computeNodeTypeName = "org.openecomp.resource.vfc.nodes.heat.ps_server";
+ ToscaServiceModel toscaServiceModel = TestUtils.loadToscaServiceModel
+ ("/mock/services/heattotosca/consolidation/translatedfiles/computeportconsolidation/one_port_without_mac_address",
+ null, null);
+
+ TestUtils.initComputeNodeTypeInConsolidationData(mainST, computeNodeTypeName, consolidationData);
+
+ List<Pair<String, String>> portTypeToIdList = new ArrayList<>();
+ portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_1"));
+ TestUtils.updateComputeTemplateConsolidationData(
+ mainST,
+ computeNodeTypeName, "server_ps01", null, null, null, null, null, null,
+ portTypeToIdList, consolidationData);
+
+ portTypeToIdList = new ArrayList<>();
+ portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_2"));
+ TestUtils.updateComputeTemplateConsolidationData(
+ mainST,
+ computeNodeTypeName, "server_ps02", null, null, null, null, null, null,
+ portTypeToIdList, consolidationData);
+ portTypeToIdList = new ArrayList<>();
+ portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_3"));
+ TestUtils.updateComputeTemplateConsolidationData(
+ mainST,
+ computeNodeTypeName, "server_ps03", null, null, null, null, null, null,
+ portTypeToIdList, consolidationData);
+
+ TestUtils.initPortConsolidationData(mainST, consolidationData);
+ TestUtils.updatePortConsolidationData(mainST, "cm01_port_1",
+ null, null, null, null, null,
+ consolidationData);
+
+ translationContext.setConsolidationData(consolidationData);
+ List<UnifiedCompositionMode> expectedUnifiedModes =
+ Arrays.asList(UnifiedCompositionMode.CatalogInstance);
+ verifyMainServiceTemplateConsolidation(1, expectedUnifiedModes, toscaServiceModel);
+ }
+
+ @Test
+ public void testValidPortConsolidationForPortsWithNoneOfTheCheckedProperties()
+ throws IOException {
+ ConsolidationData consolidationData = new ConsolidationData();
+ String computeNodeTypeName = "org.openecomp.resource.vfc.nodes.heat.ps_server";
+ ToscaServiceModel toscaServiceModel = TestUtils.loadToscaServiceModel
+ ("/mock/services/heattotosca/consolidation/translatedfiles/computeportconsolidation/ports_with_none_of_the_properties",
+ null, null);
+
+ TestUtils.initComputeNodeTypeInConsolidationData(mainST, computeNodeTypeName, consolidationData);
+
+ List<Pair<String, String>> portTypeToIdList = new ArrayList<>();
+ portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_1"));
+ TestUtils.updateComputeTemplateConsolidationData(
+ mainST,
+ computeNodeTypeName, "server_ps01", null, null, null, null, null, null,
+ portTypeToIdList, consolidationData);
+
+ portTypeToIdList = new ArrayList<>();
+ portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_2"));
+ TestUtils.updateComputeTemplateConsolidationData(
+ mainST,
+ computeNodeTypeName, "server_ps02", null, null, null, null, null, null,
+ portTypeToIdList, consolidationData);
+
+ portTypeToIdList = new ArrayList<>();
+ portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_3"));
+ TestUtils.updateComputeTemplateConsolidationData(
+ mainST,
+ computeNodeTypeName, "server_ps03", null, null, null, null, null, null,
+ portTypeToIdList, consolidationData);
+
+ TestUtils.initPortConsolidationData(mainST, consolidationData);
+ TestUtils.updatePortConsolidationData(mainST, "cm01_port_1",
+ Arrays.asList("node_in_1"), Arrays.asList("net_id_1"), Arrays.asList("group_id_1"), null, null,
+ consolidationData);
+ TestUtils.updatePortConsolidationData(mainST, "cm01_port_2",
+ Arrays.asList("node_in_1"), Arrays.asList("net_id_1"), Arrays.asList("group_id_1"), null, null,
+ consolidationData);
+ TestUtils.updatePortConsolidationData(mainST, "cm01_port_3",
+ Arrays.asList("node_in_1"), Arrays.asList("net_id_1"), Arrays.asList("group_id_1"), null, null,
+ consolidationData);
+
+ translationContext.setConsolidationData(consolidationData);
+ List<UnifiedCompositionMode> expectedUnifiedModes =
+ Arrays.asList(UnifiedCompositionMode.ScalingInstances);
+ verifyMainServiceTemplateConsolidation(1, expectedUnifiedModes, toscaServiceModel);
+ }
+
+ @Test
+ public void testComputeRelationsSimilarBetweenComputeNodes() throws IOException {
+ ConsolidationData consolidationData = new ConsolidationData();
+ String computeNodeTypeName = "org.openecomp.resource.vfc.nodes.heat.ps_server";
+ ToscaServiceModel toscaServiceModel = TestUtils.loadToscaServiceModel
+ ("/mock/services/heattotosca/consolidation/translatedfiles/computeportconsolidation/three_compute_with_same_relations",
+ null, null);
+
+ TestUtils.initComputeNodeTypeInConsolidationData(mainST, computeNodeTypeName, consolidationData);
+
+ List<Pair<String, String>> portTypeToIdList = new ArrayList<>();
+ portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_1"));
+ TestUtils.updateComputeTemplateConsolidationData(
+ mainST,
+ computeNodeTypeName, "server_ps01", Arrays.asList("cm01_port_1"),
+ Arrays.asList("cmaui_volume"), Arrays.asList("cmaui_volume"), Arrays.asList("group_id1"),
+ null, null,
+ portTypeToIdList,
+ consolidationData);
+
+ portTypeToIdList = new ArrayList<>();
+ portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_2"));
+ TestUtils.updateComputeTemplateConsolidationData(
+ mainST,
+ computeNodeTypeName, "server_ps02", Arrays.asList("cm01_port_1"),
+ Arrays.asList("cmaui_volume"), Arrays.asList("cmaui_volume"), Arrays.asList("group_id1"),
+ null, null,
+ portTypeToIdList,
+ consolidationData);
+
+ portTypeToIdList = new ArrayList<>();
+ portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_3"));
+ TestUtils.updateComputeTemplateConsolidationData(
+ mainST,
+ computeNodeTypeName, "server_ps03", Arrays.asList("cm01_port_1"), Arrays.asList("cmaui_volume"),
+ Arrays.asList("cmaui_volume"), Arrays.asList("group_id1"), null, null,
+ portTypeToIdList,
+ consolidationData);
+
+ TestUtils.initPortConsolidationData(mainST, consolidationData);
+ TestUtils.updatePortConsolidationData(mainST, "cm01_port_1",
+ Arrays.asList("node_in_1"), Arrays.asList("net_id_1"), Arrays.asList("group_id_1"), null, null,
+ consolidationData);
+ TestUtils.updatePortConsolidationData(mainST, "cm01_port_2",
+ Arrays.asList("node_in_1"), Arrays.asList("net_id_1"), Arrays.asList("group_id_1"), null, null,
+ consolidationData);
+ TestUtils.updatePortConsolidationData(mainST, "cm01_port_3",
+ Arrays.asList("node_in_1"), Arrays.asList("net_id_1"), Arrays.asList("group_id_1"), null, null,
+ consolidationData);
+
+
+ translationContext.setConsolidationData(consolidationData);
+ List<UnifiedCompositionMode> expectedUnifiedModes =
+ Arrays.asList(UnifiedCompositionMode.ScalingInstances);
+ verifyMainServiceTemplateConsolidation(1, expectedUnifiedModes, toscaServiceModel);
+ }
+
+ @Test
+ public void testNodesInRelationsDiffBetweenThreeComputes() throws IOException {
+ ConsolidationData consolidationData = new ConsolidationData();
+ String computeNodeTypeName = "org.openecomp.resource.vfc.nodes.heat.ps_server";
+ ToscaServiceModel toscaServiceModel = TestUtils.loadToscaServiceModel
+ ("/mock/services/heattotosca/consolidation/translatedfiles/computeportconsolidation/three_ports_similar_relations",
+ null, null);
+
+ TestUtils.initComputeNodeTypeInConsolidationData(mainST, computeNodeTypeName, consolidationData);
+
+ List<Pair<String, String>> portTypeToIdList = new ArrayList<>();
+ portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_1"));
+ TestUtils.updateComputeTemplateConsolidationData(
+ mainST,
+ computeNodeTypeName, "server_ps01", Arrays.asList("cm01_port_1"), Arrays.asList
+ ("cmaui_volume"), Arrays.asList("cmaui_volume"), Arrays.asList("group_id1"), null, null,
+ portTypeToIdList,
+ consolidationData);
+
+ portTypeToIdList = new ArrayList<>();
+ portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_2"));
+ TestUtils.updateComputeTemplateConsolidationData(
+ mainST,
+ computeNodeTypeName, "server_ps02", Arrays.asList("cm01_port_1"),
+ Arrays.asList("cmaui_volume"), Arrays.asList("cmaui_volume"), Arrays.asList("group_id1"),
+ null,null ,
+ portTypeToIdList,
+ consolidationData);
+
+ portTypeToIdList = new ArrayList<>();
+ portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_3"));
+ TestUtils.updateComputeTemplateConsolidationData(
+ mainST,
+ computeNodeTypeName, "server_ps03", Arrays.asList("cm01_port_2"), Arrays.asList
+ ("cmaui_volume"), Arrays.asList("cmaui_volume"), Arrays.asList("group_id1"), null, null,
+ portTypeToIdList,
+ consolidationData);
+
+ TestUtils.initPortConsolidationData(mainST, consolidationData);
+ TestUtils.updatePortConsolidationData(mainST, "cm01_port_1", null, null, null, null, null,
+ consolidationData);
+
+
+ translationContext.setConsolidationData(consolidationData);
+ List<UnifiedCompositionMode> expectedUnifiedModes =
+ Arrays.asList(UnifiedCompositionMode.CatalogInstance);
+ verifyMainServiceTemplateConsolidation(1, expectedUnifiedModes, toscaServiceModel);
+ }
+
+ @Test
+ public void testNodesOutRelationsDiffBetweenThreeComputes() throws IOException {
+ ConsolidationData consolidationData = new ConsolidationData();
+ String computeNodeTypeName = "org.openecomp.resource.vfc.nodes.heat.ps_server";
+ ToscaServiceModel toscaServiceModel = TestUtils.loadToscaServiceModel
+ ("/mock/services/heattotosca/consolidation/translatedfiles/computeportconsolidation/three_ports_similar_relations",
+ null, null);
+
+ TestUtils.initComputeNodeTypeInConsolidationData(mainST, computeNodeTypeName, consolidationData);
+
+ List<Pair<String, String>> portTypeToIdList = new ArrayList<>();
+ portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_1"));
+ TestUtils.updateComputeTemplateConsolidationData(
+ mainST,
+ computeNodeTypeName, "server_ps01", Arrays.asList("cm01_port_1"), Arrays.asList
+ ("cmaui_volume"), Arrays.asList("cmaui_volume"), Arrays.asList("group_id1"), null, null,
+ portTypeToIdList,
+ consolidationData);
+
+ portTypeToIdList = new ArrayList<>();
+ portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_2"));
+ TestUtils.updateComputeTemplateConsolidationData(
+ mainST,
+ computeNodeTypeName, "server_ps02", Arrays.asList("cm01_port_1"),
+ Arrays.asList("cmaui_volume"), Arrays.asList("cmaui_volume"), Arrays.asList("group_id1"),
+ null, null,
+ portTypeToIdList,
+ consolidationData);
+
+ portTypeToIdList = new ArrayList<>();
+ portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_3"));
+ TestUtils.updateComputeTemplateConsolidationData(
+ mainST,
+ computeNodeTypeName, "server_ps03", Arrays.asList("cm01_port_1"),
+ Arrays.asList("cmaui_volume_1"), Arrays.asList("cmaui_volume"), Arrays.asList("group_id1"),
+ null, null,
+ portTypeToIdList,
+ consolidationData);
+
+ TestUtils.initPortConsolidationData(mainST, consolidationData);
+ TestUtils.updatePortConsolidationData(mainST, "cm01_port_1", null, null, null, null, null,
+ consolidationData);
+
+
+ translationContext.setConsolidationData(consolidationData);
+ List<UnifiedCompositionMode> expectedUnifiedModes =
+ Arrays.asList(UnifiedCompositionMode.CatalogInstance);
+ verifyMainServiceTemplateConsolidation(1, expectedUnifiedModes, toscaServiceModel);
+ }
+
+ @Test
+ public void testVolumeRelationsDiffBetweenThreeComputes() throws IOException {
+ ConsolidationData consolidationData = new ConsolidationData();
+ String computeNodeTypeName = "org.openecomp.resource.vfc.nodes.heat.ps_server";
+ ToscaServiceModel toscaServiceModel = TestUtils.loadToscaServiceModel
+ ("/mock/services/heattotosca/consolidation/translatedfiles/computeportconsolidation/three_compute_valid",
+ null, null);
+
+ TestUtils.initComputeNodeTypeInConsolidationData(mainST, computeNodeTypeName, consolidationData);
+
+ List<Pair<String, String>> portTypeToIdList = new ArrayList<>();
+ portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_1"));
+ TestUtils.updateComputeTemplateConsolidationData(
+ mainST,
+ computeNodeTypeName, "server_ps01", Arrays.asList("cm01_port_1"), Arrays.asList
+ ("cmaui_volume"), Arrays.asList("cmaui_volume"), Arrays.asList("group_id1"), null, null,
+ portTypeToIdList,
+ consolidationData);
+
+ portTypeToIdList = new ArrayList<>();
+ portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_2"));
+ TestUtils.updateComputeTemplateConsolidationData(
+ mainST,
+ computeNodeTypeName, "server_ps02", Arrays.asList("cm01_port_1"),
+ Arrays.asList("cmaui_volume"), Arrays.asList("cmaui_volume"), Arrays.asList("group_id1"),
+ null, null,
+ portTypeToIdList,
+ consolidationData);
+
+ portTypeToIdList = new ArrayList<>();
+ portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_3"));
+ TestUtils.updateComputeTemplateConsolidationData(
+ mainST,
+ computeNodeTypeName, "server_ps03", Arrays.asList("cm01_port_1"),
+ Arrays.asList("cmaui_volume"), Arrays.asList("cmaui_volume_1"), Arrays.asList("group_id1"),
+ null, null,
+ portTypeToIdList,
+ consolidationData);
+
+ TestUtils.initPortConsolidationData(mainST, consolidationData);
+ TestUtils.updatePortConsolidationData(mainST, "cm01_port_1", null, null, null, null, null,
+ consolidationData);
+
+
+ translationContext.setConsolidationData(consolidationData);
+ List<UnifiedCompositionMode> expectedUnifiedModes =
+ Arrays.asList(UnifiedCompositionMode.CatalogInstance);
+ verifyMainServiceTemplateConsolidation(1, expectedUnifiedModes, toscaServiceModel);
+ }
+
+ @Test
+ public void testGroupRelationsDiffBetweenThreeComputes() throws IOException {
+ ConsolidationData consolidationData = new ConsolidationData();
+ String computeNodeTypeName = "org.openecomp.resource.vfc.nodes.heat.ps_server";
+ ToscaServiceModel toscaServiceModel = TestUtils.loadToscaServiceModel
+ ("/mock/services/heattotosca/consolidation/translatedfiles/computeportconsolidation/three_compute_valid",
+ null, null);
+
+ TestUtils.initComputeNodeTypeInConsolidationData(mainST, computeNodeTypeName, consolidationData);
+
+ List<Pair<String, String>> portTypeToIdList = new ArrayList<>();
+ portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_1"));
+ TestUtils.updateComputeTemplateConsolidationData(
+ mainST,
+ computeNodeTypeName, "server_ps01", Arrays.asList("cm01_port_1"), Arrays.asList
+ ("cmaui_volume"), Arrays.asList("cmaui_volume"), Arrays.asList("group_id_1"), null, null,
+ portTypeToIdList,
+ consolidationData);
+
+ portTypeToIdList = new ArrayList<>();
+ portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_2"));
+ TestUtils.updateComputeTemplateConsolidationData(
+ mainST,
+ computeNodeTypeName, "server_ps02", Arrays.asList("cm01_port_1"),
+ Arrays.asList("cmaui_volume"), Arrays.asList("cmaui_volume"), Arrays.asList("group_id_1"),
+ null, null,
+ portTypeToIdList,
+ consolidationData);
+
+ portTypeToIdList = new ArrayList<>();
+ portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_3"));
+ TestUtils.updateComputeTemplateConsolidationData(
+ mainST,
+ computeNodeTypeName, "server_ps03", Arrays.asList("cm01_port_1"),
+ Arrays.asList("cmaui_volume"), Arrays.asList("cmaui_volume"), Arrays.asList("group_id_2"),
+ null, null,
+ portTypeToIdList,
+ consolidationData);
+
+ TestUtils.initPortConsolidationData(mainST, consolidationData);
+ TestUtils.updatePortConsolidationData(mainST, "cm01_port_1", null, null, null, null, null,
+ consolidationData);
+
+
+ translationContext.setConsolidationData(consolidationData);
+ List<UnifiedCompositionMode> expectedUnifiedModes =
+ Arrays.asList(UnifiedCompositionMode.CatalogInstance);
+ verifyMainServiceTemplateConsolidation(1, expectedUnifiedModes, toscaServiceModel);
+ }
+
+ @Test
+ public void testPortConsolidationDataRelationsSimilar() throws IOException {
+ ConsolidationData consolidationData = new ConsolidationData();
+ String computeNodeTypeName = "org.openecomp.resource.vfc.nodes.heat.ps_server";
+ ToscaServiceModel toscaServiceModel = TestUtils.loadToscaServiceModel
+ ("/mock/services/heattotosca/consolidation/translatedfiles/computeportconsolidation/three_ports_similar_relations",
+ null, null);
+
+ TestUtils.initComputeNodeTypeInConsolidationData(mainST, computeNodeTypeName, consolidationData);
+
+ List<Pair<String, String>> portTypeToIdList = new ArrayList<>();
+ portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_1"));
+ TestUtils.updateComputeTemplateConsolidationData(
+ mainST,
+ computeNodeTypeName, "server_ps01", Arrays.asList("cm01_port_1"), Arrays.asList
+ ("cmaui_volume"), Arrays.asList("cmaui_volume"), Arrays.asList("group_id_1"), null, null,
+ portTypeToIdList,
+ consolidationData);
+
+ portTypeToIdList = new ArrayList<>();
+ portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_2"));
+ TestUtils.updateComputeTemplateConsolidationData(
+ mainST,
+ computeNodeTypeName, "server_ps02", Arrays.asList("cm01_port_1"),
+ Arrays.asList("cmaui_volume"), Arrays.asList("cmaui_volume"), Arrays.asList("group_id_1"),
+ null, null,
+ portTypeToIdList,
+ consolidationData);
+
+ portTypeToIdList = new ArrayList<>();
+ portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_3"));
+ TestUtils.updateComputeTemplateConsolidationData(
+ mainST,
+ computeNodeTypeName, "server_ps03", Arrays.asList("cm01_port_1"),
+ Arrays.asList("cmaui_volume"), Arrays.asList("cmaui_volume"), Arrays.asList("group_id_1"),
+ null, null,
+ portTypeToIdList,
+ consolidationData);
+
+ TestUtils.initPortConsolidationData(mainST, consolidationData);
+ TestUtils.updatePortConsolidationData(mainST, "cm01_port_1",
+ Arrays.asList("node_in_1"), Arrays.asList("net_id_1"), Arrays.asList("group_id_1"), null, null,
+ consolidationData);
+ TestUtils.updatePortConsolidationData(mainST, "cm01_port_2",
+ Arrays.asList("node_in_1"), Arrays.asList("net_id_1"), Arrays.asList("group_id_1"), null, null,
+ consolidationData);
+ TestUtils.updatePortConsolidationData(mainST, "cm01_port_3",
+ Arrays.asList("node_in_1"), Arrays.asList("net_id_1"), Arrays.asList("group_id_1"), null, null,
+ consolidationData);
+
+ translationContext.setConsolidationData(consolidationData);
+ List<UnifiedCompositionMode> expectedUnifiedModes =
+ Arrays.asList(UnifiedCompositionMode.ScalingInstances);
+ verifyMainServiceTemplateConsolidation(1, expectedUnifiedModes, toscaServiceModel);
+ }
+
+ @Test
+ public void testNodesInRelationsDiffBetweenThreePortConsolidationDatas() throws IOException {
+ ConsolidationData consolidationData = new ConsolidationData();
+ String computeNodeTypeName = "org.openecomp.resource.vfc.nodes.heat.ps_server";
+ ToscaServiceModel toscaServiceModel = TestUtils.loadToscaServiceModel
+ ("/mock/services/heattotosca/consolidation/translatedfiles/computeportconsolidation/three_ports_similar_relations",
+ null, null);
+
+ TestUtils.initComputeNodeTypeInConsolidationData(mainST, computeNodeTypeName, consolidationData);
+
+ List<Pair<String, String>> portTypeToIdList = new ArrayList<>();
+ portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_1"));
+ TestUtils.updateComputeTemplateConsolidationData(
+ mainST,
+ computeNodeTypeName, "server_ps01", Arrays.asList("cm01_port_1"), Arrays.asList
+ ("cmaui_volume"), Arrays.asList("cmaui_volume"), Arrays.asList("group_id_1"), null, null,
+ portTypeToIdList,
+ consolidationData);
+
+ portTypeToIdList = new ArrayList<>();
+ portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_2"));
+ TestUtils.updateComputeTemplateConsolidationData(
+ mainST,
+ computeNodeTypeName, "server_ps02", Arrays.asList("cm01_port_1"),
+ Arrays.asList("cmaui_volume"), Arrays.asList("cmaui_volume"), Arrays.asList("group_id_1"),
+ null, null,
+ portTypeToIdList,
+ consolidationData);
+
+ portTypeToIdList = new ArrayList<>();
+ portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_3"));
+ TestUtils.updateComputeTemplateConsolidationData(
+ mainST,
+ computeNodeTypeName, "server_ps03", Arrays.asList("cm01_port_1"),
+ Arrays.asList("cmaui_volume"), Arrays.asList("cmaui_volume"), Arrays.asList("group_id_1"),
+ null, null,
+ portTypeToIdList,
+ consolidationData);
+
+ TestUtils.initPortConsolidationData(mainST, consolidationData);
+ TestUtils.updatePortConsolidationData(mainST, "cm01_port_1",
+ Arrays.asList("node_in_1"), Arrays.asList("net_id_1"), Arrays.asList("group_id_1"), null, null,
+ consolidationData);
+ TestUtils.updatePortConsolidationData(mainST, "cm01_port_2",
+ Arrays.asList("node_in_1"), Arrays.asList("net_id_1"), Arrays.asList("group_id_1"), null, null,
+ consolidationData);
+ TestUtils.updatePortConsolidationData(mainST, "cm01_port_3",
+ Arrays.asList("node_in_2"), Arrays.asList("net_id_1"), Arrays.asList("group_id_1"), null, null,
+ consolidationData);
+
+ translationContext.setConsolidationData(consolidationData);
+ List<UnifiedCompositionMode> expectedUnifiedModes =
+ Arrays.asList(UnifiedCompositionMode.CatalogInstance);
+ verifyMainServiceTemplateConsolidation(1, expectedUnifiedModes, toscaServiceModel);
+ }
+
+ @Test
+ public void testNodesOutRelationsDiffBetweenThreePortConsolidationDatas() throws IOException {
+ ConsolidationData consolidationData = new ConsolidationData();
+ String computeNodeTypeName = "org.openecomp.resource.vfc.nodes.heat.ps_server";
+ ToscaServiceModel toscaServiceModel = TestUtils.loadToscaServiceModel
+ ("/mock/services/heattotosca/consolidation/translatedfiles/computeportconsolidation/three_ports_similar_relations",
+ null, null);
+
+ TestUtils.initComputeNodeTypeInConsolidationData(mainST, computeNodeTypeName, consolidationData);
+
+ List<Pair<String, String>> portTypeToIdList = new ArrayList<>();
+ portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_1"));
+ TestUtils.updateComputeTemplateConsolidationData(
+ mainST,
+ computeNodeTypeName, "server_ps01", Arrays.asList("cm01_port_1"), Arrays.asList
+ ("cmaui_volume"), Arrays.asList("cmaui_volume"), Arrays.asList("group_id_1"), null, null,
+ portTypeToIdList,
+ consolidationData);
+
+ portTypeToIdList = new ArrayList<>();
+ portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_2"));
+ TestUtils.updateComputeTemplateConsolidationData(
+ mainST,
+ computeNodeTypeName, "server_ps02", Arrays.asList("cm01_port_1"),
+ Arrays.asList("cmaui_volume"), Arrays.asList("cmaui_volume"), Arrays.asList("group_id_1"),
+ null, null,
+ portTypeToIdList,
+ consolidationData);
+
+ portTypeToIdList = new ArrayList<>();
+ portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_3"));
+ TestUtils.updateComputeTemplateConsolidationData(
+ mainST,
+ computeNodeTypeName, "server_ps03", Arrays.asList("cm01_port_1"),
+ Arrays.asList("cmaui_volume"), Arrays.asList("cmaui_volume"), Arrays.asList("group_id_1"),
+ null, null,
+ portTypeToIdList,
+ consolidationData);
+
+ TestUtils.initPortConsolidationData(mainST, consolidationData);
+ TestUtils.updatePortConsolidationData(mainST, "cm01_port_1",
+ Arrays.asList("node_in_1"), Arrays.asList("net_id_1"), Arrays.asList("group_id_1"), null, null,
+ consolidationData);
+ TestUtils.updatePortConsolidationData(mainST, "cm01_port_2",
+ Arrays.asList("node_in_1"), Arrays.asList("net_id_1"), Arrays.asList("group_id_1"), null, null,
+ consolidationData);
+ TestUtils.updatePortConsolidationData(mainST, "cm01_port_3",
+ Arrays.asList("node_in_1"), Arrays.asList("net_id_2"), Arrays.asList("group_id_1"), null, null,
+ consolidationData);
+
+ translationContext.setConsolidationData(consolidationData);
+ List<UnifiedCompositionMode> expectedUnifiedModes =
+ Arrays.asList(UnifiedCompositionMode.CatalogInstance);
+ verifyMainServiceTemplateConsolidation(1, expectedUnifiedModes, toscaServiceModel);
+ }
+
+ @Test
+ public void testGroupIdsRelationsDiffBetweenThreePortConsolidationDatas() throws IOException {
+ ConsolidationData consolidationData = new ConsolidationData();
+ String computeNodeTypeName = "org.openecomp.resource.vfc.nodes.heat.ps_server";
+ ToscaServiceModel toscaServiceModel = TestUtils.loadToscaServiceModel
+ ("/mock/services/heattotosca/consolidation/translatedfiles/computeportconsolidation/three_ports_similar_relations",
+ null, null);
+
+ TestUtils.initComputeNodeTypeInConsolidationData(mainST, computeNodeTypeName, consolidationData);
+
+ List<Pair<String, String>> portTypeToIdList = new ArrayList<>();
+ portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_1"));
+ TestUtils.updateComputeTemplateConsolidationData(
+ mainST,
+ computeNodeTypeName, "server_ps01", Arrays.asList("cm01_port_1"), Arrays.asList
+ ("cmaui_volume"), Arrays.asList("cmaui_volume"), Arrays.asList("group_id_1"), null, null,
+ portTypeToIdList,
+ consolidationData);
+
+ portTypeToIdList = new ArrayList<>();
+ portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_2"));
+ TestUtils.updateComputeTemplateConsolidationData(
+ mainST,
+ computeNodeTypeName, "server_ps02", Arrays.asList("cm01_port_1"),
+ Arrays.asList("cmaui_volume"), Arrays.asList("cmaui_volume"), Arrays.asList("group_id_1"),
+ null, null,
+ portTypeToIdList,
+ consolidationData);
+
+ portTypeToIdList = new ArrayList<>();
+ portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_3"));
+ TestUtils.updateComputeTemplateConsolidationData(
+ mainST,
+ computeNodeTypeName, "server_ps03", Arrays.asList("cm01_port_1"),
+ Arrays.asList("cmaui_volume"), Arrays.asList("cmaui_volume"), Arrays.asList("group_id_1"),
+ null, null,
+ portTypeToIdList,
+ consolidationData);
+
+ TestUtils.initPortConsolidationData(mainST, consolidationData);
+ TestUtils.updatePortConsolidationData(mainST, "cm01_port_1",
+ Arrays.asList("node_in_1"), Arrays.asList("net_id_1"),
+ Arrays.asList("group_id_1", "group_id_2"), null, null,
+ consolidationData);
+ TestUtils.updatePortConsolidationData(mainST, "cm01_port_2",
+ Arrays.asList("node_in_1"), Arrays.asList("net_id_1"),
+ Arrays.asList("group_id_1", "group_id_2"), null, null,
+ consolidationData);
+ TestUtils.updatePortConsolidationData(mainST, "cm01_port_3",
+ Arrays.asList("node_in_1"), Arrays.asList("net_id_1"),
+ Arrays.asList("group_id_1", "group_id_3"), null, null,
+ consolidationData);
+
+ translationContext.setConsolidationData(consolidationData);
+ List<UnifiedCompositionMode> expectedUnifiedModes =
+ Arrays.asList(UnifiedCompositionMode.CatalogInstance);
+ verifyMainServiceTemplateConsolidation(1, expectedUnifiedModes, toscaServiceModel);
+ }
+
+ @Test
+ public void testValidConsolidationForComputesWithValidGetAttr() throws IOException {
+ ConsolidationData consolidationData = new ConsolidationData();
+ String computeNodeTypeName = "org.openecomp.resource.vfc.nodes.heat.ps_server";
+ ToscaServiceModel toscaServiceModel = TestUtils.loadToscaServiceModel
+ ("/mock/services/heattotosca/consolidation/translatedfiles/computeportconsolidation/three_ports_similar_relations",
+ null, null);
+
+ TestUtils.initComputeNodeTypeInConsolidationData(mainST, computeNodeTypeName, consolidationData);
+
+ List<Pair<String, String>> portTypeToIdList = new ArrayList<>();
+ portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_1"));
+
+ TestUtils.updateComputeTemplateConsolidationData(
+ mainST,
+ computeNodeTypeName, "server_ps01", Arrays.asList("cm01_port_1"), Arrays.asList
+ ("cmaui_volume"), Arrays.asList("cmaui_volume"), Arrays.asList("group_id_1"), Arrays.asList("node_1"), null,
+ portTypeToIdList,
+ consolidationData);
+
+ portTypeToIdList = new ArrayList<>();
+ portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_2"));
+ TestUtils.updateComputeTemplateConsolidationData(
+ mainST,
+ computeNodeTypeName, "server_ps02", Arrays.asList("cm01_port_1"),
+ Arrays.asList("cmaui_volume"), Arrays.asList("cmaui_volume"), Arrays.asList("group_id_1"),
+ Arrays.asList("node_2"), null,
+ portTypeToIdList,
+ consolidationData);
+
+ portTypeToIdList = new ArrayList<>();
+ portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_3"));
+ TestUtils.updateComputeTemplateConsolidationData(
+ mainST,
+ computeNodeTypeName, "server_ps03", Arrays.asList("cm01_port_1"),
+ Arrays.asList("cmaui_volume"), Arrays.asList("cmaui_volume"), Arrays.asList("group_id_1"),
+ Arrays.asList("node_3"), null,
+ portTypeToIdList,
+ consolidationData);
+
+ TestUtils.initPortConsolidationData(mainST, consolidationData);
+ TestUtils.updatePortConsolidationData(mainST, "cm01_port_1",
+ Arrays.asList("node_in_1"), Arrays.asList("net_id_1"),
+ Arrays.asList("group_id_1", "group_id_2"), null, null,
+ consolidationData);
+ TestUtils.updatePortConsolidationData(mainST, "cm01_port_2",
+ Arrays.asList("node_in_1"), Arrays.asList("net_id_1"),
+ Arrays.asList("group_id_1", "group_id_2"), null, null,
+ consolidationData);
+ TestUtils.updatePortConsolidationData(mainST, "cm01_port_3",
+ Arrays.asList("node_in_1"), Arrays.asList("net_id_1"),
+ Arrays.asList("group_id_1", "group_id_2"), null, null,
+ consolidationData);
+
+ translationContext.setConsolidationData(consolidationData);
+ List<UnifiedCompositionMode> expectedUnifiedModes =
+ Arrays.asList(UnifiedCompositionMode.ScalingInstances);
+ verifyMainServiceTemplateConsolidation(1, expectedUnifiedModes, toscaServiceModel);
+ }
+
+ @Test
+ public void testInvalidConsolidationForComputesWithGetAttrForEachOther() throws IOException {
+ ConsolidationData consolidationData = new ConsolidationData();
+ String computeNodeTypeName = "org.openecomp.resource.vfc.nodes.heat.ps_server";
+ ToscaServiceModel toscaServiceModel = TestUtils.loadToscaServiceModel
+ ("/mock/services/heattotosca/consolidation/translatedfiles/computeportconsolidation/three_ports_similar_relations",
+ null, null);
+
+ TestUtils.initComputeNodeTypeInConsolidationData(mainST, computeNodeTypeName, consolidationData);
+
+ List<Pair<String, String>> portTypeToIdList = new ArrayList<>();
+ portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_1"));
+
+ TestUtils.updateComputeTemplateConsolidationData(
+ mainST,
+ computeNodeTypeName, "server_ps01", Arrays.asList("cm01_port_1"), Arrays.asList
+ ("cmaui_volume"), Arrays.asList("cmaui_volume"), Arrays.asList("group_id_1"), Arrays.asList("server_ps02"), null,
+ portTypeToIdList,
+ consolidationData);
+
+ portTypeToIdList = new ArrayList<>();
+ portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_2"));
+ TestUtils.updateComputeTemplateConsolidationData(
+ mainST,
+ computeNodeTypeName, "server_ps02", Arrays.asList("cm01_port_1"),
+ Arrays.asList("cmaui_volume"), Arrays.asList("cmaui_volume"), Arrays.asList("group_id_1"),
+ Arrays.asList("node_1"), null,
+ portTypeToIdList,
+ consolidationData);
+
+ portTypeToIdList = new ArrayList<>();
+ portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_3"));
+ TestUtils.updateComputeTemplateConsolidationData(
+ mainST,
+ computeNodeTypeName, "server_ps03", Arrays.asList("cm01_port_1"),
+ Arrays.asList("cmaui_volume"), Arrays.asList("cmaui_volume"), Arrays.asList("group_id_1"),
+ Arrays.asList("node_2"), null,
+ portTypeToIdList,
+ consolidationData);
+
+ TestUtils.initPortConsolidationData(mainST, consolidationData);
+ TestUtils.updatePortConsolidationData(mainST, "cm01_port_1",
+ Arrays.asList("node_in_1"), Arrays.asList("net_id_1"),
+ Arrays.asList("group_id_1", "group_id_2"), null, null,
+ consolidationData);
+ TestUtils.updatePortConsolidationData(mainST, "cm01_port_2",
+ Arrays.asList("node_in_1"), Arrays.asList("net_id_1"),
+ Arrays.asList("group_id_1", "group_id_2"), null, null,
+ consolidationData);
+ TestUtils.updatePortConsolidationData(mainST, "cm01_port_3",
+ Arrays.asList("node_in_1"), Arrays.asList("net_id_1"),
+ Arrays.asList("group_id_1", "group_id_2"), null, null,
+ consolidationData);
+
+ translationContext.setConsolidationData(consolidationData);
+ List<UnifiedCompositionMode> expectedUnifiedModes =
+ Arrays.asList(UnifiedCompositionMode.CatalogInstance);
+ verifyMainServiceTemplateConsolidation(1, expectedUnifiedModes, toscaServiceModel);
+ }
+
+ @Test
+ public void testValidConsolidationForPortsWithValidGetAttr() throws IOException {
+ ConsolidationData consolidationData = new ConsolidationData();
+ String computeNodeTypeName = "org.openecomp.resource.vfc.nodes.heat.ps_server";
+ ToscaServiceModel toscaServiceModel = TestUtils.loadToscaServiceModel
+ ("/mock/services/heattotosca/consolidation/translatedfiles/computeportconsolidation/three_ports_similar_relations",
+ null, null);
+
+ TestUtils.initComputeNodeTypeInConsolidationData(mainST, computeNodeTypeName, consolidationData);
+
+ List<Pair<String, String>> portTypeToIdList = new ArrayList<>();
+ portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_1"));
+
+ TestUtils.updateComputeTemplateConsolidationData(
+ mainST,
+ computeNodeTypeName, "server_ps01", Arrays.asList("cm01_port_1"), Arrays.asList
+ ("cmaui_volume"), Arrays.asList("cmaui_volume"), Arrays.asList("group_id_1"), null, null,
+ portTypeToIdList,
+ consolidationData);
+
+ portTypeToIdList = new ArrayList<>();
+ portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_2"));
+ TestUtils.updateComputeTemplateConsolidationData(
+ mainST,
+ computeNodeTypeName, "server_ps02", Arrays.asList("cm01_port_1"),
+ Arrays.asList("cmaui_volume"), Arrays.asList("cmaui_volume"), Arrays.asList("group_id_1"),
+ null, null,
+ portTypeToIdList,
+ consolidationData);
+
+ portTypeToIdList = new ArrayList<>();
+ portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_3"));
+ TestUtils.updateComputeTemplateConsolidationData(
+ mainST,
+ computeNodeTypeName, "server_ps03", Arrays.asList("cm01_port_1"),
+ Arrays.asList("cmaui_volume"), Arrays.asList("cmaui_volume"), Arrays.asList("group_id_1"),
+ null, null,
+ portTypeToIdList,
+ consolidationData);
+
+ TestUtils.initPortConsolidationData(mainST, consolidationData);
+ List<String> portNodeTemplateIds =
+ Arrays.asList("cm01_port_1", "cm01_port_2", "cm01_port_3");
+ List<List<String>> nodesConnectedInIds =
+ Arrays.asList(Arrays.asList("node_in_1"), Arrays.asList("node_in_1"), Arrays.asList("node_in_1"));
+ List<List<String>> nodesConnectedOutIds =
+ Arrays.asList(Arrays.asList("node_out_1"), Arrays.asList("node_out_1"), Arrays.asList("node_out_1"));
+ List<List<String>> getAttrInIds =
+ Arrays.asList(Arrays.asList("get_attr_1"), Arrays.asList("get_attr_2"), Arrays.asList("get_attr_3"));
+ List<List<String>> groupIds =
+ Arrays.asList(Arrays.asList("group_id_1", "group_id_2"), Arrays.asList("group_id_1",
+ "group_id_2"), Arrays.asList("group_id_1", "group_id_2"));
+ List<List<Pair<String, GetAttrFuncData>>> getAttrOut = Arrays.asList(null, null, null);
+
+ TestUtils.updateMultiplePortConsolidationDatas(
+ mainST, portNodeTemplateIds,nodesConnectedInIds, nodesConnectedOutIds, groupIds,
+ getAttrInIds, getAttrOut, consolidationData);
+
+ translationContext.setConsolidationData(consolidationData);
+ List<UnifiedCompositionMode> expectedUnifiedModes =
+ Arrays.asList(UnifiedCompositionMode.ScalingInstances);
+ verifyMainServiceTemplateConsolidation(1, expectedUnifiedModes, toscaServiceModel);
+ }
+
+ @Test
+ public void testInvalidConsolidationForPortsWithGetAttrInForEachOther() throws IOException {
+ ConsolidationData consolidationData = new ConsolidationData();
+ String computeNodeTypeName = "org.openecomp.resource.vfc.nodes.heat.ps_server";
+ ToscaServiceModel toscaServiceModel = TestUtils.loadToscaServiceModel
+ ("/mock/services/heattotosca/consolidation/translatedfiles/computeportconsolidation" +
+ "/three_ports_similar_relations",
+ null, null);
+
+ TestUtils.initComputeNodeTypeInConsolidationData(mainST, computeNodeTypeName, consolidationData);
+
+ List<Pair<String, String>> portTypeToIdList = new ArrayList<>();
+ portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_1"));
+
+ TestUtils.updateComputeTemplateConsolidationData(
+ mainST,
+ computeNodeTypeName, "server_ps01", Arrays.asList("cm01_port_1"), Arrays.asList
+ ("cmaui_volume"), Arrays.asList("cmaui_volume"), Arrays.asList("group_id_1"), Arrays.asList("node_1"), null,
+ portTypeToIdList,
+ consolidationData);
+
+ portTypeToIdList = new ArrayList<>();
+ portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_2"));
+ TestUtils.updateComputeTemplateConsolidationData(
+ mainST,
+ computeNodeTypeName, "server_ps02", Arrays.asList("cm01_port_1"),
+ Arrays.asList("cmaui_volume"), Arrays.asList("cmaui_volume"), Arrays.asList("group_id_1"),
+ Arrays.asList("node_2"), null,
+ portTypeToIdList,
+ consolidationData);
+
+ portTypeToIdList = new ArrayList<>();
+ portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_3"));
+ TestUtils.updateComputeTemplateConsolidationData(
+ mainST,
+ computeNodeTypeName, "server_ps03", Arrays.asList("cm01_port_1"),
+ Arrays.asList("cmaui_volume"), Arrays.asList("cmaui_volume"), Arrays.asList("group_id_1"),
+ Arrays.asList("node_3"), null,
+ portTypeToIdList,
+ consolidationData);
+
+ TestUtils.initPortConsolidationData(mainST, consolidationData);
+ List<String> portNodeTemplateIds =
+ Arrays.asList("cm01_port_1", "cm01_port_2", "cm01_port_3");
+ List<List<String>> nodesConnectedInIds =
+ Arrays.asList(Arrays.asList("node_in_1"), Arrays.asList("node_in_1"), Arrays.asList("node_in_1"));
+ List<List<String>> nodesConnectedOutIds =
+ Arrays.asList(Arrays.asList("node_out_1"), Arrays.asList("node_out_1"), Arrays.asList("node_out_1"));
+ List<List<String>> getAttrInIds =
+ Arrays.asList(Arrays.asList("get_attr_1"), Arrays.asList("get_attr_2"), Arrays.asList("cm01_port_1"));
+ List<List<String>> groupIds =
+ Arrays.asList(Arrays.asList("group_id_1", "group_id_2"), Arrays.asList("group_id_1",
+ "group_id_2"), Arrays.asList("group_id_1", "group_id_2"));
+ List<List<Pair<String, GetAttrFuncData>>> getAttrOut = Arrays.asList(null, null, null);
+
+ TestUtils.updateMultiplePortConsolidationDatas(
+ mainST, portNodeTemplateIds, nodesConnectedInIds, nodesConnectedOutIds, groupIds,
+ getAttrInIds, getAttrOut, consolidationData);
+
+ translationContext.setConsolidationData(consolidationData);
+ List<UnifiedCompositionMode> expectedUnifiedModes =
+ Arrays.asList(UnifiedCompositionMode.CatalogInstance);
+ verifyMainServiceTemplateConsolidation(1, expectedUnifiedModes, toscaServiceModel);
+ }
+
+ @Test
+ public void testValidConsolidationForComputesWithSamePortTypesPointingByGetAttrIn() throws
+ IOException {
+ ConsolidationData consolidationData = new ConsolidationData();
+ String computeNodeTypeName = "org.openecomp.resource.vfc.nodes.heat.ps_server";
+ ToscaServiceModel toscaServiceModel = TestUtils.loadToscaServiceModel
+ ("/mock/services/heattotosca/consolidation/translatedfiles/computeportconsolidation/three_ports_similar_relations",
+ null, null);
+
+ TestUtils.initComputeNodeTypeInConsolidationData(mainST, computeNodeTypeName, consolidationData);
+
+ List<Pair<String, String>> portTypeToIdList = new ArrayList<>();
+ portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_1"));
+
+ TestUtils.updateComputeTemplateConsolidationData(
+ mainST,
+ computeNodeTypeName, "server_ps01", Arrays.asList("cm01_port_1"), Arrays.asList
+ ("cmaui_volume"), Arrays.asList("cmaui_volume"), Arrays.asList("group_id_1"), Arrays.asList("cm01_port_1"), null,
+ portTypeToIdList,
+ consolidationData);
+
+ portTypeToIdList = new ArrayList<>();
+ portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_2"));
+ TestUtils.updateComputeTemplateConsolidationData(
+ mainST,
+ computeNodeTypeName, "server_ps02", Arrays.asList("cm01_port_1"),
+ Arrays.asList("cmaui_volume"), Arrays.asList("cmaui_volume"), Arrays.asList("group_id_1"),
+ Arrays.asList("cm01_port_2"), null,
+ portTypeToIdList,
+ consolidationData);
+
+ portTypeToIdList = new ArrayList<>();
+ portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_3"));
+ TestUtils.updateComputeTemplateConsolidationData(
+ mainST,
+ computeNodeTypeName, "server_ps03", Arrays.asList("cm01_port_1"),
+ Arrays.asList("cmaui_volume"), Arrays.asList("cmaui_volume"), Arrays.asList("group_id_1"),
+ Arrays.asList("cm01_port_3"), null,
+ portTypeToIdList,
+ consolidationData);
+
+ TestUtils.initPortConsolidationData(mainST, consolidationData);
+ List<String> portNodeTemplateIds =
+ Arrays.asList("cm01_port_1", "cm01_port_2", "cm01_port_3");
+ List<List<String>> nodesConnectedInIds =
+ Arrays.asList(Arrays.asList("node_in_1"), Arrays.asList("node_in_1"), Arrays.asList("node_in_1"));
+ List<List<String>> nodesConnectedOutIds =
+ Arrays.asList(Arrays.asList("node_out_1"), Arrays.asList("node_out_1"), Arrays.asList("node_out_1"));
+ List<List<String>> getAttrInIds =
+ Arrays.asList(Arrays.asList("get_attr_1"), Arrays.asList("get_attr_2"), Arrays.asList("get_attr_3"));
+ List<List<String>> groupIds =
+ Arrays.asList(Arrays.asList("group_id_1", "group_id_2"), Arrays.asList("group_id_1",
+ "group_id_2"), Arrays.asList("group_id_1", "group_id_2"));
+ List<List<Pair<String, GetAttrFuncData>>> getAttrOut = Arrays.asList(null, null, null);
+
+ TestUtils.updateMultiplePortConsolidationDatas(
+ mainST, portNodeTemplateIds, nodesConnectedInIds, nodesConnectedOutIds, groupIds,
+ getAttrInIds, getAttrOut, consolidationData);
+
+ translationContext.setConsolidationData(consolidationData);
+ List<UnifiedCompositionMode> expectedUnifiedModes =
+ Arrays.asList(UnifiedCompositionMode.ScalingInstances);
+ verifyMainServiceTemplateConsolidation(1, expectedUnifiedModes, toscaServiceModel);
+ }
+
+ @Test
+ public void testValidGetAttrOutFromComputes() throws IOException {
+ ConsolidationData consolidationData = new ConsolidationData();
+ String computeNodeTypeName = "org.openecomp.resource.vfc.nodes.heat.ps_server";
+ ToscaServiceModel toscaServiceModel = TestUtils.loadToscaServiceModel
+ ("/mock/services/heattotosca/consolidation/translatedfiles/computeportconsolidation/three_ports_similar_relations",
+ null, null);
+
+ TestUtils.initComputeNodeTypeInConsolidationData(mainST, computeNodeTypeName, consolidationData);
+
+ GetAttrFuncData getAttrFuncData = new GetAttrFuncData("name", "c1_name");
+ List<Pair<String, String>> portTypeToIdList = new ArrayList<>();
+ portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_1"));
+ TestUtils.updateComputeTemplateConsolidationData(
+ mainST,
+ computeNodeTypeName, "server_ps01", Arrays.asList("cm01_port_1"), Arrays.asList
+ ("cmaui_volume"), Arrays.asList("cmaui_volume"), Arrays.asList("group_id_1"), Arrays.asList("cm01_port_1"),
+ Arrays.asList(new ImmutablePair<String, GetAttrFuncData>("cm01_port_1", getAttrFuncData)),
+ portTypeToIdList,
+ consolidationData);
+
+ portTypeToIdList = new ArrayList<>();
+ portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_2"));
+ TestUtils.updateComputeTemplateConsolidationData(
+ mainST,
+ computeNodeTypeName, "server_ps02", Arrays.asList("cm01_port_1"),
+ Arrays.asList("cmaui_volume"), Arrays.asList("cmaui_volume"), Arrays.asList("group_id_1"),
+ Arrays.asList("cm01_port_1"),
+ Arrays.asList(new ImmutablePair<String, GetAttrFuncData>("cm01_port_1", getAttrFuncData)),
+ portTypeToIdList,
+ consolidationData);
+
+ portTypeToIdList = new ArrayList<>();
+ portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_3"));
+ TestUtils.updateComputeTemplateConsolidationData(
+ mainST,
+ computeNodeTypeName, "server_ps03", Arrays.asList("cm01_port_1"),
+ Arrays.asList("cmaui_volume"), Arrays.asList("cmaui_volume"), Arrays.asList("group_id_1"),
+ Arrays.asList("cm01_port_1"),
+ Arrays.asList(new ImmutablePair<String, GetAttrFuncData>("cm01_port_1", getAttrFuncData)),
+ portTypeToIdList,
+ consolidationData);
+
+ TestUtils.initPortConsolidationData(mainST, consolidationData);
+ TestUtils.updatePortConsolidationData(mainST, "cm01_port_1",
+ Arrays.asList("node_in_1"), Arrays.asList("net_id_1"),
+ Arrays.asList("group_id_1", "group_id_2"), Arrays.asList("sm01_port_2"), null,
+ consolidationData);
+ TestUtils.updatePortConsolidationData(mainST, "cm01_port_2",
+ Arrays.asList("node_in_1"), Arrays.asList("net_id_1"),
+ Arrays.asList("group_id_1", "group_id_2"), Arrays.asList("sm01_port_1"), null,
+ consolidationData);
+ TestUtils.updatePortConsolidationData(mainST, "cm01_port_3",
+ Arrays.asList("node_in_1"), Arrays.asList("net_id_1"),
+ Arrays.asList("group_id_1", "group_id_2"), Arrays.asList("rm01_port_1"), null,
+ consolidationData);
+
+ translationContext.setConsolidationData(consolidationData);
+ List<UnifiedCompositionMode> expectedUnifiedModes =
+ Arrays.asList(UnifiedCompositionMode.ScalingInstances);
+ verifyMainServiceTemplateConsolidation(1, expectedUnifiedModes, toscaServiceModel);
+ }
+
+ @Test
+ public void testInValidGetAttrOutFromComputesPortTypeDifferent() throws IOException {
+ ConsolidationData consolidationData = new ConsolidationData();
+ String computeNodeTypeName = "org.openecomp.resource.vfc.nodes.heat.ps_server";
+ ToscaServiceModel toscaServiceModel = TestUtils.loadToscaServiceModel
+ ("/mock/services/heattotosca/consolidation/translatedfiles/computeportconsolidation/three_ports_similar_relations",
+ null, null);
+
+ TestUtils.initComputeNodeTypeInConsolidationData(mainST, computeNodeTypeName, consolidationData);
+
+ GetAttrFuncData getAttrFuncData = new GetAttrFuncData("name", "c1_name");
+ List<Pair<String, String>> portTypeToIdList = new ArrayList<>();
+ portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_1"));
+ portTypeToIdList.add(new ImmutablePair<>("sm01_port", "sm01_port_1"));
+ TestUtils.updateComputeTemplateConsolidationData(
+ mainST,
+ computeNodeTypeName, "server_ps01", Arrays.asList("cm01_port_1"), Arrays.asList
+ ("cmaui_volume"), Arrays.asList("cmaui_volume"), Arrays.asList("group_id_1"), Arrays.asList("cm01_port_1"),
+ Arrays.asList(new ImmutablePair<String, GetAttrFuncData>("cm01_port_1", getAttrFuncData)),
+ portTypeToIdList,
+ consolidationData);
+
+ portTypeToIdList = new ArrayList<>();
+ portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_2"));
+ portTypeToIdList.add(new ImmutablePair<>("sm01_port", "sm01_port_2"));
+ TestUtils.updateComputeTemplateConsolidationData(
+ mainST,
+ computeNodeTypeName, "server_ps02", Arrays.asList("cm01_port_1"),
+ Arrays.asList("cmaui_volume"), Arrays.asList("cmaui_volume"), Arrays.asList("group_id_1"),
+ Arrays.asList("cm01_port_1"),
+ Arrays.asList(new ImmutablePair<String, GetAttrFuncData>("cm01_port_1", getAttrFuncData)),
+ portTypeToIdList,
+ consolidationData);
+
+ portTypeToIdList = new ArrayList<>();
+ portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_3"));
+ portTypeToIdList.add(new ImmutablePair<>("sm01_port", "sm01_port_3"));
+ TestUtils.updateComputeTemplateConsolidationData(
+ mainST,
+ computeNodeTypeName, "server_ps03", Arrays.asList("cm01_port_1"),
+ Arrays.asList("cmaui_volume"), Arrays.asList("cmaui_volume"), Arrays.asList("group_id_1"),
+ Arrays.asList("cm01_port_1"),
+ Arrays.asList(new ImmutablePair<String, GetAttrFuncData>("sm01_port_1", getAttrFuncData)),
+ portTypeToIdList,
+ consolidationData);
+
+ TestUtils.initPortConsolidationData(mainST, consolidationData);
+
+ List<String> portNodeTemplateIds =
+ Arrays.asList("cm01_port_1", "cm01_port_2", "cm01_port_3", "sm01_port_1", "sm01_port_2",
+ "sm01_port_3");
+ List<List<String>> nodesConnectedInIds =
+ Arrays.asList(Arrays.asList("node_in_1"), Arrays.asList("node_in_1"), Arrays.asList
+ ("node_in_1"), Arrays.asList("node_in_1"), Arrays.asList("node_in_1"), Arrays.asList("node_in_1"));
+ List<List<String>> nodesConnectedOutIds =
+ Arrays.asList(Arrays.asList("node_out_1"), Arrays.asList("node_out_1"), Arrays.asList
+ ("node_out_1"), Arrays.asList("node_out_1"), Arrays.asList("node_out_1"), Arrays.asList("node_out_1"));
+ List<List<String>> getAttrInIds =
+ Arrays.asList(Arrays.asList("get_attr_1"), Arrays.asList("get_attr_2"), Arrays.asList
+ ("get_attr_3"), Arrays.asList("get_attr_1"), Arrays.asList("get_attr_2"), Arrays.asList("get_attr_3"));
+ List<List<String>> groupIds =
+ Arrays.asList(Arrays.asList("group_id_1", "group_id_2"), Arrays.asList("group_id_1",
+ "group_id_2"), Arrays.asList("group_id_1", "group_id_2"), Arrays.asList("group_id_1", "group_id_2"), Arrays.asList("group_id_1",
+ "group_id_2"), Arrays.asList("group_id_1", "group_id_2"));
+ List<List<Pair<String, GetAttrFuncData>>> getAttrOut = Arrays.asList(null, null, null, null,
+ null, null);
+
+ TestUtils.updateMultiplePortConsolidationDatas(mainST, portNodeTemplateIds,
+ nodesConnectedInIds, nodesConnectedOutIds, groupIds, getAttrInIds, getAttrOut, consolidationData);
+
+ translationContext.setConsolidationData(consolidationData);
+ List<UnifiedCompositionMode> expectedUnifiedModes =
+ Arrays.asList(UnifiedCompositionMode.SingleSubstitution);
+ verifyMainServiceTemplateConsolidation(1, expectedUnifiedModes, toscaServiceModel);
+ }
+
+ @Test
+ public void testValidGetAttrOutFromPorts() throws IOException {
+ ConsolidationData consolidationData = new ConsolidationData();
+ String computeNodeTypeName = "org.openecomp.resource.vfc.nodes.heat.ps_server";
+ ToscaServiceModel toscaServiceModel = TestUtils.loadToscaServiceModel
+ ("/mock/services/heattotosca/consolidation/translatedfiles/computeportconsolidation/three_ports_similar_relations",
+ null, null);
+
+ TestUtils.initComputeNodeTypeInConsolidationData(mainST, computeNodeTypeName, consolidationData);
+
+ List<Pair<String, String>> portTypeToIdList = new ArrayList<>();
+ portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_1"));
+ portTypeToIdList.add(new ImmutablePair<>("sm01_port", "sm01_port_1"));
+ TestUtils.updateComputeTemplateConsolidationData(
+ mainST,
+ computeNodeTypeName, "server_ps01", Arrays.asList("cm01_port_1"), Arrays.asList
+ ("cmaui_volume"), Arrays.asList("cmaui_volume"), Arrays.asList("group_id_1"), Arrays.asList("cm01_port_1"), null,
+ portTypeToIdList,
+ consolidationData);
+
+ portTypeToIdList = new ArrayList<>();
+ portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_2"));
+ portTypeToIdList.add(new ImmutablePair<>("sm01_port", "sm01_port_2"));
+ TestUtils.updateComputeTemplateConsolidationData(
+ mainST,
+ computeNodeTypeName, "server_ps02", Arrays.asList("cm01_port_1"),
+ Arrays.asList("cmaui_volume"), Arrays.asList("cmaui_volume"), Arrays.asList("group_id_1"),
+ Arrays.asList("cm01_port_1"), null,
+ portTypeToIdList,
+ consolidationData);
+
+ portTypeToIdList = new ArrayList<>();
+ portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_3"));
+ portTypeToIdList.add(new ImmutablePair<>("sm01_port", "sm01_port_3"));
+ TestUtils.updateComputeTemplateConsolidationData(
+ mainST,
+ computeNodeTypeName, "server_ps03", Arrays.asList("cm01_port_1"),
+ Arrays.asList("cmaui_volume"), Arrays.asList("cmaui_volume"), Arrays.asList("group_id_1"),
+ Arrays.asList("cm01_port_1"), null,
+ portTypeToIdList,
+ consolidationData);
+
+ TestUtils.initPortConsolidationData(mainST, consolidationData);
+
+ GetAttrFuncData getAttrFuncData = new GetAttrFuncData("name", "s1_name");
+ List<String> portNodeTemplateIds =
+ Arrays.asList("cm01_port_1", "cm01_port_2", "cm01_port_3", "sm01_port_1", "sm01_port_2",
+ "sm01_port_3");
+ List<List<String>> nodesConnectedInIds =
+ Arrays.asList(Arrays.asList("node_in_1"), Arrays.asList("node_in_1"), Arrays.asList
+ ("node_in_1"), Arrays.asList("node_in_1"), Arrays.asList("node_in_1"), Arrays.asList("node_in_1"));
+ List<List<String>> nodesConnectedOutIds =
+ Arrays.asList(Arrays.asList("node_out_1"), Arrays.asList("node_out_1"), Arrays.asList
+ ("node_out_1"), Arrays.asList("node_out_1"), Arrays.asList("node_out_1"), Arrays.asList("node_out_1"));
+ List<List<String>> getAttrInIds =
+ Arrays.asList(null, null, null, null, null, null);
+ List<List<String>> groupIds =
+ Arrays.asList(Arrays.asList("group_id_1", "group_id_2"), Arrays.asList("group_id_1",
+ "group_id_2"), Arrays.asList("group_id_1", "group_id_2"), Arrays.asList("group_id_1", "group_id_2"), Arrays.asList("group_id_1",
+ "group_id_2"), Arrays.asList("group_id_1", "group_id_2"));
+ List<List<Pair<String, GetAttrFuncData>>> getAttrOut = Arrays.asList(
+ Arrays.asList(new ImmutablePair<String, GetAttrFuncData>("sm01_port_1", getAttrFuncData)),
+ Arrays.asList(new ImmutablePair<String, GetAttrFuncData>("sm01_port_2", getAttrFuncData)),
+ Arrays.asList(new ImmutablePair<String, GetAttrFuncData>("sm01_port_3", getAttrFuncData)),
+ Arrays.asList(new ImmutablePair<String, GetAttrFuncData>("cm01_port_1", getAttrFuncData)),
+ Arrays.asList(new ImmutablePair<String, GetAttrFuncData>("cm01_port_2", getAttrFuncData)),
+ Arrays.asList(new ImmutablePair<String, GetAttrFuncData>("cm01_port_3", getAttrFuncData)));
+
+ TestUtils.updateMultiplePortConsolidationDatas(mainST, portNodeTemplateIds,
+ nodesConnectedInIds, nodesConnectedOutIds, groupIds, getAttrInIds, getAttrOut, consolidationData);
+
+ translationContext.setConsolidationData(consolidationData);
+ List<UnifiedCompositionMode> expectedUnifiedModes =
+ Arrays.asList(UnifiedCompositionMode.ScalingInstances);
+ verifyMainServiceTemplateConsolidation(1, expectedUnifiedModes, toscaServiceModel);
+ }
+
+ @Test
+ public void testInvalidGetAttrOutFromPorts() throws IOException {
+ ConsolidationData consolidationData = new ConsolidationData();
+ String computeNodeTypeName = "org.openecomp.resource.vfc.nodes.heat.ps_server";
+ ToscaServiceModel toscaServiceModel = TestUtils.loadToscaServiceModel
+ ("/mock/services/heattotosca/consolidation/translatedfiles/computeportconsolidation/three_ports_similar_relations",
+ null, null);
+
+ TestUtils.initComputeNodeTypeInConsolidationData(mainST, computeNodeTypeName, consolidationData);
+
+ List<Pair<String, String>> portTypeToIdList = new ArrayList<>();
+ portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_1"));
+ portTypeToIdList.add(new ImmutablePair<>("sm01_port", "sm01_port_1"));
+ TestUtils.updateComputeTemplateConsolidationData(
+ mainST,
+ computeNodeTypeName, "server_ps01", Arrays.asList("cm01_port_1"), Arrays.asList
+ ("cmaui_volume"), Arrays.asList("cmaui_volume"), Arrays.asList("group_id_1"), Arrays.asList("cm01_port_1"), null,
+ portTypeToIdList,
+ consolidationData);
+
+ portTypeToIdList = new ArrayList<>();
+ portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_2"));
+ portTypeToIdList.add(new ImmutablePair<>("sm01_port", "sm01_port_2"));
+ TestUtils.updateComputeTemplateConsolidationData(
+ mainST,
+ computeNodeTypeName, "server_ps02", Arrays.asList("cm01_port_1"),
+ Arrays.asList("cmaui_volume"), Arrays.asList("cmaui_volume"), Arrays.asList("group_id_1"),
+ Arrays.asList("cm01_port_1"), null,
+ portTypeToIdList,
+ consolidationData);
+
+ portTypeToIdList = new ArrayList<>();
+ portTypeToIdList.add(new ImmutablePair<>("cm01_port", "cm01_port_3"));
+ portTypeToIdList.add(new ImmutablePair<>("sm01_port", "sm01_port_3"));
+ TestUtils.updateComputeTemplateConsolidationData(
+ mainST,
+ computeNodeTypeName, "server_ps03", Arrays.asList("cm01_port_1"),
+ Arrays.asList("cmaui_volume"), Arrays.asList("cmaui_volume"), Arrays.asList("group_id_1"),
+ Arrays.asList("cm01_port_1"), null,
+ portTypeToIdList,
+ consolidationData);
+
+ TestUtils.initPortConsolidationData(mainST, consolidationData);
+
+ GetAttrFuncData getAttrFuncData = new GetAttrFuncData("name", "s1_name");
+ List<String> portNodeTemplateIds =
+ Arrays.asList("cm01_port_1", "cm01_port_2", "cm01_port_3", "sm01_port_1", "sm01_port_2",
+ "sm01_port_3");
+ List<List<String>> nodesConnectedInIds =
+ Arrays.asList(Arrays.asList("node_in_1"), Arrays.asList("node_in_1"), Arrays.asList
+ ("node_in_1"), Arrays.asList("node_in_1"), Arrays.asList("node_in_1"), Arrays.asList("node_in_1"));
+ List<List<String>> nodesConnectedOutIds =
+ Arrays.asList(Arrays.asList("node_out_1"), Arrays.asList("node_out_1"), Arrays.asList
+ ("node_out_1"), Arrays.asList("node_out_1"), Arrays.asList("node_out_1"), Arrays.asList("node_out_1"));
+ List<List<String>> getAttrInIds =
+ Arrays.asList(null, null, null, null, null, null);
+ List<List<String>> groupIds =
+ Arrays.asList(Arrays.asList("group_id_1", "group_id_2"), Arrays.asList("group_id_1",
+ "group_id_2"), Arrays.asList("group_id_1", "group_id_2"), Arrays.asList("group_id_1", "group_id_2"), Arrays.asList("group_id_1",
+ "group_id_2"), Arrays.asList("group_id_1", "group_id_2"));
+ List<List<Pair<String, GetAttrFuncData>>> getAttrOut = Arrays.asList(
+ Arrays.asList(new ImmutablePair<String, GetAttrFuncData>("server_ps01", getAttrFuncData)),
+ Arrays.asList(new ImmutablePair<String, GetAttrFuncData>("server_ps01", getAttrFuncData)),
+ Arrays.asList(new ImmutablePair<String, GetAttrFuncData>("sm01_port_3", getAttrFuncData)),
+ Arrays.asList(new ImmutablePair<String, GetAttrFuncData>("cm01_port_1", getAttrFuncData)),
+ Arrays.asList(new ImmutablePair<String, GetAttrFuncData>("cm01_port_2", getAttrFuncData)),
+ Arrays.asList(new ImmutablePair<String, GetAttrFuncData>("cm01_port_3", getAttrFuncData)));
+
+ TestUtils.updateMultiplePortConsolidationDatas(mainST, portNodeTemplateIds,
+ nodesConnectedInIds, nodesConnectedOutIds, groupIds, getAttrInIds, getAttrOut, consolidationData);
+
+ translationContext.setConsolidationData(consolidationData);
+ List<UnifiedCompositionMode> expectedUnifiedModes =
+ Arrays.asList(UnifiedCompositionMode.SingleSubstitution);
+ verifyMainServiceTemplateConsolidation(1, expectedUnifiedModes, toscaServiceModel);
+ }
+
+ @Test
+ public void testSubstitutionConsolidationPreConditionTrue() throws IOException {
+ translationContext = new TranslationContext();
+ String mainSTName = "MainServiceTemplate.yaml";
+ String nestedServiceTemplateName = "nested-pcm_v0.1ServiceTemplate.yaml";
+
+ ConsolidationData consolidationData = new ConsolidationData();
+ TestUtils.updateNestedConsolidationData(mainSTName, Arrays.asList("server_pcm_001"), consolidationData);
+ TestUtils.initComputeNodeTypeInConsolidationData(mainSTName, "org.openecomp.resource.vfc.nodes.heat" +
+ ".pcm_server", consolidationData);
+ TestUtils.initComputeNodeTemplateIdInConsolidationData(mainSTName, "org.openecomp.resource.vfc.nodes.heat.pcm_server", "server_pcm_001", consolidationData);
+ TestUtils.initComputeNodeTypeInConsolidationData(nestedServiceTemplateName, "org.openecomp.resource.vfc.nodes.heat" +
+ ".pcm_server", consolidationData);
+ TestUtils.initComputeNodeTemplateIdInConsolidationData(nestedServiceTemplateName, "org.openecomp.resource.vfc.nodes" +
+ ".heat.pcm_server", "pcm_server", consolidationData);
+
+ translationContext.setConsolidationData(consolidationData);
+
+ addMockServiceTemplateToContext(mainSTName, "Main");
+ addMockServiceTemplateToContext(nestedServiceTemplateName, "nested-pcm_v0.1");
+
+ verifySubstitutionServiceTemplateConsolidation
+ (1, translationContext.getTranslatedServiceTemplates().get(mainSTName),
+ translationContext.getTranslatedServiceTemplates().get(nestedServiceTemplateName),
+ UnifiedCompositionMode.NestedSingleCompute);
+ }
+
+ @Test
+ public void testSubstitutionConsolidationPreConditionFalseMoreThanOneComputeType() throws IOException {
+ translationContext = new TranslationContext();
+ String mainSTName = "MainServiceTemplate.yaml";
+ String nestedServiceTemplateName = "nested-pcm_v0.1ServiceTemplate.yaml";
+
+ ConsolidationData consolidationData = new ConsolidationData();
+ TestUtils.updateNestedConsolidationData(mainSTName, Arrays.asList("server_pcm_001"), consolidationData);
+ TestUtils.initComputeNodeTypeInConsolidationData(mainSTName, "org.openecomp.resource.vfc.nodes.heat" +
+ ".pcm_server", consolidationData);
+ TestUtils.initComputeNodeTemplateIdInConsolidationData(mainSTName, "org.openecomp.resource.vfc.nodes" +
+ ".heat.pcm_server", "server_pcm_001", consolidationData);
+ TestUtils.initComputeNodeTypeInConsolidationData(nestedServiceTemplateName, "org.openecomp.resource.vfc.nodes.heat" +
+ ".pcm_server", consolidationData);
+
+ TestUtils.updateNestedConsolidationData(mainSTName, Arrays.asList("server_oam_001"), consolidationData);
+ TestUtils.initComputeNodeTypeInConsolidationData(mainSTName, "org.openecomp.resource.vfc.nodes.heat" +
+ ".oam_server", consolidationData);
+ TestUtils.initComputeNodeTemplateIdInConsolidationData(mainSTName, "org.openecomp.resource.vfc.nodes.heat.oam_server", "server_oam_001", consolidationData);
+ TestUtils.initComputeNodeTypeInConsolidationData(nestedServiceTemplateName, "org.openecomp.resource.vfc.nodes.heat" +
+ ".oam_server", consolidationData);
+
+ translationContext.setConsolidationData(consolidationData);
+
+ addMockServiceTemplateToContext(mainSTName, "Main");
+ addMockServiceTemplateToContext(nestedServiceTemplateName, "nested-pcm_v0.1");
+
+ verifySubstitutionServiceTemplateConsolidation
+ (0, translationContext.getTranslatedServiceTemplates().get(mainSTName),
+ translationContext.getTranslatedServiceTemplates().get(nestedServiceTemplateName), UnifiedCompositionMode.NestedSingleCompute);
+ }
+
+ @Test
+ public void testSubstitutionConsolidationPreConditionFalseMoreThanOneComputeOfSameType() throws IOException {
+ translationContext = new TranslationContext();
+ String mainSTName = "MainServiceTemplate.yaml";
+ String nestedServiceTemplateName = "nested-pcm_v0.1ServiceTemplate.yaml";
+
+ ConsolidationData consolidationData = new ConsolidationData();
+ TestUtils.updateNestedConsolidationData(mainSTName, Arrays.asList("server_pcm_001"), consolidationData);
+ TestUtils.initComputeNodeTypeInConsolidationData(nestedServiceTemplateName, "org.openecomp.resource.vfc.nodes.heat" +
+ ".pcm_server", consolidationData);
+ TestUtils.initComputeNodeTypeInConsolidationData(mainSTName, "org.openecomp.resource.vfc.nodes.heat" +
+ ".pcm_server", consolidationData);
+ TestUtils.initComputeNodeTemplateIdInConsolidationData(nestedServiceTemplateName, "org.openecomp.resource.vfc.nodes" +
+ ".heat.pcm_server", "pcm_server_1", consolidationData);
+
+ TestUtils.updateNestedConsolidationData(nestedServiceTemplateName, Arrays.asList("server_pcm_002"),
+ consolidationData);
+ TestUtils.initComputeNodeTemplateIdInConsolidationData(nestedServiceTemplateName, "org.openecomp.resource.vfc.nodes" +
+ ".heat.pcm_server", "pcm_server_2", consolidationData);
+
+ translationContext.setConsolidationData(consolidationData);
+
+ addMockServiceTemplateToContext(mainSTName, "Main");
+ addMockServiceTemplateToContext(nestedServiceTemplateName, "nested-pcm_v0.1");
+
+ verifySubstitutionServiceTemplateConsolidation
+ (0, translationContext.getTranslatedServiceTemplates().get(mainSTName),
+ translationContext.getTranslatedServiceTemplates().get(nestedServiceTemplateName), UnifiedCompositionMode.NestedSingleCompute);
+ }
+
+ @Test
+ public void testSubstitutionConsolidationPreConditionFalseNestedInsideNested(){
+ translationContext = new TranslationContext();
+ String mainSTName = "MainServiceTemplate.yaml";
+ String nestedServiceTemplateName = "nested-pcm_v0.1ServiceTemplate.yaml";
+
+ ConsolidationData consolidationData = new ConsolidationData();
+ TestUtils.updateNestedConsolidationData(mainSTName, Arrays.asList("server_pcm_001"), consolidationData);
+ TestUtils.initComputeNodeTypeInConsolidationData(mainSTName, "org.openecomp.resource.vfc.nodes.heat" +
+ ".pcm_server", consolidationData);
+ TestUtils.initComputeNodeTemplateIdInConsolidationData(mainSTName, "org.openecomp.resource.vfc.nodes.heat.pcm_server", "server_pcm_001", consolidationData);
+ TestUtils.initComputeNodeTypeInConsolidationData(nestedServiceTemplateName, "org.openecomp.resource.vfc.nodes.heat" +
+ ".pcm_server", consolidationData);
+ TestUtils.initComputeNodeTemplateIdInConsolidationData(nestedServiceTemplateName, "org.openecomp.resource.vfc.nodes" +
+ ".heat.pcm_server", "pcm_server", consolidationData);
+
+ TestUtils.updateNestedConsolidationData(nestedServiceTemplateName, Arrays.asList("nested_resource"), consolidationData);
+
+ translationContext.setConsolidationData(consolidationData);
+
+ addMockServiceTemplateToContext(mainSTName, "Main");
+ addMockServiceTemplateToContext(nestedServiceTemplateName, "nested-pcm_v0.1");
+
+ verifySubstitutionServiceTemplateConsolidation
+ (0, translationContext.getTranslatedServiceTemplates().get(mainSTName),
+ translationContext.getTranslatedServiceTemplates().get(nestedServiceTemplateName), UnifiedCompositionMode.NestedSingleCompute);
+ }
+
+
+ private void verifyMainServiceTemplateConsolidation(int times,
+ List<UnifiedCompositionMode> expectedUnifiedCompositionModes,
+ ToscaServiceModel toscaServiceModel) {
+ consolidationService.mainServiceTemplateConsolidation(toscaServiceModel.getServiceTemplates().get(mainST), translationContext);
+
+ ServiceTemplate mainServiceTemplate = toscaServiceModel.getServiceTemplates().get(mainST);
+ verify(unifiedCompositionServiceMock, times(times))
+ .createUnifiedComposition(
+ eq(mainServiceTemplate),
+ any(),
+ unifiedModelListArg.capture(),
+ unifiedCompositionModeArg.capture(),
+ eq(translationContext));
+
+ List<UnifiedCompositionMode> actualUnifiedCompositionModes = unifiedCompositionModeArg.getAllValues();
+ Assert.assertEquals(expectedUnifiedCompositionModes, actualUnifiedCompositionModes);
+ }
+
+ private void verifySubstitutionServiceTemplateConsolidation(int times,
+ ServiceTemplate mainST,
+ ServiceTemplate nestedST, UnifiedCompositionMode expectedMode){
+ consolidationService.substitutionServiceTemplateConsolidation(null, mainST,
+ nestedST, translationContext);
+
+ if(times == 0){
+ verify(unifiedCompositionServiceMock, never()).
+ createUnifiedComposition(
+ any(),
+ any(),
+ any(),
+ any(),
+ eq(translationContext));
+ }else {
+ verify(unifiedCompositionServiceMock, times(times)).
+ createUnifiedComposition(
+ eq(mainST),
+ eq(nestedST),
+ unifiedModelListArg.capture(),
+ unifiedCompositionModeArg.capture(),
+ eq(translationContext));
+
+ Assert.assertEquals(expectedMode, unifiedCompositionModeArg.getValue());
+ }
+
+ }
+
+ private void addMockServiceTemplateToContext(String serviceTemplateFileName, String templateName) {
+ ServiceTemplate serviceTemplate = new ServiceTemplate();
+ Map<String, String> metadata = new HashMap<>();
+ metadata.put(ToscaConstants.ST_METADATA_TEMPLATE_NAME, templateName);
+ serviceTemplate.setMetadata(metadata);
+ translationContext.getTranslatedServiceTemplates()
+ .put(serviceTemplateFileName, serviceTemplate);
+ }
+}
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/GlobalTypesGeneratorTest.java b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/GlobalTypesGeneratorTest.java
deleted file mode 100644
index 6afa9c1ea2..0000000000
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/GlobalTypesGeneratorTest.java
+++ /dev/null
@@ -1,18 +0,0 @@
-package org.openecomp.sdc.translator.services.heattotosca;
-
-import org.openecomp.sdc.translator.services.heattotosca.impl.BaseResourceTranslationTest;
-import org.junit.Test;
-
-public class GlobalTypesGeneratorTest extends BaseResourceTranslationTest {
-
- {
- inputFilesPath = "/mock/services/heattotosca/global_types/inputfiles";
- outputFilesPath = "/mock/services/heattotosca/global_types/expectedoutputfiles";
- }
-
- @Test
- public void testTranslate() throws Exception {
- testTranslation();
- }
-
-} \ No newline at end of file
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
new file mode 100644
index 0000000000..5b57a9ac37
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/UnifiedCompositionServiceTest.java
@@ -0,0 +1,1640 @@
+package org.openecomp.sdc.translator.services.heattotosca;
+
+import static org.junit.Assert.assertEquals;
+import static org.mockito.Matchers.anyObject;
+import static org.mockito.Matchers.anyString;
+
+import org.apache.commons.lang3.tuple.ImmutablePair;
+import org.apache.commons.lang3.tuple.Pair;
+import org.junit.Before;
+import org.junit.Test;
+import org.mockito.InjectMocks;
+import org.mockito.Mockito;
+import org.mockito.MockitoAnnotations;
+import org.mockito.Spy;
+import org.openecomp.core.utilities.yaml.YamlUtil;
+import org.openecomp.sdc.tosca.datatypes.model.NodeTemplate;
+import org.openecomp.sdc.tosca.datatypes.model.ServiceTemplate;
+import org.openecomp.sdc.tosca.services.DataModelUtil;
+import org.openecomp.sdc.tosca.services.yamlutil.ToscaExtensionYamlUtil;
+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.UnifiedCompositionEntity;
+import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.composition.UnifiedSubstitutionData;
+import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolidation.*;
+import org.openecomp.sdc.translator.services.heattotosca.impl.unifiedcomposition.UnifiedCompositionNestedSingleCompute;
+import org.openecomp.sdc.translator.services.heattotosca.impl.unifiedcomposition.UnifiedCompositionSingleSubstitution;
+
+import java.io.IOException;
+import java.net.URL;
+import java.util.*;
+
+public class UnifiedCompositionServiceTest {
+ @InjectMocks
+ @Spy
+ UnifiedCompositionService unifiedCompositionService;
+ @Spy
+ TranslationContext context;
+
+ String inputServiceTemplatesPath;
+ String outputServiceTemplatesPath;
+ Map<String, ServiceTemplate> inputServiceTemplates;
+ Map<String, ServiceTemplate> expectedOutserviceTemplates;
+ private static String mainSTName = "MainServiceTemplate.yaml";
+ private static String substitutionST = "SubstitutionServiceTemplate.yaml";
+ private static String globalSubstitutionST = "GlobalSubstitutionTypesServiceTemplate.yaml";
+
+ @Before
+ public void setUp() {
+ MockitoAnnotations.initMocks(this);
+ }
+
+ //todo
+ @Test
+ public void createUnifiedComposition() throws Exception {
+
+ }
+
+ @Test
+ public void createSubstitutionStNoConsolidationData() throws Exception {
+ inputServiceTemplatesPath =
+ "/mock/services/heattotosca/unifiedComposition/creSubstitutionServiceTemplate/NoOutParamDuplicatePortType/in";
+ outputServiceTemplatesPath =
+ "/mock/services/heattotosca/unifiedComposition/creSubstitutionServiceTemplate/NoOutParamDuplicatePortType/out";
+
+ loadInputAndOutputData();
+ ServiceTemplate expectedServiceTemplate =
+ TestUtils.loadServiceTemplate(outputServiceTemplatesPath);
+
+ List<UnifiedCompositionData> unifiedCompositionDataList = new ArrayList<>();
+ Optional<ServiceTemplate> substitutionServiceTemplate = unifiedCompositionService
+ .createUnifiedSubstitutionServiceTemplate(inputServiceTemplates.get(mainSTName),
+ unifiedCompositionDataList,
+ context, null);
+ assertEquals(false, substitutionServiceTemplate.isPresent());
+ }
+
+ @Test
+ public void createSubstitutionStNoOutputParamAndDuplicatePortType() throws Exception {
+ inputServiceTemplatesPath =
+ "/mock/services/heattotosca/unifiedComposition/creSubstitutionServiceTemplate/NoOutParamDuplicatePortType/in";
+ outputServiceTemplatesPath =
+ "/mock/services/heattotosca/unifiedComposition/creSubstitutionServiceTemplate/NoOutParamDuplicatePortType/out";
+
+ List<Pair<String, String>> portTypeToIdList = new ArrayList<>();
+ portTypeToIdList.add(new ImmutablePair<>("FSB1_Internal", "FSB1_Internal1"));
+ portTypeToIdList.add(new ImmutablePair<>("FSB2_Internal", "FSB2_Internal2"));
+ portTypeToIdList.add(new ImmutablePair<>("FSB2_Internal", "FSB2_Internal1"));
+ portTypeToIdList.add(new ImmutablePair<>("FSB_OAM", "FSB1_OAM"));
+
+ loadInputAndOutputData();
+ UnifiedCompositionData unifiedCompositionData =
+ createCompositionData("FSB1_template", portTypeToIdList);
+ List<UnifiedCompositionData> unifiedCompositionDataList = new ArrayList<>();
+ unifiedCompositionDataList.add(unifiedCompositionData);
+
+ Optional<ServiceTemplate> substitutionServiceTemplate = unifiedCompositionService
+ .createUnifiedSubstitutionServiceTemplate(inputServiceTemplates.get(mainSTName),
+ unifiedCompositionDataList,
+ context, null);
+ assertEquals(true, substitutionServiceTemplate.isPresent());
+ substitutionServiceTemplate
+ .ifPresent(
+ subServiceTemplate -> checkSTResults(expectedOutserviceTemplates,
+ subServiceTemplate, context.getGlobalSubstitutionServiceTemplate(), null));
+ }
+
+ @Test
+ public void createSubstitutionStWithOutputParamNoConsolidation() throws Exception {
+ inputServiceTemplatesPath =
+ "/mock/services/heattotosca/unifiedComposition/creSubstitutionServiceTemplate" +
+ "/WithOutputParameters/noConsolidation/in";
+ outputServiceTemplatesPath =
+ "/mock/services/heattotosca/unifiedComposition/creSubstitutionServiceTemplate/WithOutputParameters/noConsolidation/out";
+
+ List<Pair<String, String>> portTypeToIdList = new ArrayList<>();
+ portTypeToIdList.add(new ImmutablePair<>("FSB1_Internal", "FSB1_Internal1"));
+ portTypeToIdList.add(new ImmutablePair<>("FSB2_Internal", "FSB2_Internal2"));
+ portTypeToIdList.add(new ImmutablePair<>("FSB_OAM", "FSB1_OAM"));
+
+ loadInputAndOutputData();
+ UnifiedCompositionData unifiedCompositionData =
+ createCompositionData("FSB1_template", portTypeToIdList);
+ addGetAttrForCompute(unifiedCompositionData);
+ addGetAttrForPort(unifiedCompositionData);
+ List<UnifiedCompositionData> unifiedCompositionDataList = new ArrayList<>();
+ unifiedCompositionDataList.add(unifiedCompositionData);
+
+ Optional<ServiceTemplate> substitutionServiceTemplate = unifiedCompositionService
+ .createUnifiedSubstitutionServiceTemplate(inputServiceTemplates.get(mainSTName),
+ unifiedCompositionDataList,
+ context, null);
+ assertEquals(true, substitutionServiceTemplate.isPresent());
+ substitutionServiceTemplate
+ .ifPresent(
+ subServiceTemplate -> checkSTResults(expectedOutserviceTemplates,
+ subServiceTemplate, context.getGlobalSubstitutionServiceTemplate(), null));
+ }
+
+ @Test
+ public void createSubstitutionStWithOutputParamWithConsolidation() throws Exception {
+ inputServiceTemplatesPath =
+ "/mock/services/heattotosca/unifiedComposition/creSubstitutionServiceTemplate/WithOutputParameters/consolidation/in";
+ outputServiceTemplatesPath =
+ "/mock/services/heattotosca/unifiedComposition/creSubstitutionServiceTemplate/WithOutputParameters/consolidation/out";
+
+ List<UnifiedCompositionData> unifiedCompositionDataList = new ArrayList<>();
+ List<Pair<String, String>> portTypeToIdList1 = new ArrayList<>();
+ portTypeToIdList1.add(new ImmutablePair<>("FSB1_Internal", "FSB1_Internal1"));
+ portTypeToIdList1.add(new ImmutablePair<>("FSB2_Internal", "FSB2_Internal2"));
+
+ loadInputAndOutputData();
+ UnifiedCompositionData unifiedCompositionData1 =
+ createCompositionData("FSB1_template", portTypeToIdList1);
+ addGetAttrForCompute(unifiedCompositionData1);
+ addGetAttrForPort(unifiedCompositionData1);
+ unifiedCompositionDataList.add(unifiedCompositionData1);
+
+ List<Pair<String, String>> portTypeToIdList2 = new ArrayList<>();
+ portTypeToIdList2.add(new ImmutablePair<>("FSB1_Internal", "FSB1_Internal2"));
+ portTypeToIdList2.add(new ImmutablePair<>("FSB2_Internal", "FSB2_Internal1"));
+
+ UnifiedCompositionData unifiedCompositionData2 =
+ createCompositionData("FSB2_template", portTypeToIdList2);
+ addGetAttrForCompute2(unifiedCompositionData2);
+ addGetAttrForPort2(unifiedCompositionData2);
+ unifiedCompositionDataList.add(unifiedCompositionData2);
+
+ Optional<ServiceTemplate> substitutionServiceTemplate = unifiedCompositionService
+ .createUnifiedSubstitutionServiceTemplate(inputServiceTemplates.get(mainSTName),
+ unifiedCompositionDataList,
+ context, null);
+ assertEquals(true, substitutionServiceTemplate.isPresent());
+ substitutionServiceTemplate
+ .ifPresent(
+ subServiceTemplate -> checkSTResults(expectedOutserviceTemplates,
+ subServiceTemplate, context.getGlobalSubstitutionServiceTemplate(), null));
+ }
+
+ @Test
+ public void createSubstitutionStNoPorts() throws Exception {
+ inputServiceTemplatesPath =
+ "/mock/services/heattotosca/unifiedComposition/creSubstitutionServiceTemplate/NoPorts/in";
+ outputServiceTemplatesPath =
+ "/mock/services/heattotosca/unifiedComposition/creSubstitutionServiceTemplate/NoPorts/out";
+
+ loadInputAndOutputData();
+
+ UnifiedCompositionData unifiedCompositionData = new UnifiedCompositionData();
+ String computeNodeTemplateId = "FSB1_template";
+ unifiedCompositionData.setComputeTemplateConsolidationData(
+ TestUtils.createComputeTemplateConsolidationData(computeNodeTemplateId, null, null));
+ List<UnifiedCompositionData> unifiedCompositionDataList = new ArrayList<>();
+ unifiedCompositionDataList.add(unifiedCompositionData);
+
+ Optional<ServiceTemplate> substitutionServiceTemplate = unifiedCompositionService
+ .createUnifiedSubstitutionServiceTemplate(inputServiceTemplates.get(mainSTName),
+ unifiedCompositionDataList,
+ context, null);
+ assertEquals(true, substitutionServiceTemplate.isPresent());
+ substitutionServiceTemplate
+ .ifPresent(
+ subServiceTemplate -> checkSTResults(expectedOutserviceTemplates,
+ subServiceTemplate, context.getGlobalSubstitutionServiceTemplate(), null));
+ }
+
+
+ @Test
+ public void createSubstitutionStWithIndex() throws Exception {
+ inputServiceTemplatesPath =
+ "/mock/services/heattotosca/unifiedComposition/creSubstitutionServiceTemplate/WithIndex/in";
+ outputServiceTemplatesPath =
+ "/mock/services/heattotosca/unifiedComposition/creSubstitutionServiceTemplate/WithIndex/out";
+
+ List<Pair<String, String>> portTypeToIdList = new ArrayList<>();
+ portTypeToIdList.add(new ImmutablePair<>("FSB1_Internal", "FSB1_Internal1"));
+ portTypeToIdList.add(new ImmutablePair<>("FSB2_Internal", "FSB2_Internal2"));
+ portTypeToIdList.add(new ImmutablePair<>("FSB_OAM", "FSB1_OAM"));
+
+ loadInputAndOutputData();
+ UnifiedCompositionData unifiedCompositionData =
+ createCompositionData("FSB1_template", portTypeToIdList);
+ List<UnifiedCompositionData> unifiedCompositionDataList = new ArrayList<>();
+ unifiedCompositionDataList.add(unifiedCompositionData);
+
+ Optional<ServiceTemplate> substitutionServiceTemplate = unifiedCompositionService
+ .createUnifiedSubstitutionServiceTemplate(inputServiceTemplates.get(mainSTName),
+ unifiedCompositionDataList,
+ context, 2);
+ assertEquals(true, substitutionServiceTemplate.isPresent());
+ substitutionServiceTemplate
+ .ifPresent(
+ subServiceTemplate -> checkSTResults(expectedOutserviceTemplates,
+ subServiceTemplate, context.getGlobalSubstitutionServiceTemplate(), null));
+ }
+
+
+ @Test
+ public void createAbstractSubstituteOneComputeMultiplePortsDifferentTypesTest() throws Exception {
+ inputServiceTemplatesPath =
+ "/mock/services/heattotosca/unifiedComposition/createAbstractSubstitute/oneComputeMultiplePortsDiffType/in";
+ outputServiceTemplatesPath =
+ "/mock/services/heattotosca/unifiedComposition/createAbstractSubstitute/oneComputeMultiplePortsDiffType/out";
+
+ loadInputAndOutputData();
+
+ UnifiedCompositionData data = createComputeUnifiedCompositionData("FSB1_template");
+ List<Pair<String, String>> portTypeToIdList = new ArrayList<>();
+ portTypeToIdList.add(new ImmutablePair<>("FSB1_Internal", "FSB1_Internal1"));
+ portTypeToIdList.add(new ImmutablePair<>("FSB2_Internal", "FSB2_Internal2"));
+ portTypeToIdList.add(new ImmutablePair<>("FSB_OAM", "FSB1_OAM"));
+ addPortDataToCompositionData(portTypeToIdList, data);
+
+ List<UnifiedCompositionData> unifiedCompositionDataList = new LinkedList<>();
+ unifiedCompositionDataList.add(data);
+ Optional<ServiceTemplate> substitutionServiceTemplate = unifiedCompositionService
+ .createUnifiedSubstitutionServiceTemplate(inputServiceTemplates.get(mainSTName),
+ unifiedCompositionDataList,
+ context, null);
+ assertEquals(true, substitutionServiceTemplate.isPresent());
+ if (substitutionServiceTemplate.isPresent()) {
+ String nodeTemplateId = unifiedCompositionService.createAbstractSubstituteNodeTemplate(
+ inputServiceTemplates.get(mainSTName), substitutionServiceTemplate.get(),
+ unifiedCompositionDataList,
+ context, null);
+ validateAbstractSubstitute();
+ }
+ }
+
+
+ @Test
+ public void createAbstractSubstituteOneComputeMultiplePortsSameTypesTest() throws Exception {
+ inputServiceTemplatesPath =
+ "/mock/services/heattotosca/unifiedComposition/createAbstractSubstitute/oneComputeMultiplePortsSameType/in";
+ outputServiceTemplatesPath =
+ "/mock/services/heattotosca/unifiedComposition/createAbstractSubstitute/oneComputeMultiplePortsSameType/out";
+
+ loadInputAndOutputData();
+
+ UnifiedCompositionData data = createComputeUnifiedCompositionData("FSB1_template");
+ List<Pair<String, String>> portTypeToIdList = new ArrayList<>();
+ portTypeToIdList.add(new ImmutablePair<>("FSB1_Internal", "FSB1_Internal1"));
+ portTypeToIdList.add(new ImmutablePair<>("FSB1_Internal", "FSB1_Internal2"));
+ addPortDataToCompositionData(portTypeToIdList, data);
+
+ List<UnifiedCompositionData> unifiedCompositionDataList = new LinkedList<>();
+ unifiedCompositionDataList.add(data);
+ Optional<ServiceTemplate> substitutionServiceTemplate = unifiedCompositionService
+ .createUnifiedSubstitutionServiceTemplate(inputServiceTemplates.get(mainSTName),
+ unifiedCompositionDataList
+ , context, null);
+
+ assertEquals(true, substitutionServiceTemplate.isPresent());
+ if (substitutionServiceTemplate.isPresent()) {
+ String nodeTemplateId = unifiedCompositionService.createAbstractSubstituteNodeTemplate(
+ inputServiceTemplates.get(mainSTName), substitutionServiceTemplate.get(),
+ unifiedCompositionDataList,
+ context, null);
+ validateAbstractSubstitute();
+ }
+ }
+
+
+ @Test
+ public void createAbstractSubstituteTwoComputesMultiplePorts() throws Exception {
+ inputServiceTemplatesPath =
+ "/mock/services/heattotosca/unifiedComposition/createAbstractSubstitute/twoComputesMultiplePorts/in";
+ outputServiceTemplatesPath =
+ "/mock/services/heattotosca/unifiedComposition/createAbstractSubstitute/twoComputesMultiplePorts/out";
+
+ loadInputAndOutputData();
+ List<UnifiedCompositionData> unifiedCompositionDataList =
+ createAbstractSubstituteCompositionDataComputeAndPort();
+ Optional<ServiceTemplate> substitutionServiceTemplate = unifiedCompositionService
+ .createUnifiedSubstitutionServiceTemplate(inputServiceTemplates.get(mainSTName),
+ unifiedCompositionDataList
+ , context, null);
+ assertEquals(true, substitutionServiceTemplate.isPresent());
+ if (substitutionServiceTemplate.isPresent()) {
+ String nodeTemplateId = unifiedCompositionService.createAbstractSubstituteNodeTemplate
+ (inputServiceTemplates.get(mainSTName),
+ substitutionServiceTemplate.get(), unifiedCompositionDataList, context, null);
+ validateAbstractSubstitute();
+ }
+ }
+
+
+ @Test
+ public void updNodesConnectedOutWithConsolidationTest() throws Exception {
+ inputServiceTemplatesPath =
+ "/mock/services/heattotosca/unifiedComposition/updNodesConnectedOut/consolidation/in";
+ outputServiceTemplatesPath =
+ "/mock/services/heattotosca/unifiedComposition/updNodesConnectedOut/consolidation/out";
+
+ loadInputAndOutputData();
+ List<UnifiedCompositionData> unifiedCompositionDataList =
+ createAbstractSubstituteCompositionDataComputeAndPort();
+ Optional<ServiceTemplate> substitutionServiceTemplate = unifiedCompositionService
+ .createUnifiedSubstitutionServiceTemplate(inputServiceTemplates.get(mainSTName),
+ unifiedCompositionDataList
+ , context, null);
+ assertEquals(true, substitutionServiceTemplate.isPresent());
+ if (substitutionServiceTemplate.isPresent()) {
+ String nodeTemplateId = unifiedCompositionService.createAbstractSubstituteNodeTemplate
+ (inputServiceTemplates.get(mainSTName),
+ substitutionServiceTemplate.get(), unifiedCompositionDataList, context, null);
+
+ unifiedCompositionService
+ .updateCompositionConnectivity(inputServiceTemplates.get(mainSTName),
+ unifiedCompositionDataList, context);
+ validateAbstractSubstitute();
+ }
+ }
+
+ private void validateAbstractSubstitute() {
+ YamlUtil yamlUtil = new YamlUtil();
+ assertEquals(yamlUtil.objectToYaml(expectedOutserviceTemplates.get(mainSTName)), yamlUtil
+ .objectToYaml(inputServiceTemplates.get(mainSTName)));
+ }
+
+
+ @Test
+ public void updNodesConnectedOutNoConsolidationTest() throws Exception {
+ inputServiceTemplatesPath =
+ "/mock/services/heattotosca/unifiedComposition/updNodesConnectedOut/noConsolidation/in";
+ outputServiceTemplatesPath =
+ "/mock/services/heattotosca/unifiedComposition/updNodesConnectedOut/noConsolidation/out";
+
+ loadInputAndOutputData();
+
+ UnifiedCompositionData data = createComputeUnifiedCompositionData("FSB1_template");
+ List<Pair<String, String>> portTypeToIdList = new ArrayList<>();
+ portTypeToIdList.add(new ImmutablePair<>("FSB1_Internal", "FSB1_Internal1"));
+ portTypeToIdList.add(new ImmutablePair<>("FSB2_Internal", "FSB2_Internal2"));
+ portTypeToIdList.add(new ImmutablePair<>("FSB_OAM", "FSB1_OAM"));
+ addPortDataToCompositionData(portTypeToIdList, data);
+
+ List<UnifiedCompositionData> unifiedCompositionDataList = new LinkedList<>();
+ unifiedCompositionDataList.add(data);
+
+ Optional<ServiceTemplate> substitutionServiceTemplate = unifiedCompositionService
+ .createUnifiedSubstitutionServiceTemplate(inputServiceTemplates.get(mainSTName),
+ unifiedCompositionDataList
+ , context, null);
+ assertEquals(true, substitutionServiceTemplate.isPresent());
+ if (substitutionServiceTemplate.isPresent()) {
+ String nodeTemplateId = unifiedCompositionService.createAbstractSubstituteNodeTemplate
+ (inputServiceTemplates.get(mainSTName),
+ substitutionServiceTemplate.get(), unifiedCompositionDataList, context, null);
+
+ unifiedCompositionService
+ .updateCompositionConnectivity(inputServiceTemplates.get(mainSTName),
+ unifiedCompositionDataList, context);
+ validateAbstractSubstitute();
+ }
+ }
+
+
+ @Test
+ public void updNodesConnectedInNoConsolidationTest() throws Exception {
+ inputServiceTemplatesPath =
+ "/mock/services/heattotosca/unifiedComposition/updNodesConnectedIn/noConsolidation/in";
+ outputServiceTemplatesPath =
+ "/mock/services/heattotosca/unifiedComposition/updNodesConnectedIn/noConsolidation/out";
+
+ loadInputAndOutputData();
+
+ UnifiedCompositionData data = createComputeUnifiedCompositionData("QRouter");
+ List<Pair<String, String>> portTypeToIdList = new ArrayList<>();
+ portTypeToIdList.add(new ImmutablePair<>("cdr_network_port", "cdr_network_port"));
+ portTypeToIdList
+ .add(new ImmutablePair<>("oam_private_net_network_port", "oam_private_net_network_port"));
+ addPortDataToCompositionData(portTypeToIdList, data);
+
+ List<UnifiedCompositionData> unifiedCompositionDataList = new LinkedList<>();
+ unifiedCompositionDataList.add(data);
+
+ Optional<ServiceTemplate> substitutionServiceTemplate = unifiedCompositionService
+ .createUnifiedSubstitutionServiceTemplate(inputServiceTemplates.get(mainSTName),
+ unifiedCompositionDataList
+ , context, null);
+
+ String nodeTemplateId = unifiedCompositionService.createAbstractSubstituteNodeTemplate
+ (inputServiceTemplates.get(mainSTName),
+ substitutionServiceTemplate.get(), unifiedCompositionDataList, context, null);
+
+ unifiedCompositionService
+ .updateCompositionConnectivity(inputServiceTemplates.get(mainSTName),
+ unifiedCompositionDataList, context);
+ validateAbstractSubstitute();
+ }
+
+
+ @Test
+ public void updNodesConnectedInWithConsolidationTest() throws Exception {
+ inputServiceTemplatesPath =
+ "/mock/services/heattotosca/unifiedComposition/updNodesConnectedIn/consolidation/in";
+ outputServiceTemplatesPath =
+ "/mock/services/heattotosca/unifiedComposition/updNodesConnectedIn/consolidation/out";
+
+ loadInputAndOutputData();
+
+ List<UnifiedCompositionData> unifiedCompositionDataList =
+ createAbstractSubstituteCompositionDataComputeAndPort();
+
+ Optional<ServiceTemplate> substitutionServiceTemplate = unifiedCompositionService
+ .createUnifiedSubstitutionServiceTemplate(inputServiceTemplates.get(mainSTName),
+ unifiedCompositionDataList
+ , context, null);
+
+ String nodeTemplateId = unifiedCompositionService.createAbstractSubstituteNodeTemplate
+ (inputServiceTemplates.get(mainSTName),
+ substitutionServiceTemplate.get(), unifiedCompositionDataList, context, null);
+
+ unifiedCompositionService
+ .updateCompositionConnectivity(inputServiceTemplates.get(mainSTName),
+ unifiedCompositionDataList, context);
+ validateAbstractSubstitute();
+ }
+
+
+ @Test
+ public void updVolumesNoConsolidationTest() throws Exception {
+ inputServiceTemplatesPath =
+ "/mock/services/heattotosca/unifiedComposition/updVolumes/noConsolidation/in";
+ outputServiceTemplatesPath =
+ "/mock/services/heattotosca/unifiedComposition/updVolumes/noConsolidation/out";
+
+ loadInputAndOutputData();
+
+ UnifiedCompositionData data = createComputeUnifiedCompositionData("FSB1_template");
+ List<Pair<String, String>> portTypeToIdList = new ArrayList<>();
+ portTypeToIdList.add(new ImmutablePair<>("FSB1_Internal", "FSB1_Internal1"));
+ portTypeToIdList.add(new ImmutablePair<>("FSB2_Internal", "FSB2_Internal2"));
+ portTypeToIdList.add(new ImmutablePair<>("FSB_OAM", "FSB1_OAM"));
+ addPortDataToCompositionData(portTypeToIdList, data);
+
+ List<UnifiedCompositionData> unifiedCompositionDataList = new LinkedList<>();
+ unifiedCompositionDataList.add(data);
+
+ Optional<ServiceTemplate> substitutionServiceTemplate = unifiedCompositionService
+ .createUnifiedSubstitutionServiceTemplate(inputServiceTemplates.get(mainSTName),
+ unifiedCompositionDataList
+ , context, null);
+
+ String nodeTemplateId = unifiedCompositionService.createAbstractSubstituteNodeTemplate
+ (inputServiceTemplates.get(mainSTName),
+ substitutionServiceTemplate.get(), unifiedCompositionDataList, context, null);
+
+ unifiedCompositionService
+ .updateCompositionConnectivity(inputServiceTemplates.get(mainSTName),
+ unifiedCompositionDataList, context);
+ validateAbstractSubstitute();
+ }
+
+
+ @Test
+ public void updVolumesWithConsolidationTest() throws Exception {
+ inputServiceTemplatesPath =
+ "/mock/services/heattotosca/unifiedComposition/updVolumes/consolidation/in";
+ outputServiceTemplatesPath =
+ "/mock/services/heattotosca/unifiedComposition/updVolumes/consolidation/out";
+
+ loadInputAndOutputData();
+ List<UnifiedCompositionData> unifiedCompositionDataList =
+ createAbstractSubstituteCompositionDataComputeAndPort();
+ Optional<ServiceTemplate> substitutionServiceTemplate = unifiedCompositionService
+ .createUnifiedSubstitutionServiceTemplate(inputServiceTemplates.get(mainSTName),
+ unifiedCompositionDataList
+ , context, null);
+
+ String nodeTemplateId = unifiedCompositionService.createAbstractSubstituteNodeTemplate
+ (inputServiceTemplates.get(mainSTName),
+ substitutionServiceTemplate.get(), unifiedCompositionDataList, context, null);
+
+ unifiedCompositionService
+ .updateCompositionConnectivity(inputServiceTemplates.get(mainSTName),
+ unifiedCompositionDataList, context);
+ validateAbstractSubstitute();
+ }
+
+
+ @Test
+ public void updGroupsNoConsolidationTest() throws Exception {
+ inputServiceTemplatesPath =
+ "/mock/services/heattotosca/unifiedComposition/updGroupsConnectivity/noConsolidation/in";
+ outputServiceTemplatesPath =
+ "/mock/services/heattotosca/unifiedComposition/updGroupsConnectivity/noConsolidation/out";
+
+ loadInputAndOutputData();
+
+ UnifiedCompositionData data = createComputeUnifiedCompositionData("server_smp1");
+ List<Pair<String, String>> portTypeToIdList = new ArrayList<>();
+ portTypeToIdList.add(new ImmutablePair<>("port", "port1"));
+ portTypeToIdList.add(new ImmutablePair<>("port", "port2"));
+ addPortDataToCompositionData(portTypeToIdList, data);
+
+ //Add groups
+ List<String> computeGroupIdList =
+ TestUtils.getGroupsForNode(inputServiceTemplates.get(mainSTName), "server_smp1");
+ data.getComputeTemplateConsolidationData().setGroupIds(computeGroupIdList);
+
+ List<UnifiedCompositionData> unifiedCompositionDataList = new LinkedList<>();
+ unifiedCompositionDataList.add(data);
+
+ Optional<ServiceTemplate> substitutionServiceTemplate = unifiedCompositionService
+ .createUnifiedSubstitutionServiceTemplate(inputServiceTemplates.get(mainSTName),
+ unifiedCompositionDataList
+ , context, null);
+
+ String nodeTemplateId = unifiedCompositionService.createAbstractSubstituteNodeTemplate
+ (inputServiceTemplates.get(mainSTName),
+ substitutionServiceTemplate.get(), unifiedCompositionDataList, context, null);
+
+ unifiedCompositionService
+ .updateCompositionConnectivity(inputServiceTemplates.get(mainSTName),
+ unifiedCompositionDataList, context);
+ validateAbstractSubstitute();
+ }
+
+
+ @Test
+ public void updGroupsWithConsolidationTest() throws Exception {
+ inputServiceTemplatesPath =
+ "/mock/services/heattotosca/unifiedComposition/updGroupsConnectivity/consolidation/in";
+ outputServiceTemplatesPath =
+ "/mock/services/heattotosca/unifiedComposition/updGroupsConnectivity/consolidation/out";
+
+ loadInputAndOutputData();
+
+ List<UnifiedCompositionData> unifiedCompositionDataList =
+ createAbstractSubstituteCompositionDataComputeAndPort();
+
+ Optional<ServiceTemplate> substitutionServiceTemplate = unifiedCompositionService
+ .createUnifiedSubstitutionServiceTemplate(inputServiceTemplates.get(mainSTName),
+ unifiedCompositionDataList
+ , context, null);
+
+ String nodeTemplateId = unifiedCompositionService.createAbstractSubstituteNodeTemplate
+ (inputServiceTemplates.get(mainSTName),
+ substitutionServiceTemplate.get(), unifiedCompositionDataList, context, null);
+
+ unifiedCompositionService
+ .updateCompositionConnectivity(inputServiceTemplates.get(mainSTName),
+ unifiedCompositionDataList, context);
+ validateAbstractSubstitute();
+ }
+
+ @Test
+ public void updOutParamGetAttrInNoConsolidationTest() throws Exception {
+ inputServiceTemplatesPath =
+ "/mock/services/heattotosca/unifiedComposition/updOutputGetAttrIn/noConsolidation/in";
+ outputServiceTemplatesPath =
+ "/mock/services/heattotosca/unifiedComposition/updOutputGetAttrIn/noConsolidation/out";
+
+ List<Pair<String, String>> portTypeToIdList = new ArrayList<>();
+ portTypeToIdList.add(new ImmutablePair<>("FSB1_Internal", "FSB1_Internal1"));
+ portTypeToIdList.add(new ImmutablePair<>("FSB2_Internal", "FSB2_Internal2"));
+ portTypeToIdList.add(new ImmutablePair<>("FSB_OAM", "FSB1_OAM"));
+
+ loadInputAndOutputData();
+ UnifiedCompositionData unifiedCompositionData =
+ createCompositionData("FSB1_template", portTypeToIdList);
+ addOutputGetAttrInForComputeNoConsolidation(unifiedCompositionData);
+ addOutputGetAttrInForPortNoConsolidation(unifiedCompositionData);
+
+ List<UnifiedCompositionData> unifiedCompositionDataList = new ArrayList<>();
+ unifiedCompositionDataList.add(unifiedCompositionData);
+ Mockito.doNothing().when(unifiedCompositionService).updNodesConnectedOutConnectivity
+ (inputServiceTemplates.get(mainSTName), unifiedCompositionDataList, context);
+ Mockito.doReturn("FSB1").when(context).getUnifiedAbstractNodeTemplateId(anyObject(),
+ anyString());
+ unifiedCompositionService
+ .updateCompositionConnectivity(inputServiceTemplates.get(mainSTName),
+ unifiedCompositionDataList, context);
+
+ checkSTResults(expectedOutserviceTemplates, null, null, inputServiceTemplates.get(mainSTName));
+ }
+
+ @Test
+ public void updOutParamGetAttrInWithConsolidationTest() throws Exception {
+ inputServiceTemplatesPath =
+ "/mock/services/heattotosca/unifiedComposition/updOutputGetAttrIn/consolidation/in";
+ outputServiceTemplatesPath =
+ "/mock/services/heattotosca/unifiedComposition/updOutputGetAttrIn/consolidation/out";
+
+ List<UnifiedCompositionData> unifiedCompositionDataList = new ArrayList<>();
+ List<Pair<String, String>> portTypeToIdList1 = new ArrayList<>();
+ portTypeToIdList1.add(new ImmutablePair<>("FSB1_Internal", "FSB1_Internal1"));
+ portTypeToIdList1.add(new ImmutablePair<>("FSB2_Internal", "FSB2_Internal2"));
+
+ loadInputAndOutputData();
+ UnifiedCompositionData unifiedCompositionData1 =
+ createCompositionData("FSB1_template", portTypeToIdList1);
+ addOutputGetAttrInForCompute1WithConsolidation(unifiedCompositionData1);
+ addOutputGetAttrInForPortWithConsolidation1(unifiedCompositionData1);
+ unifiedCompositionDataList.add(unifiedCompositionData1);
+
+ List<Pair<String, String>> portTypeToIdList2 = new ArrayList<>();
+ portTypeToIdList2.add(new ImmutablePair<>("FSB1_Internal", "FSB1_Internal2"));
+ portTypeToIdList2.add(new ImmutablePair<>("FSB2_Internal", "FSB2_Internal1"));
+
+ UnifiedCompositionData unifiedCompositionData2 =
+ createCompositionData("FSB2_template", portTypeToIdList2);
+ unifiedCompositionDataList.add(unifiedCompositionData2);
+ addOutputGetAttrInForCompute2WithConsolidation(unifiedCompositionData2);
+ addOutputGetAttrInForPortWithConsolidation2(unifiedCompositionData2);
+
+ Mockito.doNothing().when(unifiedCompositionService).updNodesConnectedOutConnectivity
+ (inputServiceTemplates.get(mainSTName), unifiedCompositionDataList, context);
+ Mockito.doReturn("FSB1").when(context).getUnifiedAbstractNodeTemplateId(anyObject(),
+ anyString());
+
+ unifiedCompositionService
+ .updateCompositionConnectivity(inputServiceTemplates.get(mainSTName),
+ unifiedCompositionDataList, context);
+
+ checkSTResults(expectedOutserviceTemplates, null, null, inputServiceTemplates.get(mainSTName));
+ }
+
+ @Test
+ public void updNodeGetAttrInNoConsolidationTest() throws Exception {
+ inputServiceTemplatesPath =
+ "/mock/services/heattotosca/unifiedComposition/updNodesGetAttrIn/noConsolidation/in";
+ outputServiceTemplatesPath =
+ "/mock/services/heattotosca/unifiedComposition/updNodesGetAttrIn/noConsolidation/out";
+
+ List<Pair<String, String>> portTypeToIdList = new ArrayList<>();
+ portTypeToIdList.add(new ImmutablePair<>("FSB1_Internal", "FSB1_Internal1"));
+ portTypeToIdList.add(new ImmutablePair<>("FSB2_Internal", "FSB2_Internal2"));
+ portTypeToIdList.add(new ImmutablePair<>("FSB_OAM", "FSB1_OAM"));
+
+ loadInputAndOutputData();
+ UnifiedCompositionData unifiedCompositionData =
+ createCompositionData("FSB1_template", portTypeToIdList);
+ addGetAttrForCompute(unifiedCompositionData);
+ addGetAttrForPort(unifiedCompositionData);
+ addGetAttrForPortInnerUC(unifiedCompositionData);
+
+ List<UnifiedCompositionData> unifiedCompositionDataList = new ArrayList<>();
+ unifiedCompositionDataList.add(unifiedCompositionData);
+ Mockito.doNothing().when(unifiedCompositionService).updNodesConnectedOutConnectivity
+ (inputServiceTemplates.get(mainSTName), unifiedCompositionDataList, context);
+ Mockito.doReturn("FSB1").when(context).getUnifiedAbstractNodeTemplateId(anyObject(),
+ anyString());
+ unifiedCompositionService
+ .updateCompositionConnectivity(inputServiceTemplates.get(mainSTName),
+ unifiedCompositionDataList, context);
+
+ checkSTResults(expectedOutserviceTemplates, null, null, inputServiceTemplates.get(mainSTName));
+ }
+
+ @Test
+ public void updNodeGetAttrInWithConsolidationTest() throws Exception {
+ inputServiceTemplatesPath =
+ "/mock/services/heattotosca/unifiedComposition/updNodesGetAttrIn/consolidation/in";
+ outputServiceTemplatesPath =
+ "/mock/services/heattotosca/unifiedComposition/updNodesGetAttrIn/consolidation/out";
+
+ List<UnifiedCompositionData> unifiedCompositionDataList = new ArrayList<>();
+ List<Pair<String, String>> portTypeToIdList1 = new ArrayList<>();
+ portTypeToIdList1.add(new ImmutablePair<>("FSB1_Internal", "FSB1_Internal1"));
+ portTypeToIdList1.add(new ImmutablePair<>("FSB2_Internal", "FSB2_Internal2"));
+
+ loadInputAndOutputData();
+ UnifiedCompositionData unifiedCompositionData1 =
+ createCompositionData("FSB1_template", portTypeToIdList1);
+ addGetAttrForCompute(unifiedCompositionData1);
+ addGetAttrForPort(unifiedCompositionData1);
+ unifiedCompositionDataList.add(unifiedCompositionData1);
+
+ List<Pair<String, String>> portTypeToIdList2 = new ArrayList<>();
+ portTypeToIdList2.add(new ImmutablePair<>("FSB1_Internal", "FSB1_Internal2"));
+ portTypeToIdList2.add(new ImmutablePair<>("FSB2_Internal", "FSB2_Internal1"));
+
+ UnifiedCompositionData unifiedCompositionData2 =
+ createCompositionData("FSB2_template", portTypeToIdList2);
+ addGetAttrForCompute2(unifiedCompositionData2);
+ addGetAttrForPort2(unifiedCompositionData2);
+ unifiedCompositionDataList.add(unifiedCompositionData2);
+
+
+ Mockito.doNothing().when(unifiedCompositionService).updNodesConnectedOutConnectivity
+ (inputServiceTemplates.get(mainSTName), unifiedCompositionDataList, context);
+ Mockito.doReturn("FSB1").when(context).getUnifiedAbstractNodeTemplateId(anyObject(),
+ anyString());
+
+ unifiedCompositionService
+ .updateCompositionConnectivity(inputServiceTemplates.get(mainSTName),
+ unifiedCompositionDataList, context);
+
+ checkSTResults(expectedOutserviceTemplates, null, null, inputServiceTemplates.get(mainSTName));
+ }
+
+
+ @Test
+ public void updNodesGetAttrFromInnerNodesTest() throws Exception {
+ inputServiceTemplatesPath =
+ "/mock/services/heattotosca/unifiedComposition/creSubstitutionServiceTemplate/updNodesGetAttrInFromInnerNodes/noConsolidation/in";
+ outputServiceTemplatesPath =
+ "/mock/services/heattotosca/unifiedComposition/creSubstitutionServiceTemplate/updNodesGetAttrInFromInnerNodes/noConsolidation/out";
+
+ List<Pair<String, String>> portTypeToIdList = new ArrayList<>();
+ portTypeToIdList.add(new ImmutablePair<>("FSB1_Internal", "FSB1_Internal1"));
+ portTypeToIdList.add(new ImmutablePair<>("FSB2_Internal", "FSB2_Internal2"));
+ portTypeToIdList.add(new ImmutablePair<>("FSB_OAM", "FSB1_OAM"));
+
+ loadInputAndOutputData();
+ UnifiedCompositionData unifiedCompositionData =
+ createCompositionData("FSB1_template", portTypeToIdList);
+ addGetAttrForCompute(unifiedCompositionData);
+ addGetAttrForPort(unifiedCompositionData);
+ addGetAttrForPortInnerUC(unifiedCompositionData);
+ List<UnifiedCompositionData> unifiedCompositionDataList = new ArrayList<>();
+ unifiedCompositionDataList.add(unifiedCompositionData);
+
+ Mockito.doReturn("FSB1").when(context).getUnifiedAbstractNodeTemplateId(anyObject(),
+ anyString());
+
+ Optional<ServiceTemplate> substitutionServiceTemplate = unifiedCompositionService
+ .createUnifiedSubstitutionServiceTemplate(inputServiceTemplates.get(mainSTName),
+ unifiedCompositionDataList,
+ context, null);
+ assertEquals(true, substitutionServiceTemplate.isPresent());
+ substitutionServiceTemplate
+ .ifPresent(
+ subServiceTemplate -> checkSTResults(expectedOutserviceTemplates,
+ subServiceTemplate, context.getGlobalSubstitutionServiceTemplate(), null));
+ }
+
+
+ @Test
+ public void updNodesGetAttrFromConsolidationNodesTest() throws Exception {
+ inputServiceTemplatesPath =
+ "/mock/services/heattotosca/unifiedComposition/creSubstitutionServiceTemplate/updNodesGetAttrInFromInnerNodes/consolidation/in";
+ outputServiceTemplatesPath =
+ "/mock/services/heattotosca/unifiedComposition/creSubstitutionServiceTemplate/updNodesGetAttrInFromInnerNodes/consolidation/out";
+
+ List<UnifiedCompositionData> unifiedCompositionDataList = new ArrayList<>();
+ List<Pair<String, String>> portTypeToIdList1 = new ArrayList<>();
+ portTypeToIdList1.add(new ImmutablePair<>("FSB1_Internal", "FSB1_Internal1"));
+ portTypeToIdList1.add(new ImmutablePair<>("FSB2_Internal", "FSB2_Internal2"));
+
+ loadInputAndOutputData();
+ UnifiedCompositionData unifiedCompositionData1 =
+ createCompositionData("FSB1_template", portTypeToIdList1);
+ addGetAttrForCompute(unifiedCompositionData1);
+ addGetAttrForPort(unifiedCompositionData1);
+ unifiedCompositionDataList.add(unifiedCompositionData1);
+
+ List<Pair<String, String>> portTypeToIdList2 = new ArrayList<>();
+ portTypeToIdList2.add(new ImmutablePair<>("FSB1_Internal", "FSB1_Internal2"));
+ portTypeToIdList2.add(new ImmutablePair<>("FSB2_Internal", "FSB2_Internal1"));
+
+ UnifiedCompositionData unifiedCompositionData2 =
+ createCompositionData("FSB2_template", portTypeToIdList2);
+ addGetAttrForCompute2(unifiedCompositionData2);
+ addGetAttrForPort2(unifiedCompositionData2);
+ unifiedCompositionDataList.add(unifiedCompositionData2);
+
+ Optional<ServiceTemplate> substitutionServiceTemplate = unifiedCompositionService
+ .createUnifiedSubstitutionServiceTemplate(inputServiceTemplates.get(mainSTName),
+ unifiedCompositionDataList,
+ context, null);
+ assertEquals(true, substitutionServiceTemplate.isPresent());
+ substitutionServiceTemplate
+ .ifPresent(
+ subServiceTemplate -> checkSTResults(expectedOutserviceTemplates,
+ subServiceTemplate, context.getGlobalSubstitutionServiceTemplate(), null));
+ }
+
+ @Test
+ public void cleanMainServiceTemplateTestNoConsolidation() throws IOException {
+ inputServiceTemplatesPath =
+ "/mock/services/heattotosca/unifiedComposition/cleanMainSt/noConsolidation/in";
+ outputServiceTemplatesPath =
+ "/mock/services/heattotosca/unifiedComposition/cleanMainSt/noConsolidation/out";
+
+ List<Pair<String, String>> portTypeToIdList = new ArrayList<>();
+ portTypeToIdList.add(new ImmutablePair<>("FSB1_Internal", "FSB1_Internal1"));
+ portTypeToIdList.add(new ImmutablePair<>("FSB2_Internal", "FSB2_Internal2"));
+ portTypeToIdList.add(new ImmutablePair<>("FSB_OAM", "FSB1_OAM"));
+
+ loadInputAndOutputData();
+ UnifiedCompositionData unifiedCompositionData =
+ createCompositionData("FSB1_template", portTypeToIdList);
+ addGetAttrForCompute(unifiedCompositionData);
+ addGetAttrForPort(unifiedCompositionData);
+
+ List<UnifiedCompositionData> unifiedCompositionDataList = new ArrayList<>();
+ unifiedCompositionDataList.add(unifiedCompositionData);
+
+ NodeTemplate abstractNodeTemplate = getMockNode(
+ "/mock/services/heattotosca/unifiedComposition/cleanMainSt/mockAbstractNodeTemplate.yaml");
+ inputServiceTemplates.get(mainSTName).getTopology_template().getNode_templates()
+ .put("FSB1", abstractNodeTemplate);
+
+ Mockito.doReturn("FSB1").when(context).getUnifiedAbstractNodeTemplateId(anyObject(),
+ anyString());
+
+ unifiedCompositionService.
+ cleanUnifiedCompositionEntities(inputServiceTemplates.get(mainSTName),
+ unifiedCompositionDataList, context);
+
+ checkSTResults(expectedOutserviceTemplates, null, null, inputServiceTemplates.get(mainSTName));
+ }
+
+ @Test
+ public void cleanMainServiceTemplateTestWithConsolidation() throws IOException {
+ inputServiceTemplatesPath =
+ "/mock/services/heattotosca/unifiedComposition/cleanMainSt/consolidation/in";
+ outputServiceTemplatesPath =
+ "/mock/services/heattotosca/unifiedComposition/cleanMainSt/consolidation/out";
+
+ loadInputAndOutputData();
+
+ List<UnifiedCompositionData> unifiedCompositionDataList = new ArrayList<>();
+ List<Pair<String, String>> portTypeToIdList1 = new ArrayList<>();
+ portTypeToIdList1.add(new ImmutablePair<>("FSB1_Internal", "FSB1_Internal1"));
+ portTypeToIdList1.add(new ImmutablePair<>("FSB2_Internal", "FSB2_Internal2"));
+
+ UnifiedCompositionData unifiedCompositionData1 =
+ createCompositionData("FSB1_template", portTypeToIdList1);
+ addOutputGetAttrInForCompute1WithConsolidation(unifiedCompositionData1);
+ addOutputGetAttrInForPortWithConsolidation1(unifiedCompositionData1);
+ unifiedCompositionDataList.add(unifiedCompositionData1);
+
+ List<Pair<String, String>> portTypeToIdList2 = new ArrayList<>();
+ portTypeToIdList2.add(new ImmutablePair<>("FSB1_Internal", "FSB1_Internal2"));
+ portTypeToIdList2.add(new ImmutablePair<>("FSB2_Internal", "FSB2_Internal1"));
+
+ UnifiedCompositionData unifiedCompositionData2 =
+ createCompositionData("FSB2_template", portTypeToIdList2);
+ addOutputGetAttrInForCompute2WithConsolidation(unifiedCompositionData2);
+ addOutputGetAttrInForPortWithConsolidation2(unifiedCompositionData2);
+ unifiedCompositionDataList.add(unifiedCompositionData2);
+
+ NodeTemplate abstractNodeTemplate = getMockNode(
+ "/mock/services/heattotosca/unifiedComposition/cleanMainSt/mockAbstractNodeTemplate.yaml");
+ inputServiceTemplates.get(mainSTName).getTopology_template().getNode_templates()
+ .put("FSB1", abstractNodeTemplate);
+
+ Mockito.doReturn("FSB1").when(context).getUnifiedAbstractNodeTemplateId(anyObject(),
+ anyString());
+
+ unifiedCompositionService.
+ cleanUnifiedCompositionEntities(inputServiceTemplates.get(mainSTName),
+ unifiedCompositionDataList, context);
+
+ checkSTResults(expectedOutserviceTemplates, null, null, inputServiceTemplates.get(mainSTName));
+ }
+
+ @Test
+ public void updateNewAbstractNodeTemplateNoConsolidation() throws IOException {
+ inputServiceTemplatesPath =
+ "/mock/services/heattotosca/unifiedComposition/fixNewAbstractNodeTemplate/noConsolidation/in";
+ outputServiceTemplatesPath =
+ "/mock/services/heattotosca/unifiedComposition/fixNewAbstractNodeTemplate/noConsolidation/out";
+
+ loadInputAndOutputData();
+
+ List<Pair<String, String>> portTypeToIdList = new ArrayList<>();
+ portTypeToIdList.add(new ImmutablePair<>("FSB1_Internal", "FSB1_Internal1"));
+ portTypeToIdList.add(new ImmutablePair<>("FSB1_Internal", "FSB1_Internal2"));
+
+ NodeTemplate cleanedComputeNodeTemplate =
+ getMockNode(
+ "/mock/services/heattotosca/unifiedComposition/fixNewAbstractNodeTemplate/mockComputeNodeTemplate.yaml");
+
+
+ context.setConsolidationData(
+ createConsolidationData(Arrays.asList("FSB1_template"), portTypeToIdList));
+ context.addCleanedNodeTemplate(mainSTName, "FSB1_template",
+ UnifiedCompositionEntity.Compute, cleanedComputeNodeTemplate);
+ context.addCleanedNodeTemplate(mainSTName, "FSB1_Internal1",
+ UnifiedCompositionEntity.Port, cleanedComputeNodeTemplate);
+ context.addCleanedNodeTemplate(mainSTName, "FSB1_Internal2",
+ UnifiedCompositionEntity.Port, cleanedComputeNodeTemplate);
+
+ setUnifiedCompositionData(Arrays.asList("FSB1_template", "FSB1_Internal1", "FSB1_Internal2"));
+
+ unifiedCompositionService
+ .updateUnifiedAbstractNodesConnectivity(inputServiceTemplates.get(mainSTName), context);
+
+ checkSTResults(expectedOutserviceTemplates, null, null, inputServiceTemplates.get(mainSTName));
+ }
+
+ @Test
+ public void updateNewAbstractNodeTemplateWithConsolidation() throws IOException {
+ inputServiceTemplatesPath =
+ "/mock/services/heattotosca/unifiedComposition/fixNewAbstractNodeTemplate/consolidation/in";
+ outputServiceTemplatesPath =
+ "/mock/services/heattotosca/unifiedComposition/fixNewAbstractNodeTemplate/consolidation/out";
+
+ loadInputAndOutputData();
+
+ List<Pair<String, String>> portTypeToIdList = new ArrayList<>();
+ portTypeToIdList.add(new ImmutablePair<>("FSB1_Internal", "FSB1_Internal1"));
+ portTypeToIdList.add(new ImmutablePair<>("FSB2_Internal", "FSB2_Internal1"));
+
+ NodeTemplate cleanedComputeNodeTemplate =
+ getMockNode(
+ "/mock/services/heattotosca/unifiedComposition/fixNewAbstractNodeTemplate/mockComputeNodeTemplate.yaml");
+
+
+ context.setConsolidationData(
+ createConsolidationData(Arrays.asList("FSB1_template_1", "FSB1_template_2"),
+ portTypeToIdList));
+ context.addCleanedNodeTemplate(mainSTName, "FSB1_template_1",
+ UnifiedCompositionEntity.Compute, cleanedComputeNodeTemplate);
+ context.addCleanedNodeTemplate(mainSTName, "FSB1_template_2",
+ UnifiedCompositionEntity.Compute, cleanedComputeNodeTemplate);
+ context.addCleanedNodeTemplate(mainSTName, "FSB1_Internal1",
+ UnifiedCompositionEntity.Port, cleanedComputeNodeTemplate);
+ context.addCleanedNodeTemplate(mainSTName, "FSB2_Internal1",
+ UnifiedCompositionEntity.Port, cleanedComputeNodeTemplate);
+
+ setUnifiedCompositionData(
+ Arrays.asList("FSB1_template_1", "FSB1_template_2", "FSB1_Internal1", "FSB2_Internal1"));
+
+ unifiedCompositionService
+ .updateUnifiedAbstractNodesConnectivity(inputServiceTemplates.get(mainSTName), context);
+
+ checkSTResults(expectedOutserviceTemplates, null, null, inputServiceTemplates.get(mainSTName));
+ }
+
+ @Test
+ public void testThreeNovaOfSameTypePreConditionFalse() throws IOException {
+ inputServiceTemplatesPath =
+ "/mock/services/heattotosca/unifiedComposition/pattern1b/noConsolidation/in";
+ outputServiceTemplatesPath =
+ "/mock/services/heattotosca/unifiedComposition/pattern1b/noConsolidation/out";
+
+ loadInputAndOutputData();
+
+ List<UnifiedCompositionData> unifiedCompositionDataList = new ArrayList<>();
+ List<Pair<String, String>> portTypeToIdList1 = new ArrayList<>();
+ portTypeToIdList1.add(new ImmutablePair<>("FSB1_Internal", "FSB1_Internal1"));
+ portTypeToIdList1.add(new ImmutablePair<>("FSB2_Internal", "FSB2_Internal2"));
+
+ UnifiedCompositionData unifiedCompositionData1 =
+ createCompositionData("FSB1_template", portTypeToIdList1);
+ addOutputGetAttrInForCompute1WithConsolidation(unifiedCompositionData1);
+ addOutputGetAttrInForPortWithConsolidation1(unifiedCompositionData1);
+ unifiedCompositionDataList.add(unifiedCompositionData1);
+
+ UnifiedCompositionData unifiedCompositionData2 =
+ createCompositionData("FSB2_template", portTypeToIdList1);
+ addOutputGetAttrInForCompute1WithConsolidation(unifiedCompositionData2);
+ addOutputGetAttrInForPortWithConsolidation1(unifiedCompositionData2);
+ unifiedCompositionDataList.add(unifiedCompositionData2);
+
+ portTypeToIdList1.remove(1);
+ UnifiedCompositionData unifiedCompositionData3 =
+ createCompositionData("FSB3_template", portTypeToIdList1);
+ addOutputGetAttrInForCompute1WithConsolidation(unifiedCompositionData3);
+ addOutputGetAttrInForPortWithConsolidation1(unifiedCompositionData3);
+ unifiedCompositionDataList.add(unifiedCompositionData3);
+
+ UnifiedCompositionSingleSubstitution unifiedCompositionSingleSubstitution =
+ new UnifiedCompositionSingleSubstitution();
+ unifiedCompositionSingleSubstitution
+ .createUnifiedComposition(inputServiceTemplates.get(mainSTName), null,
+ unifiedCompositionDataList, context);
+
+ checkSTResults(expectedOutserviceTemplates, null, null, inputServiceTemplates.get(mainSTName));
+ }
+
+ @Test
+ public void testUnifiedNestedCompositionOneComputeInNested() throws IOException {
+ inputServiceTemplatesPath =
+ "/mock/services/heattotosca/unifiedComposition/pattern4/oneNestedNode/in";
+ outputServiceTemplatesPath =
+ "/mock/services/heattotosca/unifiedComposition/pattern4/oneNestedNode/out";
+
+ loadInputAndOutputData();
+
+ ConsolidationData consolidationData = new ConsolidationData();
+ String nestedFileName = "nested-pcm_v0.1ServiceTemplate.yaml";
+ TestUtils.updateNestedConsolidationData(mainSTName, Arrays.asList("server_pcm_001"),
+ consolidationData);
+
+ TestUtils.initComputeNodeTypeInConsolidationData(nestedFileName,
+ "org.openecomp.resource.vfc.nodes.heat.pcm_server", consolidationData);
+ TestUtils.initComputeNodeTemplateIdInConsolidationData(nestedFileName,
+ "org.openecomp.resource.vfc.nodes.heat.pcm_server", "server_pcm", consolidationData);
+
+ context.setConsolidationData(consolidationData);
+ context.getTranslatedServiceTemplates()
+ .put(Constants.GLOBAL_SUBSTITUTION_TYPES_TEMPLATE_NAME,
+ inputServiceTemplates.get(globalSubstitutionST));
+ context.getTranslatedServiceTemplates()
+ .put(nestedFileName, inputServiceTemplates.get(nestedFileName));
+ context.getTranslatedServiceTemplates()
+ .put(mainSTName, inputServiceTemplates.get(mainSTName));
+
+ List<UnifiedCompositionData> unifiedCompositionList = createUnifiedCompositionListOnlyNested("server_pcm_001");
+ unifiedCompositionService.handleUnifiedNestedDefinition(inputServiceTemplates.get(mainSTName),
+ inputServiceTemplates.get(nestedFileName), unifiedCompositionList, context);
+
+ checkSTResults(expectedOutserviceTemplates, nestedFileName,
+ context.getTranslatedServiceTemplates().get(nestedFileName),
+ context.getTranslatedServiceTemplates()
+ .get(Constants.GLOBAL_SUBSTITUTION_TYPES_TEMPLATE_NAME), null);
+ }
+
+ @Test
+ public void testTwoNestedWithOneCompute() throws IOException {
+ inputServiceTemplatesPath =
+ "/mock/services/heattotosca/unifiedComposition/pattern4/twoNestedWithOneCompute/in";
+ outputServiceTemplatesPath =
+ "/mock/services/heattotosca/unifiedComposition/pattern4/twoNestedWithOneCompute/out";
+
+ loadInputAndOutputData();
+
+ ConsolidationData consolidationData = new ConsolidationData();
+ String nestedFileName1 = "nested-pcm_v0.1ServiceTemplate.yaml";
+ String nestedFileName2 = "nested-oam_v0.1ServiceTemplate.yaml";
+
+ TestUtils.updateNestedConsolidationData(mainSTName,
+ Arrays.asList("server_pcm_001", "server_oam_001"), consolidationData);
+
+ TestUtils.initComputeNodeTypeInConsolidationData(nestedFileName1,
+ "org.openecomp.resource.vfc.nodes.heat.pcm_server", consolidationData);
+ TestUtils.initComputeNodeTemplateIdInConsolidationData(nestedFileName1,
+ "org.openecomp.resource.vfc.nodes.heat.pcm_server", "server_pcm", consolidationData);
+ TestUtils.initComputeNodeTypeInConsolidationData(nestedFileName2,
+ "org.openecomp.resource.vfc.nodes.heat.oam_server", consolidationData);
+ TestUtils.initComputeNodeTemplateIdInConsolidationData(nestedFileName2,
+ "org.openecomp.resource.vfc.nodes.heat.oam_server", "server_oam", consolidationData);
+
+ context.setConsolidationData(consolidationData);
+ context.getTranslatedServiceTemplates()
+ .put(Constants.GLOBAL_SUBSTITUTION_TYPES_TEMPLATE_NAME,
+ inputServiceTemplates.get(globalSubstitutionST));
+ context.getTranslatedServiceTemplates()
+ .put(nestedFileName1, inputServiceTemplates.get(nestedFileName1));
+ context.getTranslatedServiceTemplates()
+ .put(nestedFileName2, inputServiceTemplates.get(nestedFileName2));
+ context.getTranslatedServiceTemplates()
+ .put(mainSTName, inputServiceTemplates.get(mainSTName));
+
+ List<UnifiedCompositionData> unifiedCompositionList =
+ createUnifiedCompositionListOnlyNested("server_pcm_001");
+ unifiedCompositionService.handleUnifiedNestedDefinition(inputServiceTemplates.get(mainSTName),
+ inputServiceTemplates.get(nestedFileName1), unifiedCompositionList, context);
+ unifiedCompositionList = createUnifiedCompositionListOnlyNested("server_oam_001");
+ unifiedCompositionService.handleUnifiedNestedDefinition(inputServiceTemplates.get(mainSTName),
+ inputServiceTemplates.get(nestedFileName2), unifiedCompositionList, context);
+
+ checkSTResults(expectedOutserviceTemplates, nestedFileName1,
+ context.getTranslatedServiceTemplates().get(nestedFileName1),
+ context.getTranslatedServiceTemplates()
+ .get(Constants.GLOBAL_SUBSTITUTION_TYPES_TEMPLATE_NAME), null);
+ checkSTResults(expectedOutserviceTemplates, nestedFileName2,
+ context.getTranslatedServiceTemplates().get(nestedFileName2),
+ null, null);
+ }
+
+ @Test
+ public void testNestedCompositionNodesConnectedIn() throws IOException {
+ inputServiceTemplatesPath =
+ "/mock/services/heattotosca/unifiedComposition/pattern4/nestedNodesConnectedIn/in";
+ outputServiceTemplatesPath =
+ "/mock/services/heattotosca/unifiedComposition/pattern4/nestedNodesConnectedIn/out";
+
+ loadInputAndOutputData();
+ ConsolidationData consolidationData = new ConsolidationData();
+ String nestedFileName = "nested-pcm_v0.1ServiceTemplate.yaml";
+ TestUtils.updateNestedConsolidationData(mainSTName, Arrays.asList("server_pcm_001"),
+ consolidationData);
+ context.getTranslatedServiceTemplates()
+ .put(Constants.GLOBAL_SUBSTITUTION_TYPES_TEMPLATE_NAME,
+ inputServiceTemplates.get(globalSubstitutionST));
+ context.getTranslatedServiceTemplates()
+ .put(nestedFileName, inputServiceTemplates.get(nestedFileName));
+ context.getTranslatedServiceTemplates()
+ .put(mainSTName, inputServiceTemplates.get(mainSTName));
+ context.addUnifiedNestedNodeTemplateId(mainSTName, "server_pcm_001", "abstract_pcm_server_0");
+
+ Map<String, List<RequirementAssignmentData>> nodeConnectedInList =
+ TestUtils.getNodeConnectedInList("server_pcm_001", inputServiceTemplates.get(mainSTName),
+ "dependency");
+ List<UnifiedCompositionData> unifiedCompositionList =
+ createUnifiedCompositionListOnlyNested("server_pcm_001");
+ unifiedCompositionList.get(0).getNestedTemplateConsolidationData()
+ .setNodesConnectedIn(nodeConnectedInList);
+
+ unifiedCompositionService.updNestedCompositionNodesConnectedInConnectivity
+ (inputServiceTemplates.get(mainSTName), unifiedCompositionList, context);
+ checkSTResults(expectedOutserviceTemplates, nestedFileName,
+ context.getTranslatedServiceTemplates().get(nestedFileName),
+ context.getTranslatedServiceTemplates()
+ .get(Constants.GLOBAL_SUBSTITUTION_TYPES_TEMPLATE_NAME), context
+ .getTranslatedServiceTemplates().get(mainSTName));
+ }
+
+
+ @Test
+ public void testNestedCompositionNodesGetAttrIn() throws IOException {
+ inputServiceTemplatesPath =
+ "/mock/services/heattotosca/unifiedComposition/pattern4/nestedNodesGetAttrIn/in";
+ outputServiceTemplatesPath =
+ "/mock/services/heattotosca/unifiedComposition/pattern4/nestedNodesGetAttrIn/out";
+
+ loadInputAndOutputData();
+ ConsolidationData consolidationData = new ConsolidationData();
+ String nestedFileName = "nested-pcm_v0.1ServiceTemplate.yaml";
+ TestUtils.updateNestedConsolidationData(mainSTName, Arrays.asList("server_pcm_001"),
+ consolidationData);
+ context.getTranslatedServiceTemplates()
+ .put(Constants.GLOBAL_SUBSTITUTION_TYPES_TEMPLATE_NAME,
+ inputServiceTemplates.get(globalSubstitutionST));
+ context.getTranslatedServiceTemplates()
+ .put(nestedFileName, inputServiceTemplates.get(nestedFileName));
+ context.getTranslatedServiceTemplates()
+ .put(mainSTName, inputServiceTemplates.get(mainSTName));
+ context.addUnifiedNestedNodeTemplateId(mainSTName, "server_pcm_001", "abstract_pcm_server_0");
+
+ Map<String, List<RequirementAssignmentData>> nodeConnectedInList =
+ TestUtils.getNodeConnectedInList("server_pcm_001", inputServiceTemplates.get(mainSTName),
+ "dependency");
+ List<UnifiedCompositionData> unifiedCompositionList =
+ createUnifiedCompositionListOnlyNested("server_pcm_001");
+ addGetAttInUnifiedCompositionData(unifiedCompositionList.get(0)
+ .getNestedTemplateConsolidationData(), "tenant_id", "oam_net_gw", "packet_mirror_network");
+ addGetAttInUnifiedCompositionData(unifiedCompositionList.get(0)
+ .getNestedTemplateConsolidationData(), "user_data_format", "oam_net_gw",
+ "server_compute_get_attr_test");
+ addGetAttInUnifiedCompositionData(unifiedCompositionList.get(0)
+ .getNestedTemplateConsolidationData(), "metadata", "server_pcm_id",
+ "server_compute_get_attr_test");
+ unifiedCompositionService.updNestedCompositionNodesGetAttrInConnectivity
+ (inputServiceTemplates.get(mainSTName), unifiedCompositionList, context);
+ checkSTResults(expectedOutserviceTemplates, nestedFileName,
+ context.getTranslatedServiceTemplates().get(nestedFileName),
+ context.getTranslatedServiceTemplates()
+ .get(Constants.GLOBAL_SUBSTITUTION_TYPES_TEMPLATE_NAME), context
+ .getTranslatedServiceTemplates().get(mainSTName));
+ }
+
+ @Test
+ public void testNestedCompositionOutputParamGetAttrIn() throws IOException {
+ inputServiceTemplatesPath =
+ "/mock/services/heattotosca/unifiedComposition/pattern4/nestedOutputParamGetAttrIn/in";
+ outputServiceTemplatesPath =
+ "/mock/services/heattotosca/unifiedComposition/pattern4/nestedOutputParamGetAttrIn/out";
+
+ loadInputAndOutputData();
+ ConsolidationData consolidationData = new ConsolidationData();
+ String nestedFileName = "nested-pcm_v0.1ServiceTemplate.yaml";
+ TestUtils.updateNestedConsolidationData(mainSTName, Arrays.asList("server_pcm_001"),
+ consolidationData);
+ context.getTranslatedServiceTemplates()
+ .put(Constants.GLOBAL_SUBSTITUTION_TYPES_TEMPLATE_NAME,
+ inputServiceTemplates.get(globalSubstitutionST));
+ context.getTranslatedServiceTemplates()
+ .put(nestedFileName, inputServiceTemplates.get(nestedFileName));
+ context.getTranslatedServiceTemplates()
+ .put(mainSTName, inputServiceTemplates.get(mainSTName));
+ context.addUnifiedNestedNodeTemplateId(mainSTName, "server_pcm_001", "abstract_pcm_server_0");
+
+ Map<String, List<RequirementAssignmentData>> nodeConnectedInList =
+ TestUtils.getNodeConnectedInList("server_pcm_001", inputServiceTemplates.get(mainSTName),
+ "dependency");
+ List<UnifiedCompositionData> unifiedCompositionList =
+ createUnifiedCompositionListOnlyNested("server_pcm_001");
+ addOutputGetAttInUnifiedCompositionData(unifiedCompositionList.get(0)
+ .getNestedTemplateConsolidationData(), "output_attr_1", "accessIPv4");
+ addOutputGetAttInUnifiedCompositionData(unifiedCompositionList.get(0)
+ .getNestedTemplateConsolidationData(), "output_attr_2", "accessIPv6");
+ unifiedCompositionService.updNestedCompositionOutputParamGetAttrInConnectivity
+ (inputServiceTemplates.get(mainSTName), unifiedCompositionList, context);
+ checkSTResults(expectedOutserviceTemplates, nestedFileName,
+ context.getTranslatedServiceTemplates().get(nestedFileName),
+ context.getTranslatedServiceTemplates()
+ .get(Constants.GLOBAL_SUBSTITUTION_TYPES_TEMPLATE_NAME), context
+ .getTranslatedServiceTemplates().get(mainSTName));
+ }
+
+ private List<UnifiedCompositionData> createUnifiedCompositionListOnlyNested(
+ String nestedNodeTemplateId) {
+ List<UnifiedCompositionData> unifiedCompositionDataList = new ArrayList<>();
+
+ NestedTemplateConsolidationData nestedTemplateConsolidationData =
+ new NestedTemplateConsolidationData();
+ nestedTemplateConsolidationData.setNodeTemplateId(nestedNodeTemplateId);
+ UnifiedCompositionData unifiedCompositionData = new UnifiedCompositionData();
+ unifiedCompositionData.setNestedTemplateConsolidationData(nestedTemplateConsolidationData);
+ unifiedCompositionDataList.add(unifiedCompositionData);
+
+
+// for (NestedTemplateConsolidationData nested : nestedConsolidationDatas) {
+// UnifiedCompositionData unifiedCompositionData = new UnifiedCompositionData();
+// unifiedCompositionData.setNestedTemplateConsolidationData(nested);
+// unifiedCompositionDataList.add(unifiedCompositionData);
+// }
+
+ return unifiedCompositionDataList;
+ }
+
+ private void setUnifiedCompositionData(List<String> nodeTemplateIds) {
+ UnifiedSubstitutionData unifiedSubstitutionData =
+ context.getUnifiedSubstitutionData().get(mainSTName) == null ? new UnifiedSubstitutionData()
+ : context.getUnifiedSubstitutionData().get(mainSTName);
+ Map<String, String> substitutionAbstractNodeIds = new HashMap<>();
+ for (String id : nodeTemplateIds) {
+ substitutionAbstractNodeIds.put(id, "FSB2");
+ }
+
+ substitutionAbstractNodeIds.put("", "FSB1");
+
+ unifiedSubstitutionData.setNodesRelatedAbstractNode(substitutionAbstractNodeIds);
+ }
+
+ private void checkSTResults(
+ Map<String, ServiceTemplate> expectedOutserviceTemplates,
+ ServiceTemplate substitutionServiceTemplate,
+ ServiceTemplate gloablSubstitutionServiceTemplate, ServiceTemplate mainServiceTemplate) {
+ YamlUtil yamlUtil = new YamlUtil();
+ if (Objects.nonNull(substitutionServiceTemplate)) {
+ assertEquals("difference substitution service template: ",
+ yamlUtil.objectToYaml(expectedOutserviceTemplates.get(substitutionST)),
+ yamlUtil.objectToYaml(substitutionServiceTemplate));
+ }
+ if (Objects.nonNull(gloablSubstitutionServiceTemplate)) {
+ assertEquals("difference global substitution service template: ",
+ yamlUtil.objectToYaml(expectedOutserviceTemplates.get(globalSubstitutionST)),
+ yamlUtil.objectToYaml(gloablSubstitutionServiceTemplate));
+ }
+ if (Objects.nonNull(mainServiceTemplate)) {
+ assertEquals("difference main service template: ",
+ yamlUtil.objectToYaml(expectedOutserviceTemplates.get(mainSTName)),
+ yamlUtil.objectToYaml(mainServiceTemplate));
+ }
+ }
+
+ private void checkSTResults(
+ Map<String, ServiceTemplate> expectedOutserviceTemplates,
+ String nestedSTFileName, ServiceTemplate nestedServiceTemplate,
+ ServiceTemplate gloablSubstitutionServiceTemplate, ServiceTemplate mainServiceTemplate) {
+ YamlUtil yamlUtil = new YamlUtil();
+
+ if (Objects.nonNull(nestedServiceTemplate)) {
+ assertEquals("difference nested service template: ",
+ yamlUtil.objectToYaml(expectedOutserviceTemplates.get(nestedSTFileName)),
+ yamlUtil.objectToYaml(nestedServiceTemplate));
+ }
+ checkSTResults(expectedOutserviceTemplates, null, gloablSubstitutionServiceTemplate,
+ mainServiceTemplate);
+ }
+
+
+ private void loadInputAndOutputData() throws IOException {
+ inputServiceTemplates = new HashMap<>();
+ TestUtils.loadServiceTemplates(inputServiceTemplatesPath, new ToscaExtensionYamlUtil(),
+ inputServiceTemplates);
+ expectedOutserviceTemplates = new HashMap<>();
+ TestUtils.loadServiceTemplates(outputServiceTemplatesPath, new ToscaExtensionYamlUtil(),
+ expectedOutserviceTemplates);
+ }
+
+
+ private void addGetAttInUnifiedCompositionData(EntityConsolidationData entityConsolidationData,
+ String propertyName, String attributeName,
+ String nodeTemplateId) {
+ GetAttrFuncData getAttrFuncData = new GetAttrFuncData();
+ getAttrFuncData.setAttributeName(attributeName);
+ getAttrFuncData.setFieldName(propertyName);
+ entityConsolidationData.addNodesGetAttrIn(nodeTemplateId, getAttrFuncData);
+ }
+
+ private void addOutputGetAttInUnifiedCompositionData(
+ EntityConsolidationData entityConsolidationData,
+ String outParamName, String attributeName) {
+ GetAttrFuncData getAttrFuncData = new GetAttrFuncData();
+ getAttrFuncData.setAttributeName(attributeName);
+ getAttrFuncData.setFieldName(outParamName);
+ entityConsolidationData.addOutputParamGetAttrIn(getAttrFuncData);
+ }
+
+ private ConsolidationData createConsolidationData(List<String> computeNodeIds,
+ List<Pair<String, String>> portTypeToIdList) {
+
+ ConsolidationData consolidationData = new ConsolidationData();
+ String computeNodeTypeName = "org.openecomp.resource.vfc.nodes.heat.FSB2";
+
+ TestUtils
+ .initComputeNodeTypeInConsolidationData(mainSTName, computeNodeTypeName, consolidationData);
+ TestUtils.initPortConsolidationData(mainSTName, consolidationData);
+
+ for (String computeId : computeNodeIds) {
+ ComputeTemplateConsolidationData computeTemplateConsolidationData =
+ new ComputeTemplateConsolidationData();
+ TestUtils.updatePortsInComputeTemplateConsolidationData(portTypeToIdList,
+ computeTemplateConsolidationData);
+ consolidationData.getComputeConsolidationData().getFileComputeConsolidationData(mainSTName)
+ .getTypeComputeConsolidationData(computeNodeTypeName)
+ .setComputeTemplateConsolidationData(computeId,
+ computeTemplateConsolidationData);
+ }
+
+ for (Pair<String, String> portTypeToId : portTypeToIdList) {
+ consolidationData.getPortConsolidationData().getFilePortConsolidationData(mainSTName)
+ .setPortTemplateConsolidationData(portTypeToId.getRight(),
+ new PortTemplateConsolidationData());
+ }
+
+ return consolidationData;
+ }
+
+ private UnifiedCompositionData createCompositionData(String computeNodeTemplateId,
+ List<Pair<String, String>> portTypeToIdList) {
+
+ UnifiedCompositionData unifiedCompositionData = new UnifiedCompositionData();
+ NodeTemplate computeNodeTemplate =
+ DataModelUtil.getNodeTemplate(inputServiceTemplates.get(mainSTName), computeNodeTemplateId);
+ Optional<List<RequirementAssignmentData>> requirementAssignmentDataList =
+ TestUtils.getRequirementAssignmentDataList(computeNodeTemplate, "local_storage");
+ List<RequirementAssignmentData> requirementAssignmentList =
+ (requirementAssignmentDataList.isPresent()) ? requirementAssignmentDataList.get() : null;
+ Map<String, List<RequirementAssignmentData>> volume = getVolume(requirementAssignmentList);
+
+ unifiedCompositionData.setComputeTemplateConsolidationData(
+ TestUtils.createComputeTemplateConsolidationData(computeNodeTemplateId, portTypeToIdList,
+ volume));
+ for (Pair<String, String> port : portTypeToIdList) {
+ NodeTemplate portNodeTemplate =
+ DataModelUtil.getNodeTemplate(inputServiceTemplates.get(mainSTName), port.getRight());
+
+ Map<String, List<RequirementAssignmentData>> nodeConnectedOut =
+ TestUtils.getNodeConnectedOutList(portNodeTemplate, "link");
+ PortTemplateConsolidationData portTemplateConsolidationData =
+ TestUtils.createPortTemplateConsolidationData(port.getRight());
+ portTemplateConsolidationData.setNodesConnectedOut(nodeConnectedOut);
+ unifiedCompositionData.addPortTemplateConsolidationData(portTemplateConsolidationData);
+ }
+ return unifiedCompositionData;
+ }
+
+ private List<UnifiedCompositionData> createAbstractSubstituteCompositionDataComputeAndPort() {
+ List<UnifiedCompositionData> unifiedCompositionDataList = new ArrayList<>();
+ UnifiedCompositionData data1 = createComputeUnifiedCompositionData("FSB1_template");
+ UnifiedCompositionData data2 = createComputeUnifiedCompositionData("FSB2_template");
+
+ List<Pair<String, String>> portTypeToIdList = new ArrayList<>();
+ ImmutablePair<String, String> portTypePair1 = new ImmutablePair<>("FSB1_Internal",
+ "FSB1_Internal1");
+ ImmutablePair<String, String> portTypePair2 = new ImmutablePair<>("FSB2_Internal",
+ "FSB2_Internal1");
+ portTypeToIdList.add(portTypePair1);
+ portTypeToIdList.add(portTypePair2);
+ addPortDataToCompositionData(portTypeToIdList, data1);
+ portTypeToIdList.remove(portTypePair1);
+ portTypeToIdList.remove(portTypePair2);
+ portTypeToIdList.add(new ImmutablePair<>("FSB1_Internal", "FSB1_Internal2"));
+ portTypeToIdList.add(new ImmutablePair<>("FSB2_Internal", "FSB2_Internal2"));
+ addPortDataToCompositionData(portTypeToIdList, data2);
+
+ unifiedCompositionDataList.add(data1);
+ unifiedCompositionDataList.add(data2);
+ return unifiedCompositionDataList;
+ }
+
+
+ private UnifiedCompositionData createComputeUnifiedCompositionData(String computeNodeTemplateId) {
+ NodeTemplate computeNodeTemplate =
+ DataModelUtil.getNodeTemplate(inputServiceTemplates.get(mainSTName), computeNodeTemplateId);
+ Optional<List<RequirementAssignmentData>> requirementAssignmentDataList =
+ TestUtils.getRequirementAssignmentDataList(computeNodeTemplate, "local_storage");
+ Map<String, List<RequirementAssignmentData>> volume = null;
+ if (requirementAssignmentDataList.isPresent()) {
+ volume = getVolume(requirementAssignmentDataList.get());
+ }
+ UnifiedCompositionData data = new UnifiedCompositionData();
+ Map<String, List<RequirementAssignmentData>> computeNodeConnectedOut =
+ TestUtils.getNodeConnectedOutList(computeNodeTemplate, "dependency");
+ Map<String, List<RequirementAssignmentData>> computeNodeConnectedIn =
+ TestUtils
+ .getNodeConnectedInList(computeNodeTemplateId, inputServiceTemplates.get(mainSTName),
+ "dependency");
+ ComputeTemplateConsolidationData computeTemplateConsolidationData = TestUtils
+ .createComputeTemplateConsolidationData(computeNodeTemplateId, null, volume);
+ List<String> computeNodeGroups =
+ TestUtils.getGroupsForNode(inputServiceTemplates.get(mainSTName),
+ computeNodeTemplateId);
+ if (!computeNodeGroups.isEmpty()) {
+ computeTemplateConsolidationData.setGroupIds(computeNodeGroups);
+ }
+ computeTemplateConsolidationData.setNodesConnectedOut(computeNodeConnectedOut);
+ computeTemplateConsolidationData.setNodesConnectedIn(computeNodeConnectedIn);
+ data.setComputeTemplateConsolidationData(computeTemplateConsolidationData);
+ return data;
+ }
+
+ private void addPortDataToCompositionData(List<Pair<String, String>> portTypeToIdList,
+ UnifiedCompositionData data) {
+ ComputeTemplateConsolidationData computeTemplateConsolidationData = data
+ .getComputeTemplateConsolidationData();
+
+ for (Pair<String, String> port : portTypeToIdList) {
+ NodeTemplate portNodeTemplate =
+ DataModelUtil.getNodeTemplate(inputServiceTemplates.get(mainSTName), port.getRight());
+
+ Optional<List<RequirementAssignmentData>> bindingReqList =
+ TestUtils.getRequirementAssignmentDataList(portNodeTemplate, "binding");
+
+ if (bindingReqList.isPresent()) {
+ for (RequirementAssignmentData reqData : bindingReqList.get()) {
+ String nodeId = reqData.getRequirementAssignment().getNode();
+ if (nodeId.equals(computeTemplateConsolidationData.getNodeTemplateId())) {
+ computeTemplateConsolidationData.addPort(port.getLeft(), port.getRight());
+ }
+ }
+ }
+ Map<String, List<RequirementAssignmentData>> portNodeConnectedOut =
+ TestUtils.getNodeConnectedOutList(portNodeTemplate, "link");
+ PortTemplateConsolidationData portTemplateConsolidationData = TestUtils
+ .createPortTemplateConsolidationData(port.getRight());
+ portTemplateConsolidationData.setNodesConnectedOut(portNodeConnectedOut);
+
+ //Add node connected in info to test data
+ Map<String, List<RequirementAssignmentData>> portNodeConnectedIn =
+ TestUtils.getNodeConnectedInList(port.getRight(), inputServiceTemplates.get(mainSTName),
+ "port");
+ portTemplateConsolidationData.setNodesConnectedIn(portNodeConnectedIn);
+
+ //Add group infromation for ports
+ List<String> portGroups =
+ TestUtils.getGroupsForNode(inputServiceTemplates.get(mainSTName), port.getRight());
+ portTemplateConsolidationData.setGroupIds(portGroups);
+ data.addPortTemplateConsolidationData(portTemplateConsolidationData);
+
+ }
+ addGetAttrForCompute(data);
+ addGetAttrForPort(data);
+ }
+
+ private Map<String, List<RequirementAssignmentData>> getVolume(
+ List<RequirementAssignmentData> requirementAssignmentList) {
+ Map<String, List<RequirementAssignmentData>> volume = new HashMap<>();
+ for (RequirementAssignmentData requirementAssignmentData : requirementAssignmentList) {
+ String volumeNodeTemplateId = requirementAssignmentData.getRequirementAssignment().getNode();
+ volume.computeIfAbsent(volumeNodeTemplateId, k -> new ArrayList<>());
+ volume.get(volumeNodeTemplateId).add(requirementAssignmentData);
+ }
+ return volume;
+ }
+
+ private void addGetAttrForPort(UnifiedCompositionData unifiedCompositionData) {
+ for (PortTemplateConsolidationData portTemplateConsolidationData : unifiedCompositionData
+ .getPortTemplateConsolidationDataList()) {
+ if (portTemplateConsolidationData.getNodeTemplateId().equals("FSB1_Internal1")) {
+ addGetAttInUnifiedCompositionData(portTemplateConsolidationData, "network_name",
+ "network_id", "jsa_net1");
+ addGetAttInUnifiedCompositionData(portTemplateConsolidationData, "size",
+ "addresses", "cmaui_volume1");
+ } else if (portTemplateConsolidationData.getNodeTemplateId().equals("FSB2_Internal2")) {
+ addGetAttInUnifiedCompositionData(portTemplateConsolidationData, "tenant_id",
+ "network_id", "jsa_net1");
+ addGetAttInUnifiedCompositionData(portTemplateConsolidationData, "qos_policy",
+ "network_id", "jsa_net1");
+ addGetAttInUnifiedCompositionData(portTemplateConsolidationData, "volume_type",
+ "index", "cmaui_volume1");
+ } else if (portTemplateConsolidationData.getNodeTemplateId().equals("FSB1_OAM")) {
+ addGetAttInUnifiedCompositionData(portTemplateConsolidationData, "size",
+ "oam_index", "cmaui_volume1");
+ }
+ }
+ }
+
+ private void addGetAttrForPort2(UnifiedCompositionData unifiedCompositionData) {
+ for (PortTemplateConsolidationData portTemplateConsolidationData : unifiedCompositionData
+ .getPortTemplateConsolidationDataList()) {
+ if (portTemplateConsolidationData.getNodeTemplateId().equals("FSB2_Internal1")) {
+ addGetAttInUnifiedCompositionData(portTemplateConsolidationData, "volume_type",
+ "index", "cmaui_volume3");
+ } else if (portTemplateConsolidationData.getNodeTemplateId().equals("FSB1_Internal2")) {
+ addGetAttInUnifiedCompositionData(portTemplateConsolidationData, "size",
+ "addresses", "cmaui_volume3");
+ addGetAttInUnifiedCompositionData(portTemplateConsolidationData, "size",
+ "oam_index", "cmaui_volume1");
+ }
+ }
+ }
+
+ private void addGetAttrForPortInnerUC(UnifiedCompositionData unifiedCompositionData) {
+ for (PortTemplateConsolidationData portTemplateConsolidationData : unifiedCompositionData
+ .getPortTemplateConsolidationDataList()) {
+ if (portTemplateConsolidationData.getNodeTemplateId().equals("FSB1_Internal1")) {
+ addGetAttInUnifiedCompositionData(portTemplateConsolidationData, "availability_zone",
+ "myAttr", "FSB1_template");
+ addGetAttInUnifiedCompositionData(portTemplateConsolidationData, "metadata",
+ "myAttr", "FSB1_template");
+ addGetAttInUnifiedCompositionData(portTemplateConsolidationData, "name",
+ "myAttr", "FSB1_template");
+ addGetAttInUnifiedCompositionData(portTemplateConsolidationData, "availability_zone",
+ "index", "FSB1_template");
+ }
+ }
+ }
+
+ private void addGetAttrForCompute(UnifiedCompositionData unifiedCompositionData) {
+ addGetAttInUnifiedCompositionData(unifiedCompositionData.getComputeTemplateConsolidationData(),
+ "dhcp_agent_ids", "addresses", "jsa_net1");
+ addGetAttInUnifiedCompositionData(unifiedCompositionData.getComputeTemplateConsolidationData(),
+ "volume_type", "addresses", "cmaui_volume1");
+ addGetAttInUnifiedCompositionData(unifiedCompositionData.getComputeTemplateConsolidationData(),
+ "size", "accessIPv6", "cmaui_volume2");
+ }
+
+ private void addGetAttrForCompute2(UnifiedCompositionData unifiedCompositionData) {
+ addGetAttInUnifiedCompositionData(unifiedCompositionData.getComputeTemplateConsolidationData(),
+ "volume_type", "addresses", "cmaui_volume3");
+ addGetAttInUnifiedCompositionData(unifiedCompositionData.getComputeTemplateConsolidationData(),
+ "size", "oam_index", "cmaui_volume3");
+ }
+
+ private void addOutputGetAttrInForComputeNoConsolidation(
+ UnifiedCompositionData unifiedCompositionData) {
+ addOutputGetAttInUnifiedCompositionData(unifiedCompositionData
+ .getComputeTemplateConsolidationData(), "simpleOutput1", "accessIPv4");
+ addOutputGetAttInUnifiedCompositionData(unifiedCompositionData
+ .getComputeTemplateConsolidationData(), "simpleOutput2", "addresses");
+ addOutputGetAttInUnifiedCompositionData(unifiedCompositionData
+ .getComputeTemplateConsolidationData(), "complexOutput1", "addresses");
+ addOutputGetAttInUnifiedCompositionData(unifiedCompositionData
+ .getComputeTemplateConsolidationData(), "complexOutput3", "accessIPv6");
+
+ }
+
+ private void addOutputGetAttrInForCompute1WithConsolidation(
+ UnifiedCompositionData unifiedCompositionData) {
+ addOutputGetAttInUnifiedCompositionData(unifiedCompositionData
+ .getComputeTemplateConsolidationData(), "simpleOutput1", "accessIPv4");
+ addOutputGetAttInUnifiedCompositionData(unifiedCompositionData
+ .getComputeTemplateConsolidationData(), "complexOutput1", "addresses");
+
+ }
+
+ private void addOutputGetAttrInForCompute2WithConsolidation(
+ UnifiedCompositionData unifiedCompositionData) {
+ addOutputGetAttInUnifiedCompositionData(unifiedCompositionData
+ .getComputeTemplateConsolidationData(), "simpleOutput2", "addresses");
+ }
+
+ private void addOutputGetAttrInForPortNoConsolidation(
+ UnifiedCompositionData unifiedCompositionData) {
+ for (PortTemplateConsolidationData portTemplateConsolidationData : unifiedCompositionData
+ .getPortTemplateConsolidationDataList()) {
+ if (portTemplateConsolidationData.getNodeTemplateId().equals("FSB1_Internal1")) {
+ addOutputGetAttInUnifiedCompositionData(portTemplateConsolidationData, "complexOutput2",
+ "addresses");
+ addOutputGetAttInUnifiedCompositionData(portTemplateConsolidationData, "complexOutput3",
+ "addresses");
+ } else if (portTemplateConsolidationData.getNodeTemplateId().equals("FSB2_Internal2")) {
+ addOutputGetAttInUnifiedCompositionData(portTemplateConsolidationData, "complexOutput1",
+ "index");
+ } else if (portTemplateConsolidationData.getNodeTemplateId().equals("FSB1_OAM")) {
+ addOutputGetAttInUnifiedCompositionData(portTemplateConsolidationData, "complexOutput2",
+ "oam_index");
+ }
+ }
+ }
+
+ private void addOutputGetAttrInForPortWithConsolidation1(
+ UnifiedCompositionData unifiedCompositionData) {
+ for (PortTemplateConsolidationData portTemplateConsolidationData : unifiedCompositionData
+ .getPortTemplateConsolidationDataList()) {
+ if (portTemplateConsolidationData.getNodeTemplateId().equals("FSB2_Internal2")) {
+ addOutputGetAttInUnifiedCompositionData(portTemplateConsolidationData, "complexOutput1",
+ "index");
+ } else if (portTemplateConsolidationData.getNodeTemplateId().equals("FSB1_Internal1")) {
+ addOutputGetAttInUnifiedCompositionData(portTemplateConsolidationData, "complexOutput3",
+ "accessIPv6");
+ }
+ }
+ }
+
+ private void addOutputGetAttrInForPortWithConsolidation2(
+ UnifiedCompositionData unifiedCompositionData) {
+ for (PortTemplateConsolidationData portTemplateConsolidationData : unifiedCompositionData
+ .getPortTemplateConsolidationDataList()) {
+ if (portTemplateConsolidationData.getNodeTemplateId().equals("FSB2_Internal1")) {
+ addOutputGetAttInUnifiedCompositionData(portTemplateConsolidationData, "complexOutput2",
+ "oam_index");
+ } else if (portTemplateConsolidationData.getNodeTemplateId().equals("FSB1_Internal2")) {
+ addOutputGetAttInUnifiedCompositionData(portTemplateConsolidationData, "complexOutput2",
+ "addresses");
+ }
+ }
+ }
+
+ private NodeTemplate getMockNode(String path) throws IOException {
+ URL resource = this.getClass().getResource(path);
+ YamlUtil yamlUtil = new YamlUtil();
+ return yamlUtil.yamlToObject(resource.openStream(), NodeTemplate.class);
+ }
+
+} \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/buildconsolidationdata/BuildConsolidationDataTest.java b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/buildconsolidationdata/BuildConsolidationDataTest.java
new file mode 100644
index 0000000000..47c99be530
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/buildconsolidationdata/BuildConsolidationDataTest.java
@@ -0,0 +1,24 @@
+package org.openecomp.sdc.translator.services.heattotosca.buildconsolidationdata;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.openecomp.sdc.translator.services.heattotosca.impl.resourcetranslation.BaseResourceTranslationTest;
+
+import java.io.IOException;
+
+public class BuildConsolidationDataTest extends BaseResourceTranslationTest {
+
+ @Override
+ @Before
+ public void setUp() throws IOException {
+ // do not delete this function. it prevents the superclass setup from running
+ }
+
+ @Test
+ public void testNovaServerGroupConsolidationData() throws Exception {
+ inputFilesPath = "/mock/services/heattotosca/novaservergroups/staticPolicy/inputfiles";
+ outputFilesPath = "/mock/services/heattotosca/novaservergroups/staticPolicy/expectedoutputfiles";
+ initTranslatorAndTranslate();
+ testTranslation();
+ }
+}
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
new file mode 100644
index 0000000000..0f9b4deb53
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/buildconsolidationdata/ConsolidationDataTestUtil.java
@@ -0,0 +1,1095 @@
+package org.openecomp.sdc.translator.services.heattotosca.buildconsolidationdata;
+
+import static org.openecomp.sdc.translator.services.heattotosca.buildconsolidationdata.TestConstants.MAIN_SERVICE_TEMPLATE;
+import static org.openecomp.sdc.translator.services.heattotosca.buildconsolidationdata.TestConstants.TEST_DEPENDS_ON_INVALID_DEPENDENCY_CANDIDATE;
+import static org.openecomp.sdc.translator.services.heattotosca.buildconsolidationdata.TestConstants.TEST_DEPENDS_ON_MULTIPLE_COMPUTE;
+import static org.openecomp.sdc.translator.services.heattotosca.buildconsolidationdata.TestConstants.TEST_DEPENDS_ON_NODES_CONNECTED_IN;
+import static org.openecomp.sdc.translator.services.heattotosca.buildconsolidationdata.TestConstants.TEST_DEPENDS_ON_NODES_CONNECTED_IN_AND_OUT;
+import static org.openecomp.sdc.translator.services.heattotosca.buildconsolidationdata.TestConstants.TEST_DEPENDS_ON_NODES_CONNECTED_OUT;
+import static org.openecomp.sdc.translator.services.heattotosca.buildconsolidationdata.TestConstants.TEST_DEPENDS_ON_NO_DEPENDENCY;
+import static org.openecomp.sdc.translator.services.heattotosca.buildconsolidationdata.TestConstants.TEST_MULTIPLE_MULTI_LEVEL_NESTED_RESOURCE;
+import static org.openecomp.sdc.translator.services.heattotosca.buildconsolidationdata.TestConstants.TEST_MULTIPLE_NESTED_RESOURCE;
+import static org.openecomp.sdc.translator.services.heattotosca.buildconsolidationdata.TestConstants.TEST_SECURITY_RULE_PORT_MULTI_LEVEL_NESTED_CONNECTION;
+import static org.openecomp.sdc.translator.services.heattotosca.buildconsolidationdata.TestConstants.TEST_SECURITY_RULE_PORT_MULTI_LEVEL_NESTED_SHARED_PORT;
+import static org.openecomp.sdc.translator.services.heattotosca.buildconsolidationdata.TestConstants.TEST_SECURITY_RULE_PORT_NESTED_CONNECTION;
+import static org.openecomp.sdc.translator.services.heattotosca.buildconsolidationdata.TestConstants.TEST_SINGLE_NESTED_RESOURCE;
+
+import com.fasterxml.jackson.databind.ObjectMapper;
+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.openecomp.sdc.tosca.datatypes.ToscaRelationshipType;
+import org.openecomp.sdc.tosca.datatypes.model.GroupDefinition;
+import org.openecomp.sdc.tosca.datatypes.model.NodeTemplate;
+import org.openecomp.sdc.tosca.datatypes.model.NodeType;
+import org.openecomp.sdc.tosca.datatypes.model.RequirementAssignment;
+import org.openecomp.sdc.tosca.datatypes.model.ServiceTemplate;
+import org.openecomp.sdc.tosca.services.DataModelUtil;
+import org.openecomp.sdc.tosca.services.ToscaConstants;
+import org.openecomp.sdc.tosca.services.impl.ToscaAnalyzerServiceImpl;
+import org.openecomp.sdc.translator.datatypes.heattotosca.TranslationContext;
+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.GetAttrFuncData;
+import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolidation.NestedTemplateConsolidationData;
+import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolidation.PortTemplateConsolidationData;
+import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolidation.RequirementAssignmentData;
+import org.openecomp.sdc.translator.services.heattotosca.ConsolidationDataUtil;
+import org.openecomp.sdc.translator.services.heattotosca.HeatToToscaUtil;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.LinkedHashMap;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Map;
+import java.util.Optional;
+import java.util.Set;
+
+public class ConsolidationDataTestUtil {
+
+ public static void validateVolumeInConsolidationData(String computeNodeTemplateId,
+ ComputeTemplateConsolidationData
+ computeTemplateConsolidationData,
+ ServiceTemplate expectedServiceTemplate,
+ String testName) {
+ Assert.assertNotNull(computeTemplateConsolidationData);
+ //Get the volume information from consolidation data
+ Map<String, List<RequirementAssignmentData>> volumeConsolidationData =
+ computeTemplateConsolidationData.getVolumes();
+
+ if(testName.equals("Negative")) {
+ Assert.assertNull(volumeConsolidationData);
+ return;
+ }
+
+ //Get the volume requirement information from the output translated template
+ NodeTemplate computeNode = DataModelUtil.getNodeTemplate(expectedServiceTemplate,
+ computeNodeTemplateId);
+
+ if(!isComputeNodeType(expectedServiceTemplate, computeNode.getType()) ) {
+ //According to toplogy only Compute->volume relationship is valid
+ Assert.assertNull(volumeConsolidationData);
+ return;
+ }
+
+ Assert.assertNotNull(computeNode);
+ List<String> computeVolumeRequirementsNodes = new ArrayList<>();
+ List<Map<String, RequirementAssignment>> requirementList = computeNode.getRequirements();
+ if(requirementList != null){
+ for(Map<String, RequirementAssignment> req : requirementList){
+ Set<String> reqKeySet = req.keySet();
+ for(String reqKey : reqKeySet){
+ //populating the "node" property of all the requirements "local_storage" related to volume
+ if(reqKey.equals(ToscaConstants.LOCAL_STORAGE_REQUIREMENT_ID)){
+ RequirementAssignment requirementAssignment = new ObjectMapper().convertValue(req.get
+ (reqKey), RequirementAssignment.class);
+ computeVolumeRequirementsNodes.add(requirementAssignment.getNode());
+ }
+ }
+ }
+ isVolumeComputeRequirement(computeVolumeRequirementsNodes, volumeConsolidationData);
+ }
+ }
+
+ private static void isVolumeComputeRequirement(List<String> computeVolumeRequirementsNodes,
+ Map<String, List<RequirementAssignmentData>>
+ volumeConsolidationData) {
+ Assert.assertEquals(computeVolumeRequirementsNodes.size(), volumeConsolidationData.size());
+ for(String volumeNodeTemplateId : computeVolumeRequirementsNodes) {
+ Assert.assertNotNull(volumeConsolidationData.containsKey(volumeNodeTemplateId));
+ List<RequirementAssignmentData> requirementAssignmentDataList = volumeConsolidationData.get
+ (volumeNodeTemplateId);
+ for(RequirementAssignmentData requirementAssignmentData : requirementAssignmentDataList){
+ Assert.assertTrue(requirementAssignmentData.getRequirementId().equals(ToscaConstants
+ .LOCAL_STORAGE_REQUIREMENT_ID));
+ }
+ }
+ }
+
+
+ public static void validatePortsInConsolidationData(String computeNodeTemplateId,
+ ComputeTemplateConsolidationData
+ computeTemplateConsolidationData,
+ ServiceTemplate outputServiceTemplate){
+ Map<String,List<String>> consolidatedMap = computeTemplateConsolidationData.getPorts();
+ Map<String,List<String>> expectedMap = getPortsInConsolidationData(outputServiceTemplate).get
+ (computeNodeTemplateId);
+ if(expectedMap == null && consolidatedMap == null){
+ return;
+ }
+ for(String consolidatedKey : consolidatedMap.keySet()){
+ List<String> consolidatedList = consolidatedMap.get(consolidatedKey);
+ List<String> expectedList = expectedMap.get(consolidatedKey);
+ if(expectedList == null ){
+ Assert.fail();
+ } if(!CollectionUtils.isEqualCollection(consolidatedList,expectedList)){
+ Assert.fail();
+ }
+ }
+ }
+
+ public static void validateDependsOnInConsolidationData(String computeNodeTemplateId,
+ ComputeTemplateConsolidationData computeTemplateConsolidationData,
+ ServiceTemplate outputServiceTemplate,
+ String testName) {
+ Map<String, NodeTemplate> outputNodeTemplates = outputServiceTemplate.getTopology_template()
+ .getNode_templates();
+ Map<String, List<RequirementAssignmentData>> nodesConnectedIn =
+ computeTemplateConsolidationData.getNodesConnectedIn();
+ Map<String, List<RequirementAssignmentData>> 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<String, List<RequirementAssignment>> outputDependsOnNodeRequirementMap = new HashMap<>();
+ for(Map.Entry<String, NodeTemplate> entry : outputNodeTemplates.entrySet()) {
+ NodeTemplate nodeTemplate = entry.getValue();
+ List<Map<String, RequirementAssignment>> nodeRequirements = nodeTemplate.getRequirements();
+ if(nodeRequirements != null){
+ for(Map<String, RequirementAssignment> req : nodeRequirements) {
+ Set<String> 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));
+ }
+ }
+ }
+ }
+
+ 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_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);
+ }
+
+
+ }
+
+ private static void validateDependsOnNodesConnectedIn(String computeNodeTemplateId,
+ Map<String,
+ List<RequirementAssignmentData>>
+ nodesConnectedIn,
+ Map<String, List<RequirementAssignment>>
+ outputDependsOnNodeRequirementMap,
+ ServiceTemplate outputServiceTemplate) {
+ ToscaAnalyzerServiceImpl analyzerService = new ToscaAnalyzerServiceImpl();
+ for(Map.Entry<String, List<RequirementAssignment>> entry : outputDependsOnNodeRequirementMap
+ .entrySet()) {
+ String sourceNodeTemplateId = entry.getKey();
+ Optional<NodeTemplate> sourceNodeTemplate = analyzerService.getNodeTemplateById
+ (outputServiceTemplate, sourceNodeTemplateId);
+ String sourceNodeType = sourceNodeTemplate.get().getType();
+ for(Object obj : entry.getValue()){
+ RequirementAssignment req = new ObjectMapper().convertValue(obj, RequirementAssignment
+ .class);
+ String targetNodeTemplateId = req.getNode();
+ Optional<NodeTemplate> targetNodeTemplate = analyzerService.getNodeTemplateById
+ (outputServiceTemplate, targetNodeTemplateId);
+
+ String targetNodeType = targetNodeTemplate.get().getType();
+ boolean isValidTargetForConnectedIn = false;
+ if(isComputeNodeType(outputServiceTemplate, targetNodeType)) {
+ isValidTargetForConnectedIn = true;
+ } else if(isPortNodeType(outputServiceTemplate, targetNodeType)) {
+ isValidTargetForConnectedIn = true;
+ }
+
+ if(isValidTargetForConnectedIn) {
+ //Should be present if target node is compute or port
+ if(computeNodeTemplateId.equals(entry.getKey()))
+ Assert.assertTrue(nodesConnectedIn.containsKey(entry.getKey()));
+ }
+
+ 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(nodesConnectedIn.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(nodesConnectedIn.containsKey(targetNodeTemplateId));
+ }
+ }
+ }
+ }
+
+ private static boolean isComputeNodeType(ServiceTemplate serviceTemplate,
+ String nodeType) {
+
+ if(nodeType.equals(ToscaNodeType.NOVA_SERVER) ||
+ nodeType.equals(ToscaNodeType.NATIVE_COMPUTE))
+ return true;
+
+ Map<String, NodeType> nodeTypes = serviceTemplate.getNode_types();
+ if(nodeTypes.containsKey(nodeType)) {
+ NodeType nodeTypeInfo = nodeTypes.get(nodeType);
+ if(nodeTypeInfo.getDerived_from().equals(ToscaNodeType.NOVA_SERVER))
+ return true;
+ }
+ return false;
+ }
+
+ private static boolean isPortNodeType(ServiceTemplate serviceTemplate,
+ String nodeType) {
+ if(nodeType.equals(ToscaNodeType.NEUTRON_PORT) ||
+ nodeType.equals(ToscaNodeType.CONTRAILV2_VIRTUAL_MACHINE_INTERFACE))
+ return true;
+
+ Map<String, NodeType> nodeTypes = serviceTemplate.getNode_types();
+ if(nodeTypes.containsKey(nodeType)) {
+ NodeType nodeTypeInfo = nodeTypes.get(nodeType);
+ if(nodeTypeInfo.getDerived_from().equals(ToscaNodeType.NEUTRON_PORT) ||
+ nodeTypeInfo.getDerived_from().equals(ToscaNodeType.CONTRAILV2_VIRTUAL_MACHINE_INTERFACE))
+ return true;
+ }
+ return false;
+ }
+
+ private static void validateDependsOnNodesConnectedOut(String computeNodeTemplateId,
+ Map<String,
+ List<RequirementAssignmentData>>
+ nodesConnectedOut,
+ Map<String, List<RequirementAssignment>>
+ outputDependsOnNodeRequirementMap,
+ ServiceTemplate outputServiceTemplate) {
+ ToscaAnalyzerServiceImpl analyzerService = new ToscaAnalyzerServiceImpl();
+ //Iterating the map <nodeTemplateId, all the requirements of that node>
+ for(Map.Entry<String, List<RequirementAssignment>> entry : outputDependsOnNodeRequirementMap
+ .entrySet()) {
+ String sourceNodeTemplateId = entry.getKey();
+ Optional<NodeTemplate> 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<NodeTemplate> 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));
+ }
+
+ 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<String,Map<String,List<String>>> getPortsInConsolidationData(ServiceTemplate
+ output){
+ Map<String,Map<String,List<String>>> portMap = new LinkedHashMap<>();
+ Map<String, NodeTemplate> nodeTempMap = output.getTopology_template().getNode_templates();
+ for(String nodeName : nodeTempMap.keySet()){
+ NodeTemplate node = nodeTempMap.get(nodeName);
+ if(ToscaNodeType.NEUTRON_PORT.equals(node.getType()) || ToscaNodeType
+ .CONTRAILV2_VIRTUAL_MACHINE_INTERFACE.equals(node.getType())){
+ List<Map<String, RequirementAssignment>> reqAssignList = node.getRequirements();
+ if(reqAssignList != null) {
+ for (Map<String, RequirementAssignment> reqAssignMap : reqAssignList) {
+ //RequirementAssignment req = reqAssignMap.get("binding");
+ RequirementAssignment req = new ObjectMapper().convertValue(reqAssignMap.get("binding"),
+ RequirementAssignment.class);
+
+ if (req != null) {
+ String portNode = req.getNode();
+ if (!portMap.containsKey(portNode)) {
+ portMap.put(portNode, new LinkedHashMap<>());
+ }
+ Map<String, List<String>> portTypMaps = portMap.get(portNode);
+ String id = ConsolidationDataUtil.getPortType(nodeName);
+ if (!portTypMaps.containsKey(id)) {
+ portTypMaps.put(id, new ArrayList<>());
+ }
+ List<String> portIds = portTypMaps.get(id);
+ portIds.add(nodeName);
+ }
+ }
+ }
+ }
+ }
+ return portMap;
+ }
+
+ public static void validateGroupsInConsolidationData(String computeNodeTemplateId,
+ ComputeTemplateConsolidationData
+ computeTemplateConsolidationData,
+ ServiceTemplate expectedServiceTemplate) {
+ Assert.assertNotNull(computeTemplateConsolidationData);
+ List<String> groupIds = computeTemplateConsolidationData.getGroupIds();
+ if (groupIds != null) {
+ for (String groupId : groupIds) {
+ isComputeGroupMember(expectedServiceTemplate, computeNodeTemplateId, groupId);
+ }
+ }
+ }
+
+ private static void isComputeGroupMember(ServiceTemplate expectedServiceTemplate, String
+ computeNodeTemplateId, String groupId) {
+ //Check if the collected group id is in the member list of the groups
+ GroupDefinition group = expectedServiceTemplate.getTopology_template().getGroups().get(groupId);
+ List<String> groupMembers = group.getMembers();
+ Assert.assertNotNull(groupMembers);
+ Assert.assertTrue(groupMembers.contains(computeNodeTemplateId));
+ }
+
+ public static void validateSubstituteMappingInConsolidationData(ConsolidationData consolidationData,
+ Map<String, ServiceTemplate>
+ expectedServiceTemplateModels ){
+ Map<String,List<String>> consolidatedMap = consolidationData.getSubstituteNodeTemplates();
+ Map<String,List<String>> expectedMap = getSubstituteMapping(expectedServiceTemplateModels);
+ for(String consolidatedKey : consolidatedMap.keySet()){
+ List<String> consolidatedList = consolidatedMap.get(consolidatedKey);
+ List<String> expectedList = expectedMap.get(consolidatedKey);
+ if(expectedList == null ){
+ Assert.fail();
+ } if(!CollectionUtils.isEqualCollection(consolidatedList,expectedList)){
+ Assert.fail();
+ }
+ }
+ }
+
+ private static Map<String,List<String>> getSubstituteMapping(Map<String, ServiceTemplate>
+ expectedServiceTemplateModels ){
+ Map<String,List<String>> 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<String> subNodeTempIdList = map.get(key);
+ if (subNodeTempIdList == null) {
+ subNodeTempIdList = new ArrayList<>();
+ map.put(key, subNodeTempIdList);
+ }
+ subNodeTempIdList.add(key1);
+ }
+ }
+ }
+ }
+ return map;
+ }
+
+ public static void validateComputeConnectivityIn(ComputeTemplateConsolidationData
+ computeTemplateConsolidationData,
+ ServiceTemplate expectedServiceTemplate){
+ Map<String,List<RequirementAssignmentData>> nodesConnectedIn = computeTemplateConsolidationData.
+ getNodesConnectedIn();
+ if(nodesConnectedIn==null){
+ return;
+ }
+ boolean found = false;
+ for(String nodeIdConnTo : nodesConnectedIn.keySet()){
+ List<RequirementAssignmentData> connectToList = nodesConnectedIn.get(nodeIdConnTo);
+ List<Map<String, RequirementAssignment>> requirementsList = expectedServiceTemplate
+ .getTopology_template().getNode_templates().get(nodeIdConnTo).getRequirements();
+ for(RequirementAssignmentData requirementAssignmentData : connectToList) {
+ for (Map<String, RequirementAssignment> 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;
+ }
+ }
+ }
+
+ public static void validateComputeConnectivityOut(String computeNodeTemplateId,
+ ComputeTemplateConsolidationData
+ computeTemplateConsolidationData,
+ ServiceTemplate expectedServiceTemplate){
+ Map<String,List<RequirementAssignmentData>> nodesConnectedOut = computeTemplateConsolidationData.
+ getNodesConnectedOut();
+ if(nodesConnectedOut==null){
+ return;
+ }
+ boolean found = false;
+ for(String nodeIdConnFrom : nodesConnectedOut.keySet()){
+ List<RequirementAssignmentData> connectToList = nodesConnectedOut.get(nodeIdConnFrom);
+ List<Map<String, RequirementAssignment>> requirementsList = expectedServiceTemplate
+ .getTopology_template().getNode_templates().get(computeNodeTemplateId).getRequirements();
+ for(RequirementAssignmentData requirementAssignmentData : connectToList) {
+ for (Map<String, RequirementAssignment> 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;
+ }
+ }
+ }
+
+ public static void validatePortConnectivityIn(PortTemplateConsolidationData
+ portTemplateConsolidationData,
+ ServiceTemplate expectedServiceTemplate){
+ Map<String,List<RequirementAssignmentData>> nodesConnectedIn = portTemplateConsolidationData.
+ getNodesConnectedIn();
+ if(nodesConnectedIn==null){
+ return;
+ }
+ boolean found = false;
+ for(String nodeIdConnTo : nodesConnectedIn.keySet()){
+ List<RequirementAssignmentData> connectToList = nodesConnectedIn.get(nodeIdConnTo);
+ List<Map<String, RequirementAssignment>> requirementsList = expectedServiceTemplate
+ .getTopology_template().getNode_templates().get(nodeIdConnTo).getRequirements();
+ for(RequirementAssignmentData requirementAssignmentData : connectToList) {
+ for (Map<String, RequirementAssignment> 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;
+ }
+ }
+ }
+
+ public static void validatePortConnectivityOut(String portNodeTemplateId,
+ PortTemplateConsolidationData
+ portTemplateConsolidationData,
+ ServiceTemplate expectedServiceTemplate){
+ Map<String, List<RequirementAssignmentData>> nodesConnectedOut =
+ portTemplateConsolidationData.getNodesConnectedOut();
+ if(nodesConnectedOut==null){
+ return;
+ }
+ boolean found = false;
+ for(String nodeIdConnFrom : nodesConnectedOut.keySet()){
+ List<RequirementAssignmentData> connectToList = nodesConnectedOut.get(nodeIdConnFrom);
+ List<Map<String, RequirementAssignment>> requirementsList = expectedServiceTemplate
+ .getTopology_template().getNode_templates().get(portNodeTemplateId).getRequirements();
+ for(RequirementAssignmentData requirementAssignmentData : connectToList) {
+ for (Map<String, RequirementAssignment> 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;
+ }
+ }
+ }
+
+ public static void validateGetAttr(TranslationContext translationContext, Map<String,
+ ServiceTemplate>
+ expectedServiceTemplateModels,String testName){
+ ConsolidationData consolidationData = translationContext.getConsolidationData();
+ Assert.assertNotNull(consolidationData);
+ if(TestConstants.TEST_GET_ATTR_FOR_MORE_THAN_ONE_ATTR_IN_ATTR_LIST.equals(testName)){
+ PortTemplateConsolidationData portTemplateConsolidationData = consolidationData
+ .getPortConsolidationData().getFilePortConsolidationData("MainServiceTemplate.yaml")
+ .getPortTemplateConsolidationData("VMI1");
+ Assert.assertNotNull(portTemplateConsolidationData);
+ Assert.assertEquals(2, portTemplateConsolidationData.getNodesGetAttrIn().size());
+ List<GetAttrFuncData> attrFuncDataList = portTemplateConsolidationData.getNodesGetAttrIn()
+ .get("FSB1");
+ Assert.assertEquals(1,attrFuncDataList.size());
+ Assert.assertEquals("name",attrFuncDataList.get(0).getFieldName());
+ Assert.assertEquals("name",attrFuncDataList.get(0).getAttributeName());
+
+ attrFuncDataList = portTemplateConsolidationData.getNodesGetAttrIn()
+ .get("FSB2");
+ Assert.assertEquals(1,attrFuncDataList.size());
+ Assert.assertEquals("name",attrFuncDataList.get(0).getFieldName());
+ Assert.assertEquals("virtual_machine_interface_allowed_address_pairs",attrFuncDataList.get(0).getAttributeName());
+
+ ComputeTemplateConsolidationData computeTemplateConsolidationDataFSB2 = consolidationData
+ .getComputeConsolidationData()
+ .getFileComputeConsolidationData("MainServiceTemplate.yaml")
+ .getTypeComputeConsolidationData("org.openecomp.resource.vfc.nodes.heat.FSB2")
+ .getComputeTemplateConsolidationData("FSB2");
+ Assert.assertEquals(1,computeTemplateConsolidationDataFSB2.getNodesGetAttrOut().size());
+ List<GetAttrFuncData> attrFuncDataOutList = computeTemplateConsolidationDataFSB2
+ .getNodesGetAttrOut().get("VMI1");
+ Assert.assertEquals(1,attrFuncDataOutList.size());
+ Assert.assertEquals("name",attrFuncDataOutList.get(0).getFieldName());
+ Assert.assertEquals("virtual_machine_interface_allowed_address_pairs",attrFuncDataOutList
+ .get(0).getAttributeName());
+ ComputeTemplateConsolidationData computeTemplateConsolidationDataFSB1 = consolidationData
+ .getComputeConsolidationData()
+ .getFileComputeConsolidationData("MainServiceTemplate.yaml")
+ .getTypeComputeConsolidationData("org.openecomp.resource.vfc.nodes.heat.FSB1")
+ .getComputeTemplateConsolidationData("FSB1");
+ Assert.assertEquals(1,computeTemplateConsolidationDataFSB1.getNodesGetAttrOut().size());
+ List<GetAttrFuncData> attrFuncDataOutList2 = computeTemplateConsolidationDataFSB1
+ .getNodesGetAttrOut().get("VMI1");
+ Assert.assertEquals(1,attrFuncDataOutList2.size());
+ Assert.assertEquals("name",attrFuncDataOutList2.get(0).getFieldName());
+ Assert.assertEquals("name",attrFuncDataOutList2
+ .get(0).getAttributeName());
+ } else if(TestConstants.TEST_IGNORE_GET_ATTR_FROM_OUTPUT.equals(testName)){
+ if(!consolidationData.getPortConsolidationData().getAllServiceTemplateFileNames().isEmpty()){
+ Iterator<String> itr = consolidationData.getPortConsolidationData()
+ .getFilePortConsolidationData("MainServiceTemplate.yaml").getAllPortNodeTemplateIds()
+ .iterator();
+ while(itr.hasNext()){
+ String key = itr.next();
+ PortTemplateConsolidationData portTemplateConsolidationData = consolidationData
+ .getPortConsolidationData()
+ .getFilePortConsolidationData("MainServiceTemplate.yaml")
+ .getPortTemplateConsolidationData(key);
+ Assert.assertNull(portTemplateConsolidationData.getOutputParametersGetAttrIn());
+ }
+ }
+ } else if(TestConstants.TEST_GET_ATTR_FOR_NOT_SUPPORTED_ATTR_IN_ATTR_LIST.equals(testName)){
+ Assert.assertNull(consolidationData.getPortConsolidationData()
+ .getFilePortConsolidationData("MainServiceTemplate.yaml")
+ .getPortTemplateConsolidationData("FSB1_Internal2").getNodesGetAttrIn());
+ } else if(TestConstants.TEST_GET_ATTR_FOR_ONLY_RESOURCE_NAME.equals(testName)){
+ PortTemplateConsolidationData portTemplateConsolidationData = consolidationData
+ .getPortConsolidationData().getFilePortConsolidationData("MainServiceTemplate.yaml")
+ .getPortTemplateConsolidationData("VMI1");
+ Assert.assertNotNull(portTemplateConsolidationData);
+ Assert.assertEquals("name",portTemplateConsolidationData.getNodesGetAttrIn().get("FSB1").
+ get(0).getFieldName());
+ Assert.assertEquals("fq_name",portTemplateConsolidationData.getNodesGetAttrIn().get("FSB1").
+ get(0).getAttributeName());
+ } else if(TestConstants.TEST_GET_ATTR_FOR_NONE_TO_PORT_OR_COMPUTE.equals(testName)){
+ ComputeTemplateConsolidationData computeTemplateConsolidationData = consolidationData
+ .getComputeConsolidationData()
+ .getFileComputeConsolidationData("MainServiceTemplate.yaml")
+ .getTypeComputeConsolidationData("org.openecomp.resource.vfc.nodes.heat.compute")
+ .getComputeTemplateConsolidationData("server_compute_get_attr_test");
+ Assert.assertEquals("user_data_format",computeTemplateConsolidationData
+ .getNodesGetAttrOut().get("server_pcm_001").get(0).getFieldName());
+ Assert.assertEquals("oam_net_gw",computeTemplateConsolidationData
+ .getNodesGetAttrOut().get("server_pcm_001").get(0).getAttributeName());
+ } else if(TestConstants.TEST_OUTPUT_GET_ATTR.equals(testName)){
+ ComputeTemplateConsolidationData computeTemplateConsolidationData1 = consolidationData
+ .getComputeConsolidationData()
+ .getFileComputeConsolidationData("MainServiceTemplate.yaml")
+ .getTypeComputeConsolidationData("org.openecomp.resource.vfc.nodes.heat.cgi_fw")
+ .getComputeTemplateConsolidationData("CGI_FW_SERVER_1");
+ Assert.assertEquals("cgi_fw_01_left_mac_1",computeTemplateConsolidationData1
+ .getOutputParametersGetAttrIn()
+ .get(0).getFieldName());
+ Assert.assertEquals("addresses",computeTemplateConsolidationData1.getOutputParametersGetAttrIn()
+ .get(0).getAttributeName());
+ ComputeTemplateConsolidationData computeTemplateConsolidationData2 = consolidationData
+ .getComputeConsolidationData()
+ .getFileComputeConsolidationData("MainServiceTemplate.yaml")
+ .getTypeComputeConsolidationData("org.openecomp.resource.vfc.nodes.heat.cgi_fw")
+ .getComputeTemplateConsolidationData("CGI_FW_SERVER_2");
+ Assert.assertEquals(1,computeTemplateConsolidationData2
+ .getNodesGetAttrIn().get("CGI_FW_SERVER_2").size());
+ Assert.assertEquals("availability_zone",computeTemplateConsolidationData2
+ .getNodesGetAttrIn().get("CGI_FW_SERVER_2").get(0).getFieldName());
+ Assert.assertEquals("addresses",computeTemplateConsolidationData2
+ .getNodesGetAttrIn().get("CGI_FW_SERVER_2").get(0).getAttributeName());
+ Assert.assertEquals(1,computeTemplateConsolidationData2
+ .getNodesGetAttrOut().get("CGI_FW_SERVER_2").size());
+ Assert.assertEquals("availability_zone",computeTemplateConsolidationData2
+ .getNodesGetAttrOut().get("CGI_FW_SERVER_2").get(0).getFieldName());
+ Assert.assertEquals("addresses",computeTemplateConsolidationData2
+ .getNodesGetAttrOut().get("CGI_FW_SERVER_2").get(0).getAttributeName());
+ Assert.assertEquals("cgi_fw_01_left_mac_2",computeTemplateConsolidationData2
+ .getOutputParametersGetAttrIn().get(0).getFieldName());
+ Assert.assertEquals("addresses",computeTemplateConsolidationData2
+ .getOutputParametersGetAttrIn().get(0).getAttributeName());
+ Assert.assertEquals("cgi_fw_01_left_mac_3",computeTemplateConsolidationData2
+ .getOutputParametersGetAttrIn().get(1).getFieldName());
+ Assert.assertEquals("addresses",computeTemplateConsolidationData2
+ .getOutputParametersGetAttrIn().get(1).getAttributeName());
+ Assert.assertEquals("cgi_fw_01_left_mac_4",computeTemplateConsolidationData2
+ .getOutputParametersGetAttrIn().get(2).getFieldName());
+ Assert.assertEquals("addresses",computeTemplateConsolidationData2
+ .getOutputParametersGetAttrIn().get(2).getAttributeName());
+ Assert.assertEquals("cgi_fw_01_left_mac_5",computeTemplateConsolidationData2
+ .getOutputParametersGetAttrIn().get(3).getFieldName());
+ Assert.assertEquals("addresses",computeTemplateConsolidationData2
+ .getOutputParametersGetAttrIn().get(3).getAttributeName());
+ Assert.assertEquals("cgi_fw_01_left_mac_5",computeTemplateConsolidationData2
+ .getOutputParametersGetAttrIn().get(4).getFieldName());
+ Assert.assertEquals("addresses",computeTemplateConsolidationData2
+ .getOutputParametersGetAttrIn().get(4).getAttributeName());
+ Assert.assertEquals("cgi_fw_01_left_mac_6",computeTemplateConsolidationData2
+ .getOutputParametersGetAttrIn().get(5).getFieldName());
+ Assert.assertEquals("addresses",computeTemplateConsolidationData2
+ .getOutputParametersGetAttrIn().get(5).getAttributeName());
+ Assert.assertEquals("cgi_fw_01_left_mac_9",computeTemplateConsolidationData2
+ .getOutputParametersGetAttrIn().get(6).getFieldName());
+ Assert.assertEquals("addresses",computeTemplateConsolidationData2
+ .getOutputParametersGetAttrIn().get(6).getAttributeName());
+ Assert.assertEquals("cgi_fw_01_left_mac_10",computeTemplateConsolidationData2
+ .getOutputParametersGetAttrIn().get(7).getFieldName());
+ Assert.assertEquals("addresses",computeTemplateConsolidationData2
+ .getOutputParametersGetAttrIn().get(7).getAttributeName());
+ PortTemplateConsolidationData portTemplateConsolidationData = consolidationData
+ .getPortConsolidationData().getFilePortConsolidationData("MainServiceTemplate.yaml")
+ .getPortTemplateConsolidationData("contrail_vmi_subinterface");
+ Assert.assertEquals("cgi_fw_01_left_mac_7",portTemplateConsolidationData
+ .getOutputParametersGetAttrIn().get(0).getFieldName());
+ Assert.assertEquals("virtual_machine_interface_properties",portTemplateConsolidationData
+ .getOutputParametersGetAttrIn().get(0).getAttributeName());
+ Assert.assertEquals("cgi_fw_01_left_mac_8",portTemplateConsolidationData
+ .getOutputParametersGetAttrIn().get(1).getFieldName());
+ Assert.assertEquals("virtual_machine_interface_allowed_address_pairs",
+ portTemplateConsolidationData.getOutputParametersGetAttrIn()
+ .get(1).getAttributeName());
+ Assert.assertEquals("cgi_fw_01_left_mac_10",portTemplateConsolidationData
+ .getOutputParametersGetAttrIn().get(2).getFieldName());
+ Assert.assertEquals("virtual_machine_interface_allowed_address_pairs",
+ portTemplateConsolidationData.getOutputParametersGetAttrIn()
+ .get(2).getAttributeName());
+ }
+ }
+
+ 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<String, List<RequirementAssignmentData>> nodesConnectedIn =
+ nestedTemplateConsolidationData.getNodesConnectedIn();
+ List<String> dependentNodes = new LinkedList<>();
+ dependentNodes.add("packet_mirror_network");
+ validateNestedNodesConnectedInDependency(nodesConnectedIn, nestedNodeTemplateId, dependentNodes);
+
+ //Validate get attribute in
+ Map<String, List<GetAttrFuncData>> nodesGetAttrIn =
+ nestedTemplateConsolidationData.getNodesGetAttrIn();
+ String getAttrNodeTemplateId = "server_compute_get_attr_test";
+ List<GetAttrFuncData> 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<GetAttrFuncData> 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<String> 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<String, List<RequirementAssignmentData>> nodesConnectedIn =
+ nestedTemplateConsolidationData.getNodesConnectedIn();
+ List<String> dependentNodes = new LinkedList<>();
+ dependentNodes.add("packet_mirror_network");
+ validateNestedNodesConnectedInDependency(nodesConnectedIn, nestedNodeTemplateId, dependentNodes);
+ } else {
+ 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<String, List<GetAttrFuncData>> nodesGetAttrIn =
+ nestedTemplateConsolidationData.getNodesGetAttrIn();
+ String getAttrNodeTemplateId = "server_pcm_001";
+ List<GetAttrFuncData> 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<GetAttrFuncData> 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<String, List<RequirementAssignmentData>> nodesConnectedIn =
+ nestedTemplateConsolidationData.getNodesConnectedIn();
+ List<String> dependentNodes = new LinkedList<>();
+ dependentNodes.add("packet_mirror_network");
+ validateNestedNodesConnectedInDependency(nodesConnectedIn, nestedNodeTemplateId, dependentNodes);
+ //Validate output parameter get attribute in
+ List<GetAttrFuncData> 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");
+ 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<GetAttrFuncData> 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());
+ //Assert.assertNull(nestedTemplateConsolidationData.getNodesGetAttrOut());
+ }
+
+ private static void validateNestedNodesConnectedInDependency(Map<String,
+ List<RequirementAssignmentData>> nodesConnectedIn,
+ String nestedNodeTemplateId,
+ List<String> dependentNodeTemplateIds) {
+ Assert.assertNotNull(nodesConnectedIn);
+ for (String dependentNodeTemplateId : dependentNodeTemplateIds) {
+ List<RequirementAssignmentData> requirementAssignmentData =
+ nodesConnectedIn.get(dependentNodeTemplateId);
+ Assert.assertNotNull(requirementAssignmentData);
+ for (RequirementAssignmentData data : requirementAssignmentData) {
+ Assert.assertEquals(data.getRequirementId(), ToscaConstants.DEPENDS_ON_REQUIREMENT_ID);
+ Assert.assertEquals(data.getRequirementAssignment().getCapability(), ToscaCapabilityType
+ .NATIVE_NODE);
+ Assert.assertEquals(data.getRequirementAssignment().getNode(), nestedNodeTemplateId);
+ Assert.assertEquals(data.getRequirementAssignment().getRelationship(),
+ ToscaRelationshipType.NATIVE_DEPENDS_ON);
+ }
+ }
+ }
+
+ 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<String, List<RequirementAssignmentData>> consolidationDataNodesConnectedIn =
+ nestedTemplateConsolidationData.getNodesConnectedIn();
+ Assert.assertNotNull(consolidationDataNodesConnectedIn);
+ NodeTemplate securityRuleNodeTemplate = DataModelUtil.getNodeTemplate(serviceTemplate,
+ securityRuleNodeTemplateId);
+ List<Map<String, RequirementAssignment>> securityRuleNodeTemplateRequirements =
+ securityRuleNodeTemplate.getRequirements();
+ for (Map<String, RequirementAssignment> 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<String,
+ List<RequirementAssignmentData>> consolidationDataNodesConnectedIn) {
+ List<RequirementAssignmentData> 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);
+ }
+}
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/buildconsolidationdata/ConsolidationDataValidationType.java b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/buildconsolidationdata/ConsolidationDataValidationType.java
new file mode 100644
index 0000000000..4cdfc35647
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/buildconsolidationdata/ConsolidationDataValidationType.java
@@ -0,0 +1,10 @@
+package org.openecomp.sdc.translator.services.heattotosca.buildconsolidationdata;
+
+public enum ConsolidationDataValidationType {
+ VALIDATE_GROUP,
+ VALIDATE_PORT,
+ VALIDATE_VOLUME,
+ VALIDATE_GET_ATTR,
+ VALIDATE_CONNECTIVITY,
+ VALIDATE_DEPENDS_ON
+}
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/buildconsolidationdata/TestConstants.java b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/buildconsolidationdata/TestConstants.java
new file mode 100644
index 0000000000..3b97be7f33
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/buildconsolidationdata/TestConstants.java
@@ -0,0 +1,56 @@
+package org.openecomp.sdc.translator.services.heattotosca.buildconsolidationdata;
+
+public class TestConstants{
+
+ public static final String MAIN_SERVICE_TEMPLATE = "MainServiceTemplate.yaml";
+
+ public static final String TEST_GROUP_POSITIVE = "TestGroupsPositive";
+ public static final String TEST_GROUP_NEGATIVE = "TestGroupsNegative";
+
+ public static final String TEST_VOLUME_POSITIVE = "TestVolumePositive";
+ public static final String TEST_VOLUME_NEGATIVE = "TestVolumeNegative";
+
+ public static final String TEST_PORT_POSITIVE = "TestPortPositive";
+ public static final String TEST_PORT_NEGATIVE = "TestPortNegative";
+
+ public static final String TEST_CONNECTIVITY_POSITIVE = "TestConnectivityPositive";
+ public static final String TEST_CONNECTIVITY_NEGATIVE = "TestConnectivityNegative";
+
+ public static final String TEST_DEPENDS_ON_NODES_CONNECTED_IN = "TestDependsOnNodesConnectedIn";
+ public static final String TEST_DEPENDS_ON_NODES_CONNECTED_OUT = "TestDependsOnNodesConnectedOut";
+ public static final String TEST_DEPENDS_ON_NODES_CONNECTED_IN_AND_OUT =
+ "TestDependsOnNodesConnectedInAndOut";
+ public static final String TEST_DEPENDS_ON_NO_DEPENDENCY =
+ "TestDependsOnNoDependency";
+ public static final String TEST_DEPENDS_ON_INVALID_DEPENDENCY_CANDIDATE =
+ "TestDependsOnInvalidDependencyCandidate";
+ public static final String TEST_GET_ATTR_FOR_NONE_TO_PORT_OR_COMPUTE =
+ "testTranslateGetAttForNoneToPortOrCompute";
+ public static final String TEST_GET_ATTR_FOR_ONLY_RESOURCE_NAME =
+ "testTranslateGetAttOnlyResourceName";
+ public static final String TEST_GET_ATTR_FOR_MORE_THAN_ONE_ATTR_IN_ATTR_LIST =
+ "testTranslateGetAtt";
+ public static final String TEST_GET_ATTR_FOR_NOT_SUPPORTED_ATTR_IN_ATTR_LIST =
+ "testTranslateGetAttUnsupportedAttr";
+ public static final String TEST_IGNORE_GET_ATTR_FROM_OUTPUT =
+ "testTranslateGetAttUnsupportedResource";
+ public static final String TEST_OUTPUT_GET_ATTR =
+ "testTranslateGetAttDynamicParam";
+ public static final String TEST_DEPENDS_ON_MULTIPLE_COMPUTE = "TestDependsOnMultipleComputes";
+ public static final String TEST_DEPENDS_ON_NODE_TEMPLATE_TRANSLATION_ORDER_INVARIANCE =
+ "TestDependsOnNodeTemplateTranslationOrderInvariance";
+
+ public static final String TEST_SINGLE_NESTED_RESOURCE = "TestTranslateHeatSingleNestedResource";
+ public static final String TEST_MULTIPLE_NESTED_RESOURCE = "TestTranslateHeatNestedMultiBase";
+ public static final String TEST_MULTIPLE_MULTI_LEVEL_NESTED_RESOURCE =
+ "TestTranslateHeatNestedRecursiveMultiLevel";
+
+ public static final String TEST_SECURITY_RULE_PORT_NESTED_CONNECTION =
+ "TestSecurityRuleToPortNestedConnection";
+ public static final String TEST_SECURITY_RULE_PORT_NESTED_SHARED_PORT =
+ "TestSecurityRuleToPortSharedPortNestedConnection";
+ public static final String TEST_SECURITY_RULE_PORT_MULTI_LEVEL_NESTED_CONNECTION =
+ "TestSecurityRuleToPortMultiLevelNestedConnection";
+ public static final String TEST_SECURITY_RULE_PORT_MULTI_LEVEL_NESTED_SHARED_PORT =
+ "TestSecurityRuleToPortSharedPortMultiLevelNestedConnection";
+}
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/fullvfexample/hotmog/HotMogTranslationTest.java b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/fullvfexample/hotmog/HotMogTranslationTest.java
index 13be7235d9..703efc99b6 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/fullvfexample/hotmog/HotMogTranslationTest.java
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/fullvfexample/hotmog/HotMogTranslationTest.java
@@ -1,7 +1,27 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
package org.openecomp.sdc.translator.services.heattotosca.fullvfexample.hotmog;
-import org.openecomp.sdc.translator.services.heattotosca.impl.BaseResourceTranslationTest;
import org.junit.Test;
+import org.openecomp.sdc.translator.services.heattotosca.impl.resourcetranslation.BaseResourceTranslationTest;
public class HotMogTranslationTest extends BaseResourceTranslationTest {
@@ -14,4 +34,4 @@ public class HotMogTranslationTest extends BaseResourceTranslationTest {
public void testTranslate() throws Exception {
testTranslation();
}
-} \ No newline at end of file
+}
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/fullvfexample/vmmesmall/VmmeSmallTranslationTest.java b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/fullvfexample/vmmesmall/VmmeSmallTranslationTest.java
index 4db0bdf339..d28512ee1e 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/fullvfexample/vmmesmall/VmmeSmallTranslationTest.java
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/fullvfexample/vmmesmall/VmmeSmallTranslationTest.java
@@ -1,7 +1,28 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
package org.openecomp.sdc.translator.services.heattotosca.fullvfexample.vmmesmall;
-import org.openecomp.sdc.translator.services.heattotosca.impl.BaseResourceTranslationTest;
import org.junit.Test;
+import org.openecomp.sdc.translator.services.heattotosca.impl.resourcetranslation.BaseResourceTranslationTest;
+
public class VmmeSmallTranslationTest extends BaseResourceTranslationTest {
@@ -14,4 +35,4 @@ public class VmmeSmallTranslationTest extends BaseResourceTranslationTest {
public void testTranslate() throws Exception {
testTranslation();
}
-} \ No newline at end of file
+}
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/helper/ContrailTranslationHelperTest.java b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/helper/ContrailTranslationHelperTest.java
new file mode 100644
index 0000000000..9b4a59b01f
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/helper/ContrailTranslationHelperTest.java
@@ -0,0 +1,149 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.openecomp.sdc.translator.services.heattotosca.helper;
+
+import org.junit.Assert;
+import org.junit.Test;
+import org.openecomp.sdc.heat.datatypes.model.Resource;
+import org.openecomp.sdc.translator.datatypes.heattotosca.TranslationContext;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Optional;
+
+import static org.junit.Assert.*;
+
+/**
+ * @author SHIRIA
+ * @since December 21, 2016.
+ */
+public class ContrailTranslationHelperTest {
+
+ @Test
+ public void testgetComputeNodeTypeId()
+ throws Exception {
+ Resource serviceTemplate = new Resource();
+ serviceTemplate.setProperties(new HashMap<>());
+ serviceTemplate.getProperties().put("image_name", "aaaa");
+ Map flavor = new HashMap<>();
+ flavor.put("get_param", "bbb_flavor_name");
+ serviceTemplate.getProperties().put("flavor", flavor);
+ String computeNodeTypeId =
+ new ContrailTranslationHelper()
+ .getComputeNodeTypeId(serviceTemplate, "123", "123", new TranslationContext());
+ Assert.assertEquals("org.openecomp.resource.vfc.nodes.heat.bbb", computeNodeTypeId);
+ }
+
+ @Test
+ public void testTranslateFnSplitFunctionExp1() {
+ // property value = { "Fn::Split" : [ ",", "management,left,right,other" ] }
+ Map propertyValue = new HashMap();
+ List funcListVal = new ArrayList<>();
+ funcListVal.add(",");
+ funcListVal.add("management,left,right,other");
+ propertyValue.put("Fn::Split", funcListVal);
+ Optional<List<Map<String, List>>> translatedFun =
+ new ContrailTranslationHelper().translateFnSplitFunction(propertyValue, 4, false);
+
+ assertEquals(true, translatedFun.isPresent());
+ if (translatedFun.isPresent()) {
+ assertEquals(4, translatedFun.get().size());
+ for (int i = 0; i < translatedFun.get().size(); i++) {
+ assertEquals("management,left,right,other", translatedFun.get().get(i).get("token").get(0));
+ assertEquals(",", translatedFun.get().get(i).get("token").get(1));
+ assertEquals(i, translatedFun.get().get(i).get("token").get(2));
+ }
+ }
+ }
+
+ @Test
+ public void testTranslateFnSplitFunctionBoolean() {
+ // property value = { "Fn::Split" : [ ";", "n;false;false;false" ] }
+ Map propertyValue = new HashMap();
+ List funcListVal = new ArrayList<>();
+ funcListVal.add(";");
+ funcListVal.add("n;false;false;false");
+ propertyValue.put("Fn::Split", funcListVal);
+ Optional<List<Map<String, List>>> translatedFun =
+ new ContrailTranslationHelper().translateFnSplitFunction(propertyValue, 4, true);
+
+ assertEquals(true, translatedFun.isPresent());
+ if (translatedFun.isPresent()) {
+ assertEquals(4, translatedFun.get().size());
+ for (int i = 0; i < translatedFun.get().size(); i++) {
+ assertEquals("false;false;false;false", translatedFun.get().get(i).get("token").get(0));
+ assertEquals(";", translatedFun.get().get(i).get("token").get(1));
+ assertEquals(i, translatedFun.get().get(i).get("token").get(2));
+ }
+ }
+ }
+
+ @Test
+ public void testTranslateFnSplitFunctionExp2() {
+ // property value = { "Fn::Split" : [ ";", "n;false;false;false" ] }
+ Map propertyValue = new HashMap();
+ List funcListVal = new ArrayList<>();
+ funcListVal.add(";");
+ funcListVal.add("n;false;false;false");
+ propertyValue.put("Fn::Split", funcListVal);
+ Optional<List<Map<String, List>>> translatedFun =
+ new ContrailTranslationHelper().translateFnSplitFunction(propertyValue, 4, false);
+
+ assertEquals(true, translatedFun.isPresent());
+ if (translatedFun.isPresent()) {
+ assertEquals(4, translatedFun.get().size());
+ for (int i = 0; i < translatedFun.get().size(); i++) {
+ assertEquals("n;false;false;false", translatedFun.get().get(i).get("token").get(0));
+ assertEquals(";", translatedFun.get().get(i).get("token").get(1));
+ assertEquals(i, translatedFun.get().get(i).get("token").get(2));
+ }
+ }
+ }
+
+ @Test
+ public void testTranslateFnSplitFunctionWithParam() {
+ // property value = { "Fn::Split" : [ ",", Ref: st_shared_ip_list ] }
+ Map propertyValue = new HashMap();
+ List funcListVal = new ArrayList<>();
+ funcListVal.add(",");
+ Map innerMap = new HashMap();
+ innerMap.put("Ref", "st_shared_ip_list");
+ funcListVal.add(innerMap);
+ propertyValue.put("Fn::Split", funcListVal);
+ Optional<List<Map<String, List>>> translatedFun =
+ new ContrailTranslationHelper().translateFnSplitFunction(propertyValue, 5, false);
+
+ assertEquals(true, translatedFun.isPresent());
+ if (translatedFun.isPresent()) {
+ assertEquals(5, translatedFun.get().size());
+ for (int i = 0; i < translatedFun.get().size(); i++) {
+ assertEquals("st_shared_ip_list",
+
+ ((Map) translatedFun.get().get(i).get("token").get(0)).get("get_input"));
+ assertEquals(",", translatedFun.get().get(i).get("token").get(1));
+ assertEquals(i, translatedFun.get().get(i).get("token").get(2));
+ }
+ }
+ }
+}
+
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/ContrailV2VMInterfaceToNetResourceConnectionTest.java b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/ContrailV2VMInterfaceToNetResourceConnectionTest.java
deleted file mode 100644
index 1dce2c8d70..0000000000
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/ContrailV2VMInterfaceToNetResourceConnectionTest.java
+++ /dev/null
@@ -1,46 +0,0 @@
-package org.openecomp.sdc.translator.services.heattotosca.impl;
-
-import org.junit.Before;
-import org.junit.Test;
-
-import java.io.IOException;
-
-/**
- * @author Avrahamg
- * @since August 10, 2016
- */
-public class ContrailV2VMInterfaceToNetResourceConnectionTest extends BaseResourceTranslationTest {
- @Override
- @Before
- public void setUp() throws IOException {
- // do not delete this function. it prevents the superclass setup from running
- }
-
- @Test
- public void testTranslateVMIToNetNestedConnection() throws Exception {
- inputFilesPath = "/mock/services/heattotosca/VMInterfaceToNettworkConnection/nested/inputfiles";
- outputFilesPath =
- "/mock/services/heattotosca/VMInterfaceToNettworkConnection/nested/expectedoutputfiles";
- initTranslatorAndTranslate();
- testTranslation();
- }
-
- @Test
- public void testTranslateVMIToSharedNetNestedConnection() throws Exception {
- inputFilesPath = "/mock/services/heattotosca/VMInterfaceToNettworkConnection/shared/inputfiles";
- outputFilesPath =
- "/mock/services/heattotosca/VMInterfaceToNettworkConnection/shared/expectedoutputfiles";
- initTranslatorAndTranslate();
- testTranslation();
- }
-
- @Test
- public void testTranslateVMIToNetMultiConnection() throws Exception {
- inputFilesPath = "/mock/services/heattotosca/VMInterfaceToNettworkConnection/multi/inputfiles";
- outputFilesPath =
- "/mock/services/heattotosca/VMInterfaceToNettworkConnection/multi/expectedoutputfiles";
- initTranslatorAndTranslate();
- testTranslation();
- }
-
-} \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/DependsOnResourceBaseTranslationlTest.java b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/DependsOnResourceBaseTranslationlTest.java
deleted file mode 100644
index 2ba2d936e8..0000000000
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/DependsOnResourceBaseTranslationlTest.java
+++ /dev/null
@@ -1,15 +0,0 @@
-package org.openecomp.sdc.translator.services.heattotosca.impl;
-
-import org.junit.Test;
-
-public class DependsOnResourceBaseTranslationlTest extends BaseResourceTranslationTest {
- public DependsOnResourceBaseTranslationlTest() {
- inputFilesPath = "/mock/services/heattotosca/baseResourceTranslation/inputfiles";
- outputFilesPath = "/mock/services/heattotosca/baseResourceTranslation/expectedoutputfiles";
- }
-
- @Test
- public void testTranslate() throws Exception {
- testTranslation();
- }
-} \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/MultipleHeatTranslationTest.java b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/MultipleHeatTranslationTest.java
deleted file mode 100644
index caec80c11b..0000000000
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/MultipleHeatTranslationTest.java
+++ /dev/null
@@ -1,31 +0,0 @@
-package org.openecomp.sdc.translator.services.heattotosca.impl;
-
-import org.junit.Before;
-import org.junit.Test;
-
-import java.io.IOException;
-
-public class MultipleHeatTranslationTest extends BaseResourceTranslationTest {
-
- @Override
- @Before
- public void setUp() throws IOException {
- // do not delete this function. it prevents the superclass setup from running
- }
-
- @Test
- public void testTranslateBaseHeats() throws Exception {
- inputFilesPath = "/mock/multiHeat/allHeatsAreBase/inputs";
- outputFilesPath = "/mock/multiHeat/allHeatsAreBase/expectedOutput/";
- initTranslatorAndTranslate();
- testTranslation();
- }
-
- @Test
- public void testTranslateOneOutOfFourFilesIsNotBase() throws Exception {
- inputFilesPath = "/mock/multiHeat/referencedHeatResources/inputs";
- outputFilesPath = "/mock/multiHeat/referencedHeatResources/expectedOutput/";
- initTranslatorAndTranslate();
- testTranslation();
- }
-}
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/PortToContrailV2VirtualNetworkResourceConnectionTest.java b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/PortToContrailV2VirtualNetworkResourceConnectionTest.java
deleted file mode 100644
index 156008edb9..0000000000
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/PortToContrailV2VirtualNetworkResourceConnectionTest.java
+++ /dev/null
@@ -1,45 +0,0 @@
-package org.openecomp.sdc.translator.services.heattotosca.impl;
-
-import org.junit.Before;
-import org.junit.Test;
-
-import java.io.IOException;
-
-public class PortToContrailV2VirtualNetworkResourceConnectionTest
- extends BaseResourceTranslationTest {
- @Override
- @Before
- public void setUp() throws IOException {
- // do not delete this function. it prevents the superclass setup from running
- }
-
- @Test
- public void testPortToNetNestedConnection() throws Exception {
- inputFilesPath =
- "/mock/services/heattotosca/porttocontrailv2virtualnetworkconnection/nested/inputfiles";
- outputFilesPath =
- "/mock/services/heattotosca/porttocontrailv2virtualnetworkconnection/nested/expectedoutputfiles";
- initTranslatorAndTranslate();
- testTranslation();
- }
-
- @Test
- public void testPortToSharedNetNestedConnection() throws Exception {
- inputFilesPath =
- "/mock/services/heattotosca/porttocontrailv2virtualnetworkconnection/shared/inputfiles";
- outputFilesPath =
- "/mock/services/heattotosca/porttocontrailv2virtualnetworkconnection/shared/expectedoutputfiles";
- initTranslatorAndTranslate();
- testTranslation();
- }
-
- @Test
- public void testPortToNetMultiConnection() throws Exception {
- inputFilesPath =
- "/mock/services/heattotosca/porttocontrailv2virtualnetworkconnection/multi/inputfiles";
- outputFilesPath =
- "/mock/services/heattotosca/porttocontrailv2virtualnetworkconnection/multi/expectedoutputfiles";
- initTranslatorAndTranslate();
- testTranslation();
- }
-} \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/PortToNetResourceConnectionTest.java b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/PortToNetResourceConnectionTest.java
deleted file mode 100644
index 6411d4759e..0000000000
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/PortToNetResourceConnectionTest.java
+++ /dev/null
@@ -1,38 +0,0 @@
-package org.openecomp.sdc.translator.services.heattotosca.impl;
-
-import org.junit.Before;
-import org.junit.Test;
-
-import java.io.IOException;
-
-public class PortToNetResourceConnectionTest extends BaseResourceTranslationTest {
- @Override
- @Before
- public void setUp() throws IOException {
- // do not delete this function. it prevents the superclass setup from running
- }
-
- @Test
- public void testTranslatePortToNetNestedConnection() throws Exception {
- inputFilesPath = "/mock/services/heattotosca/porttonetconnection/nested/inputfiles";
- outputFilesPath = "/mock/services/heattotosca/porttonetconnection/nested/expectedoutputfiles";
- initTranslatorAndTranslate();
- testTranslation();
- }
-
- @Test
- public void testTranslatePortToSharedNetNestedConnection() throws Exception {
- inputFilesPath = "/mock/services/heattotosca/porttonetconnection/shared/inputfiles";
- outputFilesPath = "/mock/services/heattotosca/porttonetconnection/shared/expectedoutputfiles";
- initTranslatorAndTranslate();
- testTranslation();
- }
-
- @Test
- public void testTranslatePortToNetMultiConnection() throws Exception {
- inputFilesPath = "/mock/services/heattotosca/porttonetconnection/multi/inputfiles";
- outputFilesPath = "/mock/services/heattotosca/porttonetconnection/multi/expectedoutputfiles";
- initTranslatorAndTranslate();
- testTranslation();
- }
-} \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/ResourceTranslationCinderVolumeAttachmentImplTest.java b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/ResourceTranslationCinderVolumeAttachmentImplTest.java
deleted file mode 100644
index 54c06dd0d0..0000000000
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/ResourceTranslationCinderVolumeAttachmentImplTest.java
+++ /dev/null
@@ -1,52 +0,0 @@
-package org.openecomp.sdc.translator.services.heattotosca.impl;
-
-import org.junit.Before;
-import org.junit.Test;
-
-import java.io.IOException;
-
-public class ResourceTranslationCinderVolumeAttachmentImplTest extends BaseResourceTranslationTest {
-
- @Override
- @Before
- public void setUp() throws IOException {
- // do not delete this function. it prevents the superclass setup from running
- }
-
- @Test
- public void testTranslateAllResourcesInOneFile() throws Exception {
- inputFilesPath = "/mock/services/heattotosca/vol_att/volume_and_attach_one_file/inputfiles";
- outputFilesPath =
- "/mock/services/heattotosca/vol_att/volume_and_attach_one_file/expectedoutputfiles";
- initTranslatorAndTranslate();
- testTranslation();
- }
-
- @Test
- public void testVolFileIsNestedInMainHeatFile() throws Exception {
- inputFilesPath =
- "/mock/services/heattotosca/vol_att/volume_file_nested_in_main_file_in_manifest/inputfiles";
- outputFilesPath =
- "/mock/services/heattotosca/vol_att/volume_file_nested_in_main_file_in_manifest/expectedoutputfiles";
- initTranslatorAndTranslate();
- testTranslation();
- }
-
- @Test
- public void testVolFileAsDataOfNested() throws Exception {
- inputFilesPath = "/mock/services/heattotosca/vol_att/nested_with_inner_vol/inputfiles";
- outputFilesPath = "/mock/services/heattotosca/vol_att/nested_with_inner_vol/out";
- initTranslatorAndTranslate();
- testTranslation();
- }
-
- @Test
- public void testVolFileIsParallelToMainHeatFile() throws Exception {
- inputFilesPath =
- "/mock/services/heattotosca/vol_att/volume_file_parallel_to_main_file/inputfiles";
- outputFilesPath =
- "/mock/services/heattotosca/vol_att/volume_file_parallel_to_main_file/expectedoutputfiles";
- initTranslatorAndTranslate();
- testTranslation();
- }
-} \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/ResourceTranslationCinderVolumeImplTest.java b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/ResourceTranslationCinderVolumeImplTest.java
deleted file mode 100644
index 30ccbdd53d..0000000000
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/ResourceTranslationCinderVolumeImplTest.java
+++ /dev/null
@@ -1,15 +0,0 @@
-package org.openecomp.sdc.translator.services.heattotosca.impl;
-
-import org.junit.Test;
-
-public class ResourceTranslationCinderVolumeImplTest extends BaseResourceTranslationTest {
- public ResourceTranslationCinderVolumeImplTest() {
- inputFilesPath = "/mock/services/heattotosca/cinder_volume_translation/inputfiles";
- outputFilesPath = "/mock/services/heattotosca/cinder_volume_translation/expectedoutputfiles";
- }
-
- @Test
- public void testTranslate() throws Exception {
- testTranslation();
- }
-} \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/ResourceTranslationContrailServiceInstanceImplTest.java b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/ResourceTranslationContrailServiceInstanceImplTest.java
deleted file mode 100644
index 40f5eb1200..0000000000
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/ResourceTranslationContrailServiceInstanceImplTest.java
+++ /dev/null
@@ -1,72 +0,0 @@
-package org.openecomp.sdc.translator.services.heattotosca.impl;
-
-import org.junit.Before;
-import org.junit.Test;
-
-import java.io.IOException;
-
-/**
- * @author shiria
- * @since August 07, 2016.
- */
-public class ResourceTranslationContrailServiceInstanceImplTest
- extends BaseResourceTranslationTest {
-
- @Override
- @Before
- public void setUp() throws IOException {
- // do not delete this function. it prevents the superclass setup from running
- }
-
- @Test
- public void testTranslateOneServiceInstance() throws Exception {
- inputFilesPath =
- "/mock/services/heattotosca/contrail2serviceinstance/oneServiceInstance/inputfiles";
- outputFilesPath =
- "/mock/services/heattotosca/contrail2serviceinstance/oneServiceInstance/expectedoutputfiles";
- initTranslatorAndTranslate();
- testTranslation();
- }
-
- @Test
- public void testTranslateDiffServiceTemplate() throws Exception {
- inputFilesPath =
- "/mock/services/heattotosca/contrail2serviceinstance/diffServiceTemplate/inputfiles";
- outputFilesPath =
- "/mock/services/heattotosca/contrail2serviceinstance/diffServiceTemplate/expectedoutputfiles";
- initTranslatorAndTranslate();
- testTranslation();
- }
-
- @Test
- public void testTranslateSharedNetworkMulti() throws Exception {
- inputFilesPath =
- "/mock/services/heattotosca/contrail2serviceinstance/sharedNetworkMulti/inputfiles";
- outputFilesPath =
- "/mock/services/heattotosca/contrail2serviceinstance/sharedNetworkMulti/expectedoutputfiles";
- initTranslatorAndTranslate();
- testTranslation();
- }
-
- @Test
- public void testTranslateSameServiceTemplate() throws Exception {
- inputFilesPath =
- "/mock/services/heattotosca/contrail2serviceinstance/sameServiceTemplate/inputfiles";
- outputFilesPath =
- "/mock/services/heattotosca/contrail2serviceinstance/sameServiceTemplate/expectedoutputfiles";
- initTranslatorAndTranslate();
- testTranslation();
- }
-
-
- /*
- //TODO -- need to be tested once the 2 level nested For shared resources bug will be fixed - ATTASDC-1065
- @Test
- public void testTranslateSharedNetworkNested() throws Exception {
- inputFilesPath = "/mock/services/heattotosca/contrail2serviceinstance/sharedNetworkNested/inputfiles";
- outputFilesPath = "/mock/services/heattotosca/contrail2serviceinstance/sharedNetworkNested/expectedoutputfiles";
- initTranslatorAndTranslate();
- testTranslation();
- }
- */
-} \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/ResourceTranslationContrailServiceTemplateImplTest.java b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/ResourceTranslationContrailServiceTemplateImplTest.java
deleted file mode 100644
index 42b6db0e71..0000000000
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/ResourceTranslationContrailServiceTemplateImplTest.java
+++ /dev/null
@@ -1,55 +0,0 @@
-package org.openecomp.sdc.translator.services.heattotosca.impl;
-
-import org.openecomp.sdc.heat.datatypes.model.Resource;
-import org.openecomp.sdc.translator.services.heattotosca.helper.ContrailTranslationHelper;
-import org.junit.Assert;
-import org.junit.Rule;
-import org.junit.Test;
-import org.junit.rules.ExpectedException;
-
-import java.util.HashMap;
-import java.util.Map;
-
-/**
- * @author shiria
- * @since August 09, 2016.
- */
-public class ResourceTranslationContrailServiceTemplateImplTest {
-
- @Rule
- public ExpectedException thrown = ExpectedException.none();
-
- @Test
- public void testStaticGetComputeNodeTypeId() throws Exception {
- Resource serviceTemplate = new Resource();
- serviceTemplate.setProperties(new HashMap<>());
- serviceTemplate.getProperties().put("image_name", "aaaa");
- String computeNodeTypeId =
- new ContrailTranslationHelper().getComputeNodeTypeId("123", serviceTemplate);
- Assert.assertEquals("org.openecomp.resource.vfc.nodes.heat.compute_123", computeNodeTypeId);
- }
-
- @Test
- public void testNamingConventionGetComputeNodeTypeId() throws Exception {
- Resource serviceTemplate = new Resource();
- serviceTemplate.setProperties(new HashMap<>());
- Map image = new HashMap<>();
- image.put("get_param", "bbb_image_name");
- serviceTemplate.getProperties().put("image_name", image);
- String computeNodeTypeId =
- new ContrailTranslationHelper().getComputeNodeTypeId("123", serviceTemplate);
- Assert.assertEquals(computeNodeTypeId, "org.openecomp.resource.vfc.nodes.heat.bbb");
- }
-
- @Test
- public void testNoNamingConventionGetComputeNodeTypeId() throws Exception {
- Resource serviceTemplate = new Resource();
- serviceTemplate.setProperties(new HashMap<>());
- Map image = new HashMap<>();
- image.put("get_file", "bbb_image");
- serviceTemplate.getProperties().put("image_name", image);
- String computeNodeTypeId =
- new ContrailTranslationHelper().getComputeNodeTypeId("123", serviceTemplate);
- Assert.assertEquals(computeNodeTypeId, "org.openecomp.resource.vfc.nodes.heat.compute_123");
- }
-} \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/ResourceTranslationContrailV2VMInterfaceImplTest.java b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/ResourceTranslationContrailV2VMInterfaceImplTest.java
deleted file mode 100644
index 95757e7cf9..0000000000
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/ResourceTranslationContrailV2VMInterfaceImplTest.java
+++ /dev/null
@@ -1,36 +0,0 @@
-package org.openecomp.sdc.translator.services.heattotosca.impl;
-
-import org.junit.Before;
-import org.junit.Test;
-
-import java.io.IOException;
-
-/**
- * @author Avrahamg
- * @since August 10, 2016
- */
-public class ResourceTranslationContrailV2VMInterfaceImplTest extends BaseResourceTranslationTest {
-
- @Override
- @Before
- public void setUp() throws IOException {
- // do not delete this function. it prevents the superclass setup from running
- }
-
- @Test
- public void testTranslateVMIWithGetResource() throws Exception {
- inputFilesPath = "/mock/services/heattotosca/contrailv2VMinterface/oneNet/inputfiles";
- outputFilesPath = "/mock/services/heattotosca/contrailv2VMinterface/oneNet/expectedoutputfiles";
- initTranslatorAndTranslate();
- testTranslation();
- }
-
- @Test
- public void testTranslateVMIWithListOfNetworks() throws Exception {
- inputFilesPath = "/mock/services/heattotosca/contrailv2VMinterface/listNet/inputfiles";
- outputFilesPath =
- "/mock/services/heattotosca/contrailv2VMinterface/listNet/expectedoutputfiles";
- initTranslatorAndTranslate();
- testTranslation();
- }
-} \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/ResourceTranslationNeutronPortImplTest.java b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/ResourceTranslationNeutronPortImplTest.java
deleted file mode 100644
index 6e2c298346..0000000000
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/ResourceTranslationNeutronPortImplTest.java
+++ /dev/null
@@ -1,17 +0,0 @@
-package org.openecomp.sdc.translator.services.heattotosca.impl;
-
-import org.junit.Test;
-
-public class ResourceTranslationNeutronPortImplTest extends BaseResourceTranslationTest {
-
- {
- inputFilesPath = "/mock/services/heattotosca/neutron_port_translation/inputfiles";
- outputFilesPath = "/mock/services/heattotosca/neutron_port_translation/expectedoutputfiles";
- }
-
- @Test
- public void testTranslate() throws Exception {
- testTranslation();
- }
-
-} \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/ResourceTranslationNeutronSecurityGroupImplTest.java b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/ResourceTranslationNeutronSecurityGroupImplTest.java
deleted file mode 100644
index 1791f10b1c..0000000000
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/ResourceTranslationNeutronSecurityGroupImplTest.java
+++ /dev/null
@@ -1,19 +0,0 @@
-package org.openecomp.sdc.translator.services.heattotosca.impl;
-
-import org.junit.Test;
-
-public class ResourceTranslationNeutronSecurityGroupImplTest extends BaseResourceTranslationTest {
-
- {
- inputFilesPath = "/mock/services/heattotosca/neutron_security_group_translation/inputfiles";
- outputFilesPath =
- "/mock/services/heattotosca/neutron_security_group_translation/expectedoutputfiles";
- }
-
- @Test
- public void testTranslate() throws Exception {
- testTranslation();
- }
-
-
-} \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/ResourceTranslationNovaServerGroupsImplTest.java b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/ResourceTranslationNovaServerGroupsImplTest.java
deleted file mode 100644
index aabee8f56f..0000000000
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/ResourceTranslationNovaServerGroupsImplTest.java
+++ /dev/null
@@ -1,16 +0,0 @@
-package org.openecomp.sdc.translator.services.heattotosca.impl;
-
-import org.junit.Test;
-
-public class ResourceTranslationNovaServerGroupsImplTest extends BaseResourceTranslationTest {
- {
- inputFilesPath = "/mock/services/heattotosca/novaservergroups/inputfiles";
- outputFilesPath = "/mock/services/heattotosca/novaservergroups/expectedoutputfiles";
- }
-
- @Test
- public void testTranslate() throws Exception {
- testTranslation();
- }
-
-} \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/SecurityGroupToNovaResourceConnectionTest.java b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/SecurityGroupToNovaResourceConnectionTest.java
deleted file mode 100644
index ce55800d3a..0000000000
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/SecurityGroupToNovaResourceConnectionTest.java
+++ /dev/null
@@ -1,24 +0,0 @@
-package org.openecomp.sdc.translator.services.heattotosca.impl;
-
-import org.junit.Before;
-import org.junit.Test;
-
-import java.io.IOException;
-
-public class SecurityGroupToNovaResourceConnectionTest extends BaseResourceTranslationTest {
- @Override
- @Before
- public void setUp() throws IOException {
- // do not delete this function. it prevents the superclass setup from running
- }
-
- @Test
- public void testSecurityGroupToPortConnectionMultiConnection() throws Exception {
- inputFilesPath = "/mock/services/heattotosca/securitygrouptonovaconnectionmulti/inputfiles";
- outputFilesPath =
- "/mock/services/heattotosca/securitygrouptonovaconnectionmulti/expectedoutputfiles";
- initTranslatorAndTranslate();
- testTranslation();
- }
-
-} \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/SecurityRulesToPortResourceConnectionTest.java b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/SecurityRulesToPortResourceConnectionTest.java
deleted file mode 100644
index a75e0133d9..0000000000
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/SecurityRulesToPortResourceConnectionTest.java
+++ /dev/null
@@ -1,55 +0,0 @@
-package org.openecomp.sdc.translator.services.heattotosca.impl;
-
-import org.junit.Before;
-import org.junit.Test;
-
-import java.io.IOException;
-
-public class SecurityRulesToPortResourceConnectionTest extends BaseResourceTranslationTest {
- @Override
- @Before
- public void setUp() throws IOException {
- // do not delete this function. it prevents the superclass setup from running
- }
-
- @Test
- public void testTranslateSecurityRuleToPortNestedConnection() throws Exception {
- inputFilesPath =
- "/mock/services/heattotosca/securityrulestoportconnection/securityrulestoportnestedconnection/inputfiles";
- outputFilesPath =
- "/mock/services/heattotosca/securityrulestoportconnection/securityrulestoportnestedconnection/expectedoutputfiles";
- initTranslatorAndTranslate();
- testTranslation();
- }
-
- @Test
- public void testTranslateSecurityRuleToPortSharedPortNestedConnection() throws Exception {
- inputFilesPath =
- "/mock/services/heattotosca/securityrulestoportconnection/securityruletosharedportlinking/inputfiles";
- outputFilesPath =
- "/mock/services/heattotosca/securityrulestoportconnection/securityruletosharedportlinking/expectedoutputfiles";
- initTranslatorAndTranslate();
- testTranslation();
- }
-
- @Test
- public void testSecurityRuleToPortConnectionMultiConnection() throws Exception {
- inputFilesPath =
- "/mock/services/heattotosca/securityrulestoportconnection/securityrulestoportconnectionmulti/inputfiles";
- outputFilesPath =
- "/mock/services/heattotosca/securityrulestoportconnection/securityrulestoportconnectionmulti/expectedoutputfiles";
- initTranslatorAndTranslate();
- testTranslation();
- }
-
- @Test
- public void testSecurityRuleToPortConnectionNestedGetResource() throws Exception {
- inputFilesPath =
- "/mock/services/heattotosca/securityrulestoportconnection/securityrulestoportconnectiongetresource/inputfiles";
- outputFilesPath =
- "/mock/services/heattotosca/securityrulestoportconnection/securityrulestoportconnectiongetresource/expectedoutputfiles";
- initTranslatorAndTranslate();
- testTranslation();
- }
-
-} \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/fulltest/UnifiedCompositionCatalogInstanceFullTest.java b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/fulltest/UnifiedCompositionCatalogInstanceFullTest.java
new file mode 100644
index 0000000000..b6d0fb8ce9
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/fulltest/UnifiedCompositionCatalogInstanceFullTest.java
@@ -0,0 +1,53 @@
+package org.openecomp.sdc.translator.services.heattotosca.impl.fulltest;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.openecomp.sdc.translator.services.heattotosca.impl.resourcetranslation.BaseFullTranslationTest;
+
+import java.io.IOException;
+
+public class UnifiedCompositionCatalogInstanceFullTest extends BaseFullTranslationTest {
+
+ @Override
+ @Before
+ public void setUp() throws IOException {
+ // do not delete this function. it prevents the superclass setup from running
+ }
+
+ @Test
+ public void testThreeNovaSameTypeDiffGetAttrFromSameEntitiesTypes() throws IOException {
+ inputFilesPath =
+ "/mock/services/heattotosca/fulltest/catalogInstances/threeComputesSameTypeGetAttrBetweenThem/in";
+ outputFilesPath =
+ "/mock/services/heattotosca/fulltest/catalogInstances/threeComputesSameTypeGetAttrBetweenThem/out";
+
+ testTranslationWithUnifiedCondition();
+ }
+
+ @Test
+ public void testThreeNovaSameTypePortsConnectedToDiffNetworks() throws IOException {
+ inputFilesPath =
+ "/mock/services/heattotosca/fulltest/catalogInstances/threeComputesSameTypePortsConnectedToDiffNetworks/in";
+ outputFilesPath =
+ "/mock/services/heattotosca/fulltest/catalogInstances/threeComputesSameTypePortsConnectedToDiffNetworks/out";
+
+ testTranslationWithUnifiedCondition();
+ }
+
+ @Test
+ public void testThreeNovaSameTypeDiffImageName() throws IOException {
+ inputFilesPath =
+ "/mock/services/heattotosca/fulltest/catalogInstances/threeComputesSameTypeDiffImageName/in";
+ outputFilesPath =
+ "/mock/services/heattotosca/fulltest/catalogInstances/threeComputesSameTypeDiffImageName/out";
+
+ testTranslationWithUnifiedCondition();
+ }
+
+
+
+ private void testTranslationWithUnifiedCondition() throws IOException {
+ initTranslatorAndTranslate();
+ testTranslation();
+ }
+}
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/fulltest/UnifiedCompositionMixPatternFullTest.java b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/fulltest/UnifiedCompositionMixPatternFullTest.java
new file mode 100644
index 0000000000..5db90c2230
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/fulltest/UnifiedCompositionMixPatternFullTest.java
@@ -0,0 +1,72 @@
+package org.openecomp.sdc.translator.services.heattotosca.impl.fulltest;
+
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Test;
+import org.openecomp.sdc.translator.services.heattotosca.impl.resourcetranslation.BaseFullTranslationTest;
+
+import java.io.IOException;
+
+public class UnifiedCompositionMixPatternFullTest extends BaseFullTranslationTest {
+
+ @Override
+ @Before
+ public void setUp() throws IOException {
+ // do not delete this function. it prevents the superclass setup from running
+ }
+
+ @Test
+ public void testMixPatterns() throws IOException {
+ inputFilesPath =
+ "/mock/services/heattotosca/fulltest/mixPatterns/oneAppearancePerPattern/in";
+ outputFilesPath =
+ "/mock/services/heattotosca/fulltest/mixPatterns/oneAppearancePerPattern/out";
+
+ testTranslationWithInit();
+ }
+
+ @Test
+ public void testMixPatternsWithConnectivityBetweenPatterns() throws IOException {
+ inputFilesPath =
+ "/mock/services/heattotosca/fulltest/mixPatterns/connectivityBetweenPatterns/in";
+ outputFilesPath =
+ "/mock/services/heattotosca/fulltest/mixPatterns/connectivityBetweenPatterns/out";
+
+ testTranslationWithInit();
+ }
+
+ @Test
+ public void testMixPatternsWithConnectivityAndMoreThanOneOccurenceForEachPattern()
+ throws IOException {
+ inputFilesPath =
+ "/mock/services/heattotosca/fulltest/mixPatterns/twoAppearancePerPatternWithConnectivities/in";
+ outputFilesPath =
+ "/mock/services/heattotosca/fulltest/mixPatterns/twoAppearancePerPatternWithConnectivities/out";
+
+ testTranslationWithInit();
+ }
+
+ @Test
+ public void testDuplicateResourceIdsInDiffAddOnFiles() throws IOException {
+ inputFilesPath =
+ "/mock/services/heattotosca/fulltest/mixPatterns/duplicateResourceIdsInDiffAddOnFiles/in";
+
+ try {
+ testTranslationWithInit();
+ }catch(Exception e){
+ Assert.assertEquals(e.getMessage(), "Resource with id lb_0_int_oam_int_0_port occures more " +
+ "than once in different addOn files");
+ }
+ }
+
+ @Test
+ public void testMixPatternsWithDependencyConnectivity() throws IOException {
+ inputFilesPath =
+ "/mock/services/heattotosca/fulltest/mixPatterns/dependencyConnectivity/in";
+ outputFilesPath =
+ "/mock/services/heattotosca/fulltest/mixPatterns/dependencyConnectivity/out";
+
+ testTranslationWithInit();
+ }
+
+}
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/fulltest/UnifiedCompositionNestedSingleComputeFullTest.java b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/fulltest/UnifiedCompositionNestedSingleComputeFullTest.java
new file mode 100644
index 0000000000..0001ec8d54
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/fulltest/UnifiedCompositionNestedSingleComputeFullTest.java
@@ -0,0 +1,154 @@
+package org.openecomp.sdc.translator.services.heattotosca.impl.fulltest;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.openecomp.sdc.translator.services.heattotosca.impl.resourcetranslation.BaseFullTranslationTest;
+
+import java.io.IOException;
+
+public class UnifiedCompositionNestedSingleComputeFullTest extends BaseFullTranslationTest {
+
+ @Override
+ @Before
+ public void setUp() throws IOException {
+ // do not delete this function. it prevents the superclass setup from running
+ }
+
+ @Test
+ public void testNestedWithOneCompute() throws IOException {
+ inputFilesPath =
+ "/mock/services/heattotosca/fulltest/nestedSingleCompute/nestedWithOneCompute/in";
+ outputFilesPath =
+ "/mock/services/heattotosca/fulltest/nestedSingleCompute/nestedWithOneCompute/out";
+
+ testTranslationWithInit();
+ }
+
+ @Test
+ public void testOneNestedWithTwoComputesOfSameType() throws IOException {
+ inputFilesPath =
+ "/mock/services/heattotosca/fulltest/nestedSingleCompute/nestedWithTwoComputesOfSameType/in";
+ outputFilesPath =
+ "/mock/services/heattotosca/fulltest/nestedSingleCompute/nestedWithTwoComputesOfSameType/out";
+
+ testTranslationWithInit();
+ }
+
+ @Test
+ public void testOneNestedWithTwoDiffComputeTypes() throws IOException {
+ inputFilesPath =
+ "/mock/services/heattotosca/fulltest/nestedSingleCompute/nestedWithTwoDiffComputeTypes/in";
+ outputFilesPath =
+ "/mock/services/heattotosca/fulltest/nestedSingleCompute/nestedWithTwoDiffComputeTypes/out";
+
+ testTranslationWithInit();
+ }
+
+ @Test
+ public void testTwoNestedNodeTemplatesOfSameType() throws IOException {
+ inputFilesPath =
+ "/mock/services/heattotosca/fulltest/nestedSingleCompute/twoNestedNodeTemplatesWithSameComputeType/in";
+ outputFilesPath =
+ "/mock/services/heattotosca/fulltest/nestedSingleCompute/twoNestedNodeTemplatesWithSameComputeType/out";
+
+ testTranslationWithInit();
+ }
+
+ @Test
+ public void testTwoDiffNestedFilesWithSameComputeType() throws IOException {
+ inputFilesPath =
+ "/mock/services/heattotosca/fulltest/nestedSingleCompute/diffNestedFilesWithSameComputeType/in";
+ outputFilesPath =
+ "/mock/services/heattotosca/fulltest/nestedSingleCompute/diffNestedFilesWithSameComputeType/out";
+
+ testTranslationWithInit();
+ }
+
+ @Test
+ public void testNestedCompositionNodesConnectedIn() throws IOException {
+ /*
+ Nested Composition + node connected In
+ a. Dependency between a nested compute and a non-nested compute resource
+ b. Dependency between a nested compute and another nested resource (same type)
+ c. Dependency between a nested compute and another nested resource (different type)
+ d. Dependency between a non-consolidation entity resource and a nested compute resource
+ e. Dependency between a non-consolidation entity resource and a non-nested compute resource
+ f. Security Rule to Port nested connection
+ g. Security Rule to Port nested shared connection
+ */
+ inputFilesPath =
+ "/mock/services/heattotosca/fulltest/nestedSingleCompute/nestedNodesConnectedIn/in";
+ outputFilesPath =
+ "/mock/services/heattotosca/fulltest/nestedSingleCompute/nestedNodesConnectedIn/out";
+
+ testTranslationWithInit();
+ }
+
+ @Test
+ public void testNestedCompositionNodesGetAttrIn() throws IOException {
+ /*
+ Nested composition with Get attribute in -
+ a. Get attribute in a non-nested compute from a nested compute resource
+ b. Get attribute in a non-nested compute from another consolidation entity resource
+ c. Get attribute in a nested compute from another nested compute resource of same type
+ d. Get attribute in a nested compute from another nested compute resource of different type
+ e. Get attribute in a nested compute from a regular consolidation entity resource
+ f. Get attribute in a non-consolidation entity resource from a nested compute resource
+ g. Get attribute in a non-consolidation entity resource from a non-nested compute resource
+ */
+ inputFilesPath =
+ "/mock/services/heattotosca/fulltest/nestedSingleCompute/nestedNodesGetAttrIn/in";
+ outputFilesPath =
+ "/mock/services/heattotosca/fulltest/nestedSingleCompute/nestedNodesGetAttrIn/out";
+
+ testTranslationWithInit();
+ }
+
+ @Test
+ public void testNestedCompositionOutputParamGetAttrIn() throws IOException {
+ /*
+ Nested Composition + Output Param get attribute In
+ a. From a nested resource
+ b. From another nested resource of same type (represented by same nested file)
+ c. From a nested resource of different type (represented by different nested file)
+ d. From a non-nested consolidation entity resource
+ e. From a regular non-consolidation entity resource
+ */
+ inputFilesPath =
+ "/mock/services/heattotosca/fulltest/nestedSingleCompute/nestedOutputParamGetAttrIn/in";
+ outputFilesPath =
+ "/mock/services/heattotosca/fulltest/nestedSingleCompute/nestedOutputParamGetAttrIn/out";
+
+ testTranslationWithInit();
+ }
+
+ @Test
+ public void testMultiLevelNestedComposition() throws IOException {
+ inputFilesPath =
+ "/mock/services/heattotosca/fulltest/nestedSingleCompute/nestedMultiLevels/in";
+ outputFilesPath =
+ "/mock/services/heattotosca/fulltest/nestedSingleCompute/nestedMultiLevels/out";
+
+ testTranslationWithInit();
+ }
+
+ @Test
+ public void testThreeNestedSameTypeTwoPointintToSameNestedFile() throws IOException {
+ inputFilesPath =
+ "/mock/services/heattotosca/fulltest/nestedSingleCompute/threeNestedSameTypeTwoPointingOnSameNestedFile/in";
+ outputFilesPath =
+ "/mock/services/heattotosca/fulltest/nestedSingleCompute/threeNestedSameTypeTwoPointingOnSameNestedFile/out";
+
+ testTranslationWithInit();
+ }
+
+ @Test
+ public void testThreeNestedSameTypePointingToDiffFiles() throws IOException {
+ inputFilesPath =
+ "/mock/services/heattotosca/fulltest/nestedSingleCompute/threeNestedPointingToThreeDiffNestedFilesSameComputeType/in";
+ outputFilesPath =
+ "/mock/services/heattotosca/fulltest/nestedSingleCompute/threeNestedPointingToThreeDiffNestedFilesSameComputeType/out";
+
+ testTranslationWithInit();
+ }
+}
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/fulltest/UnifiedCompositionScalingInstancesFullTest.java b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/fulltest/UnifiedCompositionScalingInstancesFullTest.java
new file mode 100644
index 0000000000..ddff4ee477
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/fulltest/UnifiedCompositionScalingInstancesFullTest.java
@@ -0,0 +1,169 @@
+package org.openecomp.sdc.translator.services.heattotosca.impl.fulltest;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.openecomp.sdc.translator.services.heattotosca.impl.resourcetranslation.BaseFullTranslationTest;
+
+
+import java.io.IOException;
+
+public class UnifiedCompositionScalingInstancesFullTest extends BaseFullTranslationTest {
+
+ @Override
+ @Before
+ public void setUp() throws IOException {
+ // do not delete this function. it prevents the superclass setup from running
+ }
+
+ @Test
+ public void testComputesSameTypeWithOnePortEach() throws IOException {
+ //1. Scenario #1 - Compute type 1 – 2 nova, each one with 1 port
+ inputFilesPath =
+ "/mock/services/heattotosca/fulltest/scalingInstances/oneComputeTypeOnePort/in";
+ outputFilesPath =
+ "/mock/services/heattotosca/fulltest/scalingInstances/oneComputeTypeOnePort/out";
+
+ testTranslationWithInit();
+ }
+
+ @Test
+ public void testComputesTypesTwoComputesEachWithOnePort() throws IOException {
+ //2. Scenario #2 - 2 compute types, each type has 2 computes with one port per compute
+ inputFilesPath =
+ "/mock/services/heattotosca/fulltest/scalingInstances/twoComputeTypesOnePort/in";
+ outputFilesPath =
+ "/mock/services/heattotosca/fulltest/scalingInstances/twoComputeTypesOnePort/out";
+
+ testTranslationWithInit();
+ }
+
+ @Test
+ public void testComputesTypesTwoComputesEachWithOnePortWithGetAttr() throws IOException {
+ //3. Scenario #2 + between the 2 nova which has diff types there is getAttr
+ inputFilesPath =
+ "/mock/services/heattotosca/fulltest/scalingInstances/twoComputeTypesOnePortWithGetAttr/in";
+ outputFilesPath =
+ "/mock/services/heattotosca/fulltest/scalingInstances/twoComputeTypesOnePortWithGetAttr/out";
+
+ testTranslationWithInit();
+ }
+
+ @Test
+ public void testComputesSameTypeWithOnePortOneGroupEach() throws IOException {
+ //4. Scenario #1 + group – NovaServerGroup, connected to both nova
+ inputFilesPath =
+ "/mock/services/heattotosca/fulltest/scalingInstances/oneComputeTypeOnePortOneGroup/in";
+ outputFilesPath =
+ "/mock/services/heattotosca/fulltest/scalingInstances/oneComputeTypeOnePortOneGroup/out";
+
+ testTranslationWithInit();
+ }
+
+ @Test
+ public void testComputesSameTypeWithOnePortEachAndNodesConnectedIn() throws IOException {
+ //5. Scenario #1 + node connected In – security Rule point to both port + “resource” with
+ // dependency (depends_on) to both computes
+ inputFilesPath =
+ "/mock/services/heattotosca/fulltest/scalingInstances" +
+ "/oneComputeTypeOnePortNodeConnectedIn/in";
+ outputFilesPath =
+ "/mock/services/heattotosca/fulltest/scalingInstances" +
+ "/oneComputeTypeOnePortNodeConnectedIn/out";
+
+ testTranslationWithInit();
+ }
+
+ @Test
+ public void testComputesSameTypeWithOnePortEachAndNodesConnectedOut() throws IOException {
+ //6. Scenario#1 + node connected Out – both port connected to same network + each compute
+ // connected to same volume
+ inputFilesPath =
+ "/mock/services/heattotosca/fulltest/scalingInstances" +
+ "/oneComputeTypeOnePortNodeConnectedOut/in";
+ outputFilesPath =
+ "/mock/services/heattotosca/fulltest/scalingInstances" +
+ "/oneComputeTypeOnePortNodeConnectedOut/out";
+
+ testTranslationWithInit();
+ }
+
+ @Test
+ public void testComputesSameTypeWithOnePortEachAndGetAttrIn() throws IOException {
+ /*
+ 7. Scenario#1 + node get attr in – network which include
+ a. Property with getAttr from Compute1
+ b. Property with getAttr from Compute2
+ c. Property with getAttr from port
+ */
+
+ inputFilesPath =
+ "/mock/services/heattotosca/fulltest/scalingInstances" +
+ "/oneComputeTypeOnePortGetAttrIn/in";
+ outputFilesPath =
+ "/mock/services/heattotosca/fulltest/scalingInstances" +
+ "/oneComputeTypeOnePortGetAttrIn/out";
+
+ testTranslationWithInit();
+ }
+
+ @Test
+ public void testComputesSameTypeWithOnePortEachAndGetAttrOut() throws IOException {
+ /*
+ 8. Scenario#1 + node get attr out + network
+ a. Compute1 with property1, that include getAttr from network
+ b. Compute2 with property2, that include getAttr from network
+ c. Port with property, that include getAttr from network
+ */
+
+ inputFilesPath =
+ "/mock/services/heattotosca/fulltest/scalingInstances" +
+ "/oneComputeTypeOnePortGetAttrOut/in";
+ outputFilesPath =
+ "/mock/services/heattotosca/fulltest/scalingInstances" +
+ "/oneComputeTypeOnePortGetAttrOut/out";
+
+ testTranslationWithInit();
+ }
+
+
+ @Test
+ public void testComputesSameTypeWithOnePortEachAndOutputParamGetAttrIn() throws IOException {
+ /*
+ 9. Scenario#1 + output parameter get attr in – 3 output parameters
+ a. Output param with getAttr from Compute1
+ b. Output param with getAttr from Compute2
+ c. Output param with getAttr from Port
+ */
+
+ inputFilesPath =
+ "/mock/services/heattotosca/fulltest/scalingInstances" +
+ "/oneComputeTypeOnePortOutputParamGetAttrIn/in";
+ outputFilesPath =
+ "/mock/services/heattotosca/fulltest/scalingInstances" +
+ "/oneComputeTypeOnePortOutputParamGetAttrIn/out";
+
+ testTranslationWithInit();
+ }
+
+ @Test
+ public void testComputesSameTypeWithOnePortEachAndGetAttrOutBetweenConsolidationEntities() throws
+ IOException {
+ /*
+ 10. Scenario#1 + node get attr out
+ a. Compute1 with property1, that include getAttr from port1
+ b. Compute2 with property2, that include getAttr from port2
+ c. Port1 with property, that include getAttr from compute1
+ d. Port2 with property, that include getAttr from compute2
+ */
+
+ inputFilesPath =
+ "/mock/services/heattotosca/fulltest/scalingInstances" +
+ "/oneComputeTypeOnePortGetAttrOutComputePort/in";
+ outputFilesPath =
+ "/mock/services/heattotosca/fulltest/scalingInstances" +
+ "/oneComputeTypeOnePortGetAttrOutComputePort/out";
+
+ testTranslationWithInit();
+ }
+
+}
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/fulltest/UnifiedCompositionSingleSubstitutionFullTest.java b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/fulltest/UnifiedCompositionSingleSubstitutionFullTest.java
new file mode 100644
index 0000000000..477f72520a
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/fulltest/UnifiedCompositionSingleSubstitutionFullTest.java
@@ -0,0 +1,227 @@
+package org.openecomp.sdc.translator.services.heattotosca.impl.fulltest;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.openecomp.sdc.translator.services.heattotosca.impl.resourcetranslation.BaseFullTranslationTest;
+
+import java.io.IOException;
+
+public class UnifiedCompositionSingleSubstitutionFullTest extends BaseFullTranslationTest {
+
+ @Override
+ @Before
+ public void setUp() throws IOException {
+ // do not delete this function. it prevents the superclass setup from running
+ }
+
+ @Test
+ public void testComputeWithTwoDifferentPortTypes() throws IOException {
+ inputFilesPath =
+ "/mock/services/heattotosca/fulltest/singleSubstitution/computeWithDiffPortType/in";
+ outputFilesPath =
+ "/mock/services/heattotosca/fulltest/singleSubstitution/computeWithDiffPortType/out";
+
+ testTranslationWithInit();
+ }
+
+ @Test
+ public void testComputeWithTwoSamePortTypes() throws IOException {
+ inputFilesPath =
+ "/mock/services/heattotosca/fulltest/singleSubstitution/computewithtwosameporttypes/in";
+ outputFilesPath =
+ "/mock/services/heattotosca/fulltest/singleSubstitution/computewithtwosameporttypes/out";
+
+ testTranslationWithInit();
+ }
+
+ @Test
+ public void testComputeWithTwoDifferentPortTypesAndNested() throws IOException {
+ inputFilesPath =
+ "/mock/services/heattotosca/fulltest/singleSubstitution/computewithtwodiffporttypesandnested/in";
+ outputFilesPath =
+ "/mock/services/heattotosca/fulltest/singleSubstitution/computewithtwodiffporttypesandnested/out";
+
+ testTranslationWithInit();
+ }
+
+ @Test
+ public void testComputeWithTwoDifferentPortAndServerGroup() throws IOException {
+ inputFilesPath =
+ "/mock/services/heattotosca/fulltest/singleSubstitution/computeWithDiffPortTypeAndServerGroup/in";
+ outputFilesPath =
+ "/mock/services/heattotosca/fulltest/singleSubstitution/computeWithDiffPortTypeAndServerGroup/out";
+
+ testTranslationWithInit();
+ }
+
+ @Test
+ public void testComputeWithTwoPortsDiffTypeAndNodeConnectedIn() throws IOException {
+ inputFilesPath =
+ "/mock/services/heattotosca/fulltest/singleSubstitution/computeWithDiffPortTypeNodeConnectedIn/in";
+ outputFilesPath =
+ "/mock/services/heattotosca/fulltest/singleSubstitution/computeWithDiffPortTypeNodeConnectedIn/out";
+
+ testTranslationWithInit();
+ }
+
+ @Test
+ public void testComputeWithTwoPortsSameTypeAndNodeConnectedIn() throws IOException {
+ inputFilesPath =
+ "/mock/services/heattotosca/fulltest/singleSubstitution/computeWithSamePortTypeNodeConnectedIn/in";
+ outputFilesPath =
+ "/mock/services/heattotosca/fulltest/singleSubstitution/computeWithSamePortTypeNodeConnectedIn/out";
+
+ testTranslationWithInit();
+ }
+
+ @Test
+ public void testComputeWithTwoPortsDiffTypeAndNodeConnectedOut() throws IOException {
+ inputFilesPath =
+ "/mock/services/heattotosca/fulltest/singleSubstitution/computeWithDiffPortTypeNodeConnectedOut/in";
+ outputFilesPath =
+ "/mock/services/heattotosca/fulltest/singleSubstitution/computeWithDiffPortTypeNodeConnectedOut/out";
+
+ testTranslationWithInit();
+ }
+
+ @Test
+ public void testComputeWithTwoPortsSameTypeAndNodeConnectedOut() throws IOException {
+ inputFilesPath =
+ "/mock/services/heattotosca/fulltest/singleSubstitution/computeWithSamePortTypeNodeConnectedOut/in";
+ outputFilesPath =
+ "/mock/services/heattotosca/fulltest/singleSubstitution/computeWithSamePortTypeNodeConnectedOut/out";
+
+ testTranslationWithInit();
+ }
+
+ @Test
+ public void testComputeWithTwoDifferentPortTypesAndOutParamGetAttIn() throws IOException {
+ inputFilesPath =
+ "/mock/services/heattotosca/fulltest/singleSubstitution/diffPortTypeAndOutParamGetAttrIn/in";
+ outputFilesPath =
+ "/mock/services/heattotosca/fulltest/singleSubstitution/diffPortTypeAndOutParamGetAttrIn/out";
+
+ testTranslationWithInit();
+ }
+
+ @Test
+ public void testComputeWithTwoSamePortTypesAndOutParamGetAttIn() throws IOException {
+ inputFilesPath =
+ "/mock/services/heattotosca/fulltest/singleSubstitution/samePortTypeAndOutParamGetAttrIn/in";
+ outputFilesPath =
+ "/mock/services/heattotosca/fulltest/singleSubstitution/samePortTypeAndOutParamGetAttrIn/out";
+
+ testTranslationWithInit();
+ }
+
+ @Test
+ public void testGeneralVf() throws IOException {
+ inputFilesPath =
+ "/mock/services/heattotosca/fulltest/singleSubstitution/generalVf/in";
+ outputFilesPath =
+ "/mock/services/heattotosca/fulltest/singleSubstitution/generalVf/out";
+
+ testTranslationWithInit();
+ }
+
+ @Test
+ public void testTwoSetsOfSingle() throws IOException {
+ inputFilesPath =
+ "/mock/services/heattotosca/fulltest/singleSubstitution/twoSetsOfSingle/in";
+ outputFilesPath =
+ "/mock/services/heattotosca/fulltest/singleSubstitution/twoSetsOfSingle/out";
+
+
+ testTranslationWithInit();
+ }
+
+ @Test
+ public void testTwoSetsOfSingleWithGetAttrBetweenThem() throws IOException {
+ inputFilesPath =
+ "/mock/services/heattotosca/fulltest/singleSubstitution/twoComputesWithGetAttrBetweenThem/in";
+ outputFilesPath =
+ "/mock/services/heattotosca/fulltest/singleSubstitution/twoComputesWithGetAttrBetweenThem/out";
+
+ testTranslationWithInit();
+ }
+
+ @Test
+ public void testOneComputeTwoDiffPortsAndGetAttrIn() throws IOException {
+ inputFilesPath =
+ "/mock/services/heattotosca/fulltest/singleSubstitution/oneComputeDiffPortTypesAndGetAttIn/in";
+ outputFilesPath =
+ "/mock/services/heattotosca/fulltest/singleSubstitution/oneComputeDiffPortTypesAndGetAttIn/out";
+
+ testTranslationWithInit();
+ }
+
+ @Test
+ public void testOneComputeTwoSimilarPortsAndGetAttrIn() throws IOException {
+ inputFilesPath =
+ "/mock/services/heattotosca/fulltest/singleSubstitution/oneComputeSamePortsAndGetAttrIn/in";
+ outputFilesPath =
+ "/mock/services/heattotosca/fulltest/singleSubstitution/oneComputeSamePortsAndGetAttrIn/out";
+
+ testTranslationWithInit();
+ }
+
+ @Test
+ public void testOneComputeTwoDiffPortsAndGetAttrOut() throws IOException {
+ inputFilesPath =
+ "/mock/services/heattotosca/fulltest/singleSubstitution/oneComputeDiffPortTypesAndGetAttOut/in";
+ outputFilesPath =
+ "/mock/services/heattotosca/fulltest/singleSubstitution/oneComputeDiffPortTypesAndGetAttOut/out";
+
+ testTranslationWithInit();
+ }
+
+ @Test
+ public void testOneComputeTwoSimilarPortsAndGetAttrOut() throws IOException {
+ inputFilesPath =
+ "/mock/services/heattotosca/fulltest/singleSubstitution/oneComputeSamePortTypesAndGetAttOut/in";
+ outputFilesPath =
+ "/mock/services/heattotosca/fulltest/singleSubstitution/oneComputeSamePortTypesAndGetAttOut/out";
+
+ testTranslationWithInit();
+ }
+
+ @Test
+ public void testThreeNovaSameTypeNoConsolidation() throws IOException {
+ inputFilesPath =
+ "/mock/services/heattotosca/fulltest/singleSubstitution/threeSameComputesNoConsolidation/in";
+ outputFilesPath =
+ "/mock/services/heattotosca/fulltest/singleSubstitution/threeSameComputesNoConsolidation/out";
+
+ testTranslationWithInit();
+ }
+
+ @Test
+ public void testThreeNovaDiffTypeWithPorts() throws IOException {
+ inputFilesPath =
+ "/mock/services/heattotosca/fulltest/singleSubstitution/threeDiffComputesWithPorts/in";
+ outputFilesPath =
+ "/mock/services/heattotosca/fulltest/singleSubstitution/threeDiffComputesWithPorts/out";
+
+ testTranslationWithInit();
+ }
+
+ @Test
+ public void testThreeNovaDiffTypeWithAllConnectivities() throws IOException {
+ inputFilesPath =
+ "/mock/services/heattotosca/fulltest/singleSubstitution/threeDiffComputesWithAllConnectivities/in";
+ outputFilesPath =
+ "/mock/services/heattotosca/fulltest/singleSubstitution/threeDiffComputesWithAllConnectivities/out";
+
+ testTranslationWithInit();
+ }
+
+ @Test
+ public void testThreeNovaSameTypeWithGetAttrOutFromPort() throws IOException {
+ inputFilesPath =
+ "/mock/services/heattotosca/fulltest/singleSubstitution/threeNovaSameTypeWithGetAttrFromPort/in";
+ outputFilesPath =
+ "/mock/services/heattotosca/fulltest/singleSubstitution/threeNovaSameTypeWithGetAttrFromPort/out";
+
+ testTranslationWithInit();
+ }
+}
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/functiontranslation/FunctionTranslationGetAttrImplTest.java b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/functiontranslation/FunctionTranslationGetAttrImplTest.java
new file mode 100644
index 0000000000..878183b239
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/functiontranslation/FunctionTranslationGetAttrImplTest.java
@@ -0,0 +1,104 @@
+package org.openecomp.sdc.translator.services.heattotosca.impl.functiontranslation;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.openecomp.sdc.translator.services.heattotosca.buildconsolidationdata.TestConstants;
+import org.openecomp.sdc.translator.services.heattotosca.impl.resourcetranslation.BaseResourceTranslationTest;
+
+import java.io.IOException;
+
+public class FunctionTranslationGetAttrImplTest extends BaseResourceTranslationTest {
+
+ @Override
+ @Before
+ public void setUp() throws IOException {
+ // do not delete this function. it prevents the superclass setup from running
+ }
+
+ @Test
+ public void testTranslateGetAtt() throws Exception {
+ inputFilesPath =
+ "/mock/services/heattotosca/getAttr/getAttrUC/inputfiles";
+ outputFilesPath =
+ "/mock/services/heattotosca/getAttr/getAttrUC/expectedoutputfiles";
+ initTranslatorAndTranslate();
+ testTranslation();
+ validateGetAttribute(TestConstants.TEST_GET_ATTR_FOR_MORE_THAN_ONE_ATTR_IN_ATTR_LIST);
+ }
+
+ @Test
+ public void testTranslateGetAttUnsupportedResource() throws Exception {
+ inputFilesPath =
+ "/mock/services/heattotosca/getAttr/getAttrUnsupportedResource/inputfiles";
+ outputFilesPath =
+ "/mock/services/heattotosca/getAttr/getAttrUnsupportedResource/expectedoutputfiles";
+ initTranslatorAndTranslate();
+ testTranslation();
+ validateGetAttribute(TestConstants.TEST_IGNORE_GET_ATTR_FROM_OUTPUT);
+ }
+
+ @Test
+ public void testTranslateGetAttUnsupportedAttr() throws Exception {
+ inputFilesPath =
+ "/mock/services/heattotosca/getAttr/getAttrUnsupportedAttr/inputfiles";
+ outputFilesPath =
+ "/mock/services/heattotosca/getAttr/getAttrUnsupportedAttr/expectedoutputfiles";
+ initTranslatorAndTranslate();
+ testTranslation();
+ validateGetAttribute(TestConstants.TEST_GET_ATTR_FOR_NOT_SUPPORTED_ATTR_IN_ATTR_LIST);
+ }
+
+ @Test
+ public void testTranslateGetAttNestedAttr() throws Exception {
+ inputFilesPath =
+ "/mock/services/heattotosca/getAttrNestedAtt/inputfiles";
+ outputFilesPath =
+ "/mock/services/heattotosca/getAttrNestedAtt/expectedoutputfiles";
+ initTranslatorAndTranslate();
+ testTranslation();
+ }
+
+ @Test
+ public void testTranslateGetAttDynamicParam() throws Exception {
+ inputFilesPath =
+ "/mock/services/heattotosca/getAttrDynamicParam/inputfiles";
+ outputFilesPath =
+ "/mock/services/heattotosca/getAttrDynamicParam/expectedoutputfiles";
+ initTranslatorAndTranslate();
+ testTranslation();
+ validateGetAttribute(TestConstants.TEST_OUTPUT_GET_ATTR);
+ }
+
+ @Test
+ public void testTranslateGetAttOnlyResourceName() throws Exception {
+ inputFilesPath =
+ "/mock/services/heattotosca/getAttr/getAttrOnlyResourceName/inputfiles";
+ outputFilesPath =
+ "/mock/services/heattotosca/getAttr/getAttrOnlyResourceName/expectedoutputfiles";
+ initTranslatorAndTranslate();
+ testTranslation();
+ validateGetAttribute(TestConstants.TEST_GET_ATTR_FOR_ONLY_RESOURCE_NAME);
+ }
+
+ @Test
+ public void testTranslateGetAttNonePortOrCompute() throws Exception {
+ inputFilesPath =
+ "/mock/services/heattotosca/buildconsolidationdata/getattribute/noneToPortOrCompute/inputs";
+ outputFilesPath =
+ "/mock/services/heattotosca/buildconsolidationdata/getattribute/noneToPortOrCompute/expectedoutputfiles";
+ initTranslatorAndTranslate();
+ testTranslation();
+ validateGetAttribute(TestConstants.TEST_GET_ATTR_FOR_NONE_TO_PORT_OR_COMPUTE);
+ }
+
+ @Test
+ public void testTranslateDynamicGetAttrWithEmptyMapDefaultValue() throws IOException {
+ inputFilesPath =
+ "/mock/services/heattotosca/getAttrDynamicParamEmptyMap/inputs";
+ outputFilesPath =
+ "/mock/services/heattotosca/getAttrDynamicParamEmptyMap/expectedoutputfiles";
+ initTranslatorAndTranslate();
+ testTranslation();
+ }
+
+} \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/functiontranslation/FunctionTranslationGetFileImplTest.java b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/functiontranslation/FunctionTranslationGetFileImplTest.java
new file mode 100644
index 0000000000..b79671d763
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/functiontranslation/FunctionTranslationGetFileImplTest.java
@@ -0,0 +1,97 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.openecomp.sdc.translator.services.heattotosca.impl.functiontranslation;
+
+import org.junit.Assert;
+import org.junit.Test;
+import org.openecomp.core.utilities.file.FileUtils;
+import org.openecomp.sdc.heat.datatypes.model.HeatOrchestrationTemplate;
+import org.openecomp.sdc.tosca.datatypes.model.NodeTemplate;
+import org.openecomp.sdc.tosca.services.ToscaConstants;
+import org.openecomp.sdc.tosca.services.ToscaFileOutputService;
+import org.openecomp.sdc.tosca.services.impl.ToscaFileOutputServiceCsarImpl;
+import org.openecomp.sdc.translator.services.heattotosca.FunctionTranslationFactory;
+import org.openecomp.sdc.translator.datatypes.heattotosca.TranslationContext;
+
+import java.util.HashMap;
+import java.util.List;
+
+/**
+ * @author SHIRIA
+ * @since December 18, 2016.
+ */
+public class FunctionTranslationGetFileImplTest {
+ @Test
+ public void testGetFileWithExtensionFunction() {
+ String functionName = "get_file";
+ Object function = "scripFileName.sh";
+ String heatFileName = "heatFileName";
+ HeatOrchestrationTemplate heatOrchestrationTemplate = new HeatOrchestrationTemplate();
+ NodeTemplate nodeTemplate = new NodeTemplate();
+ TranslationContext context = new TranslationContext();
+
+ testGetToscaFunctionForGetFile(functionName, function, heatFileName, heatOrchestrationTemplate,
+ nodeTemplate, context);
+ }
+
+ @Test
+ public void testGetFileWithoutExtensionFunction() {
+ String functionName = "get_file";
+ Object function = "scripFileName";
+ String heatFileName = "heatFileName";
+ HeatOrchestrationTemplate heatOrchestrationTemplate = new HeatOrchestrationTemplate();
+ NodeTemplate nodeTemplate = new NodeTemplate();
+ TranslationContext context = new TranslationContext();
+
+ //# route_targets: { "Fn::Split" : [ ",", Ref: route_targets ] }
+ testGetToscaFunctionForGetFile(functionName, function, heatFileName, heatOrchestrationTemplate,
+ nodeTemplate, context);
+ }
+
+ private void testGetToscaFunctionForGetFile(String functionName, Object function,
+ String heatFileName,
+ HeatOrchestrationTemplate heatOrchestrationTemplate,
+ NodeTemplate nodeTemplate,
+ TranslationContext context) {
+ Assert.assertEquals(true, FunctionTranslationFactory.getInstance(functionName).isPresent());
+ if(FunctionTranslationFactory.getInstance(functionName).isPresent()) {
+ Object result = FunctionTranslationFactory.getInstance(functionName).get()
+ .translateFunction(null, null, null, functionName, function, heatFileName,
+ heatOrchestrationTemplate,
+ nodeTemplate, context);
+ Assert.assertNotNull(((HashMap) result).get("get_artifact"));
+ List artifactParameters = (List) ((HashMap) result).get("get_artifact");
+ Assert.assertNotNull(artifactParameters);
+ Assert.assertEquals(artifactParameters.size(), 2);
+ Assert.assertEquals(artifactParameters.get(0), ToscaConstants.MODELABLE_ENTITY_NAME_SELF);
+ Assert.assertEquals(artifactParameters.get(1), ((String) function).split("\\.")[0]);
+
+ Assert.assertNotNull(nodeTemplate.getArtifacts());
+ Assert.assertNotNull(
+ nodeTemplate.getArtifacts().get(FileUtils.getFileWithoutExtention((String) function)));
+ ToscaFileOutputService toscaFileOutputService = new ToscaFileOutputServiceCsarImpl();
+ Assert.assertEquals(
+ nodeTemplate.getArtifacts().get(FileUtils.getFileWithoutExtention((String) function))
+ .getFile(), "../" + toscaFileOutputService.getArtifactsFolderName() + "/" + function);
+ }
+ }
+
+}
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/functiontranslation/FunctionTranslationGetParamImplTest.java b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/functiontranslation/FunctionTranslationGetParamImplTest.java
new file mode 100644
index 0000000000..981c061e0a
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/functiontranslation/FunctionTranslationGetParamImplTest.java
@@ -0,0 +1,249 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.openecomp.sdc.translator.services.heattotosca.impl.functiontranslation;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.openecomp.sdc.translator.services.heattotosca.impl.resourcetranslation.BaseResourceTranslationTest;
+
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import static org.junit.Assert.*;
+
+public class FunctionTranslationGetParamImplTest extends BaseResourceTranslationTest {
+
+ @Override
+ @Before
+ public void setUp() throws IOException {
+ // do not delete this function. it prevents the superclass setup from running
+ }
+
+ @Test
+ public void testStringGetParamFuncValue() throws Exception {
+ FunctionTranslationGetParamImpl translationImpl = new FunctionTranslationGetParamImpl();
+ String functionValue = "parameter1";
+
+ Object translatedFunc = translationImpl.translateFunction(null, null, null, "get_param",
+ functionValue, "dummy", null, null, null);
+
+ assertEquals(true, translatedFunc instanceof Map);
+ if (translatedFunc instanceof Map) {
+ assertNotNull(((Map) translatedFunc).get("get_input"));
+ assertEquals(functionValue, ((Map) translatedFunc).get("get_input"));
+ }
+
+ }
+
+ @Test
+ public void testListGetParamFuncValue() throws Exception {
+ FunctionTranslationGetParamImpl translationImpl = new FunctionTranslationGetParamImpl();
+ List functionValue = new ArrayList();
+ functionValue.add("parameter1");
+ functionValue.add(0);
+ functionValue.add("key1");
+
+ Object translatedFunc = translationImpl.translateFunction(null, null, null,"get_param",
+ functionValue, "dummy", null, null, null);
+
+ assertEquals(true, translatedFunc instanceof Map);
+ if (translatedFunc instanceof Map) {
+ assertNotNull(((Map) translatedFunc).get("get_input"));
+ Object translatedFunValue = ((Map) translatedFunc).get("get_input");
+ assertEquals(true, translatedFunValue instanceof List);
+ if (translatedFunValue instanceof List) {
+
+ assertEquals(functionValue.get(0), ((List) translatedFunValue).get(0));
+ assertEquals(functionValue.get(1), ((List) translatedFunValue).get(1));
+ assertEquals(functionValue.get(2), ((List) translatedFunValue).get(2));
+ }
+ }
+
+ }
+
+ @Test
+ public void testMapGetParamFuncValue() throws Exception {
+ // input heat function expression
+ //{get_param: [parameter1, {get_param:indexParam}, key1]}
+ // output translated function expression
+ //{get_input: [parameter1, {get_input:indexParam}, key1]}
+
+ FunctionTranslationGetParamImpl translationImpl = new FunctionTranslationGetParamImpl();
+ List functionValue = new ArrayList();
+ functionValue.add("parameter1");
+ Map innerParamMap = new HashMap();
+ innerParamMap.put("get_param", "indexParam");
+ functionValue.add(innerParamMap);
+ functionValue.add("key1");
+
+ Object translatedFunc = translationImpl.translateFunction(null, null, null, "get_param",
+ functionValue, "dummy", null, null, null);
+
+ assertEquals(true, translatedFunc instanceof Map);
+ if (translatedFunc instanceof Map) {
+ assertNotNull(((Map) translatedFunc).get("get_input"));
+ Object translatedFunValue = ((Map) translatedFunc).get("get_input");
+ assertEquals(true, translatedFunValue instanceof List);
+ if (translatedFunValue instanceof List) {
+ assertEquals(functionValue.get(0), ((List) translatedFunValue).get(0));
+ assertEquals(functionValue.get(2), ((List) translatedFunValue).get(2));
+ assertEquals(true, ((List) translatedFunValue).get(1) instanceof Map);
+ if (((List) translatedFunValue).get(1) instanceof Map) {
+ assertEquals(innerParamMap.get("get_param"), ((Map) ((List) translatedFunValue).get(1))
+ .get("get_input"));
+ }
+ }
+
+ }
+ }
+
+ @Test
+ public void testMapWithMapGetParamFuncValue() throws Exception {
+ // input heat function expression
+ //{get_param: [parameter1, {get_param:[parameter2, {get_param:indexParam}]}, key1]}
+ // output translated function expression
+ //{get_input: [parameter1, {get_input:[parameter2, {get_input:indexParam}]}, key1]}
+
+ FunctionTranslationGetParamImpl translationImpl = new FunctionTranslationGetParamImpl();
+ List functionValue = new ArrayList();
+ functionValue.add("parameter1");
+ Map firstInnerParamMap = new HashMap();
+ Map secondInnerParamMap = new HashMap();
+ secondInnerParamMap.put("get_param", "indexParam");
+ List innerfunction = new ArrayList();
+ innerfunction.add("parameter2");
+ innerfunction.add(secondInnerParamMap);
+ firstInnerParamMap.put("get_param", innerfunction);
+ functionValue.add(firstInnerParamMap);
+ functionValue.add("key1");
+
+ Object translatedFunc = translationImpl.translateFunction(null, null, null, "get_param",
+ functionValue, "dummy", null, null, null);
+
+ assertEquals(true, translatedFunc instanceof Map);
+ if (translatedFunc instanceof Map) {
+ assertNotNull(((Map) translatedFunc).get("get_input"));
+ Object translatedFunValue = ((Map) translatedFunc).get("get_input");
+ assertEquals(true, translatedFunValue instanceof List);
+ if (translatedFunValue instanceof List) {
+ assertEquals(functionValue.get(0), ((List) translatedFunValue).get(0));
+ assertEquals(functionValue.get(2), ((List) translatedFunValue).get(2));
+ assertEquals(true, ((List) translatedFunValue).get(1) instanceof Map);
+ if (((List) translatedFunValue).get(1) instanceof Map) {
+ assertEquals(true, ((Map) ((List) translatedFunValue).get(1)).get("get_input")
+ instanceof List);
+ List innerTranslatedFunction =
+ (List) ((Map) ((List) translatedFunValue).get(1)).get("get_input");
+ assertEquals(innerfunction.get(0), innerTranslatedFunction.get(0));
+ assertEquals(true, innerTranslatedFunction.get(1) instanceof Map);
+ assertEquals(secondInnerParamMap.get("get_param"),
+ ((Map) innerTranslatedFunction.get(1)).get("get_input"));
+ }
+ }
+
+ }
+ }
+
+ @Test
+ public void testInnerNotSupportedFuncGetParamFuncValue() throws Exception {
+ // input heat function expression
+ //{get_param: [parameter1, {str_replace: {template:$AAkgiru, AA:{get_param:prameter2}}}, key1]}
+ // output translated function expression
+ //{get_input: [parameter1, {str_replace: {template:$AAkgiru, AA:{get_input:parameter2}}}, key1]}
+
+ FunctionTranslationGetParamImpl translationImpl = new FunctionTranslationGetParamImpl();
+ List functionValue = new ArrayList();
+ functionValue.add("parameter1");
+
+ Map templateMap = new HashMap();
+ templateMap.put("template", "$AAkgiru");
+
+ Map strReplaceFuncMap = new HashMap();
+ Map getParamMapInner = new HashMap();
+ getParamMapInner.put("get_param", "parameter2");
+ templateMap.put("AA", getParamMapInner);
+
+ Map innerParamValue = new HashMap();
+ innerParamValue.putAll(templateMap);
+ innerParamValue.putAll(strReplaceFuncMap);
+
+ strReplaceFuncMap.put("str_replace", innerParamValue);
+ functionValue.add(strReplaceFuncMap);
+
+ functionValue.add("key1");
+
+ Object translatedFunc = translationImpl.translateFunction(null, null, null, "get_param",
+ functionValue, "dummy", null, null, null);
+
+ assertEquals(true, translatedFunc instanceof Map);
+ if (translatedFunc instanceof Map) {
+ assertNotNull(((Map) translatedFunc).get("get_input"));
+ Object translatedFunValue = ((Map) translatedFunc).get("get_input");
+ assertEquals(true, translatedFunValue instanceof List);
+ if (translatedFunValue instanceof List) {
+ assertEquals(functionValue.get(0), ((List) translatedFunValue).get(0));
+ assertEquals(functionValue.get(2), ((List) translatedFunValue).get(2));
+ assertEquals(true, ((List) translatedFunValue).get(1) instanceof Map);
+ if (((List) translatedFunValue).get(1) instanceof Map) {
+ assertEquals(strReplaceFuncMap.get("get_param"),
+ ((Map) ((List) translatedFunValue).get(1))
+ .get("get_input"));
+ }
+ assertEquals(true, ((List) translatedFunValue).get(1) instanceof Map);
+ if (((List) translatedFunValue).get(1) instanceof Map) {
+ assertEquals(true, ((Map) ((List) translatedFunValue).get(1)).get("str_replace") instanceof Map);
+ Map strReplacefunctionValue = (Map) ((Map) ((List) translatedFunValue).get(1)).get("str_replace");
+ assertEquals(templateMap.get("template"), strReplacefunctionValue.get("template"));
+ assertEquals(true, strReplacefunctionValue.get("AA") instanceof Map);
+ if (strReplacefunctionValue.get("AA") instanceof Map) {
+ assertEquals(getParamMapInner.get("get_param"), ((Map) strReplacefunctionValue.get
+ ("AA")).get("get_input"));
+ }
+ }
+ }
+ }
+ }
+
+ @Test
+ public void testTranslateHeatPseudoParamUsedFromMainHeat() throws Exception {
+ inputFilesPath =
+ "/mock/services/heattotosca/heatPseudoParameters/usedFromMainHeat/inputfiles";
+ outputFilesPath =
+ "/mock/services/heattotosca/heatPseudoParameters/usedFromMainHeat/expectedoutputfiles";
+ initTranslatorAndTranslate();
+ testTranslation();
+ }
+
+ @Test
+ public void testTranslateHeatPseudoParamUsedFromNestedHeat() throws Exception {
+ inputFilesPath =
+ "/mock/services/heattotosca/heatPseudoParameters/usedFromNestedHeat/inputfiles";
+ outputFilesPath =
+ "/mock/services/heattotosca/heatPseudoParameters/usedFromNestedHeat/expectedoutputfiles";
+ initTranslatorAndTranslate();
+ testTranslation();
+ }
+
+
+}
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/nameextractor/NameExtractorContrailComputeImplTest.java b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/nameextractor/NameExtractorContrailComputeImplTest.java
new file mode 100644
index 0000000000..9fdd2db4cb
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/nameextractor/NameExtractorContrailComputeImplTest.java
@@ -0,0 +1,98 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.openecomp.sdc.translator.services.heattotosca.impl.nameextractor;
+
+import org.junit.Assert;
+import org.junit.Test;
+import org.openecomp.sdc.heat.datatypes.model.Resource;
+import org.openecomp.sdc.translator.services.heattotosca.impl.nameextractor.NameExtractorContrailComputeImpl;
+
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * @author SHIRIA
+ * @since December 21, 2016.
+ */
+public class NameExtractorContrailComputeImplTest{
+
+
+ @Test
+ public void testStaticGetComputeNodeTypeId() throws Exception {
+ Resource serviceTemplateResource = new Resource();
+ serviceTemplateResource.setProperties(new HashMap<>());
+ serviceTemplateResource.getProperties().put("image_name", "aaaa");
+ String computeNodeTypeId =
+ new NameExtractorContrailComputeImpl().extractNodeTypeName(serviceTemplateResource, "123", "123");
+ Assert.assertEquals("org.openecomp.resource.vfc.nodes.heat.compute_123", computeNodeTypeId);
+ }
+
+ @Test
+ public void testComputeNodeTypeIdIsTakingFlavorNameIfImageNameIsNotAsNamingConvention()
+ throws Exception {
+ Resource serviceTemplateResource = new Resource();
+ serviceTemplateResource.setProperties(new HashMap<>());
+ serviceTemplateResource.getProperties().put("image_name", "aaaa");
+ Map flavor = new HashMap<>();
+ flavor.put("get_param", "bbb_flavor_name");
+ serviceTemplateResource.getProperties().put("flavor", flavor);
+ String computeNodeTypeId =
+ new NameExtractorContrailComputeImpl().extractNodeTypeName(serviceTemplateResource, "123", "123");
+ Assert.assertEquals("org.openecomp.resource.vfc.nodes.heat.bbb", computeNodeTypeId);
+ }
+
+ @Test
+ public void testStaticGetComputeNodeTypeIdByFlavor() throws Exception {
+ Resource serviceTemplateResource = new Resource();
+ serviceTemplateResource.setProperties(new HashMap<>());
+ serviceTemplateResource.getProperties().put("image_name", "aaaa");
+ serviceTemplateResource.getProperties().put("flavor", "aaaa_flavor_name");
+ String computeNodeTypeId =
+ new NameExtractorContrailComputeImpl().extractNodeTypeName(serviceTemplateResource, "123", "123");
+ Assert.assertEquals("org.openecomp.resource.vfc.nodes.heat.compute_123", computeNodeTypeId);
+ }
+
+
+ @Test
+ public void testNamingConventionGetComputeNodeTypeId() throws Exception {
+ Resource serviceTemplateResource = new Resource();
+ serviceTemplateResource.setProperties(new HashMap<>());
+ Map image = new HashMap<>();
+ image.put("get_param", "bbb_image_name");
+ serviceTemplateResource.getProperties().put("image_name", image);
+ String computeNodeTypeId =
+ new NameExtractorContrailComputeImpl().extractNodeTypeName(serviceTemplateResource, "123", "123");
+ Assert.assertEquals(computeNodeTypeId, "org.openecomp.resource.vfc.nodes.heat.bbb");
+ }
+
+ @Test
+ public void testNoNamingConventionGetComputeNodeTypeId() throws Exception {
+ Resource serviceTemplateResource = new Resource();
+ serviceTemplateResource.setProperties(new HashMap<>());
+ Map image = new HashMap<>();
+ image.put("get_file", "bbb_image");
+ serviceTemplateResource.getProperties().put("image_name", image);
+ String computeNodeTypeId =
+ new NameExtractorContrailComputeImpl().extractNodeTypeName(serviceTemplateResource, "123", "123");
+ Assert.assertEquals(computeNodeTypeId, "org.openecomp.resource.vfc.nodes.heat.compute_123");
+ }
+
+}
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/helper/impl/NameExtractorServiceImplTest.java b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/nameextractor/NameExtractorNovaServerImplTest.java
index 1fb1b023e0..58237975b6 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/helper/impl/NameExtractorServiceImplTest.java
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/nameextractor/NameExtractorNovaServerImplTest.java
@@ -1,22 +1,43 @@
-package org.openecomp.sdc.translator.services.heattotosca.helper.impl;
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.openecomp.sdc.translator.services.heattotosca.impl.nameextractor;
-import org.openecomp.sdc.tosca.datatypes.model.ServiceTemplate;
-import org.openecomp.sdc.translator.services.heattotosca.Constants;
-import org.openecomp.sdc.translator.services.heattotosca.impl.ResourceTranslationNovaServerImpl;
import org.junit.Test;
+import org.openecomp.sdc.heat.datatypes.model.Resource;
+import org.openecomp.sdc.translator.services.heattotosca.Constants;
+import org.openecomp.sdc.translator.services.heattotosca.impl.nameextractor.NameExtractorNovaServerImpl;
+import org.openecomp.sdc.translator.services.heattotosca.impl.resourcetranslation.ResourceTranslationNovaServerImpl;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
-import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.*;
/**
- * @author Avrahamg
- * @since August 04, 2016
+ * @author SHIRIA
+ * @since December 20, 2016.
*/
-public class NameExtractorServiceImplTest {
+public class NameExtractorNovaServerImplTest {
@Test
public void shouldReturnNamePrefixIfPropertyNameMatchWithIndex() throws Exception {
Map<String, Object> propertiesMap = new HashMap();
@@ -25,10 +46,12 @@ public class NameExtractorServiceImplTest {
String name = "avi_test_name_1";
imageMap.put("get_param", name);
propertiesMap.put(Constants.NAME_PROPERTY_NAME, imageMap);
+ Resource resource = new Resource();
+ resource.setProperties(propertiesMap);
ResourceTranslationNovaServerImpl resourceTranslationNovaServer =
new ResourceTranslationNovaServerImpl();
- String localNodeType = resourceTranslationNovaServer
- .createLocalNodeType(new ServiceTemplate(), propertiesMap, "Ignore");
+ String localNodeType =
+ new NameExtractorNovaServerImpl().extractNodeTypeName(resource, "Ignore", "Ignore");
assertTrue(localNodeType.equals("org.openecomp.resource.vfc.nodes.heat.avi_test"));
}
@@ -41,10 +64,12 @@ public class NameExtractorServiceImplTest {
List val = Arrays.asList("virc_vm_names", "2");
imageMap.put("get_param", val);
propertiesMap.put(Constants.NAME_PROPERTY_NAME, imageMap);
+ Resource resource = new Resource();
+ resource.setProperties(propertiesMap);
ResourceTranslationNovaServerImpl resourceTranslationNovaServer =
new ResourceTranslationNovaServerImpl();
- String localNodeType = resourceTranslationNovaServer
- .createLocalNodeType(new ServiceTemplate(), propertiesMap, "Ignore");
+ String localNodeType =
+ new NameExtractorNovaServerImpl().extractNodeTypeName(resource, "Ignore", "Ignore");
assertTrue(localNodeType.equals("org.openecomp.resource.vfc.nodes.heat.virc_vm"));
}
@@ -59,10 +84,12 @@ public class NameExtractorServiceImplTest {
List val = Arrays.asList("virc_vm_names", nameValMap);
nameMap.put("get_param", val);
propertiesMap.put(Constants.NAME_PROPERTY_NAME, nameMap);
+ Resource resource = new Resource();
+ resource.setProperties(propertiesMap);
ResourceTranslationNovaServerImpl resourceTranslationNovaServer =
new ResourceTranslationNovaServerImpl();
- String localNodeType = resourceTranslationNovaServer
- .createLocalNodeType(new ServiceTemplate(), propertiesMap, "Ignore");
+ String localNodeType =
+ new NameExtractorNovaServerImpl().extractNodeTypeName(resource, "Ignore", "Ignore");
assertTrue(localNodeType.equals("org.openecomp.resource.vfc.nodes.heat.virc_vm"));
}
@@ -75,10 +102,12 @@ public class NameExtractorServiceImplTest {
String name = "avi_test_names";
imageMap.put("get_param", name);
propertiesMap.put(Constants.NAME_PROPERTY_NAME, imageMap);
+ Resource resource = new Resource();
+ resource.setProperties(propertiesMap);
ResourceTranslationNovaServerImpl resourceTranslationNovaServer =
new ResourceTranslationNovaServerImpl();
- String localNodeType = resourceTranslationNovaServer
- .createLocalNodeType(new ServiceTemplate(), propertiesMap, "Ignore");
+ String localNodeType =
+ new NameExtractorNovaServerImpl().extractNodeTypeName(resource, "Ignore", "Ignore");
assertTrue(localNodeType.equals("org.openecomp.resource.vfc.nodes.heat.avi_test"));
}
@@ -94,10 +123,12 @@ public class NameExtractorServiceImplTest {
imageMap = new HashMap();
imageMap.put("get_param", flavor);
propertiesMap.put("flavor", imageMap);
+ Resource resource = new Resource();
+ resource.setProperties(propertiesMap);
ResourceTranslationNovaServerImpl resourceTranslationNovaServer =
new ResourceTranslationNovaServerImpl();
- String localNodeType = resourceTranslationNovaServer
- .createLocalNodeType(new ServiceTemplate(), propertiesMap, "Ignore");
+ String localNodeType =
+ new NameExtractorNovaServerImpl().extractNodeTypeName(resource, "Ignore", "Ignore");
assertTrue(localNodeType.equals("org.openecomp.resource.vfc.nodes.heat.avi_test2"));
}
@@ -109,10 +140,14 @@ public class NameExtractorServiceImplTest {
String name = "avi_test_namesw";
imageMap.put("get_param", name);
propertiesMap.put(Constants.NAME_PROPERTY_NAME, imageMap);
+ Resource resource = new Resource();
+ resource.setProperties(propertiesMap);
ResourceTranslationNovaServerImpl resourceTranslationNovaServer =
new ResourceTranslationNovaServerImpl();
- String localNodeType = resourceTranslationNovaServer
- .createLocalNodeType(new ServiceTemplate(), propertiesMap, "this.is.test.resource");
+ String localNodeType =
+ new NameExtractorNovaServerImpl()
+ .extractNodeTypeName(resource, "this.is.test.resource", "this.is.test.resource");
assertTrue(localNodeType.equals("org.openecomp.resource.vfc.nodes.heat.this_is_test_resource"));
}
-} \ No newline at end of file
+
+}
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/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/BaseFullTranslationTest.java
index 9282d4e4eb..9f0a6d79b9 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/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/BaseFullTranslationTest.java
@@ -1,32 +1,74 @@
-package org.openecomp.sdc.translator.services.heattotosca.impl;
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.openecomp.sdc.translator.services.heattotosca.impl.resourcetranslation;
+import static org.junit.Assert.assertEquals;
+
+import org.apache.commons.collections4.MapUtils;
+import org.junit.Assert;
+import org.junit.Before;
+import org.openecomp.config.api.Configuration;
+import org.openecomp.config.api.ConfigurationManager;
+import org.openecomp.core.translator.api.HeatToToscaTranslator;
+import org.openecomp.core.translator.datatypes.TranslatorOutput;
+import org.openecomp.core.translator.factory.HeatToToscaTranslatorFactory;
+import org.openecomp.core.utilities.file.FileUtils;
+import org.openecomp.core.validation.util.MessageContainerUtil;
import org.openecomp.sdc.common.errors.CoreException;
import org.openecomp.sdc.common.errors.ErrorCategory;
import org.openecomp.sdc.common.errors.ErrorCode;
+import org.openecomp.sdc.datatypes.error.ErrorLevel;
+import org.openecomp.sdc.datatypes.error.ErrorMessage;
+import org.openecomp.sdc.logging.context.impl.MdcDataErrorMessage;
+import org.openecomp.sdc.logging.types.LoggerConstants;
+import org.openecomp.sdc.logging.types.LoggerErrorCode;
+import org.openecomp.sdc.logging.types.LoggerTragetServiceName;
import org.openecomp.sdc.tosca.services.ToscaFileOutputService;
import org.openecomp.sdc.tosca.services.impl.ToscaFileOutputServiceCsarImpl;
import org.openecomp.sdc.translator.TestUtils;
-import org.openecomp.core.translator.api.HeatToToscaTranslator;
-import org.openecomp.core.translator.datatypes.TranslatorOutput;
-import org.openecomp.core.translator.factory.HeatToToscaTranslatorFactory;
-import org.openecomp.core.utilities.file.FileUtils;
-import org.openecomp.core.validation.types.MessageContainerUtil;
-import org.apache.commons.collections4.MapUtils;
-import org.junit.Assert;
-import org.junit.Before;
-
-import java.io.*;
+import org.openecomp.sdc.translator.datatypes.heattotosca.TranslationContext;
+import org.openecomp.sdc.translator.services.heattotosca.ConfigConstants;
+
+import java.io.BufferedInputStream;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.IOException;
import java.net.URL;
-import java.util.*;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
import java.util.zip.ZipEntry;
import java.util.zip.ZipInputStream;
-import static org.junit.Assert.assertEquals;
-public class BaseResourceTranslationTest {
+public class BaseFullTranslationTest {
protected String inputFilesPath;
protected String outputFilesPath;
+ protected TranslationContext translationContext;
+
+ private String zipFilename = "VSP.zip";
private HeatToToscaTranslator heatToToscaTranslator;
private File translatedZipFile;
@@ -38,6 +80,11 @@ public class BaseResourceTranslationTest {
initTranslatorAndTranslate();
}
+ protected void testTranslationWithInit() throws IOException {
+ initTranslatorAndTranslate();
+ testTranslation();
+ }
+
protected void initTranslatorAndTranslate() throws IOException {
heatToToscaTranslator = HeatToToscaTranslatorFactory.getInstance().createInterface();
translatedZipFile = translateZipFile();
@@ -45,7 +92,8 @@ public class BaseResourceTranslationTest {
protected void testTranslation() throws IOException {
- URL url = BaseResourceTranslationTest.class.getResource(outputFilesPath);
+ URL url = BaseFullTranslationTest.class.getResource(outputFilesPath);
+ expectedResultFileNameSet = new HashSet<>();
String path = url.getPath();
File pathFile = new File(path);
@@ -85,7 +133,6 @@ public class BaseResourceTranslationTest {
}
private File translateZipFile() throws IOException {
- String zipFilename = "VSP.zip";
URL inputFilesUrl = this.getClass().getResource(inputFilesPath);
String path = inputFilesUrl.getPath();
TestUtils.addFilesToTranslator(heatToToscaTranslator, path);
@@ -93,7 +140,10 @@ public class BaseResourceTranslationTest {
Assert.assertNotNull(translatorOutput);
if (MapUtils.isNotEmpty(translatorOutput.getErrorMessages()) && MapUtils.isNotEmpty(
MessageContainerUtil
- .getMessageByLevel(org.openecomp.sdc.datatypes.error.ErrorLevel.ERROR, translatorOutput.getErrorMessages()))) {
+ .getMessageByLevel(ErrorLevel.ERROR, translatorOutput.getErrorMessages()))) {
+ MdcDataErrorMessage.createErrorMessageAndUpdateMdc(LoggerConstants.TARGET_ENTITY_DB,
+ LoggerTragetServiceName.VALIDATE_HEAT_BEFORE_TRANSLATE, ErrorLevel.ERROR.name(),
+ LoggerErrorCode.DATA_ERROR.getErrorCode(), "Can't translate HEAT file");
throw new CoreException((new ErrorCode.ErrorCodeBuilder()).withMessage(
"Error in validation " + getErrorAsString(translatorOutput.getErrorMessages()))
.withId("Validation Error").withCategory(ErrorCategory.APPLICATION).build());
@@ -110,7 +160,7 @@ public class BaseResourceTranslationTest {
return file;
}
- private String getErrorAsString(Map<String, List<org.openecomp.sdc.datatypes.error.ErrorMessage>> errorMessages) {
+ private String getErrorAsString(Map<String, List<ErrorMessage>> errorMessages) {
StringBuilder sb = new StringBuilder();
errorMessages.entrySet().forEach(
entry -> sb.append("File:").append(entry.getKey()).append(System.lineSeparator())
@@ -119,9 +169,9 @@ public class BaseResourceTranslationTest {
return sb.toString();
}
- private String getErrorList(List<org.openecomp.sdc.datatypes.error.ErrorMessage> errors) {
+ private String getErrorList(List<ErrorMessage> errors) {
StringBuilder sb = new StringBuilder();
- errors.stream().forEach(
+ errors.forEach(
error -> sb.append(error.getMessage()).append("[").append(error.getLevel()).append("]")
.append(System.lineSeparator()));
return sb.toString();
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
new file mode 100644
index 0000000000..c5fcd442cb
--- /dev/null
+++ 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
@@ -0,0 +1,366 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.openecomp.sdc.translator.services.heattotosca.impl.resourcetranslation;
+
+import static org.junit.Assert.assertEquals;
+import static org.openecomp.sdc.translator.services.heattotosca.buildconsolidationdata.ConsolidationDataTestUtil.validateComputeConnectivityIn;
+import static org.openecomp.sdc.translator.services.heattotosca.buildconsolidationdata.ConsolidationDataTestUtil.validateComputeConnectivityOut;
+import static org.openecomp.sdc.translator.services.heattotosca.buildconsolidationdata.ConsolidationDataTestUtil.validateDependsOnInConsolidationData;
+import static org.openecomp.sdc.translator.services.heattotosca.buildconsolidationdata.ConsolidationDataTestUtil.validateGetAttr;
+import static org.openecomp.sdc.translator.services.heattotosca.buildconsolidationdata.ConsolidationDataTestUtil.validateGroupsInConsolidationData;
+import static org.openecomp.sdc.translator.services.heattotosca.buildconsolidationdata.ConsolidationDataTestUtil.validateNestedConsolidationData;
+import static org.openecomp.sdc.translator.services.heattotosca.buildconsolidationdata.ConsolidationDataTestUtil.validatePortConnectivityIn;
+import static org.openecomp.sdc.translator.services.heattotosca.buildconsolidationdata.ConsolidationDataTestUtil.validatePortConnectivityOut;
+import static org.openecomp.sdc.translator.services.heattotosca.buildconsolidationdata.ConsolidationDataTestUtil.validatePortsInConsolidationData;
+import static org.openecomp.sdc.translator.services.heattotosca.buildconsolidationdata.ConsolidationDataTestUtil.validateSubstituteMappingInConsolidationData;
+import static org.openecomp.sdc.translator.services.heattotosca.buildconsolidationdata.ConsolidationDataTestUtil.validateVolumeInConsolidationData;
+
+import org.apache.commons.collections4.MapUtils;
+import org.junit.Assert;
+import org.junit.Before;
+import org.openecomp.core.translator.datatypes.TranslatorOutput;
+import org.openecomp.core.utilities.file.FileUtils;
+import org.openecomp.core.utilities.json.JsonUtil;
+import org.openecomp.core.validation.util.MessageContainerUtil;
+import org.openecomp.sdc.common.errors.CoreException;
+import org.openecomp.sdc.common.errors.ErrorCategory;
+import org.openecomp.sdc.common.errors.ErrorCode;
+import org.openecomp.sdc.common.utils.SdcCommon;
+import org.openecomp.sdc.datatypes.error.ErrorLevel;
+import org.openecomp.sdc.datatypes.error.ErrorMessage;
+import org.openecomp.sdc.heat.datatypes.manifest.FileData;
+import org.openecomp.sdc.heat.datatypes.manifest.ManifestContent;
+import org.openecomp.sdc.heat.datatypes.manifest.ManifestFile;
+import org.openecomp.sdc.logging.context.impl.MdcDataErrorMessage;
+import org.openecomp.sdc.logging.types.LoggerConstants;
+import org.openecomp.sdc.logging.types.LoggerErrorCode;
+import org.openecomp.sdc.logging.types.LoggerTragetServiceName;
+import org.openecomp.sdc.tosca.datatypes.model.ServiceTemplate;
+import org.openecomp.sdc.tosca.services.ToscaFileOutputService;
+import org.openecomp.sdc.tosca.services.impl.ToscaFileOutputServiceCsarImpl;
+import org.openecomp.sdc.translator.TestUtils;
+import org.openecomp.sdc.translator.datatypes.heattotosca.TranslationContext;
+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.FileComputeConsolidationData;
+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.TypeComputeConsolidationData;
+import org.openecomp.sdc.translator.services.heattotosca.TranslationService;
+import org.openecomp.sdc.translator.services.heattotosca.buildconsolidationdata.ConsolidationDataValidationType;
+
+import java.io.BufferedInputStream;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.net.URL;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.zip.ZipEntry;
+import java.util.zip.ZipInputStream;
+
+
+public class BaseResourceTranslationTest {
+
+ protected String inputFilesPath;
+ protected String outputFilesPath;
+ protected TranslationContext translationContext;
+
+ private String zipFilename = "VSP.zip";
+ private TranslationService translationService;
+ private File translatedZipFile;
+
+ private Map<String, byte[]> expectedResultMap = new HashMap<>();
+ private Set<String> expectedResultFileNameSet = new HashSet<>();
+
+ private final String MANIFEST_NAME = SdcCommon.MANIFEST_NAME;
+ private String validationFilename = "validationOutput.json";
+
+ @Before
+ public void setUp() throws IOException {
+ initTranslatorAndTranslate();
+ }
+
+ protected void initTranslatorAndTranslate() throws IOException {
+ translationService = new TranslationService();
+ translationContext = new TranslationContext();
+ translatedZipFile = translateZipFile();
+ }
+
+ protected void testTranslation() throws IOException {
+
+ URL url = BaseResourceTranslationTest.class.getResource(outputFilesPath);
+
+ String path = url.getPath();
+ File pathFile = new File(path);
+ File[] files = pathFile.listFiles();
+ Assert.assertNotNull("manifest files is empty", files);
+ for (File expectedFile : files) {
+ expectedResultFileNameSet.add(expectedFile.getName());
+ try (FileInputStream input = new FileInputStream(expectedFile)) {
+ expectedResultMap.put(expectedFile.getName(), FileUtils.toByteArray(input));
+ }
+ }
+
+ try (FileInputStream fis = new FileInputStream(translatedZipFile);
+ ZipInputStream zis = new ZipInputStream(new BufferedInputStream(fis))) {
+ ZipEntry entry;
+ String name;
+ String expected;
+ String actual;
+
+ while ((entry = zis.getNextEntry()) != null) {
+
+ name = entry.getName()
+ .substring(entry.getName().lastIndexOf(File.separator) + 1, entry.getName().length());
+ if (expectedResultFileNameSet.contains(name)) {
+ expected = new String(expectedResultMap.get(name)).trim().replace("\r", "");
+ actual = new String(FileUtils.toByteArray(zis)).trim().replace("\r", "");
+ assertEquals("difference in file: " + name, expected, actual);
+
+ expectedResultFileNameSet.remove(name);
+ }
+ }
+ if (expectedResultFileNameSet.isEmpty()) {
+ expectedResultFileNameSet.forEach(System.out::println);
+ }
+ }
+ assertEquals(0, expectedResultFileNameSet.size());
+ }
+
+ private File translateZipFile() throws IOException {
+ URL inputFilesUrl = this.getClass().getResource(inputFilesPath);
+ String path = inputFilesUrl.getPath();
+ addFilesToTranslator(translationContext, path);
+ TranslatorOutput translatorOutput = translationService.translateHeatFiles(translationContext);
+ Assert.assertNotNull(translatorOutput);
+ if (MapUtils.isNotEmpty(translatorOutput.getErrorMessages()) && MapUtils.isNotEmpty(
+ MessageContainerUtil
+ .getMessageByLevel(ErrorLevel.ERROR, translatorOutput.getErrorMessages()))) {
+ MdcDataErrorMessage.createErrorMessageAndUpdateMdc(LoggerConstants.TARGET_ENTITY_DB,
+ LoggerTragetServiceName.VALIDATE_HEAT_BEFORE_TRANSLATE, ErrorLevel.ERROR.name(),
+ LoggerErrorCode.DATA_ERROR.getErrorCode(), "Can't translate HEAT file");
+ throw new CoreException((new ErrorCode.ErrorCodeBuilder()).withMessage(
+ "Error in validation " + getErrorAsString(translatorOutput.getErrorMessages()))
+ .withId("Validation Error").withCategory(ErrorCategory.APPLICATION).build());
+ }
+ File file = new File(path + "/" + zipFilename);
+ file.createNewFile();
+
+ try (FileOutputStream fos = new FileOutputStream(file)) {
+ ToscaFileOutputService toscaFileOutputService = new ToscaFileOutputServiceCsarImpl();
+ fos.write(
+ toscaFileOutputService.createOutputFile(translatorOutput.getToscaServiceModel(), null));
+ }
+
+ return file;
+ }
+
+ private String getErrorAsString(Map<String, List<ErrorMessage>> errorMessages) {
+ StringBuilder sb = new StringBuilder();
+ errorMessages.entrySet().forEach(
+ entry -> sb.append("File:").append(entry.getKey()).append(System.lineSeparator())
+ .append(getErrorList(entry.getValue())));
+
+ return sb.toString();
+ }
+
+ private String getErrorList(List<ErrorMessage> errors) {
+ StringBuilder sb = new StringBuilder();
+ errors.forEach(
+ error -> sb.append(error.getMessage()).append("[").append(error.getLevel()).append("]")
+ .append(System.lineSeparator()));
+ return sb.toString();
+ }
+
+ public void addFilesToTranslator(TranslationContext translationContext, String path)
+ throws IOException {
+ File manifestFile = new File(path);
+ File[] files = manifestFile.listFiles();
+ byte[] fileContent;
+
+ Assert.assertNotNull("manifest files is empty", files);
+
+ for (File file : files) {
+
+ try (FileInputStream fis = new FileInputStream(file)) {
+
+ fileContent = FileUtils.toByteArray(fis);
+
+ if (file.getName().equals(MANIFEST_NAME)) {
+ addManifest(translationContext, MANIFEST_NAME, fileContent);
+ } else {
+ if (!file.getName().equals(zipFilename) && (!file.getName().equals(validationFilename))) {
+ addFile(translationContext, file.getName(), fileContent);
+ }
+ }
+ }
+ }
+ }
+
+ public static void addManifest(TranslationContext translationContext,
+ String name, byte[] content) {
+ ManifestContent manifestData = JsonUtil.json2Object(new String(content), ManifestContent.class);
+ ManifestFile manifest = new ManifestFile();
+ manifest.setName(name);
+ manifest.setContent(manifestData);
+ translationContext.setManifest(manifest);
+ translationContext.addFile(name, content);
+ addFilesFromManifestToTranslationContextManifestFilesMap(translationContext, manifestData
+ .getData());
+ }
+
+ public static void addFile(TranslationContext translationContext,
+ String name, byte[] content) {
+ translationContext.addFile(name, content);
+ }
+
+ private static void addFilesFromManifestToTranslationContextManifestFilesMap(TranslationContext
+ translationContext, List<FileData> fileDataListFromManifest) {
+ for (FileData fileFromManfiest : fileDataListFromManifest) {
+ translationContext.addManifestFile(fileFromManfiest.getFile(), fileFromManfiest.getType());
+ }
+ }
+
+ public void validateSubsMappingInConsolidationData(){
+ ConsolidationData consolidationData = translationContext.getConsolidationData();
+ Map<String, ServiceTemplate> expectedServiceTemplateModels = TestUtils.getServiceTemplates
+ (expectedResultMap);
+ Assert.assertNotNull(consolidationData);
+ validateSubstituteMappingInConsolidationData(consolidationData,expectedServiceTemplateModels);
+ }
+
+ public void validateComputeTemplateConsolidationData(ConsolidationDataValidationType
+ validationType,
+ String testName) {
+ ConsolidationData consolidationData = translationContext.getConsolidationData();
+ Map<String, ServiceTemplate> expectedServiceTemplateModels = TestUtils.getServiceTemplates
+ (expectedResultMap);
+ Assert.assertNotNull(consolidationData);
+ Assert.assertNotNull(consolidationData.getComputeConsolidationData());
+ Set<String> serviceTemplateFileNames = consolidationData.getComputeConsolidationData()
+ .getAllServiceTemplateFileNames();
+ Assert.assertNotNull(serviceTemplateFileNames);
+ for(String serviceTemplateName : serviceTemplateFileNames){
+ Assert.assertTrue(expectedServiceTemplateModels.containsKey(serviceTemplateName));
+ ServiceTemplate expectedServiceTemplate = expectedServiceTemplateModels.get
+ (serviceTemplateName);
+ FileComputeConsolidationData fileComputeConsolidationData = consolidationData
+ .getComputeConsolidationData().getFileComputeConsolidationData(serviceTemplateName);
+ Assert.assertNotNull(fileComputeConsolidationData);
+ Set<String> computeTypes = fileComputeConsolidationData.getAllComputeTypes();
+ Assert.assertNotNull(computeTypes);
+ for(String computeType : computeTypes) {
+ TypeComputeConsolidationData typeComputeConsolidationData = fileComputeConsolidationData
+ .getTypeComputeConsolidationData(computeType);
+ Assert.assertNotNull(typeComputeConsolidationData);
+
+ Set<String> computeNodeTemplateIds = typeComputeConsolidationData
+ .getAllComputeNodeTemplateIds();
+ Assert.assertNotNull(computeNodeTemplateIds);
+ Assert.assertNotEquals(computeNodeTemplateIds.size(), 0);
+
+ for(String computeNodeTemplateId : computeNodeTemplateIds) {
+ ComputeTemplateConsolidationData computeTemplateConsolidationData =
+ typeComputeConsolidationData.getComputeTemplateConsolidationData
+ (computeNodeTemplateId);
+ switch(validationType){
+ case VALIDATE_GROUP:
+ validateGroupsInConsolidationData(computeNodeTemplateId,
+ computeTemplateConsolidationData, expectedServiceTemplate);
+ break;
+ case VALIDATE_PORT:
+ validatePortsInConsolidationData(computeNodeTemplateId,
+ computeTemplateConsolidationData,
+ expectedServiceTemplate);
+ break;
+ case VALIDATE_VOLUME:
+ validateVolumeInConsolidationData(computeNodeTemplateId,
+ computeTemplateConsolidationData, expectedServiceTemplate, testName);
+ break;
+ case VALIDATE_CONNECTIVITY:
+ validateComputeConnectivityIn(computeTemplateConsolidationData,
+ expectedServiceTemplate);
+ validateComputeConnectivityOut(computeNodeTemplateId,computeTemplateConsolidationData,
+ expectedServiceTemplate);
+ break;
+ case VALIDATE_DEPENDS_ON:
+ validateDependsOnInConsolidationData(computeNodeTemplateId,
+ computeTemplateConsolidationData,
+ expectedServiceTemplate, testName);
+ break;
+ }
+ }
+ }
+ }
+ }
+
+ public void validateGetAttribute(String testName){
+ Map<String, ServiceTemplate> expectedServiceTemplateModels = TestUtils.getServiceTemplates
+ (expectedResultMap);
+ validateGetAttr(translationContext,expectedServiceTemplateModels,testName);
+ }
+
+ public void validateNestedTemplateConsolidationData(String testName){
+ validateNestedConsolidationData(translationContext, testName);
+ }
+
+ public void validatePortTemplateConsolidationData(ConsolidationDataValidationType
+ validationType,
+ String testName) {
+ ConsolidationData consolidationData = translationContext.getConsolidationData();
+ Map<String, ServiceTemplate> expectedServiceTemplateModels = TestUtils.getServiceTemplates
+ (expectedResultMap);
+ Assert.assertNotNull(consolidationData);
+ Assert.assertNotNull(consolidationData.getPortConsolidationData());
+ Set<String> serviceTemplateFileNames = consolidationData.getPortConsolidationData()
+ .getAllServiceTemplateFileNames();
+ Assert.assertNotNull(serviceTemplateFileNames);
+ for(String serviceTemplateName : serviceTemplateFileNames){
+ Assert.assertTrue(expectedServiceTemplateModels.containsKey(serviceTemplateName));
+ ServiceTemplate expectedServiceTemplate = expectedServiceTemplateModels.get
+ (serviceTemplateName);
+ FilePortConsolidationData filePortConsolidationData = consolidationData
+ .getPortConsolidationData().getFilePortConsolidationData(serviceTemplateName);
+ Assert.assertNotNull(filePortConsolidationData);
+
+ Set<String> portNodeTemplateIds = filePortConsolidationData.getAllPortNodeTemplateIds();
+ Assert.assertNotNull(portNodeTemplateIds);
+ Assert.assertNotEquals(portNodeTemplateIds.size(), 0);
+
+ for(String portNodeTemplateId : portNodeTemplateIds) {
+ PortTemplateConsolidationData portTemplateConsolidationData =
+ filePortConsolidationData.getPortTemplateConsolidationData(portNodeTemplateId);
+ switch(validationType){
+ case VALIDATE_CONNECTIVITY:
+ validatePortConnectivityIn(portTemplateConsolidationData,expectedServiceTemplate);
+ validatePortConnectivityOut(portNodeTemplateId, portTemplateConsolidationData,
+ expectedServiceTemplate);
+ break;
+ }
+ }
+ }
+ }
+}
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/ContrailV2VlanToInterfaceResourceConnectionTest.java b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/resourcetranslation/ContrailV2VlanToInterfaceResourceConnectionTest.java
new file mode 100644
index 0000000000..a6944bacad
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/resourcetranslation/ContrailV2VlanToInterfaceResourceConnectionTest.java
@@ -0,0 +1,77 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.openecomp.sdc.translator.services.heattotosca.impl.resourcetranslation;
+
+import org.junit.Before;
+import org.junit.Ignore;
+import org.junit.Test;
+
+import java.io.IOException;
+
+/**
+ * @author SHIRIA
+ * @since December 06, 2016.
+ */
+public class ContrailV2VlanToInterfaceResourceConnectionTest extends BaseResourceTranslationTest {
+
+ @Override
+ @Before
+ public void setUp() throws IOException {
+ // do not delete this function. it prevents the superclass setup from running
+ }
+
+ //todo - remove the ignore once we will support VMI as sub port
+ @Ignore
+ @Test
+ public void testTranslateVlanToInterfaceNestedConnection() throws Exception {
+ inputFilesPath =
+ "/mock/services/heattotosca/subInterfaceToInterfaceConnection/nested/inputfiles";
+ outputFilesPath =
+ "/mock/services/heattotosca/subInterfaceToInterfaceConnection/nested/expectedoutputfiles";
+ initTranslatorAndTranslate();
+ testTranslation();
+ }
+
+ //todo - remove the ignore once we will support VMI as sub port
+ @Ignore
+ @Test
+ public void testTranslateVlanToNetMultiNestedConnection() throws Exception {
+ inputFilesPath =
+ "/mock/services/heattotosca/subInterfaceToInterfaceConnection/nestedMultiLevels/inputfiles";
+ outputFilesPath =
+ "/mock/services/heattotosca/subInterfaceToInterfaceConnection/nestedMultiLevels/expectedoutputfiles";
+ initTranslatorAndTranslate();
+ testTranslation();
+ }
+
+ //todo - remove the ignore once we will support VMI as sub port
+ @Ignore
+ @Test
+ public void testTranslateVTSBCVendorHeat() throws Exception {
+ inputFilesPath =
+ "/mock/services/heattotosca/subInterfaceToInterfaceConnection/vTSBC/inputfiles";
+ outputFilesPath =
+ "/mock/services/heattotosca/subInterfaceToInterfaceConnection/vTSBC/expectedoutputfiles";
+ initTranslatorAndTranslate();
+ testTranslation();
+ }
+
+}
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/ContrailV2VmInterfaceToNetResourceConnectionTest.java b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/resourcetranslation/ContrailV2VmInterfaceToNetResourceConnectionTest.java
new file mode 100644
index 0000000000..86e9afbbe0
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/resourcetranslation/ContrailV2VmInterfaceToNetResourceConnectionTest.java
@@ -0,0 +1,138 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.openecomp.sdc.translator.services.heattotosca.impl.resourcetranslation;
+
+import org.junit.Before;
+import org.junit.Ignore;
+import org.junit.Test;
+
+import java.io.IOException;
+
+
+public class ContrailV2VmInterfaceToNetResourceConnectionTest extends BaseResourceTranslationTest {
+ @Override
+ @Before
+ public void setUp() throws IOException {
+ // do not delete this function. it prevents the superclass setup from running
+ }
+
+ @Test
+ public void testTranslateVMIToNetNestedConnection() throws Exception {
+ inputFilesPath = "/mock/services/heattotosca/VMInterfaceToNettworkConnection/nested/inputfiles";
+ outputFilesPath =
+ "/mock/services/heattotosca/VMInterfaceToNettworkConnection/nested/expectedoutputfiles";
+ initTranslatorAndTranslate();
+ testTranslation();
+ }
+
+ //todo - remove the ignore once we will support VMI as sub port
+ @Ignore
+ @Test
+ public void testTranslateVlanToNetNestedConnection() throws Exception {
+ inputFilesPath = "/mock/services/heattotosca/VlanToNetConnection/nested/inputfiles";
+ outputFilesPath =
+ "/mock/services/heattotosca/VlanToNetConnection/nested/expectedoutputfiles";
+ initTranslatorAndTranslate();
+ testTranslation();
+ }
+
+ @Test
+ public void testTranslateVMIToNetMultiNestedConnection() throws Exception {
+ inputFilesPath =
+ "/mock/services/heattotosca/VMInterfaceToNettworkConnection/nestedMultiLevels/inputfiles";
+ outputFilesPath =
+ "/mock/services/heattotosca/VMInterfaceToNettworkConnection/nestedMultiLevels/expectedoutputfiles";
+ initTranslatorAndTranslate();
+ testTranslation();
+ }
+
+ //todo - remove the ignore once we will support VMI as sub port
+ @Ignore
+ @Test
+ public void testTranslateVlanToNetMultiNestedConnection() throws Exception {
+ inputFilesPath =
+ "/mock/services/heattotosca/VlanToNetConnection/nestedMultiLevels/inputfiles";
+ outputFilesPath =
+ "/mock/services/heattotosca/VlanToNetConnection/nestedMultiLevels/expectedoutputfiles";
+ initTranslatorAndTranslate();
+ testTranslation();
+ }
+
+ @Test
+ public void testTranslateVMIToSharedNetNestedConnection() throws Exception {
+ inputFilesPath = "/mock/services/heattotosca/VMInterfaceToNettworkConnection/shared/inputfiles";
+ outputFilesPath =
+ "/mock/services/heattotosca/VMInterfaceToNettworkConnection/shared/expectedoutputfiles";
+ initTranslatorAndTranslate();
+ testTranslation();
+ }
+
+ //todo - remove the ignore once we will support VMI as sub port
+ @Ignore
+ @Test
+ public void testTranslateVlanToSharedNetNestedConnection() throws Exception {
+ inputFilesPath = "/mock/services/heattotosca/VlanToNetConnection/shared/inputfiles";
+ outputFilesPath =
+ "/mock/services/heattotosca/VlanToNetConnection/shared/expectedoutputfiles";
+ initTranslatorAndTranslate();
+ testTranslation();
+ }
+
+ @Test
+ public void testTranslateVMIToNetSharedMultiNestedConnection() throws Exception {
+ inputFilesPath =
+ "/mock/services/heattotosca/VMInterfaceToNettworkConnection/sharedNestedMultiLevels/inputfiles";
+ outputFilesPath =
+ "/mock/services/heattotosca/VMInterfaceToNettworkConnection/sharedNestedMultiLevels/expectedoutputfiles";
+ initTranslatorAndTranslate();
+ testTranslation();
+ }
+
+ @Test
+ public void testTranslateVMIToNetSharedAddOnConnection() throws Exception {
+ inputFilesPath = "/mock/services/heattotosca/VMInterfaceToNettworkConnection/sharedAddOn/inputfiles";
+ outputFilesPath =
+ "/mock/services/heattotosca/VMInterfaceToNettworkConnection/sharedAddOn/expectedoutputfiles";
+ initTranslatorAndTranslate();
+ testTranslation();
+ }
+
+ //todo - remove the ignore once we will support VMI as sub port
+ @Ignore
+ @Test
+ public void testTranslateVlanToNetSharedAddOnConnection() throws Exception {
+ inputFilesPath = "/mock/services/heattotosca/VlanToNetConnection/sharedAddOn/inputfiles";
+ outputFilesPath =
+ "/mock/services/heattotosca/VlanToNetConnection/sharedAddOn/expectedoutputfiles";
+ initTranslatorAndTranslate();
+ testTranslation();
+ }
+
+ @Test
+ public void testTranslateVMIToNetArrayParameterConnection() throws Exception {
+ inputFilesPath = "/mock/services/heattotosca/VMInterfaceToNettworkConnection/nestedArrayParam/inputfiles";
+ outputFilesPath =
+ "/mock/services/heattotosca/VMInterfaceToNettworkConnection/nestedArrayParam/expectedoutputfiles";
+ initTranslatorAndTranslate();
+ testTranslation();
+ }
+
+}
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/DependsOnResourceBaseTranslationlTest.java b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/resourcetranslation/DependsOnResourceBaseTranslationlTest.java
new file mode 100644
index 0000000000..117dd0cd59
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/resourcetranslation/DependsOnResourceBaseTranslationlTest.java
@@ -0,0 +1,148 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.openecomp.sdc.translator.services.heattotosca.impl.resourcetranslation;
+
+import static org.openecomp.sdc.translator.services.heattotosca.buildconsolidationdata.TestConstants.TEST_DEPENDS_ON_INVALID_DEPENDENCY_CANDIDATE;
+import static org.openecomp.sdc.translator.services.heattotosca.buildconsolidationdata.TestConstants.TEST_DEPENDS_ON_MULTIPLE_COMPUTE;
+import static org.openecomp.sdc.translator.services.heattotosca.buildconsolidationdata.TestConstants.TEST_DEPENDS_ON_NODES_CONNECTED_IN;
+import static org.openecomp.sdc.translator.services.heattotosca.buildconsolidationdata.TestConstants.TEST_DEPENDS_ON_NODES_CONNECTED_IN_AND_OUT;
+import static org.openecomp.sdc.translator.services.heattotosca.buildconsolidationdata.TestConstants.TEST_DEPENDS_ON_NODES_CONNECTED_OUT;
+import static org.openecomp.sdc.translator.services.heattotosca.buildconsolidationdata.TestConstants.TEST_DEPENDS_ON_NODE_TEMPLATE_TRANSLATION_ORDER_INVARIANCE;
+import static org.openecomp.sdc.translator.services.heattotosca.buildconsolidationdata.TestConstants.TEST_DEPENDS_ON_NO_DEPENDENCY;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.openecomp.sdc.translator.services.heattotosca.buildconsolidationdata.ConsolidationDataValidationType;
+
+import java.io.IOException;
+
+
+public class DependsOnResourceBaseTranslationlTest extends BaseResourceTranslationTest {
+ @Override
+ @Before
+ public void setUp() throws IOException {
+ // do not delete this function. it prevents the superclass setup from running
+ }
+
+ @Test
+ public void testTranslate() throws Exception {
+ inputFilesPath = "/mock/services/heattotosca/baseResourceTranslation/inputfiles";
+ outputFilesPath = "/mock/services/heattotosca/baseResourceTranslation/expectedoutputfiles";
+ initTranslatorAndTranslate();
+ testTranslation();
+ }
+
+ @Test
+ public void testDependsOnConsolidationNodesConnectedOut() throws Exception {
+ inputFilesPath = "/mock/services/heattotosca/buildconsolidationdata/dependsonresource" +
+ "/nodesConnectedOut/inputfiles";
+ outputFilesPath = "/mock/services/heattotosca/buildconsolidationdata/dependsonresource" +
+ "/nodesConnectedOut/expectedoutputfiles";
+ initTranslatorAndTranslate();
+ testTranslation();
+ validateComputeTemplateConsolidationData(ConsolidationDataValidationType.VALIDATE_DEPENDS_ON,
+ TEST_DEPENDS_ON_NODES_CONNECTED_OUT);
+ }
+
+ @Test
+ public void testDependsOnConsolidationNodesConnectedIn() throws Exception {
+ inputFilesPath = "/mock/services/heattotosca/buildconsolidationdata/dependsonresource" +
+ "/nodesConnectedIn/inputfiles";
+ outputFilesPath = "/mock/services/heattotosca/buildconsolidationdata/dependsonresource" +
+ "/nodesConnectedIn/expectedoutputfiles";
+ initTranslatorAndTranslate();
+ testTranslation();
+ validateComputeTemplateConsolidationData(ConsolidationDataValidationType.VALIDATE_DEPENDS_ON,
+ TEST_DEPENDS_ON_NODES_CONNECTED_IN);
+ }
+
+ @Test
+ public void testDependsOnConsolidationNodesConnectedInAndOut() throws Exception {
+ inputFilesPath = "/mock/services/heattotosca/buildconsolidationdata/dependsonresource" +
+ "/nodesConnectedInOut/inputfiles";
+ outputFilesPath = "/mock/services/heattotosca/buildconsolidationdata/dependsonresource" +
+ "/nodesConnectedInOut/expectedoutputfiles";
+ initTranslatorAndTranslate();
+ testTranslation();
+ validateComputeTemplateConsolidationData(ConsolidationDataValidationType.VALIDATE_DEPENDS_ON,
+ TEST_DEPENDS_ON_NODES_CONNECTED_IN_AND_OUT);
+ }
+
+ @Test
+ public void testDependsOnConsolidationNoDependency() throws Exception {
+ inputFilesPath = "/mock/services/heattotosca/buildconsolidationdata/dependsonresource" +
+ "/noDependency/inputfiles";
+ outputFilesPath = "/mock/services/heattotosca/buildconsolidationdata/dependsonresource" +
+ "/noDependency/expectedoutputfiles";
+ initTranslatorAndTranslate();
+ testTranslation();
+ validateComputeTemplateConsolidationData(ConsolidationDataValidationType.VALIDATE_DEPENDS_ON,
+ TEST_DEPENDS_ON_NO_DEPENDENCY);
+ }
+
+ @Test
+ public void testDependsOnConsolidationInvalidDependencyCandidate() throws Exception {
+ inputFilesPath = "/mock/services/heattotosca/buildconsolidationdata/dependsonresource" +
+ "/noDependency/inputfiles";
+ outputFilesPath = "/mock/services/heattotosca/buildconsolidationdata/dependsonresource" +
+ "/noDependency/expectedoutputfiles";
+ initTranslatorAndTranslate();
+ testTranslation();
+ validateComputeTemplateConsolidationData(ConsolidationDataValidationType.VALIDATE_DEPENDS_ON,
+ TEST_DEPENDS_ON_INVALID_DEPENDENCY_CANDIDATE);
+ }
+
+ @Test
+ public void testDependsOnConsolidationMultipleCompute() throws Exception {
+ inputFilesPath = "/mock/services/heattotosca/buildconsolidationdata/dependsonresource" +
+ "/multiplecompute/inputfiles";
+ outputFilesPath = "/mock/services/heattotosca/buildconsolidationdata/dependsonresource/multiplecompute/expectedoutputfiles";
+ initTranslatorAndTranslate();
+ testTranslation();
+ validateComputeTemplateConsolidationData(ConsolidationDataValidationType.VALIDATE_DEPENDS_ON,
+ TEST_DEPENDS_ON_MULTIPLE_COMPUTE);
+ }
+
+ @Test
+ public void testDependsOnNodeTemplateTranslationOrderInvariance() throws Exception {
+ //Tests that the resource dependency is independent of the order of resource translation
+ inputFilesPath = "/mock/services/heattotosca/buildconsolidationdata/dependsonresource" +
+ "/translationorderinvariance/inputfiles";
+ outputFilesPath = "/mock/services/heattotosca/buildconsolidationdata/dependsonresource" +
+ "/translationorderinvariance/expectedoutputfiles";
+ initTranslatorAndTranslate();
+ testTranslation();
+ validateComputeTemplateConsolidationData(ConsolidationDataValidationType.VALIDATE_DEPENDS_ON,
+ TEST_DEPENDS_ON_NODE_TEMPLATE_TRANSLATION_ORDER_INVARIANCE);
+ }
+
+ @Test
+ public void testDependsOnRemoveDependencyForInvalidCandidates() throws Exception {
+ //Tests the deletion of dependencies of Compute->Compute, Compute->Port, Port->Port,
+ // Port->Compute from the original tosca data model
+ inputFilesPath = "/mock/services/heattotosca/buildconsolidationdata/dependsonresource" +
+ "/removeInvalidDependencyFromTosca/inputfiles";
+ outputFilesPath = "/mock/services/heattotosca/buildconsolidationdata/dependsonresource" +
+ "/removeInvalidDependencyFromTosca/expectedoutputfiles";
+ initTranslatorAndTranslate();
+ testTranslation();
+ }
+}
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/MultipleHeatTranslationTest.java b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/resourcetranslation/MultipleHeatTranslationTest.java
new file mode 100644
index 0000000000..eae9d5877a
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/resourcetranslation/MultipleHeatTranslationTest.java
@@ -0,0 +1,52 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.openecomp.sdc.translator.services.heattotosca.impl.resourcetranslation;
+
+import org.junit.Before;
+import org.junit.Test;
+
+import java.io.IOException;
+
+
+public class MultipleHeatTranslationTest extends BaseResourceTranslationTest {
+
+ @Override
+ @Before
+ public void setUp() throws IOException {
+ // do not delete this function. it prevents the superclass setup from running
+ }
+
+ @Test
+ public void testTranslateBaseHeats() throws Exception {
+ inputFilesPath = "/mock/multiHeat/allHeatsAreBase/inputs";
+ outputFilesPath = "/mock/multiHeat/allHeatsAreBase/expectedOutput/";
+ initTranslatorAndTranslate();
+ testTranslation();
+ }
+
+ @Test
+ public void testTranslateOneOutOfFourFilesIsNotBase() throws Exception {
+ inputFilesPath = "/mock/multiHeat/referencedHeatResources/inputs";
+ outputFilesPath = "/mock/multiHeat/referencedHeatResources/expectedOutput/";
+ initTranslatorAndTranslate();
+ testTranslation();
+ }
+}
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/NovaToVolResourceConnectionTest.java b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/resourcetranslation/NovaToVolResourceConnectionTest.java
index 93a8668a2f..fe6d68aa1b 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/NovaToVolResourceConnectionTest.java
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/resourcetranslation/NovaToVolResourceConnectionTest.java
@@ -1,14 +1,31 @@
-package org.openecomp.sdc.translator.services.heattotosca.impl;
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.openecomp.sdc.translator.services.heattotosca.impl.resourcetranslation;
import org.junit.Before;
import org.junit.Test;
import java.io.IOException;
-/**
- * @author avrahamg
- * @since July 26, 2016
- */
+
public class NovaToVolResourceConnectionTest extends BaseResourceTranslationTest {
@Override
@Before
@@ -17,10 +34,10 @@ public class NovaToVolResourceConnectionTest extends BaseResourceTranslationTest
}
@Test
- public void testNovaToVolumeConnectionMultiConnection() throws Exception {
- inputFilesPath = "/mock/services/heattotosca/novatovolumeconnection/multiconnection/inputfiles";
+ public void testNovaToVolumeConnectionSharedAddOnConnection() throws Exception {
+ inputFilesPath = "/mock/services/heattotosca/novatovolumeconnection/sharedAddOn/inputfiles";
outputFilesPath =
- "/mock/services/heattotosca/novatovolumeconnection/multiconnection/expectedoutputfiles";
+ "/mock/services/heattotosca/novatovolumeconnection/sharedAddOn/expectedoutputfiles";
initTranslatorAndTranslate();
testTranslation();
}
@@ -45,6 +62,7 @@ public class NovaToVolResourceConnectionTest extends BaseResourceTranslationTest
"/mock/services/heattotosca/novatovolumeconnection/nestednotconnected/expectedoutputfiles";
initTranslatorAndTranslate();
testTranslation();
+ validateSubsMappingInConsolidationData();
}
@Test
@@ -55,6 +73,7 @@ public class NovaToVolResourceConnectionTest extends BaseResourceTranslationTest
"/mock/services/heattotosca/novatovolumeconnection/nestedconnection/expectedoutputfiles";
initTranslatorAndTranslate();
testTranslation();
+ validateSubsMappingInConsolidationData();
}
@Test
@@ -65,6 +84,7 @@ public class NovaToVolResourceConnectionTest extends BaseResourceTranslationTest
"/mock/services/heattotosca/novatovolumeconnection/sharednestedconnection/expectedoutputfiles";
initTranslatorAndTranslate();
testTranslation();
+ validateSubsMappingInConsolidationData();
}
@Test
@@ -76,6 +96,7 @@ public class NovaToVolResourceConnectionTest extends BaseResourceTranslationTest
"/mock/services/heattotosca/novatovolumeconnection/sharednestednotconnected/expectedoutputfiles";
initTranslatorAndTranslate();
testTranslation();
+ validateSubsMappingInConsolidationData();
}
@Test
@@ -86,6 +107,42 @@ public class NovaToVolResourceConnectionTest extends BaseResourceTranslationTest
"/mock/services/heattotosca/novatovolumeconnection/innernestedconnection/expectedoutputfiles";
initTranslatorAndTranslate();
testTranslation();
+ validateSubsMappingInConsolidationData();
+ }
+
+ @Test
+ public void testTranslateNovaToVolumeNestedMultiLevelConnection() throws Exception {
+ inputFilesPath =
+ "/mock/services/heattotosca/novatovolumeconnection/nestedMultiLevels/inputfiles";
+ outputFilesPath =
+ "/mock/services/heattotosca/novatovolumeconnection/nestedMultiLevels/expectedoutputfiles";
+ initTranslatorAndTranslate();
+ testTranslation();
+ validateSubsMappingInConsolidationData();
}
-} \ No newline at end of file
+ @Test
+ public void testTranslateNovaToVolumeSharedNestedMultiLevelConnection() throws Exception {
+ inputFilesPath =
+ "/mock/services/heattotosca/novatovolumeconnection/sharedNestedMultiLevels/inputfiles";
+ outputFilesPath =
+ "/mock/services/heattotosca/novatovolumeconnection/sharedNestedMultiLevels/expectedoutputfiles";
+ initTranslatorAndTranslate();
+ testTranslation();
+ validateSubsMappingInConsolidationData();
+ }
+
+ @Test
+ public void testTranslateNovaToVolumeInnerHeatVolumeNestedMultiLevelConnection()
+ throws Exception {
+ inputFilesPath =
+ "/mock/services/heattotosca/novatovolumeconnection/innerHeatVolNestedMultiLevel/inputfiles";
+ outputFilesPath =
+ "/mock/services/heattotosca/novatovolumeconnection/innerHeatVolNestedMultiLevel/expectedoutputfiles";
+ initTranslatorAndTranslate();
+ testTranslation();
+ validateSubsMappingInConsolidationData();
+ }
+
+
+}
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/PortToContrailV2VirtualNetworkResourceConnectionTest.java b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/resourcetranslation/PortToContrailV2VirtualNetworkResourceConnectionTest.java
new file mode 100644
index 0000000000..bc8c3385f1
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/resourcetranslation/PortToContrailV2VirtualNetworkResourceConnectionTest.java
@@ -0,0 +1,66 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.openecomp.sdc.translator.services.heattotosca.impl.resourcetranslation;
+
+import org.junit.Before;
+import org.junit.Test;
+
+import java.io.IOException;
+
+
+public class PortToContrailV2VirtualNetworkResourceConnectionTest
+ extends BaseResourceTranslationTest {
+ @Override
+ @Before
+ public void setUp() throws IOException {
+ // do not delete this function. it prevents the superclass setup from running
+ }
+
+ @Test
+ public void testPortToNetNestedConnection() throws Exception {
+ inputFilesPath =
+ "/mock/services/heattotosca/porttocontrailv2virtualnetworkconnection/nested/inputfiles";
+ outputFilesPath =
+ "/mock/services/heattotosca/porttocontrailv2virtualnetworkconnection/nested/expectedoutputfiles";
+ initTranslatorAndTranslate();
+ testTranslation();
+ }
+
+ @Test
+ public void testPortToSharedNetNestedConnection() throws Exception {
+ inputFilesPath =
+ "/mock/services/heattotosca/porttocontrailv2virtualnetworkconnection/shared/inputfiles";
+ outputFilesPath =
+ "/mock/services/heattotosca/porttocontrailv2virtualnetworkconnection/shared/expectedoutputfiles";
+ initTranslatorAndTranslate();
+ testTranslation();
+ }
+
+ @Test
+ public void testPortToNetSharedAddOnConnection() throws Exception {
+ inputFilesPath =
+ "/mock/services/heattotosca/porttocontrailv2virtualnetworkconnection/sharedAddOn/inputfiles";
+ outputFilesPath =
+ "/mock/services/heattotosca/porttocontrailv2virtualnetworkconnection/sharedAddOn/expectedoutputfiles";
+ initTranslatorAndTranslate();
+ testTranslation();
+ }
+}
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/PortToNetResourceConnectionTest.java b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/resourcetranslation/PortToNetResourceConnectionTest.java
new file mode 100644
index 0000000000..828904e545
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/resourcetranslation/PortToNetResourceConnectionTest.java
@@ -0,0 +1,78 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.openecomp.sdc.translator.services.heattotosca.impl.resourcetranslation;
+
+import org.junit.Before;
+import org.junit.Test;
+
+import java.io.IOException;
+
+
+public class PortToNetResourceConnectionTest extends BaseResourceTranslationTest {
+ @Override
+ @Before
+ public void setUp() throws IOException {
+ // do not delete this function. it prevents the superclass setup from running
+ }
+
+ @Test
+ public void testTranslatePortToNetNestedConnection() throws Exception {
+ inputFilesPath = "/mock/services/heattotosca/porttonetconnection/nested/inputfiles";
+ outputFilesPath = "/mock/services/heattotosca/porttonetconnection/nested/expectedoutputfiles";
+ initTranslatorAndTranslate();
+ testTranslation();
+ }
+
+ @Test
+ public void testTranslatePortToNetNestedMultiLevelsConnection() throws Exception {
+ inputFilesPath = "/mock/services/heattotosca/porttonetconnection/nestedMultiLevels/inputfiles";
+ outputFilesPath =
+ "/mock/services/heattotosca/porttonetconnection/nestedMultiLevels/expectedoutputfiles";
+ initTranslatorAndTranslate();
+ testTranslation();
+ }
+
+ @Test
+ public void testTranslatePortToNetSharedNestedMultiLevelsConnection() throws Exception {
+ inputFilesPath =
+ "/mock/services/heattotosca/porttonetconnection/sharedNestedMultiLevels/inputfiles";
+ outputFilesPath =
+ "/mock/services/heattotosca/porttonetconnection/sharedNestedMultiLevels/expectedoutputfiles";
+ initTranslatorAndTranslate();
+ testTranslation();
+ }
+
+ @Test
+ public void testTranslatePortToSharedNetNestedConnection() throws Exception {
+ inputFilesPath = "/mock/services/heattotosca/porttonetconnection/shared/inputfiles";
+ outputFilesPath = "/mock/services/heattotosca/porttonetconnection/shared/expectedoutputfiles";
+ initTranslatorAndTranslate();
+ testTranslation();
+ }
+
+ @Test
+ public void testTranslatePortToNetSharedAddOnConnection() throws Exception {
+ inputFilesPath = "/mock/services/heattotosca/porttonetconnection/sharedAddOn/inputfiles";
+ outputFilesPath = "/mock/services/heattotosca/porttonetconnection/sharedAddOn/expectedoutputfiles";
+ initTranslatorAndTranslate();
+ testTranslation();
+ }
+}
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/ResourceTranslationCinderVolumeAttachmentImplTest.java b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/resourcetranslation/ResourceTranslationCinderVolumeAttachmentImplTest.java
new file mode 100644
index 0000000000..786b613d0f
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/resourcetranslation/ResourceTranslationCinderVolumeAttachmentImplTest.java
@@ -0,0 +1,85 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.openecomp.sdc.translator.services.heattotosca.impl.resourcetranslation;
+
+import static org.openecomp.sdc.translator.services.heattotosca.buildconsolidationdata.TestConstants.TEST_VOLUME_NEGATIVE;
+import static org.openecomp.sdc.translator.services.heattotosca.buildconsolidationdata.TestConstants.TEST_VOLUME_POSITIVE;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.openecomp.sdc.translator.services.heattotosca.buildconsolidationdata.ConsolidationDataValidationType;
+
+import java.io.IOException;
+
+
+public class ResourceTranslationCinderVolumeAttachmentImplTest extends BaseResourceTranslationTest {
+
+ @Override
+ @Before
+ public void setUp() throws IOException {
+ // do not delete this function. it prevents the superclass setup from running
+ }
+
+ @Test
+ public void testTranslateAllResourcesInOneFile() throws Exception {
+ inputFilesPath = "/mock/services/heattotosca/vol_attach/volume_and_attach_one_file/inputfiles";
+ outputFilesPath =
+ "/mock/services/heattotosca/vol_attach/volume_and_attach_one_file/expectedoutputfiles";
+ initTranslatorAndTranslate();
+ testTranslation();
+ validateComputeTemplateConsolidationData(ConsolidationDataValidationType.VALIDATE_VOLUME,
+ TEST_VOLUME_POSITIVE);
+ }
+
+ @Test
+ public void testVolFileIsNestedInMainHeatFile() throws Exception {
+ inputFilesPath =
+ "/mock/services/heattotosca/vol_attach/volume_file_nested_in_main_file_in_manifest/inputfiles";
+ outputFilesPath =
+ "/mock/services/heattotosca/vol_attach/volume_file_nested_in_main_file_in_manifest/expectedoutputfiles";
+ initTranslatorAndTranslate();
+ testTranslation();
+ validateComputeTemplateConsolidationData(ConsolidationDataValidationType.VALIDATE_VOLUME,
+ TEST_VOLUME_POSITIVE);
+ }
+
+ @Test
+ public void testVolFileAsDataOfNested() throws Exception {
+ inputFilesPath = "/mock/services/heattotosca/vol_attach/nested_with_inner_vol/inputfiles";
+ outputFilesPath = "/mock/services/heattotosca/vol_attach/nested_with_inner_vol/out";
+ initTranslatorAndTranslate();
+ testTranslation();
+ validateComputeTemplateConsolidationData(ConsolidationDataValidationType.VALIDATE_VOLUME,
+ TEST_VOLUME_POSITIVE);
+ }
+
+ @Test
+ public void testVolFileIsParallelToMainHeatFile() throws Exception {
+ inputFilesPath =
+ "/mock/services/heattotosca/vol_attach/volume_file_parallel_to_main_file/inputfiles";
+ outputFilesPath =
+ "/mock/services/heattotosca/vol_attach/volume_file_parallel_to_main_file/expectedoutputfiles";
+ initTranslatorAndTranslate();
+ testTranslation();
+ validateComputeTemplateConsolidationData(ConsolidationDataValidationType.VALIDATE_VOLUME,
+ TEST_VOLUME_NEGATIVE);
+ }
+}
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/ResourceTranslationCinderVolumeImplTest.java b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/resourcetranslation/ResourceTranslationCinderVolumeImplTest.java
new file mode 100644
index 0000000000..6afb3cf5bd
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/resourcetranslation/ResourceTranslationCinderVolumeImplTest.java
@@ -0,0 +1,36 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.openecomp.sdc.translator.services.heattotosca.impl.resourcetranslation;
+
+import org.junit.Test;
+
+
+public class ResourceTranslationCinderVolumeImplTest extends BaseResourceTranslationTest {
+ public ResourceTranslationCinderVolumeImplTest() {
+ inputFilesPath = "/mock/services/heattotosca/cinder_volume_translation/inputfiles";
+ outputFilesPath = "/mock/services/heattotosca/cinder_volume_translation/expectedoutputfiles";
+ }
+
+ @Test
+ public void testTranslate() throws Exception {
+ testTranslation();
+ }
+}
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/ResourceTranslationContrailServiceInstanceImplTest.java b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/resourcetranslation/ResourceTranslationContrailServiceInstanceImplTest.java
new file mode 100644
index 0000000000..723766ba78
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/resourcetranslation/ResourceTranslationContrailServiceInstanceImplTest.java
@@ -0,0 +1,99 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.openecomp.sdc.translator.services.heattotosca.impl.resourcetranslation;
+
+import org.junit.Before;
+import org.junit.Test;
+
+import java.io.IOException;
+
+
+public class ResourceTranslationContrailServiceInstanceImplTest
+ extends BaseResourceTranslationTest {
+
+ @Override
+ @Before
+ public void setUp() throws IOException {
+ // do not delete this function. it prevents the superclass setup from running
+ }
+
+ @Test
+ public void testTranslateOneServiceInstance() throws Exception {
+ inputFilesPath =
+ "/mock/services/heattotosca/contrail2serviceinstance/oneServiceInstance/inputfiles";
+ outputFilesPath =
+ "/mock/services/heattotosca/contrail2serviceinstance/oneServiceInstance/expectedoutputfiles";
+ initTranslatorAndTranslate();
+ testTranslation();
+ }
+
+ @Test
+ public void testTranslateDiffServiceTemplate() throws Exception {
+ inputFilesPath =
+ "/mock/services/heattotosca/contrail2serviceinstance/diffServiceTemplate/inputfiles";
+ outputFilesPath =
+ "/mock/services/heattotosca/contrail2serviceinstance/diffServiceTemplate/expectedoutputfiles";
+ initTranslatorAndTranslate();
+ testTranslation();
+ }
+
+ @Test
+ public void testTranslateSharedNetworkMulti() throws Exception {
+ inputFilesPath =
+ "/mock/services/heattotosca/contrail2serviceinstance/sharedNetworkMulti/inputfiles";
+ outputFilesPath =
+ "/mock/services/heattotosca/contrail2serviceinstance/sharedNetworkMulti/expectedoutputfiles";
+ initTranslatorAndTranslate();
+ testTranslation();
+ }
+
+ @Test
+ public void testTranslateSameServiceTemplate() throws Exception {
+ inputFilesPath =
+ "/mock/services/heattotosca/contrail2serviceinstance/sameServiceTemplate/inputfiles";
+ outputFilesPath =
+ "/mock/services/heattotosca/contrail2serviceinstance/sameServiceTemplate/expectedoutputfiles";
+ initTranslatorAndTranslate();
+ testTranslation();
+ }
+
+
+ @Test
+ public void testTranslateConnectToNetworkMultiNested() throws Exception {
+ inputFilesPath =
+ "/mock/services/heattotosca/contrail2serviceinstance/connectToNetworkMultiNested/inputfiles";
+ outputFilesPath =
+ "/mock/services/heattotosca/contrail2serviceinstance/connectToNetworkMultiNested/expectedoutputfiles";
+ initTranslatorAndTranslate();
+ testTranslation();
+ }
+
+ @Test
+ public void testTranslateConnectToSharedNetworkMultiNested() throws Exception {
+ inputFilesPath =
+ "/mock/services/heattotosca/contrail2serviceinstance/connectToNetworkSharedMultiNested/inputfiles";
+ outputFilesPath =
+ "/mock/services/heattotosca/contrail2serviceinstance/connectToNetworkSharedMultiNested/expectedoutputfiles";
+ initTranslatorAndTranslate();
+ testTranslation();
+ }
+
+}
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/ResourceTranslationContrailV2Test.java b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/resourcetranslation/ResourceTranslationContrailV2Test.java
index e4e1ad9216..fe47858727 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/ResourceTranslationContrailV2Test.java
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/resourcetranslation/ResourceTranslationContrailV2Test.java
@@ -1,4 +1,24 @@
-package org.openecomp.sdc.translator.services.heattotosca.impl;
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.openecomp.sdc.translator.services.heattotosca.impl.resourcetranslation;
import org.junit.Before;
import org.junit.Test;
@@ -53,4 +73,4 @@ public class ResourceTranslationContrailV2Test extends BaseResourceTranslationTe
}
-} \ No newline at end of file
+}
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/ResourceTranslationContrailV2VlanSubInterfaceImplTest.java b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/resourcetranslation/ResourceTranslationContrailV2VlanSubInterfaceImplTest.java
new file mode 100644
index 0000000000..796bb82dbd
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/resourcetranslation/ResourceTranslationContrailV2VlanSubInterfaceImplTest.java
@@ -0,0 +1,62 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.openecomp.sdc.translator.services.heattotosca.impl.resourcetranslation;
+
+import org.junit.Before;
+import org.junit.Ignore;
+import org.junit.Test;
+
+import java.io.IOException;
+
+/**
+ * @author SHIRIA
+ * @since December 04, 2016.
+ */
+public class ResourceTranslationContrailV2VlanSubInterfaceImplTest extends
+ BaseResourceTranslationTest {
+ @Override
+ @Before
+ public void setUp() throws IOException {
+ // do not delete this function. it prevents the superclass setup from running
+ }
+
+ //todo - remove the ignore once we will support VMI as sub port
+ @Ignore
+ @Test
+ public void testTranslateVlanSubInterfaceWithGetResource() throws Exception {
+ inputFilesPath = "/mock/services/heattotosca/contrailv2Vlan/oneInterface/inputfiles";
+ outputFilesPath = "/mock/services/heattotosca/contrailv2Vlan/oneInterface/expectedoutputfiles";
+ initTranslatorAndTranslate();
+ testTranslation();
+ }
+
+ //todo - remove the ignore once we will support VMI as sub port
+ @Ignore
+ @Test
+ public void testTranslateVlanSubInterfaceWithListOfInterfaceAndNetworks() throws Exception {
+ inputFilesPath = "/mock/services/heattotosca/contrailv2Vlan/listInterface/inputfiles";
+ outputFilesPath =
+ "/mock/services/heattotosca/contrailv2Vlan/listInterface/expectedoutputfiles";
+ initTranslatorAndTranslate();
+ testTranslation();
+ }
+
+}
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/ResourceTranslationContrailV2VmInterfaceImplTest.java b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/resourcetranslation/ResourceTranslationContrailV2VmInterfaceImplTest.java
new file mode 100644
index 0000000000..3e69ed17c0
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/resourcetranslation/ResourceTranslationContrailV2VmInterfaceImplTest.java
@@ -0,0 +1,113 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.openecomp.sdc.translator.services.heattotosca.impl.resourcetranslation;
+
+import static org.openecomp.sdc.translator.services.heattotosca.buildconsolidationdata.TestConstants.TEST_CONNECTIVITY_POSITIVE;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.openecomp.sdc.translator.services.heattotosca.buildconsolidationdata.ConsolidationDataValidationType;
+
+import java.io.IOException;
+
+/**
+ * @author Avrahamg
+ * @since August 10, 2016
+ */
+public class ResourceTranslationContrailV2VmInterfaceImplTest extends BaseResourceTranslationTest {
+
+ @Override
+ @Before
+ public void setUp() throws IOException {
+ // do not delete this function. it prevents the superclass setup from running
+ }
+
+ @Test
+ public void testTranslateVMIWithGetResource() throws Exception {
+ inputFilesPath = "/mock/services/heattotosca/contrailv2VMinterface/oneNet/inputfiles";
+ outputFilesPath = "/mock/services/heattotosca/contrailv2VMinterface/oneNet/expectedoutputfiles";
+ initTranslatorAndTranslate();
+ testTranslation();
+ validatePortTemplateConsolidationData(ConsolidationDataValidationType
+ .VALIDATE_CONNECTIVITY, TEST_CONNECTIVITY_POSITIVE);
+ }
+
+ @Test
+ public void testTranslateVMIWithListOfNetworks() throws Exception {
+ inputFilesPath = "/mock/services/heattotosca/contrailv2VMinterface/listNet/inputfiles";
+ outputFilesPath =
+ "/mock/services/heattotosca/contrailv2VMinterface/listNet/expectedoutputfiles";
+ initTranslatorAndTranslate();
+ testTranslation();
+ validatePortTemplateConsolidationData(ConsolidationDataValidationType
+ .VALIDATE_CONNECTIVITY, TEST_CONNECTIVITY_POSITIVE);
+ }
+
+ @Test
+ public void testMacAddressesValueMapOfListWithOneItem() throws IOException {
+ inputFilesPath =
+ "/mock/services/heattotosca/contrailv2VMinterface/macAddressesValueMapOneItem/inputfiles";
+ outputFilesPath =
+ "/mock/services/heattotosca/contrailv2VMinterface/macAddressesValueMapOneItem/expectedoutputfiles";
+ initTranslatorAndTranslate();
+ testTranslation();
+ }
+
+ @Test
+ public void testMacAddressesValueMapOfListWithTwoItems() throws IOException {
+ inputFilesPath =
+ "/mock/services/heattotosca/contrailv2VMinterface/macAddressesValueMapTwoItems/inputfiles";
+ outputFilesPath =
+ "/mock/services/heattotosca/contrailv2VMinterface/macAddressesValueMapTwoItems/expectedoutputfiles";
+ initTranslatorAndTranslate();
+ testTranslation();
+ }
+
+ @Test
+ public void testMacAddressesValueMapOfListWithStaticValue() throws IOException {
+ inputFilesPath =
+ "/mock/services/heattotosca/contrailv2VMinterface/macAddressStaticValue/inputfiles";
+ outputFilesPath =
+ "/mock/services/heattotosca/contrailv2VMinterface/macAddressStaticValue/expectedoutputfiles";
+ initTranslatorAndTranslate();
+ testTranslation();
+ }
+
+ @Test
+ public void testMacAddressesValueNotList() throws IOException {
+ inputFilesPath =
+ "/mock/services/heattotosca/contrailv2VMinterface/macAddressesValueNotAList/inputfiles";
+ outputFilesPath =
+ "/mock/services/heattotosca/contrailv2VMinterface/macAddressesValueNotAList/expectedoutputfiles";
+ initTranslatorAndTranslate();
+ testTranslation();
+ }
+
+ @Test
+ public void testMacAddressesValueInProperForm() throws IOException {
+ inputFilesPath =
+ "/mock/services/heattotosca/contrailv2VMinterface/macAddressesValueInProperForm/inputfiles";
+ outputFilesPath =
+ "/mock/services/heattotosca/contrailv2VMinterface/macAddressesValueInProperForm/expectedoutputfiles";
+ initTranslatorAndTranslate();
+ testTranslation();
+ }
+}
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/ResourceTranslationNeutronPortImplTest.java b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/resourcetranslation/ResourceTranslationNeutronPortImplTest.java
new file mode 100644
index 0000000000..854a2632b3
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/resourcetranslation/ResourceTranslationNeutronPortImplTest.java
@@ -0,0 +1,60 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.openecomp.sdc.translator.services.heattotosca.impl.resourcetranslation;
+
+import static org.openecomp.sdc.translator.services.heattotosca.buildconsolidationdata.TestConstants.TEST_CONNECTIVITY_POSITIVE;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.openecomp.sdc.translator.services.heattotosca.buildconsolidationdata.ConsolidationDataValidationType;
+
+import java.io.IOException;
+
+
+public class ResourceTranslationNeutronPortImplTest extends BaseResourceTranslationTest {
+
+ @Override
+ @Before
+ public void setUp() throws IOException {
+ // do not delete this function. it prevents the superclass setup from running
+ }
+
+ @Test
+ public void testTranslate() throws Exception {
+ inputFilesPath = "/mock/services/heattotosca/neutron_port_translation/inputfiles";
+ outputFilesPath = "/mock/services/heattotosca/neutron_port_translation/expectedoutputfiles";
+ initTranslatorAndTranslate();
+ testTranslation();
+ validatePortTemplateConsolidationData(ConsolidationDataValidationType
+ .VALIDATE_CONNECTIVITY, TEST_CONNECTIVITY_POSITIVE);
+ }
+
+ @Test
+ public void testTranslateSecure() throws Exception {
+ inputFilesPath = "/mock/services/heattotosca/neutron_security_group_translation/inputfiles";
+ outputFilesPath =
+ "/mock/services/heattotosca/neutron_security_group_translation/expectedoutputfiles";
+ initTranslatorAndTranslate();
+ testTranslation();
+ validatePortTemplateConsolidationData(ConsolidationDataValidationType
+ .VALIDATE_CONNECTIVITY, TEST_CONNECTIVITY_POSITIVE);
+ }
+}
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/ResourceTranslationNeutronSecurityGroupImplTest.java b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/resourcetranslation/ResourceTranslationNeutronSecurityGroupImplTest.java
new file mode 100644
index 0000000000..a0766d99ba
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/resourcetranslation/ResourceTranslationNeutronSecurityGroupImplTest.java
@@ -0,0 +1,40 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.openecomp.sdc.translator.services.heattotosca.impl.resourcetranslation;
+
+import org.junit.Test;
+
+
+public class ResourceTranslationNeutronSecurityGroupImplTest extends BaseResourceTranslationTest {
+
+ {
+ inputFilesPath = "/mock/services/heattotosca/neutron_security_group_translation/inputfiles";
+ outputFilesPath =
+ "/mock/services/heattotosca/neutron_security_group_translation/expectedoutputfiles";
+ }
+
+ @Test
+ public void testTranslate() throws Exception {
+ testTranslation();
+ }
+
+
+}
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/ResourceTranslationNovaServerGroupsImplTest.java b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/resourcetranslation/ResourceTranslationNovaServerGroupsImplTest.java
new file mode 100644
index 0000000000..03b9402e01
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/resourcetranslation/ResourceTranslationNovaServerGroupsImplTest.java
@@ -0,0 +1,72 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.openecomp.sdc.translator.services.heattotosca.impl.resourcetranslation;
+
+import static org.openecomp.sdc.translator.services.heattotosca.buildconsolidationdata.TestConstants.TEST_GROUP_POSITIVE;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.openecomp.sdc.translator.services.heattotosca.buildconsolidationdata.ConsolidationDataValidationType;
+
+import java.io.IOException;
+
+
+public class ResourceTranslationNovaServerGroupsImplTest extends BaseResourceTranslationTest {
+
+ @Override
+ @Before
+ public void setUp() throws IOException {
+ // do not delete this function. it prevents the superclass setup from running
+ }
+
+ @Test
+ public void testTranslate() throws Exception {
+ inputFilesPath = "/mock/services/heattotosca/novaservergroups/staticPolicy/inputfiles";
+ outputFilesPath =
+ "/mock/services/heattotosca/novaservergroups/staticPolicy/expectedoutputfiles";
+ initTranslatorAndTranslate();
+ testTranslation();
+ validateComputeTemplateConsolidationData(ConsolidationDataValidationType.VALIDATE_GROUP,
+ TEST_GROUP_POSITIVE);
+ }
+
+ @Test
+ public void testTranslateDynamicPolicy() throws Exception {
+ inputFilesPath = "/mock/services/heattotosca/novaservergroups/dynamicPolicy/inputfiles";
+ outputFilesPath =
+ "/mock/services/heattotosca/novaservergroups/dynamicPolicy/expectedoutputfiles";
+ initTranslatorAndTranslate();
+ testTranslation();
+ validateComputeTemplateConsolidationData(ConsolidationDataValidationType.VALIDATE_GROUP,
+ TEST_GROUP_POSITIVE);
+ }
+
+ @Test
+ public void testTranslateServerGroupShared() throws IOException {
+ inputFilesPath = "/mock/services/heattotosca/novaservergroups/sharedServerGroup/inputfiles";
+ outputFilesPath =
+ "/mock/services/heattotosca/novaservergroups/sharedServerGroup/expectedoutputfiles";
+ initTranslatorAndTranslate();
+ testTranslation();
+ validateComputeTemplateConsolidationData(ConsolidationDataValidationType.VALIDATE_GROUP,
+ TEST_GROUP_POSITIVE);
+ }
+}
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/ResourceTranslationResourceGroupImplTest.java b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/resourcetranslation/ResourceTranslationResourceGroupImplTest.java
index de1b0bfe29..1488edc16e 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/ResourceTranslationResourceGroupImplTest.java
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/resourcetranslation/ResourceTranslationResourceGroupImplTest.java
@@ -1,6 +1,25 @@
-package org.openecomp.sdc.translator.services.heattotosca.impl;
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.openecomp.sdc.translator.services.heattotosca.impl.resourcetranslation;
-import org.openecomp.sdc.common.errors.CoreException;
import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
@@ -10,10 +29,6 @@ import org.mockito.runners.MockitoJUnitRunner;
import java.io.IOException;
-/**
- * @author shiria
- * @since July 21, 2016.
- */
@RunWith(MockitoJUnitRunner.class)
public class ResourceTranslationResourceGroupImplTest extends BaseResourceTranslationTest {
@Rule
@@ -87,18 +102,6 @@ public class ResourceTranslationResourceGroupImplTest extends BaseResourceTransl
}
@Test
- public void testTranslateResourceGroupInvalidIndexVar() throws Exception {
- thrown.expect(CoreException.class);
- thrown.expectMessage(
- "'index_var' property has invalid value. Actual value is '{get_param=index_parameter}' while 'String' value expected.");
-
- inputFilesPath = "/mock/heat/nested/resourceGroupInvalid/inputs";
- outputFilesPath = "/mock/heat/nested/resourceGroupInvalid/expectedoutputfiles";
- initTranslatorAndTranslate();
- testTranslation();
- }
-
- @Test
public void testTranslateMDNS() throws Exception {
inputFilesPath = "/mock/heat/nested/resourceGroupMDNS/inputs";
outputFilesPath = "/mock/heat/nested/resourceGroupMDNS/expectedoutputfiles";
@@ -107,4 +110,4 @@ public class ResourceTranslationResourceGroupImplTest extends BaseResourceTransl
}
-} \ No newline at end of file
+}
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/SecurityGroupToNovaResourceConnectionTest.java b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/resourcetranslation/SecurityGroupToNovaResourceConnectionTest.java
new file mode 100644
index 0000000000..3aa8cf5545
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/resourcetranslation/SecurityGroupToNovaResourceConnectionTest.java
@@ -0,0 +1,44 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.openecomp.sdc.translator.services.heattotosca.impl.resourcetranslation;
+
+import org.junit.Before;
+import org.junit.Test;
+
+import java.io.IOException;
+
+public class SecurityGroupToNovaResourceConnectionTest extends BaseResourceTranslationTest {
+ @Override
+ @Before
+ public void setUp() throws IOException {
+ // do not delete this function. it prevents the superclass setup from running
+ }
+
+ @Test
+ public void testSecurityGroupToPortConnectionAddOnConnection() throws Exception {
+ inputFilesPath = "/mock/services/heattotosca/securityGroupToNovaAddOn/inputfiles";
+ outputFilesPath =
+ "/mock/services/heattotosca/securityGroupToNovaAddOn/expectedoutputfiles";
+ initTranslatorAndTranslate();
+ testTranslation();
+ }
+
+}
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/SecurityRulesToPortResourceConnectionTest.java b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/resourcetranslation/SecurityRulesToPortResourceConnectionTest.java
new file mode 100644
index 0000000000..724f6247af
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/resourcetranslation/SecurityRulesToPortResourceConnectionTest.java
@@ -0,0 +1,109 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.openecomp.sdc.translator.services.heattotosca.impl.resourcetranslation;
+
+import static org.openecomp.sdc.translator.services.heattotosca.buildconsolidationdata.ConsolidationDataTestUtil.validateNestedNodesConnectedInSecurityRuleToPort;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.openecomp.sdc.translator.services.heattotosca.buildconsolidationdata.TestConstants;
+
+import java.io.IOException;
+
+
+public class SecurityRulesToPortResourceConnectionTest extends BaseResourceTranslationTest {
+ @Override
+ @Before
+ public void setUp() throws IOException {
+ // do not delete this function. it prevents the superclass setup from running
+ }
+
+ @Test
+ public void testTranslateSecurityRuleToPortNestedConnection() throws Exception {
+ inputFilesPath =
+ "/mock/services/heattotosca/securityrulestoportconnection/securityrulestoportnestedconnection/inputfiles";
+ outputFilesPath =
+ "/mock/services/heattotosca/securityrulestoportconnection/securityrulestoportnestedconnection/expectedoutputfiles";
+ initTranslatorAndTranslate();
+ testTranslation();
+ validateNestedNodesConnectedInSecurityRuleToPort(TestConstants
+ .TEST_SECURITY_RULE_PORT_NESTED_CONNECTION, translationContext);
+ }
+
+ @Test
+ public void testTranslateSecurityRuleToPortSharedPortNestedConnection() throws Exception {
+ inputFilesPath =
+ "/mock/services/heattotosca/securityrulestoportconnection/securityruletosharedportlinking/inputfiles";
+ outputFilesPath =
+ "/mock/services/heattotosca/securityrulestoportconnection/securityruletosharedportlinking/expectedoutputfiles";
+ initTranslatorAndTranslate();
+ testTranslation();
+ validateNestedNodesConnectedInSecurityRuleToPort(TestConstants
+ .TEST_SECURITY_RULE_PORT_NESTED_SHARED_PORT, translationContext);
+ }
+
+ @Test
+ public void testSecurityRuleToPortConnectionSharedAddOnConnection() throws Exception {
+ inputFilesPath =
+ "/mock/services/heattotosca/securityrulestoportconnection/securityRulesToPortSharedAddOn/inputfiles";
+ outputFilesPath =
+ "/mock/services/heattotosca/securityrulestoportconnection/securityRulesToPortSharedAddOn/expectedoutputfiles";
+ initTranslatorAndTranslate();
+ testTranslation();
+ }
+
+ @Test
+ public void testSecurityRuleToPortConnectionNestedGetResource() throws Exception {
+ inputFilesPath =
+ "/mock/services/heattotosca/securityrulestoportconnection/securityRulesToPortGetResource/inputfiles";
+ outputFilesPath =
+ "/mock/services/heattotosca/securityrulestoportconnection/securityRulesToPortGetResource/out";
+ initTranslatorAndTranslate();
+ testTranslation();
+ }
+
+
+ @Test
+ public void testSecurityRuleToPortConnectionNestedMultiLevelsGetResource() throws Exception {
+ inputFilesPath =
+ "/mock/services/heattotosca/securityrulestoportconnection/nestedMultiLevels/inputfiles";
+ outputFilesPath =
+ "/mock/services/heattotosca/securityrulestoportconnection/nestedMultiLevels/expectedoutputfiles";
+ initTranslatorAndTranslate();
+ testTranslation();
+ validateNestedNodesConnectedInSecurityRuleToPort(TestConstants
+ .TEST_SECURITY_RULE_PORT_MULTI_LEVEL_NESTED_CONNECTION, translationContext);
+ }
+
+ @Test
+ public void testSecurityRuleToPortConnectionSharedNestedMultiLevelsGetResource()
+ throws Exception {
+ inputFilesPath =
+ "/mock/services/heattotosca/securityrulestoportconnection/sharedNestedMultiLevels/inputfiles";
+ outputFilesPath =
+ "/mock/services/heattotosca/securityrulestoportconnection/sharedNestedMultiLevels/expectedoutputfiles";
+ initTranslatorAndTranslate();
+ testTranslation();
+ validateNestedNodesConnectedInSecurityRuleToPort(TestConstants
+ .TEST_SECURITY_RULE_PORT_MULTI_LEVEL_NESTED_SHARED_PORT, translationContext);
+ }
+
+}
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/mapping/TranslatorHeatToToscaFunctionConverterTest.java b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/mapping/TranslatorHeatToToscaFunctionConverterTest.java
deleted file mode 100644
index 7fccd6c080..0000000000
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/mapping/TranslatorHeatToToscaFunctionConverterTest.java
+++ /dev/null
@@ -1,68 +0,0 @@
-package org.openecomp.sdc.translator.services.heattotosca.mapping;
-
-import org.openecomp.sdc.heat.datatypes.model.HeatOrchestrationTemplate;
-import org.openecomp.sdc.tosca.datatypes.model.NodeTemplate;
-import org.openecomp.sdc.tosca.services.ToscaConstants;
-import org.openecomp.sdc.tosca.services.ToscaFileOutputService;
-import org.openecomp.sdc.tosca.services.impl.ToscaFileOutputServiceCsarImpl;
-import org.openecomp.sdc.translator.services.heattotosca.TranslationContext;
-import org.openecomp.core.utilities.file.FileUtils;
-import org.junit.Assert;
-import org.junit.Test;
-
-import java.util.HashMap;
-import java.util.List;
-
-public class TranslatorHeatToToscaFunctionConverterTest {
-
- @Test
- public void testGetFileWithExtensionFunction() {
- String functionName = "get_file";
- Object function = "scripFileName.sh";
- String heatFileName = "heatFileName";
- HeatOrchestrationTemplate heatOrchestrationTemplate = new HeatOrchestrationTemplate();
- NodeTemplate nodeTemplate = new NodeTemplate();
- TranslationContext context = new TranslationContext();
-
- testGetToscaFunctionForGetFile(functionName, function, heatFileName, heatOrchestrationTemplate,
- nodeTemplate, context);
- }
-
- @Test
- public void testGetFileWithoutExtensionFunction() {
- String functionName = "get_file";
- Object function = "scripFileName";
- String heatFileName = "heatFileName";
- HeatOrchestrationTemplate heatOrchestrationTemplate = new HeatOrchestrationTemplate();
- NodeTemplate nodeTemplate = new NodeTemplate();
- TranslationContext context = new TranslationContext();
-
- //# route_targets: { "Fn::Split" : [ ",", Ref: route_targets ] }
- testGetToscaFunctionForGetFile(functionName, function, heatFileName, heatOrchestrationTemplate,
- nodeTemplate, context);
- }
-
- private void testGetToscaFunctionForGetFile(String functionName, Object function,
- String heatFileName,
- HeatOrchestrationTemplate heatOrchestrationTemplate,
- NodeTemplate nodeTemplate,
- TranslationContext context) {
- Object result = TranslatorHeatToToscaFunctionConverter
- .getToscaFunction(functionName, function, heatFileName, heatOrchestrationTemplate,
- nodeTemplate, context);
- Assert.assertNotNull(((HashMap) result).get("get_artifact"));
- List artifactParameters = (List) ((HashMap) result).get("get_artifact");
- Assert.assertNotNull(artifactParameters);
- Assert.assertEquals(artifactParameters.size(), 2);
- Assert.assertEquals(artifactParameters.get(0), ToscaConstants.MODELABLE_ENTITY_NAME_SELF);
- Assert.assertEquals(artifactParameters.get(1), ((String) function).split("\\.")[0]);
-
- Assert.assertNotNull(nodeTemplate.getArtifacts());
- Assert.assertNotNull(
- nodeTemplate.getArtifacts().get(FileUtils.getFileWithoutExtention((String) function)));
- ToscaFileOutputService toscaFileOutputService = new ToscaFileOutputServiceCsarImpl();
- Assert.assertEquals(
- nodeTemplate.getArtifacts().get(FileUtils.getFileWithoutExtention((String) function))
- .getFile(), "../" + toscaFileOutputService.getArtifactsFolderName() + "/" + function);
- }
-}