summaryrefslogtreecommitdiffstats
path: root/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test
diff options
context:
space:
mode:
Diffstat (limited to 'openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test')
-rw-r--r--openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/java/org/openecomp/core/converter/impl/pnfd/PnfTransformationEngineParameterizedTest.java152
-rw-r--r--openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/java/org/openecomp/core/converter/impl/pnfd/PnfTransformationEngineTest.java (renamed from openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/java/org/openecomp/core/impl/ToscaSolConverterPnfTest.java)87
-rw-r--r--openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/java/org/openecomp/core/converter/impl/pnfd/PnfdQueryExecutorTest.java229
-rw-r--r--openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/java/org/openecomp/core/converter/impl/pnfd/parser/ConversionDefinitionYamlParserTest.java69
-rw-r--r--openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/java/org/openecomp/core/converter/impl/pnfd/parser/NodeTemplateYamlParserTest.java46
-rw-r--r--openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/java/org/openecomp/core/converter/impl/pnfd/parser/PnfdConversionStrategyYamlParserParametrizedTest.java68
-rw-r--r--openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/java/org/openecomp/core/converter/impl/pnfd/parser/PnfdConversionStrategyYamlParserTest.java53
-rw-r--r--openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/java/org/openecomp/core/impl/ToscaConverterImplTest.java (renamed from openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/java/org/openecomp/core/converter/impl/ToscaConverterImplTest.java)36
-rw-r--r--openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/java/org/openecomp/core/impl/ToscaConvertorDefinitionsTest.java (renamed from openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/java/org/openecomp/core/converter/impl/ToscaConvertorDefinitionsTest.java)37
-rw-r--r--openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/java/org/openecomp/core/impl/ToscaSolConverterPnfMultipleNodeTemplatesTest.java74
-rw-r--r--openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/java/org/openecomp/core/util/TestResourcesUtil.java27
-rw-r--r--openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/java/org/openecomp/core/util/YamlTestUtil.java67
-rw-r--r--openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/model-driven-conversion.yaml69
-rw-r--r--openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/pnfDescriptor/in/pnfDescriptor_withLayerProtocolsAndDuplicatedGetInput.yaml2
-rw-r--r--openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/transformation/conversionDefinition/conversionDefinitionWithReplaceStrategy.yaml7
-rw-r--r--openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/transformation/nodeTemplate/nodeTemplate.yaml7
-rw-r--r--openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/transformation/pnfParseEngine/pnfAndExtCpWithInput/expectedOutput/convertTwoAttributesSameLevel.yaml11
-rw-r--r--openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/transformation/pnfParseEngine/pnfAndExtCpWithInput/expectedOutput/copyListAttribute.yaml8
-rw-r--r--openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/transformation/pnfParseEngine/pnfAndExtCpWithInput/expectedOutput/copyObjectAttribute.yaml6
-rw-r--r--openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/transformation/pnfParseEngine/pnfAndExtCpWithInput/expectedOutput/copyScalarAttribute.yaml5
-rw-r--r--openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/transformation/pnfParseEngine/pnfAndExtCpWithInput/expectedOutput/defaultOutput.yaml2
-rw-r--r--openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/transformation/pnfParseEngine/pnfAndExtCpWithInput/expectedOutput/invalidAndValidAttributeQuery.yaml4
-rw-r--r--openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/transformation/pnfParseEngine/pnfAndExtCpWithInput/expectedOutput/replaceInListAttribute.yaml9
-rw-r--r--openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/transformation/pnfParseEngine/pnfAndExtCpWithInput/expectedOutput/replaceInListAttributeWithNonExistentAndNonExistentFromValues.yaml8
-rw-r--r--openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/transformation/pnfParseEngine/pnfAndExtCpWithInput/expectedOutput/replaceScalarAttributeToList.yaml8
-rw-r--r--openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/transformation/pnfParseEngine/pnfAndExtCpWithInput/expectedOutput/replaceScalarAttributeToObject.yaml6
-rw-r--r--openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/transformation/pnfParseEngine/pnfAndExtCpWithInput/expectedOutput/replaceScalarAttributeToScalar.yaml5
-rw-r--r--openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/transformation/pnfParseEngine/pnfAndExtCpWithInput/pnfAndExtCpWithInput.yaml (renamed from openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/pnfDescriptor/other/pnfDescriptor_PnfAnd2ExtCps.yaml)9
-rw-r--r--openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/transformation/pnfParseEngine/pnfAndExtCpWithInput/transformationDescriptor/attributeQueryWithMoreThanOneAttribute.yaml13
-rw-r--r--openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/transformation/pnfParseEngine/pnfAndExtCpWithInput/transformationDescriptor/convertTwoAttributesSameLevel.yaml32
-rw-r--r--openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/transformation/pnfParseEngine/pnfAndExtCpWithInput/transformationDescriptor/copyListAttribute.yaml17
-rw-r--r--openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/transformation/pnfParseEngine/pnfAndExtCpWithInput/transformationDescriptor/copyObjectAttribute.yaml10
-rw-r--r--openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/transformation/pnfParseEngine/pnfAndExtCpWithInput/transformationDescriptor/copyScalarAttribute.yaml10
-rw-r--r--openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/transformation/pnfParseEngine/pnfAndExtCpWithInput/transformationDescriptor/emptyDescriptor.yaml0
-rw-r--r--openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/transformation/pnfParseEngine/pnfAndExtCpWithInput/transformationDescriptor/invalidAndValidAttributeQuery.yaml16
-rw-r--r--openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/transformation/pnfParseEngine/pnfAndExtCpWithInput/transformationDescriptor/invalidAttributeQuery.yaml11
-rw-r--r--openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/transformation/pnfParseEngine/pnfAndExtCpWithInput/transformationDescriptor/invalidBlock.yaml4
-rw-r--r--openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/transformation/pnfParseEngine/pnfAndExtCpWithInput/transformationDescriptor/invalidBlockQueries.yaml10
-rw-r--r--openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/transformation/pnfParseEngine/pnfAndExtCpWithInput/transformationDescriptor/invalidBlockQuery.yaml6
-rw-r--r--openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/transformation/pnfParseEngine/pnfAndExtCpWithInput/transformationDescriptor/listAsAnAttributeQuery.yaml16
-rw-r--r--openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/transformation/pnfParseEngine/pnfAndExtCpWithInput/transformationDescriptor/noConversions.yaml7
-rw-r--r--openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/transformation/pnfParseEngine/pnfAndExtCpWithInput/transformationDescriptor/pnfAndExtCpWithInput-validBlockButNoQuery.yaml1
-rw-r--r--openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/transformation/pnfParseEngine/pnfAndExtCpWithInput/transformationDescriptor/queryNonExistentLvl.yaml12
-rw-r--r--openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/transformation/pnfParseEngine/pnfAndExtCpWithInput/transformationDescriptor/replaceInListAttribute.yaml19
-rw-r--r--openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/transformation/pnfParseEngine/pnfAndExtCpWithInput/transformationDescriptor/replaceInListAttributeWithNonExistentAndNonExistentFromValues.yaml25
-rw-r--r--openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/transformation/pnfParseEngine/pnfAndExtCpWithInput/transformationDescriptor/replaceInListAttributeWithNonExistentFromValues.yaml19
-rw-r--r--openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/transformation/pnfParseEngine/pnfAndExtCpWithInput/transformationDescriptor/replaceScalarAttributeToList.yaml15
-rw-r--r--openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/transformation/pnfParseEngine/pnfAndExtCpWithInput/transformationDescriptor/replaceScalarAttributeToObject.yaml13
-rw-r--r--openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/transformation/pnfParseEngine/pnfAndExtCpWithInput/transformationDescriptor/replaceScalarAttributeToScalar.yaml12
-rw-r--r--openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/transformation/pnfParseEngine/pnfAndExtCpWithInput/transformationDescriptor/stringAsAnAttributeQuery.yaml10
-rw-r--r--openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/transformation/pnfParseEngine/pnfWithGetInput/expectedOutput/defaultOutput.yaml2
-rw-r--r--openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/transformation/pnfParseEngine/pnfWithGetInput/expectedOutput/fullTransformation.yaml36
-rw-r--r--openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/transformation/pnfParseEngine/pnfWithGetInput/expectedOutput/inputQueryWithMoreThanOneAttribute.yaml21
-rw-r--r--openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/transformation/pnfParseEngine/pnfWithGetInput/expectedOutput/moreThanOneTransformationWithSameBlockQuery.yaml11
-rw-r--r--openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/transformation/pnfParseEngine/pnfWithGetInput/expectedOutput/nodeTemplateQueryWithMoreThanOneAttribute.yaml8
-rw-r--r--openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/transformation/pnfParseEngine/pnfWithGetInput/expectedOutput/wrongGetInputTransformationName.yaml14
-rw-r--r--openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/transformation/pnfParseEngine/pnfWithGetInput/expectedOutput/wrongTransformationBlock.yaml11
-rw-r--r--openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/transformation/pnfParseEngine/pnfWithGetInput/pnfWithGetInput.yaml61
-rw-r--r--openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/transformation/pnfParseEngine/pnfWithGetInput/transformationDescriptor/fullTransformation.yaml84
-rw-r--r--openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/transformation/pnfParseEngine/pnfWithGetInput/transformationDescriptor/inputQueryWithMoreThanOneAttribute.yaml39
-rw-r--r--openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/transformation/pnfParseEngine/pnfWithGetInput/transformationDescriptor/moreThanOneTransformationWithSameBlockQuery.yaml37
-rw-r--r--openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/transformation/pnfParseEngine/pnfWithGetInput/transformationDescriptor/nodeTemplateQueryWithMoreThanOneAttribute.yaml14
-rw-r--r--openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/transformation/pnfParseEngine/pnfWithGetInput/transformationDescriptor/wrongGetInputTransformationName.yaml39
-rw-r--r--openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/transformation/pnfParseEngine/pnfWithGetInput/transformationDescriptor/wrongTransformationBlock.yaml24
-rw-r--r--openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/transformation/strategy/replaceStrategy.yaml3
-rw-r--r--openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/transformation/strategy/strategyMissingStrategyAttribute.yaml2
66 files changed, 1622 insertions, 173 deletions
diff --git a/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/java/org/openecomp/core/converter/impl/pnfd/PnfTransformationEngineParameterizedTest.java b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/java/org/openecomp/core/converter/impl/pnfd/PnfTransformationEngineParameterizedTest.java
new file mode 100644
index 0000000000..e2cbc147ac
--- /dev/null
+++ b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/java/org/openecomp/core/converter/impl/pnfd/PnfTransformationEngineParameterizedTest.java
@@ -0,0 +1,152 @@
+/*
+ * ============LICENSE_START=======================================================
+ * Copyright (C) 2019 Nordix Foundation
+ * ================================================================================
+ * 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.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ * ============LICENSE_END=========================================================
+ */
+
+package org.openecomp.core.converter.impl.pnfd;
+
+import static org.junit.Assert.assertEquals;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.nio.file.Paths;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.List;
+import java.util.Objects;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.Parameterized;
+import org.onap.sdc.tosca.datatypes.model.ServiceTemplate;
+import org.onap.sdc.tosca.services.ToscaExtensionYamlUtil;
+import org.onap.sdc.tosca.services.YamlUtil;
+import org.openecomp.core.converter.ServiceTemplateReaderService;
+import org.openecomp.core.impl.services.ServiceTemplateReaderServiceImpl;
+
+@RunWith(Parameterized.class)
+public class PnfTransformationEngineParameterizedTest {
+
+ private static final String TEST_CASES_PATH = "transformation/pnfParseEngine";
+ private static final String TRANSFORMATION_DESCRIPTOR_FOLDER = "transformationDescriptor";
+ private static final String OUTPUT_FOLDER = "expectedOutput";
+ private static final String DEFAULT_OUTPUT_FILE_NAME = "defaultOutput.yaml";
+
+ private final String inputFileName;
+ private final Path inputFilePath;
+ private final String outputFileName;
+ private final Path outputFilePath;
+ private final String transformationDescriptorFileName;
+ private final Path transformationDescriptorFilePath;
+ private final YamlUtil yamlUtil = new YamlUtil();
+ private final ToscaExtensionYamlUtil toscaExtensionYamlUtil = new ToscaExtensionYamlUtil();
+
+ public PnfTransformationEngineParameterizedTest(final String inputFileName, final Path inputFilePath,
+ final String outputFileName, final Path outputFilePath,
+ final String transformationDescriptorFileName, final Path transformationDescriptorFilePath) {
+ this.inputFileName = inputFileName;
+ this.inputFilePath = inputFilePath;
+ this.outputFileName = outputFileName;
+ this.outputFilePath = outputFilePath;
+ this.transformationDescriptorFileName = transformationDescriptorFileName;
+ this.transformationDescriptorFilePath = transformationDescriptorFilePath;
+ }
+
+
+ @Parameterized.Parameters(name = "{index}: input: {0}, descriptor: {4}, output: {2}")
+ public static Collection input() throws IOException {
+ return Files.list(getPathFromClasspath(TEST_CASES_PATH)).map(path -> {
+ try {
+ return buildTestCase(path);
+ } catch (final IOException e) {
+ return null;
+ }
+ }).filter(Objects::nonNull).flatMap(Collection::stream).collect(Collectors.toList());
+ }
+
+ private static Collection buildTestCase(final Path testCasePath) throws IOException {
+ final Path inputFilePath = Files.list(testCasePath)
+ .filter(path -> path.toFile().getName().endsWith("yaml"))
+ .findAny().orElse(null);
+
+ if (inputFilePath == null) {
+ return Collections.emptyList();
+ }
+ ;
+ final List<Path> transformationDescriptorList;
+ try (final Stream<Path> files = Files.walk(testCasePath.resolve(TRANSFORMATION_DESCRIPTOR_FOLDER))) {
+ transformationDescriptorList = files.filter(path -> Files.isRegularFile(path))
+ .map(path -> Paths.get(TEST_CASES_PATH, testCasePath.getFileName().toString()
+ , TRANSFORMATION_DESCRIPTOR_FOLDER, path.getFileName().toString()))
+ .collect(Collectors.toList());
+ }
+
+ final List<Path> outputList;
+ try (final Stream<Path> files = Files.walk(testCasePath.resolve(OUTPUT_FOLDER))) {
+ outputList = files.filter(path -> Files.isRegularFile(path)).collect(Collectors.toList());
+ }
+ final Path defaultOutput = outputList.stream()
+ .filter(path -> path.toFile().getName().equals(DEFAULT_OUTPUT_FILE_NAME))
+ .findFirst().orElse(null);
+
+ final List<Object[]> testCaseList = new ArrayList<>();
+
+ for (final Path transformationDescriptorPath : transformationDescriptorList) {
+ final Path outputPath = outputList.stream()
+ .filter(path -> path.toFile().getName().equals(transformationDescriptorPath.toFile().getName()))
+ .findFirst().orElse(defaultOutput);
+ if (outputPath != null) {
+ testCaseList.add(new Object[] {inputFilePath.toFile().getName(), inputFilePath,
+ outputPath.toFile().getName(), outputPath,
+ transformationDescriptorPath.toFile().getName(), transformationDescriptorPath});
+ }
+ }
+
+ return testCaseList;
+
+ }
+
+ @Test
+ public void testTopologyTemplateConversions() throws IOException {
+ final byte[] descriptor = Files.readAllBytes(inputFilePath);
+ final ServiceTemplateReaderService serviceTemplateReaderService = new ServiceTemplateReaderServiceImpl(descriptor);
+ final ServiceTemplate serviceTemplate = new ServiceTemplate();
+
+ final PnfdTransformationEngine pnfdTransformationEngine = new PnfdTransformationEngine(serviceTemplateReaderService, serviceTemplate
+ , transformationDescriptorFilePath.toString());
+ pnfdTransformationEngine.transform();
+
+ final String result = yamlUtil.objectToYaml(serviceTemplate);
+ final String expectedResult = parseToYaml(outputFilePath);
+ assertEquals(expectedResult, result);
+ }
+
+ private String parseToYaml(final Path filePath) throws IOException {
+ try (final InputStream inputStream = Files.newInputStream(filePath)) {
+ ServiceTemplate serviceTemplate = toscaExtensionYamlUtil.yamlToObject(inputStream, ServiceTemplate.class);
+ return yamlUtil.objectToYaml(serviceTemplate);
+ }
+ }
+
+ private static Path getPathFromClasspath(final String location) {
+ return Paths.get(Thread.currentThread().getContextClassLoader().getResource(location).getPath());
+ }
+} \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/java/org/openecomp/core/impl/ToscaSolConverterPnfTest.java b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/java/org/openecomp/core/converter/impl/pnfd/PnfTransformationEngineTest.java
index 4d59d6bfe9..280d14888d 100644
--- a/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/java/org/openecomp/core/impl/ToscaSolConverterPnfTest.java
+++ b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/java/org/openecomp/core/converter/impl/pnfd/PnfTransformationEngineTest.java
@@ -1,30 +1,25 @@
/*
- * -
- * * ============LICENSE_START=======================================================
- * * Copyright (C) 2019 Nordix Foundation.
- * * ================================================================================
- * * 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.
- * *
- * * SPDX-License-Identifier: Apache-2.0
- * * ============LICENSE_END=========================================================
+ * ============LICENSE_START=======================================================
+ * Copyright (C) 2019 Nordix Foundation
+ * ================================================================================
+ * 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.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ * ============LICENSE_END=========================================================
*/
-package org.openecomp.core.impl;
+package org.openecomp.core.converter.impl.pnfd;
-import static org.hamcrest.MatcherAssert.assertThat;
-import static org.hamcrest.Matchers.equalTo;
-import static org.junit.Assert.fail;
+import static org.junit.Assert.assertEquals;
import java.io.IOException;
import java.io.InputStream;
@@ -45,57 +40,53 @@ import org.openecomp.core.converter.ServiceTemplateReaderService;
import org.openecomp.core.impl.services.ServiceTemplateReaderServiceImpl;
@RunWith(Parameterized.class)
-public class ToscaSolConverterPnfTest {
+public class PnfTransformationEngineTest {
- private static final String INPUT_DIR = "pnfDescriptor/in/";
- private static final String OUTPUT_DIR = "pnfDescriptor/out/";
+ public static final String INPUT_DIR = "pnfDescriptor/in/";
+ public static final String OUTPUT_DIR = "pnfDescriptor/out/";
private String inputFilename;
- private YamlUtil yamlUtil = new YamlUtil();
- private ToscaExtensionYamlUtil toscaExtensionYamlUtil = new ToscaExtensionYamlUtil();
+ private final YamlUtil yamlUtil = new YamlUtil();
+ private final ToscaExtensionYamlUtil toscaExtensionYamlUtil = new ToscaExtensionYamlUtil();
- public ToscaSolConverterPnfTest(String inputFilename) {
+ public PnfTransformationEngineTest(final String inputFilename) {
this.inputFilename = inputFilename;
}
@Parameterized.Parameters(name = "{index}: {0}")
public static Collection<String> input() throws IOException {
- try (Stream<Path> files = Files.list(getPathFromClasspath(INPUT_DIR))) {
+ try (final Stream<Path> files = Files.list(getPathFromClasspath(INPUT_DIR))) {
return files.map(path -> path.getFileName().toString())
.collect(Collectors.toList());
}
}
@Test
- public void testTopologyTemplateConversions() {
+ public void testTopologyTemplateConversions() throws IOException {
final byte[] descriptor = getInputFileResource(inputFilename);
- final ServiceTemplateReaderService serviceTemplateReaderService =
- new ServiceTemplateReaderServiceImpl(descriptor);
+ final ServiceTemplateReaderService serviceTemplateReaderService = new ServiceTemplateReaderServiceImpl(descriptor);
final ServiceTemplate serviceTemplate = new ServiceTemplate();
- final ToscaSolConverterPnf toscaSolConverter = new ToscaSolConverterPnf();
- toscaSolConverter.convertTopologyTemplate(serviceTemplate, serviceTemplateReaderService);
- final String actualYaml = yamlUtil.objectToYaml(serviceTemplate);
- final String expectedYaml = getExpectedResultFor(inputFilename);
- assertThat("Converted PNF descriptor should be the same as the expected topology template", actualYaml,
- equalTo(expectedYaml));
+ final PnfdTransformationEngine pnfdTransformationEngine = new PnfdTransformationEngine(
+ serviceTemplateReaderService, serviceTemplate);
+ pnfdTransformationEngine.transform();
+
+ final String result = yamlUtil.objectToYaml(serviceTemplate);
+ final String expectedResult = getExpectedResultFor(inputFilename);
+ assertEquals(expectedResult, result);
}
- private String getExpectedResultFor(final String inputFilename) {
+ private String getExpectedResultFor(final String inputFilename) throws IOException {
try (final InputStream inputStream = getOutputFileResourceCorrespondingTo(inputFilename)) {
final ServiceTemplate serviceTemplate = toscaExtensionYamlUtil.yamlToObject(inputStream, ServiceTemplate.class);
return yamlUtil.objectToYaml(serviceTemplate);
- } catch (final IOException e) {
- fail(String.format("Could not find file '%s'", inputFilename));
}
-
- return null;
}
private static Path getPathFromClasspath(final String location) {
return Paths.get(Thread.currentThread().getContextClassLoader().getResource(location).getPath());
}
- private byte[] getInputFileResource(final String inputFilename) {
+ private byte[] getInputFileResource(final String inputFilename) throws IOException {
return getFileResource(INPUT_DIR + inputFilename);
}
@@ -108,14 +99,10 @@ public class ToscaSolConverterPnfTest {
return inputFilename.replace("pnfDescriptor", "topologyTemplate");
}
- private byte[] getFileResource(final String filePath) {
- try (InputStream inputStream = getFileResourceAsInputStream(filePath)) {
+ private byte[] getFileResource(final String filePath) throws IOException {
+ try (final InputStream inputStream = getFileResourceAsInputStream(filePath)) {
return IOUtils.toByteArray(inputStream);
- } catch (final IOException e) {
- fail(String.format("Could not find file '%s'", filePath));
}
-
- return null;
}
private InputStream getFileResourceAsInputStream(final String filePath) {
diff --git a/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/java/org/openecomp/core/converter/impl/pnfd/PnfdQueryExecutorTest.java b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/java/org/openecomp/core/converter/impl/pnfd/PnfdQueryExecutorTest.java
new file mode 100644
index 0000000000..17f60ee43c
--- /dev/null
+++ b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/java/org/openecomp/core/converter/impl/pnfd/PnfdQueryExecutorTest.java
@@ -0,0 +1,229 @@
+/*
+ * ============LICENSE_START=======================================================
+ * Copyright (C) 2019 Nordix Foundation
+ * ================================================================================
+ * 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.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ * ============LICENSE_END=========================================================
+ */
+
+package org.openecomp.core.converter.impl.pnfd;
+
+import static org.hamcrest.Matchers.is;
+import static org.junit.Assert.assertThat;
+
+import com.google.common.collect.ImmutableList;
+import com.google.common.collect.ImmutableMap;
+import com.google.common.collect.ImmutableSet;
+import java.util.HashMap;
+import java.util.LinkedHashMap;
+import java.util.Map;
+import org.junit.Before;
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.rules.ExpectedException;
+import org.openecomp.core.converter.pnfd.exception.QueryOperationNotSupportedException;
+import org.openecomp.core.converter.pnfd.model.ConversionQuery;
+
+public class PnfdQueryExecutorTest {
+ @Rule
+ public ExpectedException expectedExceptionRule = ExpectedException.none();
+
+ private Map<String, Object> yamlToQuery;
+
+ @Before
+ public void setup() {
+ yamlToQuery = new HashMap<>();
+ final LinkedHashMap<String, Object> nodeTemplateMap = new LinkedHashMap<>();
+ yamlToQuery.put("topology_template", nodeTemplateMap);
+ final Map nodeTemplate1 = ImmutableMap.of("nodeTemplate1"
+ , ImmutableMap.of(
+ "type", "tosca.nodes.nfv.PNF",
+ "properties", ImmutableMap.of(
+ "layers_protocol", "",
+ "provider", "Mycompany",
+ "version", "1.0"
+ )
+ )
+ );
+
+ final Map nodeTemplate2 = ImmutableMap.of("nodeTemplate2"
+ , ImmutableMap.of(
+ "type", "tosca.nodes.nfv.PnfExtCp",
+ "properties", ImmutableMap.of(
+ "trunk_mode", "false",
+ "role", "leaf",
+ "description", "External connection point to access this pnf",
+ "layers_protocol", ImmutableList.of("ipv4", "ipv6", "otherProtocol")
+ )
+ )
+ );
+
+ nodeTemplateMap.putAll(nodeTemplate1);
+ nodeTemplateMap.putAll(nodeTemplate2);
+ }
+
+
+ @Test
+ public void queryNestedYaml() {
+ //given
+ final ImmutableMap<String, Object> query =
+ ImmutableMap.of("topology_template",
+ ImmutableMap.of("nodeTemplate2",
+ ImmutableMap.of("type", "tosca.nodes.nfv.PnfExtCp")
+ )
+ );
+ //when
+ final boolean queryResult = PnfdQueryExecutor.find(new ConversionQuery(query), yamlToQuery);
+ //then
+ assertThat("Element should be found", queryResult, is(true));
+ }
+
+ @Test
+ public void andQueryWithPropertiesInSameLevel() {
+ //given
+ final ImmutableMap<String, Object> query =
+ ImmutableMap.of(
+ "topology_template",
+ ImmutableMap.of(
+ "nodeTemplate2",
+ ImmutableMap.of(
+ "type", "tosca.nodes.nfv.PnfExtCp",
+ "properties", ImmutableMap.of(
+ "role", "leaf",
+ "description", "External connection point to access this pnf"
+ )
+ )
+ )
+ );
+ //when
+ final boolean queryResult = PnfdQueryExecutor.find(new ConversionQuery(query), yamlToQuery);
+ //then
+ assertThat("Element should be found", queryResult, is(true));
+ }
+
+ @Test
+ public void andQueryWithPropertiesDifferentLevel() {
+ //given
+ final ImmutableMap<String, Object> query =
+ ImmutableMap.of(
+ "topology_template",
+ ImmutableMap.of(
+ "nodeTemplate2",
+ ImmutableMap.of(
+ "type", "tosca.nodes.nfv.PnfExtCp"
+ ),
+ "nodeTemplate1",
+ ImmutableMap.of(
+ "type", "tosca.nodes.nfv.PNF"
+ )
+ )
+ );
+ //when
+ final boolean queryResult = PnfdQueryExecutor.find(new ConversionQuery(query), yamlToQuery);
+ //then
+ assertThat("Element should be found", queryResult, is(true));
+ }
+
+ @Test
+ public void queryListPropertyNotSupported() {
+ //then
+ expectedExceptionRule.expect(QueryOperationNotSupportedException.class);
+ expectedExceptionRule.expectMessage("Yaml list query is not supported yet");
+ //given query with a list instance
+ final ImmutableMap<String, Object> query =
+ ImmutableMap.of(
+ "topology_template",
+ ImmutableMap.of(
+ "nodeTemplate2",
+ ImmutableMap.of(
+ "type", "tosca.nodes.nfv.PnfExtCp",
+ "properties", ImmutableMap.of(
+ "layers_protocol", ImmutableList.of("ipv4", "ipv6", "otherProtocol")
+ )
+ )
+ )
+ );
+ //when
+ final boolean queryResult = PnfdQueryExecutor.find(new ConversionQuery(query), yamlToQuery);
+ }
+
+ @Test
+ public void queryStartingListPropertyNotSupported() {
+ //then
+ expectedExceptionRule.expect(QueryOperationNotSupportedException.class);
+ expectedExceptionRule.expectMessage("Yaml list query is not supported yet");
+ //given query with a list instance
+ final Object query = ImmutableSet.of("test", "test", "test");
+ //when
+ PnfdQueryExecutor.find(new ConversionQuery(query), yamlToQuery);
+ }
+
+ @Test
+ public void queryWithUnsupportedClassInstance() {
+ //given a query with unsupported class instance
+ final Object query = ImmutableMap.of("topology_template", new Object());
+ //then
+ expectedExceptionRule.expect(QueryOperationNotSupportedException.class);
+ expectedExceptionRule.expectMessage(String.format("Yaml query operation for '%s' is not supported yet", Object.class));
+ //when
+ PnfdQueryExecutor.find(new ConversionQuery(query), yamlToQuery);
+ }
+
+ @Test
+ public void queryAString() {
+ //given a query with string
+ final Object yaml = "query";
+ final Object query = "query";
+ //when
+ final boolean queryResult = PnfdQueryExecutor.find(new ConversionQuery(query), yaml);
+
+ //then
+ assertThat("Element should be found", queryResult, is(true));
+
+ }
+
+ @Test
+ public void queryWithNullPropertyValue() {
+ //given a query with string
+ final Map<String, Object> query1 = new HashMap<>();
+ query1.put("topology_template", null);
+
+ final Map<String, Object> topologyTemplate = new HashMap<>();
+ topologyTemplate.put("nodeTemplate1", null);
+ final Object query2 = ImmutableMap.of("topology_template", topologyTemplate);
+
+ final Map<String, Object> query3 = new HashMap<>();
+ query3.put("topology_template1", null);
+ //when
+ final boolean queryResult1 = PnfdQueryExecutor.find(new ConversionQuery(query1), yamlToQuery);
+ final boolean queryResult2 = PnfdQueryExecutor.find(new ConversionQuery(query2), yamlToQuery);
+ final boolean queryResult3 = PnfdQueryExecutor.find(new ConversionQuery(query3), yamlToQuery);
+ //then
+ assertThat("Element should be found", queryResult1, is(true));
+ assertThat("Element should be found", queryResult2, is(true));
+ assertThat("Element should be found", queryResult3, is(false));
+ }
+
+ @Test
+ public void nullQuery() {
+ //given a null query
+ final Object query = null;
+ //when
+ final boolean queryResult = PnfdQueryExecutor.find(new ConversionQuery(query), yamlToQuery);
+ //then
+ assertThat("Element should be found", queryResult, is(true));
+
+ }
+
+} \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/java/org/openecomp/core/converter/impl/pnfd/parser/ConversionDefinitionYamlParserTest.java b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/java/org/openecomp/core/converter/impl/pnfd/parser/ConversionDefinitionYamlParserTest.java
new file mode 100644
index 0000000000..967081ba0f
--- /dev/null
+++ b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/java/org/openecomp/core/converter/impl/pnfd/parser/ConversionDefinitionYamlParserTest.java
@@ -0,0 +1,69 @@
+/*
+ * ============LICENSE_START=======================================================
+ * Copyright (C) 2019 Nordix Foundation
+ * ================================================================================
+ * 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.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ * ============LICENSE_END=========================================================
+ */
+
+package org.openecomp.core.converter.impl.pnfd.parser;
+
+import static org.hamcrest.Matchers.equalTo;
+import static org.hamcrest.Matchers.notNullValue;
+import static org.junit.Assert.assertThat;
+import static org.junit.Assert.fail;
+import static org.openecomp.core.converter.pnfd.model.PnfTransformationToken.QUERY;
+import static org.openecomp.core.converter.pnfd.model.PnfTransformationToken.TO_NAME;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.Map;
+import org.junit.Test;
+import org.openecomp.core.converter.pnfd.model.ConversionDefinition;
+import org.openecomp.core.converter.pnfd.model.ConversionStrategyType;
+import org.openecomp.core.util.TestResourcesUtil;
+import org.openecomp.core.util.YamlTestUtil;
+
+public class ConversionDefinitionYamlParserTest {
+
+ @Test
+ public void shouldBuildDefinition() {
+ final Map<String, Object> definitionYaml;
+ final String definitionYamlFilePath = "transformation/conversionDefinition/conversionDefinitionWithReplaceStrategy.yaml";
+ try (final InputStream resourceInputStream = TestResourcesUtil.getFileResourceAsStream(definitionYamlFilePath)) {
+ definitionYaml = (Map<String, Object>) YamlTestUtil.read(resourceInputStream);
+ } catch (final IOException e) {
+ fail(String.format("Could not load %s", definitionYamlFilePath));
+ return;
+ }
+ final ConversionDefinition conversionDefinition = ConversionDefinitionYamlParser.parse(definitionYaml);
+ assertConversionDefinition(definitionYaml, conversionDefinition);
+ }
+
+ private void assertConversionDefinition(final Map<String, Object> definitionYaml,
+ final ConversionDefinition conversionDefinition) {
+ assertThat("The conversion definition should have been built"
+ , conversionDefinition, notNullValue());
+ assertThat("Should have initialized the conversion definition query"
+ , conversionDefinition.getConversionQuery(), notNullValue());
+ assertThat("The conversion definition should have been built"
+ , conversionDefinition.getConversionQuery().getQuery(), equalTo(definitionYaml.get(QUERY.getName())));
+ assertThat("Should have initialized the conversion definition to attribute name"
+ , conversionDefinition.getToAttributeName(), equalTo(definitionYaml.get(TO_NAME.getName())));
+ assertThat("Should have initialized the conversion definition strategy"
+ , conversionDefinition.getPnfdConversionStrategy(), notNullValue());
+ assertThat("Should have the expected strategy"
+ , conversionDefinition.getPnfdConversionStrategy().getStrategyType(), equalTo(ConversionStrategyType.REPLACE));
+ }
+} \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/java/org/openecomp/core/converter/impl/pnfd/parser/NodeTemplateYamlParserTest.java b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/java/org/openecomp/core/converter/impl/pnfd/parser/NodeTemplateYamlParserTest.java
new file mode 100644
index 0000000000..5bb7ca360e
--- /dev/null
+++ b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/java/org/openecomp/core/converter/impl/pnfd/parser/NodeTemplateYamlParserTest.java
@@ -0,0 +1,46 @@
+/*
+ * ============LICENSE_START=======================================================
+ * Copyright (C) 2019 Nordix Foundation
+ * ================================================================================
+ * 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.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ * ============LICENSE_END=========================================================
+ */
+
+package org.openecomp.core.converter.impl.pnfd.parser;
+
+import static org.hamcrest.Matchers.aMapWithSize;
+import static org.hamcrest.Matchers.equalTo;
+import static org.hamcrest.Matchers.is;
+import static org.hamcrest.Matchers.not;
+import static org.hamcrest.Matchers.notNullValue;
+import static org.junit.Assert.assertThat;
+
+import java.util.Map;
+import org.junit.Test;
+import org.onap.sdc.tosca.datatypes.model.NodeTemplate;
+import org.openecomp.core.converter.impl.pnfd.parser.NodeTemplateYamlParser;
+import org.openecomp.core.util.YamlTestUtil;
+
+public class NodeTemplateYamlParserTest {
+
+ @Test
+ public void shouldParseNodeTemplate() {
+ final Map<String, Object> nodeTemplateYaml = (Map<String, Object>) YamlTestUtil.readOrFail("transformation/nodeTemplate/nodeTemplate.yaml");
+ final NodeTemplate nodeTemplate = NodeTemplateYamlParser.parse(nodeTemplateYaml);
+ assertThat("Should have the same type", nodeTemplate.getType(), equalTo(nodeTemplateYaml.get("type")));
+ assertThat("Should have a not null properties map", nodeTemplate.getProperties(), notNullValue());
+ assertThat("Should have a not empty properties map", nodeTemplate.getProperties(), is(not(aMapWithSize(0))));
+ assertThat("Should have the same properties", nodeTemplate.getProperties(), equalTo(nodeTemplateYaml.get("properties")));
+ }
+} \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/java/org/openecomp/core/converter/impl/pnfd/parser/PnfdConversionStrategyYamlParserParametrizedTest.java b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/java/org/openecomp/core/converter/impl/pnfd/parser/PnfdConversionStrategyYamlParserParametrizedTest.java
new file mode 100644
index 0000000000..83b7620b42
--- /dev/null
+++ b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/java/org/openecomp/core/converter/impl/pnfd/parser/PnfdConversionStrategyYamlParserParametrizedTest.java
@@ -0,0 +1,68 @@
+/*
+ * ============LICENSE_START=======================================================
+ * Copyright (C) 2019 Nordix Foundation
+ * ================================================================================
+ * 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.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ * ============LICENSE_END=========================================================
+ */
+
+package org.openecomp.core.converter.impl.pnfd.parser;
+
+import static org.hamcrest.Matchers.instanceOf;
+import static org.hamcrest.Matchers.is;
+import static org.junit.Assert.assertThat;
+
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Map;
+import java.util.Optional;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.Parameterized;
+import org.junit.runners.Parameterized.Parameters;
+import org.openecomp.core.converter.pnfd.strategy.PnfdConversionStrategy;
+import org.openecomp.core.converter.impl.pnfd.strategy.ReplaceConversionStrategy;
+import org.openecomp.core.util.YamlTestUtil;
+
+@RunWith(Parameterized.class)
+public class PnfdConversionStrategyYamlParserParametrizedTest {
+
+ private final String strategyYamlFilePath;
+ private final Class expectedStrategyClass;
+
+ public PnfdConversionStrategyYamlParserParametrizedTest(final String strategyYamlFilePath, final Class expectedStrategyClass) {
+ this.strategyYamlFilePath = strategyYamlFilePath;
+ this.expectedStrategyClass = expectedStrategyClass;
+ }
+
+ @Parameters(name = "Run {index} for {0}, expecting {1}")
+ public static Collection<Object[]> data() {
+ return Arrays.asList(new Object[][] {
+ {"transformation/strategy/replaceStrategy.yaml", ReplaceConversionStrategy.class}
+ });
+ }
+
+ @Test
+ public void shouldBuildTheExpectedStrategy() {
+ final Object replaceStrategyYaml = YamlTestUtil.readOrFail(strategyYamlFilePath);
+ final Optional<PnfdConversionStrategy> actualStrategy = PnfdConversionStrategyYamlParser
+ .parse((Map<String, Object>) replaceStrategyYaml);
+
+ assertThat("The strategy should have been built"
+ , actualStrategy.isPresent(), is(true));
+ assertThat("The built strategy should be " + expectedStrategyClass.getName()
+ , actualStrategy.get(), instanceOf(expectedStrategyClass));
+ }
+
+} \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/java/org/openecomp/core/converter/impl/pnfd/parser/PnfdConversionStrategyYamlParserTest.java b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/java/org/openecomp/core/converter/impl/pnfd/parser/PnfdConversionStrategyYamlParserTest.java
new file mode 100644
index 0000000000..1eab214980
--- /dev/null
+++ b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/java/org/openecomp/core/converter/impl/pnfd/parser/PnfdConversionStrategyYamlParserTest.java
@@ -0,0 +1,53 @@
+/*
+ * ============LICENSE_START=======================================================
+ * Copyright (C) 2019 Nordix Foundation
+ * ================================================================================
+ * 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.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ * ============LICENSE_END=========================================================
+ */
+
+package org.openecomp.core.converter.impl.pnfd.parser;
+
+import static org.hamcrest.Matchers.is;
+import static org.junit.Assert.assertThat;
+import static org.junit.Assert.fail;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.Map;
+import java.util.Optional;
+import org.junit.Test;
+import org.openecomp.core.converter.pnfd.strategy.PnfdConversionStrategy;
+import org.openecomp.core.util.TestResourcesUtil;
+import org.openecomp.core.util.YamlTestUtil;
+
+public class PnfdConversionStrategyYamlParserTest {
+
+ @Test
+ public void parseInvalidYamlObject() {
+ final Object replaceStrategyYaml;
+ final String strategyYamlFilePath = "transformation/strategy/strategyMissingStrategyAttribute.yaml";
+ try (final InputStream resourceInputStream = TestResourcesUtil.getFileResourceAsStream(strategyYamlFilePath)) {
+ replaceStrategyYaml = YamlTestUtil.read(resourceInputStream);
+ } catch (final IOException e) {
+ fail(String.format("Could not load %s", strategyYamlFilePath));
+ return;
+ }
+ final Optional<PnfdConversionStrategy> actualStrategy = PnfdConversionStrategyYamlParser
+ .parse((Map<String, Object>) replaceStrategyYaml);
+ assertThat("The strategy should not have been built"
+ , actualStrategy.isPresent(), is(false));
+ }
+
+} \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/java/org/openecomp/core/converter/impl/ToscaConverterImplTest.java b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/java/org/openecomp/core/impl/ToscaConverterImplTest.java
index c14b02b3a0..3e4e62a0d1 100644
--- a/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/java/org/openecomp/core/converter/impl/ToscaConverterImplTest.java
+++ b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/java/org/openecomp/core/impl/ToscaConverterImplTest.java
@@ -1,24 +1,23 @@
-/*-
+/*
* ============LICENSE_START=======================================================
- * SDC
- * ================================================================================
- * Copyright (C) 2019 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=========================================================
+ * Copyright (C) 2019 Nordix Foundation
+ * ================================================================================
+ * 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.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ * ============LICENSE_END=========================================================
*/
-package org.openecomp.core.converter.impl;
+package org.openecomp.core.impl;
import org.apache.commons.collections.CollectionUtils;
import org.junit.Assert;
@@ -27,7 +26,6 @@ import org.onap.sdc.tosca.datatypes.model.*;
import org.onap.sdc.tosca.services.ToscaExtensionYamlUtil;
import org.onap.sdc.tosca.services.YamlUtil;
import org.openecomp.core.converter.ToscaConverter;
-import org.openecomp.core.impl.ToscaConverterImpl;
import org.openecomp.core.utilities.file.FileContentHandler;
import org.openecomp.core.utilities.file.FileUtils;
import org.openecomp.core.utilities.json.JsonUtil;
diff --git a/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/java/org/openecomp/core/converter/impl/ToscaConvertorDefinitionsTest.java b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/java/org/openecomp/core/impl/ToscaConvertorDefinitionsTest.java
index 68318c7b73..b978b7db99 100644
--- a/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/java/org/openecomp/core/converter/impl/ToscaConvertorDefinitionsTest.java
+++ b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/java/org/openecomp/core/impl/ToscaConvertorDefinitionsTest.java
@@ -1,31 +1,28 @@
-/*-
+/*
* ============LICENSE_START=======================================================
- * SDC
- * ================================================================================
- * Copyright (C) 2019 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=========================================================
+ * Copyright (C) 2019 Nordix Foundation
+ * ================================================================================
+ * 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.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ * ============LICENSE_END=========================================================
*/
-package org.openecomp.core.converter.impl;
+package org.openecomp.core.impl;
import org.apache.commons.io.IOUtils;
import org.junit.Ignore;
import org.junit.Test;
import org.onap.sdc.tosca.datatypes.model.ServiceTemplate;
-import org.openecomp.core.impl.GlobalSubstitutionServiceTemplate;
-import org.openecomp.core.impl.ToscaConverterImpl;
import org.openecomp.core.utilities.file.FileContentHandler;
import org.openecomp.core.utilities.orchestration.OnboardingTypesEnum;
import org.openecomp.sdc.tosca.datatypes.ToscaServiceModel;
diff --git a/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/java/org/openecomp/core/impl/ToscaSolConverterPnfMultipleNodeTemplatesTest.java b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/java/org/openecomp/core/impl/ToscaSolConverterPnfMultipleNodeTemplatesTest.java
deleted file mode 100644
index 21394c9c47..0000000000
--- a/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/java/org/openecomp/core/impl/ToscaSolConverterPnfMultipleNodeTemplatesTest.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/*
- * -
- * * ============LICENSE_START=======================================================
- * * Copyright (C) 2019 Nordix Foundation.
- * * ================================================================================
- * * 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.
- * *
- * * SPDX-License-Identifier: Apache-2.0
- * * ============LICENSE_END=========================================================
- *
- */
-
-package org.openecomp.core.impl;
-
-import org.apache.commons.io.IOUtils;
-import org.junit.Test;
-import org.onap.sdc.tosca.datatypes.model.NodeTemplate;
-import org.onap.sdc.tosca.datatypes.model.ServiceTemplate;
-import org.openecomp.core.converter.ServiceTemplateReaderService;
-import org.openecomp.core.impl.services.ServiceTemplateReaderServiceImpl;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.Map;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertTrue;
-
-public class ToscaSolConverterPnfMultipleNodeTemplatesTest {
-
- private static final String PNF_EXT_CP_1 = "pnfExtCp_1";
- private static final String PNF_EXT_CP_2 = "pnfExtCp_2";
-
- @Test
- public void testGivenDescriptorWithPnfAndTwoPnfExts_WhenConvertTopologyTemplate_ThenTwoExtCpsInOutput() throws IOException {
- // Added this as separate test as data-driven tests compare strings and as order of nodeTemplates
- // can be different in hashMap and hence test may fail
- final byte[] descriptor = getFileResource("pnfDescriptor/other/pnfDescriptor_PnfAnd2ExtCps.yaml");
- ServiceTemplateReaderService serviceTemplateReaderService = new ServiceTemplateReaderServiceImpl(descriptor);
- ServiceTemplate serviceTemplate = new ServiceTemplate();
- ToscaSolConverterPnf toscaSolConverter = new ToscaSolConverterPnf();
- toscaSolConverter.convertTopologyTemplate(serviceTemplate, serviceTemplateReaderService);
- Map<String, NodeTemplate> nodeTemplates = serviceTemplate.getTopology_template().getNode_templates();
- assertEquals(2, nodeTemplates.size());
-
- nodeTemplates.entrySet().stream()
- .map(Map.Entry::getKey)
- .forEach((key -> assertTrue(getErrorString(), hasCorrectName(key))));
- }
-
- private byte[] getFileResource(String filePath) throws IOException {
- try (InputStream inputStream = Thread.currentThread().getContextClassLoader().getResourceAsStream(filePath)) {
- return IOUtils.toByteArray(inputStream);
- }
- }
-
- private boolean hasCorrectName(String name) {
- return PNF_EXT_CP_1.equals(name) || PNF_EXT_CP_2.equals(name);
- }
-
- private String getErrorString() {
- return "node template name should be either " + PNF_EXT_CP_1 + " or " + PNF_EXT_CP_2;
- }
-}
diff --git a/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/java/org/openecomp/core/util/TestResourcesUtil.java b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/java/org/openecomp/core/util/TestResourcesUtil.java
index 34559f5386..7d89bb3eab 100644
--- a/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/java/org/openecomp/core/util/TestResourcesUtil.java
+++ b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/java/org/openecomp/core/util/TestResourcesUtil.java
@@ -23,6 +23,7 @@ import static org.junit.Assert.fail;
import java.io.IOException;
import java.io.InputStream;
+import java.net.URL;
import org.apache.commons.io.IOUtils;
import org.openecomp.sdc.logging.api.Logger;
import org.openecomp.sdc.logging.api.LoggerFactory;
@@ -47,7 +48,7 @@ public class TestResourcesUtil {
* @throws IOException
* When the file was not found or the input stream could not be opened
*/
- public static byte[] getFileResource(final String resourcePath) throws IOException {
+ public static byte[] getFileResourceBytes(final String resourcePath) throws IOException {
try(final InputStream inputStream = ClassLoader.class.getResourceAsStream(resourcePath)) {
if (inputStream == null) {
throw new IOException(String.format("Could not find the resource on path \"%s\"", resourcePath));
@@ -67,7 +68,7 @@ public class TestResourcesUtil {
*/
public static byte[] getResourceBytesOrFail(final String resourcePath) {
try {
- return getFileResource(resourcePath);
+ return getFileResourceBytes(resourcePath);
} catch (final IOException e) {
final String errorMsg = String.format("Could not load resource '%s'", resourcePath);
LOGGER.error(errorMsg, e);
@@ -77,4 +78,26 @@ public class TestResourcesUtil {
return null;
}
+ /**
+ * Gets the input stream of a resource file
+ *
+ * @param resourcePath The resource file path
+ * @return
+ * The resource input stream
+ */
+ public static InputStream getFileResourceAsStream(final String resourcePath) {
+ return Thread.currentThread().getContextClassLoader().getResourceAsStream(resourcePath);
+ }
+
+ /**
+ * Gets the input stream of a resource file
+ *
+ * @param resourcePath The resource file path
+ * @return
+ * The resource input stream
+ */
+ public static URL getFileUrl(final String resourcePath) {
+ return Thread.currentThread().getContextClassLoader().getResource(resourcePath);
+ }
+
}
diff --git a/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/java/org/openecomp/core/util/YamlTestUtil.java b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/java/org/openecomp/core/util/YamlTestUtil.java
new file mode 100644
index 0000000000..b095d13ed7
--- /dev/null
+++ b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/java/org/openecomp/core/util/YamlTestUtil.java
@@ -0,0 +1,67 @@
+/*
+ * ============LICENSE_START=======================================================
+ * Copyright (C) 2019 Nordix Foundation
+ * ================================================================================
+ * 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.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ * ============LICENSE_END=========================================================
+ */
+
+package org.openecomp.core.util;
+
+import static org.junit.Assert.fail;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import org.onap.sdc.tosca.services.YamlUtil;
+
+public class YamlTestUtil {
+
+ private YamlTestUtil() {
+ }
+
+ /**
+ * Reads the description file that has the required YAML format.
+ *
+ * @param yamlFile The yaml file
+ * @return The yaml parsed to Object
+ */
+ public static Object read(final File yamlFile) throws IOException {
+ try (final InputStream fileInputStream = new FileInputStream(yamlFile)) {
+ return read(fileInputStream);
+ }
+ }
+
+ public static Object read(final String yamlFilePath) throws IOException {
+ try (final InputStream resourceInputStream = TestResourcesUtil.getFileResourceAsStream(yamlFilePath)) {
+ return read(resourceInputStream);
+ }
+ }
+
+ public static Object read(final InputStream yamlFileInputStream) {
+ return YamlUtil.read(yamlFileInputStream);
+ }
+
+ public static Object readOrFail(final String yamlFilePath) {
+ try {
+ return read(yamlFilePath);
+ } catch (final IOException ignored) {
+ fail(String.format("Could not load '%s'", yamlFilePath));
+ return null;
+ }
+ }
+
+
+}
diff --git a/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/model-driven-conversion.yaml b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/model-driven-conversion.yaml
new file mode 100644
index 0000000000..4d1500169e
--- /dev/null
+++ b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/model-driven-conversion.yaml
@@ -0,0 +1,69 @@
+- transformation-for: nodeTemplate #or "region: nodeTemplate"; or "object: nodeTemplate"
+ name: PnfExtCp transformation
+ description: converts any node template that has a type tosca.nodes.nfv.PnfExtCp
+ query: #or "find:"
+ #currently we only support a single attribute and value search. Can be hierarchical like "properties: layer_protocols:".
+ #must have the same structure in the original node_template declaration, otherwise the attribute will not be found.
+ type: tosca.nodes.nfv.PnfExtCp
+ conversions:
+ - query: #attribute query
+ #must have the same structure in the original node_template declaration, otherwise the attribute will not be found.
+ #the value does not matter as we are going to convert it.
+ type:
+ to-name: type #new attribute name. We could have a default strategy to copy the original name (in the query) if this entry is not provided.
+ to-value:
+ strategy: replace
+ from: tosca.nodes.nfv.PnfExtCp #could be ignored
+ to: org.openecomp.resource.cp.v2.extCP
+ - query:
+ properties:
+ layer_protocols:
+ to-name: ip_requirements
+ to-value:
+ strategy: replaceInList
+ list:
+ - from: ipv4
+ to:
+ assingment_method: dhcp
+ ip_version: 4
+ - from: ipv6
+ to:
+ assingment_method: dhcp
+ ip_version: 6
+ to-get-input: ipRequirements
+- transformation-for: getInputFunction
+ name: ipRequirements
+ description: converts IpRequirements inputs when called by a get_input TOSCA function
+ conversions:
+ - query:
+ type:
+ to-name: type
+ to-value:
+ strategy: copy
+ - query:
+ description:
+ to-name: description
+ to-value:
+ strategy: copy
+ - query:
+ entry_schema:
+ type:
+ to-name: type
+ to-value:
+ strategy: replace
+ from: string
+ to: org.openecomp.datatypes.network.IpRequirements
+ - query:
+ default:
+ to-name: default
+ to-value:
+ strategy: replaceInList
+ list:
+ - from: ipv4
+ to:
+ assingment_method: dhcp
+ ip_version: 4
+ - from: ipv6
+ to:
+ assingment_method: dhcp
+ ip_version: 6 \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/pnfDescriptor/in/pnfDescriptor_withLayerProtocolsAndDuplicatedGetInput.yaml b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/pnfDescriptor/in/pnfDescriptor_withLayerProtocolsAndDuplicatedGetInput.yaml
index 8549da09b2..8867cd46f8 100644
--- a/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/pnfDescriptor/in/pnfDescriptor_withLayerProtocolsAndDuplicatedGetInput.yaml
+++ b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/pnfDescriptor/in/pnfDescriptor_withLayerProtocolsAndDuplicatedGetInput.yaml
@@ -42,4 +42,4 @@ topology_template:
role: leaf
description: External connection point to access Acme myPnf
requirements:
- - dependency: myPnf
+ - dependency: myPnf \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/transformation/conversionDefinition/conversionDefinitionWithReplaceStrategy.yaml b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/transformation/conversionDefinition/conversionDefinitionWithReplaceStrategy.yaml
new file mode 100644
index 0000000000..cc365b7a71
--- /dev/null
+++ b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/transformation/conversionDefinition/conversionDefinitionWithReplaceStrategy.yaml
@@ -0,0 +1,7 @@
+query:
+ type:
+to-name: type
+to-value:
+ strategy: replace
+ from: tosca.nodes.nfv.PnfExtCp
+ to: org.openecomp.resource.cp.v2.extCP \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/transformation/nodeTemplate/nodeTemplate.yaml b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/transformation/nodeTemplate/nodeTemplate.yaml
new file mode 100644
index 0000000000..fd4bb5a7b8
--- /dev/null
+++ b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/transformation/nodeTemplate/nodeTemplate.yaml
@@ -0,0 +1,7 @@
+type: org.openecomp.resource.cp.v2.extCP
+properties:
+ ip_requirements:
+ - assingment_method: dhcp
+ ip_version: 4
+ - assingment_method: dhcp
+ ip_version: 6 \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/transformation/pnfParseEngine/pnfAndExtCpWithInput/expectedOutput/convertTwoAttributesSameLevel.yaml b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/transformation/pnfParseEngine/pnfAndExtCpWithInput/expectedOutput/convertTwoAttributesSameLevel.yaml
new file mode 100644
index 0000000000..8ec436ed9f
--- /dev/null
+++ b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/transformation/pnfParseEngine/pnfAndExtCpWithInput/expectedOutput/convertTwoAttributesSameLevel.yaml
@@ -0,0 +1,11 @@
+topology_template:
+ node_templates:
+ pnfExtCp_1:
+ type: org.openecomp.resource.cp.v2.extCP
+ properties:
+ ip_requirements:
+ - assingment_method: dhcp
+ ip_version: 4
+ - assingment_method: dhcp
+ ip_version: 6
+ description_converted: External connection point to access this pnf \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/transformation/pnfParseEngine/pnfAndExtCpWithInput/expectedOutput/copyListAttribute.yaml b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/transformation/pnfParseEngine/pnfAndExtCpWithInput/expectedOutput/copyListAttribute.yaml
new file mode 100644
index 0000000000..55c5f52851
--- /dev/null
+++ b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/transformation/pnfParseEngine/pnfAndExtCpWithInput/expectedOutput/copyListAttribute.yaml
@@ -0,0 +1,8 @@
+topology_template:
+ node_templates:
+ pnfExtCp_1:
+ properties:
+ layer_protocols_copy:
+ - ipv4
+ - ipv6
+ - otherProtocol \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/transformation/pnfParseEngine/pnfAndExtCpWithInput/expectedOutput/copyObjectAttribute.yaml b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/transformation/pnfParseEngine/pnfAndExtCpWithInput/expectedOutput/copyObjectAttribute.yaml
new file mode 100644
index 0000000000..fe832edc14
--- /dev/null
+++ b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/transformation/pnfParseEngine/pnfAndExtCpWithInput/expectedOutput/copyObjectAttribute.yaml
@@ -0,0 +1,6 @@
+topology_template:
+ node_templates:
+ pnfExtCp_1:
+ properties:
+ anObjectAttribute_copy:
+ anyAttribute: anyAttributeValue \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/transformation/pnfParseEngine/pnfAndExtCpWithInput/expectedOutput/copyScalarAttribute.yaml b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/transformation/pnfParseEngine/pnfAndExtCpWithInput/expectedOutput/copyScalarAttribute.yaml
new file mode 100644
index 0000000000..e2684d4c0a
--- /dev/null
+++ b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/transformation/pnfParseEngine/pnfAndExtCpWithInput/expectedOutput/copyScalarAttribute.yaml
@@ -0,0 +1,5 @@
+topology_template:
+ node_templates:
+ pnfExtCp_1:
+ properties:
+ trunk_mode_copy: false \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/transformation/pnfParseEngine/pnfAndExtCpWithInput/expectedOutput/defaultOutput.yaml b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/transformation/pnfParseEngine/pnfAndExtCpWithInput/expectedOutput/defaultOutput.yaml
new file mode 100644
index 0000000000..d47ce66ace
--- /dev/null
+++ b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/transformation/pnfParseEngine/pnfAndExtCpWithInput/expectedOutput/defaultOutput.yaml
@@ -0,0 +1,2 @@
+topology_template:
+ node_templates: {} \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/transformation/pnfParseEngine/pnfAndExtCpWithInput/expectedOutput/invalidAndValidAttributeQuery.yaml b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/transformation/pnfParseEngine/pnfAndExtCpWithInput/expectedOutput/invalidAndValidAttributeQuery.yaml
new file mode 100644
index 0000000000..90164839a4
--- /dev/null
+++ b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/transformation/pnfParseEngine/pnfAndExtCpWithInput/expectedOutput/invalidAndValidAttributeQuery.yaml
@@ -0,0 +1,4 @@
+topology_template:
+ node_templates:
+ pnfExtCp_1:
+ type: tosca.nodes.nfv.PnfExtCp \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/transformation/pnfParseEngine/pnfAndExtCpWithInput/expectedOutput/replaceInListAttribute.yaml b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/transformation/pnfParseEngine/pnfAndExtCpWithInput/expectedOutput/replaceInListAttribute.yaml
new file mode 100644
index 0000000000..6086d5e14d
--- /dev/null
+++ b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/transformation/pnfParseEngine/pnfAndExtCpWithInput/expectedOutput/replaceInListAttribute.yaml
@@ -0,0 +1,9 @@
+topology_template:
+ node_templates:
+ pnfExtCp_1:
+ properties:
+ ip_requirements:
+ - assingment_method: dhcp
+ ip_version: 4
+ - assingment_method: dhcp
+ ip_version: 6 \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/transformation/pnfParseEngine/pnfAndExtCpWithInput/expectedOutput/replaceInListAttributeWithNonExistentAndNonExistentFromValues.yaml b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/transformation/pnfParseEngine/pnfAndExtCpWithInput/expectedOutput/replaceInListAttributeWithNonExistentAndNonExistentFromValues.yaml
new file mode 100644
index 0000000000..8dfc98149a
--- /dev/null
+++ b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/transformation/pnfParseEngine/pnfAndExtCpWithInput/expectedOutput/replaceInListAttributeWithNonExistentAndNonExistentFromValues.yaml
@@ -0,0 +1,8 @@
+topology_template:
+ node_templates:
+ pnfExtCp_1:
+ properties:
+ ip_requirements:
+ - assingment_method: dhcp
+ ip_version: 4
+ - anyStringValue \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/transformation/pnfParseEngine/pnfAndExtCpWithInput/expectedOutput/replaceScalarAttributeToList.yaml b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/transformation/pnfParseEngine/pnfAndExtCpWithInput/expectedOutput/replaceScalarAttributeToList.yaml
new file mode 100644
index 0000000000..35139472c3
--- /dev/null
+++ b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/transformation/pnfParseEngine/pnfAndExtCpWithInput/expectedOutput/replaceScalarAttributeToList.yaml
@@ -0,0 +1,8 @@
+topology_template:
+ node_templates:
+ pnfExtCp_1:
+ properties:
+ trunk_mode_replaced:
+ - my
+ - replaced
+ - list \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/transformation/pnfParseEngine/pnfAndExtCpWithInput/expectedOutput/replaceScalarAttributeToObject.yaml b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/transformation/pnfParseEngine/pnfAndExtCpWithInput/expectedOutput/replaceScalarAttributeToObject.yaml
new file mode 100644
index 0000000000..0e82ea33e3
--- /dev/null
+++ b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/transformation/pnfParseEngine/pnfAndExtCpWithInput/expectedOutput/replaceScalarAttributeToObject.yaml
@@ -0,0 +1,6 @@
+topology_template:
+ node_templates:
+ pnfExtCp_1:
+ properties:
+ trunk_mode_replaced:
+ myObjectReplaced: myObjectReplacedValue \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/transformation/pnfParseEngine/pnfAndExtCpWithInput/expectedOutput/replaceScalarAttributeToScalar.yaml b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/transformation/pnfParseEngine/pnfAndExtCpWithInput/expectedOutput/replaceScalarAttributeToScalar.yaml
new file mode 100644
index 0000000000..03492963ac
--- /dev/null
+++ b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/transformation/pnfParseEngine/pnfAndExtCpWithInput/expectedOutput/replaceScalarAttributeToScalar.yaml
@@ -0,0 +1,5 @@
+topology_template:
+ node_templates:
+ pnfExtCp_1:
+ properties:
+ trunk_mode_replaced: myReplacedValue \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/pnfDescriptor/other/pnfDescriptor_PnfAnd2ExtCps.yaml b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/transformation/pnfParseEngine/pnfAndExtCpWithInput/pnfAndExtCpWithInput.yaml
index b37334496c..1e11d3833b 100644
--- a/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/pnfDescriptor/other/pnfDescriptor_PnfAnd2ExtCps.yaml
+++ b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/transformation/pnfParseEngine/pnfAndExtCpWithInput/pnfAndExtCpWithInput.yaml
@@ -35,10 +35,5 @@ topology_template:
layer_protocols: [ ipv4, ipv6, otherProtocol ]
role: leaf
description: External connection point to access this pnf
- pnfExtCp_2:
- type: tosca.nodes.nfv.PnfExtCp
- properties:
- trunk_mode: false
- layer_protocols: {get_input: layer_protocols}
- role: {get_input: role}
- description: External connection point to access this pnf \ No newline at end of file
+ anObjectAttribute:
+ anyAttribute: anyAttributeValue \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/transformation/pnfParseEngine/pnfAndExtCpWithInput/transformationDescriptor/attributeQueryWithMoreThanOneAttribute.yaml b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/transformation/pnfParseEngine/pnfAndExtCpWithInput/transformationDescriptor/attributeQueryWithMoreThanOneAttribute.yaml
new file mode 100644
index 0000000000..fda5646d63
--- /dev/null
+++ b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/transformation/pnfParseEngine/pnfAndExtCpWithInput/transformationDescriptor/attributeQueryWithMoreThanOneAttribute.yaml
@@ -0,0 +1,13 @@
+- transformation-for: nodeTemplate
+ query:
+ type: tosca.nodes.nfv.PnfExtCp
+ conversions:
+ - query: #more than one attribute is not allowed here
+ type: tosca.nodes.nfv.PnfExtCp
+ properties:
+ trunk_mode: false
+ to-name: type
+ to-value:
+ strategy: replace
+ from: tosca.nodes.nfv.PnfExtCp
+ to: org.openecomp.resource.cp.v2.extCP \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/transformation/pnfParseEngine/pnfAndExtCpWithInput/transformationDescriptor/convertTwoAttributesSameLevel.yaml b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/transformation/pnfParseEngine/pnfAndExtCpWithInput/transformationDescriptor/convertTwoAttributesSameLevel.yaml
new file mode 100644
index 0000000000..421fef587b
--- /dev/null
+++ b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/transformation/pnfParseEngine/pnfAndExtCpWithInput/transformationDescriptor/convertTwoAttributesSameLevel.yaml
@@ -0,0 +1,32 @@
+- transformation-for: nodeTemplate
+ query:
+ type: tosca.nodes.nfv.PnfExtCp
+ conversions:
+ - query:
+ type:
+ to-name: type
+ to-value:
+ strategy: replace
+ from: tosca.nodes.nfv.PnfExtCp
+ to: org.openecomp.resource.cp.v2.extCP
+ - query:
+ properties:
+ layer_protocols:
+ to-name: ip_requirements
+ to-value:
+ strategy: replaceInList
+ list:
+ - from: ipv4
+ to:
+ assingment_method: dhcp
+ ip_version: 4
+ - from: ipv6
+ to:
+ assingment_method: dhcp
+ ip_version: 6
+ - query:
+ properties:
+ description:
+ to-name: description_converted
+ to-value:
+ strategy: copy \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/transformation/pnfParseEngine/pnfAndExtCpWithInput/transformationDescriptor/copyListAttribute.yaml b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/transformation/pnfParseEngine/pnfAndExtCpWithInput/transformationDescriptor/copyListAttribute.yaml
new file mode 100644
index 0000000000..7e6e475c1c
--- /dev/null
+++ b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/transformation/pnfParseEngine/pnfAndExtCpWithInput/transformationDescriptor/copyListAttribute.yaml
@@ -0,0 +1,17 @@
+- transformation-for: nodeTemplate
+ query:
+ type: tosca.nodes.nfv.PnfExtCp
+ conversions:
+ - query: #attribute query: this attribute does not exists
+ type1:
+ to-name: type
+ to-value:
+ strategy: replace
+ from: tosca.nodes.nfv.PnfExtCp
+ to: org.openecomp.resource.cp.v2.extCP
+ - query: #attribute query: this attribute exists
+ properties:
+ layer_protocols:
+ to-name: layer_protocols_copy
+ to-value:
+ strategy: copy \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/transformation/pnfParseEngine/pnfAndExtCpWithInput/transformationDescriptor/copyObjectAttribute.yaml b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/transformation/pnfParseEngine/pnfAndExtCpWithInput/transformationDescriptor/copyObjectAttribute.yaml
new file mode 100644
index 0000000000..019d5f2e7b
--- /dev/null
+++ b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/transformation/pnfParseEngine/pnfAndExtCpWithInput/transformationDescriptor/copyObjectAttribute.yaml
@@ -0,0 +1,10 @@
+- transformation-for: nodeTemplate
+ query:
+ type: tosca.nodes.nfv.PnfExtCp
+ conversions:
+ - query:
+ properties:
+ anObjectAttribute:
+ to-name: anObjectAttribute_copy
+ to-value:
+ strategy: copy \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/transformation/pnfParseEngine/pnfAndExtCpWithInput/transformationDescriptor/copyScalarAttribute.yaml b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/transformation/pnfParseEngine/pnfAndExtCpWithInput/transformationDescriptor/copyScalarAttribute.yaml
new file mode 100644
index 0000000000..6b28f9603d
--- /dev/null
+++ b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/transformation/pnfParseEngine/pnfAndExtCpWithInput/transformationDescriptor/copyScalarAttribute.yaml
@@ -0,0 +1,10 @@
+- transformation-for: nodeTemplate
+ query:
+ type: tosca.nodes.nfv.PnfExtCp
+ conversions:
+ - query:
+ properties:
+ trunk_mode:
+ to-name: trunk_mode_copy
+ to-value:
+ strategy: copy \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/transformation/pnfParseEngine/pnfAndExtCpWithInput/transformationDescriptor/emptyDescriptor.yaml b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/transformation/pnfParseEngine/pnfAndExtCpWithInput/transformationDescriptor/emptyDescriptor.yaml
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/transformation/pnfParseEngine/pnfAndExtCpWithInput/transformationDescriptor/emptyDescriptor.yaml
diff --git a/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/transformation/pnfParseEngine/pnfAndExtCpWithInput/transformationDescriptor/invalidAndValidAttributeQuery.yaml b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/transformation/pnfParseEngine/pnfAndExtCpWithInput/transformationDescriptor/invalidAndValidAttributeQuery.yaml
new file mode 100644
index 0000000000..bdd7437892
--- /dev/null
+++ b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/transformation/pnfParseEngine/pnfAndExtCpWithInput/transformationDescriptor/invalidAndValidAttributeQuery.yaml
@@ -0,0 +1,16 @@
+- transformation-for: nodeTemplate
+ query:
+ type: tosca.nodes.nfv.PnfExtCp
+ conversions:
+ - query: #attribute query: this attribute does not exists
+ type1:
+ to-name: type
+ to-value:
+ strategy: replace
+ from: tosca.nodes.nfv.PnfExtCp
+ to: org.openecomp.resource.cp.v2.extCP
+ - query: #attribute query: this attribute exists
+ type:
+ to-name: type
+ to-value:
+ strategy: copy \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/transformation/pnfParseEngine/pnfAndExtCpWithInput/transformationDescriptor/invalidAttributeQuery.yaml b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/transformation/pnfParseEngine/pnfAndExtCpWithInput/transformationDescriptor/invalidAttributeQuery.yaml
new file mode 100644
index 0000000000..a1fe0ce95d
--- /dev/null
+++ b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/transformation/pnfParseEngine/pnfAndExtCpWithInput/transformationDescriptor/invalidAttributeQuery.yaml
@@ -0,0 +1,11 @@
+- transformation-for: nodeTemplate
+ query:
+ type: tosca.nodes.nfv.PnfExtCp
+ conversions:
+ - query: #attribute query: this attribute does not exists
+ type1:
+ to-name: type
+ to-value:
+ strategy: replace
+ from: tosca.nodes.nfv.PnfExtCp
+ to: org.openecomp.resource.cp.v2.extCP \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/transformation/pnfParseEngine/pnfAndExtCpWithInput/transformationDescriptor/invalidBlock.yaml b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/transformation/pnfParseEngine/pnfAndExtCpWithInput/transformationDescriptor/invalidBlock.yaml
new file mode 100644
index 0000000000..069096a705
--- /dev/null
+++ b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/transformation/pnfParseEngine/pnfAndExtCpWithInput/transformationDescriptor/invalidBlock.yaml
@@ -0,0 +1,4 @@
+#this block, nodeTemplate1, is invalid
+- transformation-for: nodeTemplate1
+ query:
+ type: tosca.nodes.nfv.PnfExtCp \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/transformation/pnfParseEngine/pnfAndExtCpWithInput/transformationDescriptor/invalidBlockQueries.yaml b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/transformation/pnfParseEngine/pnfAndExtCpWithInput/transformationDescriptor/invalidBlockQueries.yaml
new file mode 100644
index 0000000000..e18c69094e
--- /dev/null
+++ b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/transformation/pnfParseEngine/pnfAndExtCpWithInput/transformationDescriptor/invalidBlockQueries.yaml
@@ -0,0 +1,10 @@
+- transformation-for: nodeTemplate
+ query: #this attribute value does not exists
+ type: tosca.nodes.nfv.PnfExtCp1
+- transformation-for: nodeTemplate
+ query: #this attribute does not exists
+ type1: tosca.nodes.nfv.PnfExtCp
+- transformation-for: nodeTemplate
+ query:
+ type:
+ non-existent-lvl: #this attribute does not exists \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/transformation/pnfParseEngine/pnfAndExtCpWithInput/transformationDescriptor/invalidBlockQuery.yaml b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/transformation/pnfParseEngine/pnfAndExtCpWithInput/transformationDescriptor/invalidBlockQuery.yaml
new file mode 100644
index 0000000000..6b612093a9
--- /dev/null
+++ b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/transformation/pnfParseEngine/pnfAndExtCpWithInput/transformationDescriptor/invalidBlockQuery.yaml
@@ -0,0 +1,6 @@
+- transformation-for: nodeTemplate
+ query: #this type does not exists
+ type: tosca.nodes.nfv.PnfExtCp1
+- transformation-for: nodeTemplate
+ query: #this attribute does not exists
+ type1: tosca.nodes.nfv.PnfExtCp \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/transformation/pnfParseEngine/pnfAndExtCpWithInput/transformationDescriptor/listAsAnAttributeQuery.yaml b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/transformation/pnfParseEngine/pnfAndExtCpWithInput/transformationDescriptor/listAsAnAttributeQuery.yaml
new file mode 100644
index 0000000000..f99abe7107
--- /dev/null
+++ b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/transformation/pnfParseEngine/pnfAndExtCpWithInput/transformationDescriptor/listAsAnAttributeQuery.yaml
@@ -0,0 +1,16 @@
+- transformation-for: nodeTemplate
+ query:
+ type: tosca.nodes.nfv.PnfExtCp
+ conversions:
+ - query:
+ - list
+ - as
+ - query
+ - does
+ - not
+ - work
+ to-name: type
+ to-value:
+ strategy: replace
+ from: tosca.nodes.nfv.PnfExtCp
+ to: org.openecomp.resource.cp.v2.extCP \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/transformation/pnfParseEngine/pnfAndExtCpWithInput/transformationDescriptor/noConversions.yaml b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/transformation/pnfParseEngine/pnfAndExtCpWithInput/transformationDescriptor/noConversions.yaml
new file mode 100644
index 0000000000..e11071cddc
--- /dev/null
+++ b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/transformation/pnfParseEngine/pnfAndExtCpWithInput/transformationDescriptor/noConversions.yaml
@@ -0,0 +1,7 @@
+- transformation-for: nodeTemplate
+ query:
+ type: tosca.nodes.nfv.PnfExtCp
+ conversions:
+- transformation-for: nodeTemplate
+ query:
+ type: tosca.nodes.nfv.PnfExtCp \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/transformation/pnfParseEngine/pnfAndExtCpWithInput/transformationDescriptor/pnfAndExtCpWithInput-validBlockButNoQuery.yaml b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/transformation/pnfParseEngine/pnfAndExtCpWithInput/transformationDescriptor/pnfAndExtCpWithInput-validBlockButNoQuery.yaml
new file mode 100644
index 0000000000..fc70960b6a
--- /dev/null
+++ b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/transformation/pnfParseEngine/pnfAndExtCpWithInput/transformationDescriptor/pnfAndExtCpWithInput-validBlockButNoQuery.yaml
@@ -0,0 +1 @@
+- transformation-for: nodeTemplate \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/transformation/pnfParseEngine/pnfAndExtCpWithInput/transformationDescriptor/queryNonExistentLvl.yaml b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/transformation/pnfParseEngine/pnfAndExtCpWithInput/transformationDescriptor/queryNonExistentLvl.yaml
new file mode 100644
index 0000000000..0700c17fbc
--- /dev/null
+++ b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/transformation/pnfParseEngine/pnfAndExtCpWithInput/transformationDescriptor/queryNonExistentLvl.yaml
@@ -0,0 +1,12 @@
+- transformation-for: nodeTemplate
+ query:
+ type: tosca.nodes.nfv.PnfExtCp
+ conversions:
+ - query:
+ type:
+ non-existent-lvl: #this lvl does not exists in the input file
+ to-name: type
+ to-value:
+ strategy: replace
+ from: tosca.nodes.nfv.PnfExtCp
+ to: org.openecomp.resource.cp.v2.extCP \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/transformation/pnfParseEngine/pnfAndExtCpWithInput/transformationDescriptor/replaceInListAttribute.yaml b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/transformation/pnfParseEngine/pnfAndExtCpWithInput/transformationDescriptor/replaceInListAttribute.yaml
new file mode 100644
index 0000000000..077c95c409
--- /dev/null
+++ b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/transformation/pnfParseEngine/pnfAndExtCpWithInput/transformationDescriptor/replaceInListAttribute.yaml
@@ -0,0 +1,19 @@
+- transformation-for: nodeTemplate
+ query:
+ type: tosca.nodes.nfv.PnfExtCp
+ conversions:
+ - query:
+ properties:
+ layer_protocols:
+ to-name: ip_requirements
+ to-value:
+ strategy: replaceInList
+ list:
+ - from: ipv4
+ to:
+ assingment_method: dhcp
+ ip_version: 4
+ - from: ipv6
+ to:
+ assingment_method: dhcp
+ ip_version: 6 \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/transformation/pnfParseEngine/pnfAndExtCpWithInput/transformationDescriptor/replaceInListAttributeWithNonExistentAndNonExistentFromValues.yaml b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/transformation/pnfParseEngine/pnfAndExtCpWithInput/transformationDescriptor/replaceInListAttributeWithNonExistentAndNonExistentFromValues.yaml
new file mode 100644
index 0000000000..3f835bd5e2
--- /dev/null
+++ b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/transformation/pnfParseEngine/pnfAndExtCpWithInput/transformationDescriptor/replaceInListAttributeWithNonExistentAndNonExistentFromValues.yaml
@@ -0,0 +1,25 @@
+- transformation-for: nodeTemplate
+ query:
+ type: tosca.nodes.nfv.PnfExtCp
+ conversions:
+ - query:
+ properties:
+ layer_protocols:
+ to-name: ip_requirements
+ to-value:
+ strategy: replaceInList
+ list:
+ - from: ipv4
+ to:
+ assingment_method: dhcp
+ ip_version: 4
+ - from: ipv6
+ to: anyStringValue
+ - from: ipv2
+ to:
+ assingment_method: dhcp
+ ip_version: 2
+ - from: ipv3
+ to:
+ assingment_method: dhcp
+ ip_version: 3 \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/transformation/pnfParseEngine/pnfAndExtCpWithInput/transformationDescriptor/replaceInListAttributeWithNonExistentFromValues.yaml b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/transformation/pnfParseEngine/pnfAndExtCpWithInput/transformationDescriptor/replaceInListAttributeWithNonExistentFromValues.yaml
new file mode 100644
index 0000000000..5fbf9d6e7e
--- /dev/null
+++ b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/transformation/pnfParseEngine/pnfAndExtCpWithInput/transformationDescriptor/replaceInListAttributeWithNonExistentFromValues.yaml
@@ -0,0 +1,19 @@
+- transformation-for: nodeTemplate
+ query:
+ type: tosca.nodes.nfv.PnfExtCp
+ conversions:
+ - query:
+ properties:
+ layer_protocols:
+ to-name: ip_requirements
+ to-value:
+ strategy: replaceInList
+ list:
+ - from: ipv2
+ to:
+ assingment_method: dhcp
+ ip_version: 2
+ - from: ipv3
+ to:
+ assingment_method: dhcp
+ ip_version: 3 \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/transformation/pnfParseEngine/pnfAndExtCpWithInput/transformationDescriptor/replaceScalarAttributeToList.yaml b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/transformation/pnfParseEngine/pnfAndExtCpWithInput/transformationDescriptor/replaceScalarAttributeToList.yaml
new file mode 100644
index 0000000000..b4f95a9adb
--- /dev/null
+++ b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/transformation/pnfParseEngine/pnfAndExtCpWithInput/transformationDescriptor/replaceScalarAttributeToList.yaml
@@ -0,0 +1,15 @@
+- transformation-for: nodeTemplate
+ query:
+ type: tosca.nodes.nfv.PnfExtCp
+ conversions:
+ - query:
+ properties:
+ trunk_mode:
+ to-name: trunk_mode_replaced
+ to-value:
+ strategy: replace
+ from: false
+ to:
+ - my
+ - replaced
+ - list \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/transformation/pnfParseEngine/pnfAndExtCpWithInput/transformationDescriptor/replaceScalarAttributeToObject.yaml b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/transformation/pnfParseEngine/pnfAndExtCpWithInput/transformationDescriptor/replaceScalarAttributeToObject.yaml
new file mode 100644
index 0000000000..34a0344957
--- /dev/null
+++ b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/transformation/pnfParseEngine/pnfAndExtCpWithInput/transformationDescriptor/replaceScalarAttributeToObject.yaml
@@ -0,0 +1,13 @@
+- transformation-for: nodeTemplate
+ query:
+ type: tosca.nodes.nfv.PnfExtCp
+ conversions:
+ - query:
+ properties:
+ trunk_mode:
+ to-name: trunk_mode_replaced
+ to-value:
+ strategy: replace
+ from: false
+ to:
+ myObjectReplaced: myObjectReplacedValue \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/transformation/pnfParseEngine/pnfAndExtCpWithInput/transformationDescriptor/replaceScalarAttributeToScalar.yaml b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/transformation/pnfParseEngine/pnfAndExtCpWithInput/transformationDescriptor/replaceScalarAttributeToScalar.yaml
new file mode 100644
index 0000000000..6cbb08e828
--- /dev/null
+++ b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/transformation/pnfParseEngine/pnfAndExtCpWithInput/transformationDescriptor/replaceScalarAttributeToScalar.yaml
@@ -0,0 +1,12 @@
+- transformation-for: nodeTemplate
+ query:
+ type: tosca.nodes.nfv.PnfExtCp
+ conversions:
+ - query:
+ properties:
+ trunk_mode:
+ to-name: trunk_mode_replaced
+ to-value:
+ strategy: replace
+ from: false
+ to: myReplacedValue \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/transformation/pnfParseEngine/pnfAndExtCpWithInput/transformationDescriptor/stringAsAnAttributeQuery.yaml b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/transformation/pnfParseEngine/pnfAndExtCpWithInput/transformationDescriptor/stringAsAnAttributeQuery.yaml
new file mode 100644
index 0000000000..7836b97386
--- /dev/null
+++ b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/transformation/pnfParseEngine/pnfAndExtCpWithInput/transformationDescriptor/stringAsAnAttributeQuery.yaml
@@ -0,0 +1,10 @@
+- transformation-for: nodeTemplate
+ query:
+ type: tosca.nodes.nfv.PnfExtCp
+ conversions:
+ - query: anyStringHere #query for a string does not work as it is meant to find a yaml attribute
+ to-name: type
+ to-value:
+ strategy: replace
+ from: tosca.nodes.nfv.PnfExtCp
+ to: org.openecomp.resource.cp.v2.extCP \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/transformation/pnfParseEngine/pnfWithGetInput/expectedOutput/defaultOutput.yaml b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/transformation/pnfParseEngine/pnfWithGetInput/expectedOutput/defaultOutput.yaml
new file mode 100644
index 0000000000..d47ce66ace
--- /dev/null
+++ b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/transformation/pnfParseEngine/pnfWithGetInput/expectedOutput/defaultOutput.yaml
@@ -0,0 +1,2 @@
+topology_template:
+ node_templates: {} \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/transformation/pnfParseEngine/pnfWithGetInput/expectedOutput/fullTransformation.yaml b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/transformation/pnfParseEngine/pnfWithGetInput/expectedOutput/fullTransformation.yaml
new file mode 100644
index 0000000000..4f9af4d7d2
--- /dev/null
+++ b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/transformation/pnfParseEngine/pnfWithGetInput/expectedOutput/fullTransformation.yaml
@@ -0,0 +1,36 @@
+topology_template:
+ inputs:
+ role1:
+ type: string
+ description: Role
+ default: leaf
+ layer_protocols:
+ type: list
+ description: IP protocols
+ entry_schema:
+ type: org.openecomp.datatypes.network.IpRequirements
+ default:
+ - assingment_method: dhcp
+ ip_version: 4
+ - assingment_method: dhcp
+ ip_version: 6
+ role:
+ type: string
+ description: Role
+ default: leaf
+ node_templates:
+ pnfExtCp_3:
+ properties:
+ role: {get_input: role1}
+ pnfExtCp_2:
+ properties:
+ ip_requirements: {get_input: layer_protocols}
+ role: {get_input: role}
+ pnfExtCp_1:
+ properties:
+ ip_requirements:
+ - assingment_method: dhcp
+ ip_version: 4
+ - assingment_method: dhcp
+ ip_version: 6
+ role: leaf \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/transformation/pnfParseEngine/pnfWithGetInput/expectedOutput/inputQueryWithMoreThanOneAttribute.yaml b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/transformation/pnfParseEngine/pnfWithGetInput/expectedOutput/inputQueryWithMoreThanOneAttribute.yaml
new file mode 100644
index 0000000000..a55692cac9
--- /dev/null
+++ b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/transformation/pnfParseEngine/pnfWithGetInput/expectedOutput/inputQueryWithMoreThanOneAttribute.yaml
@@ -0,0 +1,21 @@
+topology_template:
+ inputs:
+ role1:
+ description: Role
+ default: leaf
+ role:
+ description: Role
+ default: leaf
+ node_templates:
+ pnfExtCp_3:
+ properties:
+ trunk_mode_copy: false
+ role: {get_input: role1}
+ pnfExtCp_2:
+ properties:
+ trunk_mode_copy: false
+ role: {get_input: role}
+ pnfExtCp_1:
+ properties:
+ trunk_mode_copy: false
+ role: leaf \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/transformation/pnfParseEngine/pnfWithGetInput/expectedOutput/moreThanOneTransformationWithSameBlockQuery.yaml b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/transformation/pnfParseEngine/pnfWithGetInput/expectedOutput/moreThanOneTransformationWithSameBlockQuery.yaml
new file mode 100644
index 0000000000..0ae58056eb
--- /dev/null
+++ b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/transformation/pnfParseEngine/pnfWithGetInput/expectedOutput/moreThanOneTransformationWithSameBlockQuery.yaml
@@ -0,0 +1,11 @@
+topology_template:
+ node_templates:
+ pnfExtCp_3:
+ properties:
+ trunk_mode_copy: false
+ pnfExtCp_2:
+ properties:
+ trunk_mode_copy: false
+ pnfExtCp_1:
+ properties:
+ trunk_mode_copy: false \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/transformation/pnfParseEngine/pnfWithGetInput/expectedOutput/nodeTemplateQueryWithMoreThanOneAttribute.yaml b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/transformation/pnfParseEngine/pnfWithGetInput/expectedOutput/nodeTemplateQueryWithMoreThanOneAttribute.yaml
new file mode 100644
index 0000000000..4a23ac3b2e
--- /dev/null
+++ b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/transformation/pnfParseEngine/pnfWithGetInput/expectedOutput/nodeTemplateQueryWithMoreThanOneAttribute.yaml
@@ -0,0 +1,8 @@
+topology_template:
+ node_templates:
+ pnfExtCp_3:
+ type: org.openecomp.resource.cp.v2.extCP
+ pnfExtCp_2:
+ type: org.openecomp.resource.cp.v2.extCP
+ pnfExtCp_1:
+ type: org.openecomp.resource.cp.v2.extCP \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/transformation/pnfParseEngine/pnfWithGetInput/expectedOutput/wrongGetInputTransformationName.yaml b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/transformation/pnfParseEngine/pnfWithGetInput/expectedOutput/wrongGetInputTransformationName.yaml
new file mode 100644
index 0000000000..45e0bbb85e
--- /dev/null
+++ b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/transformation/pnfParseEngine/pnfWithGetInput/expectedOutput/wrongGetInputTransformationName.yaml
@@ -0,0 +1,14 @@
+topology_template:
+ node_templates:
+ pnfExtCp_3:
+ properties:
+ trunk_mode_copy: false
+ role: {get_input: role1}
+ pnfExtCp_2:
+ properties:
+ trunk_mode_copy: false
+ role: {get_input: role}
+ pnfExtCp_1:
+ properties:
+ trunk_mode_copy: false
+ role: leaf \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/transformation/pnfParseEngine/pnfWithGetInput/expectedOutput/wrongTransformationBlock.yaml b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/transformation/pnfParseEngine/pnfWithGetInput/expectedOutput/wrongTransformationBlock.yaml
new file mode 100644
index 0000000000..0ae58056eb
--- /dev/null
+++ b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/transformation/pnfParseEngine/pnfWithGetInput/expectedOutput/wrongTransformationBlock.yaml
@@ -0,0 +1,11 @@
+topology_template:
+ node_templates:
+ pnfExtCp_3:
+ properties:
+ trunk_mode_copy: false
+ pnfExtCp_2:
+ properties:
+ trunk_mode_copy: false
+ pnfExtCp_1:
+ properties:
+ trunk_mode_copy: false \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/transformation/pnfParseEngine/pnfWithGetInput/pnfWithGetInput.yaml b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/transformation/pnfParseEngine/pnfWithGetInput/pnfWithGetInput.yaml
new file mode 100644
index 0000000000..1b89d15293
--- /dev/null
+++ b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/transformation/pnfParseEngine/pnfWithGetInput/pnfWithGetInput.yaml
@@ -0,0 +1,61 @@
+tosca_definitions_version: tosca_simple_yaml_1_1
+
+description: service template of a PNF
+
+topology_template:
+ inputs:
+ role:
+ type: string
+ description: Role
+ default: leaf
+ role1:
+ type: string
+ description: Role
+ default: leaf
+ layer_protocols:
+ type: list
+ description: IP protocols
+ entry_schema:
+ type: string
+ default: [ipv4, ipv6, otherProtocol]
+ node_templates:
+ notToBeConvertedNode:
+ type: tosca.nodes.nfv.PNF
+ properties:
+ descriptor_id: b1bb0ce7-ebca-4fa7-95ed-4840d70a2233
+ function_description: an example PNF
+ provider: Mycompany
+ version: 1.0
+ descriptor_invariant_id: 1111-2222-ccaa-bbdd
+ name: ExamplePnf
+ requirements:
+ - virtual_link:
+ capability: tosca.capabilities.nfv.VirtualLinkable
+ node: pnfExtCp_1
+ pnfExtCp_1:
+ type: tosca.nodes.nfv.PnfExtCp
+ properties:
+ trunk_mode: false
+ layer_protocols: [ipv4, ipv6, otherProtocol]
+ role: leaf
+ description: External connection point to access this pnf
+ anObjectAttribute:
+ anyAttribute: anyAttributeValue
+ pnfExtCp_2:
+ type: tosca.nodes.nfv.PnfExtCp
+ properties:
+ trunk_mode: false
+ layer_protocols:
+ get_input: layer_protocols
+ role: {get_input: role}
+ description: External connection point to access this pnf
+ anObjectAttribute:
+ anyAttribute: anyAttributeValue
+ pnfExtCp_3:
+ type: tosca.nodes.nfv.PnfExtCp
+ properties:
+ trunk_mode: false
+ description: External connection point to access this pnf
+ anObjectAttribute:
+ anyAttribute: anyAttributeValue
+ role: {get_input: role1} \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/transformation/pnfParseEngine/pnfWithGetInput/transformationDescriptor/fullTransformation.yaml b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/transformation/pnfParseEngine/pnfWithGetInput/transformationDescriptor/fullTransformation.yaml
new file mode 100644
index 0000000000..4772bfe4f9
--- /dev/null
+++ b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/transformation/pnfParseEngine/pnfWithGetInput/transformationDescriptor/fullTransformation.yaml
@@ -0,0 +1,84 @@
+- transformation-for: nodeTemplate
+ name: PnfExtCp transformation
+ description: converts any node template that has a type tosca.nodes.nfv.PnfExtCp
+ query:
+ type: tosca.nodes.nfv.PnfExtCp
+ conversions:
+ - query:
+ properties:
+ layer_protocols:
+ to-name: ip_requirements
+ to-value:
+ strategy: replaceInList
+ list:
+ - from: ipv4
+ to:
+ assingment_method: dhcp
+ ip_version: 4
+ - from: ipv6
+ to:
+ assingment_method: dhcp
+ ip_version: 6
+ to-get-input: ipRequirements
+ - query:
+ properties:
+ role:
+ to-name: role
+ to-value:
+ strategy: copy
+ to-get-input: stringTransformation
+- transformation-for: getInputFunction
+ name: ipRequirements
+ description: converts IpRequirements inputs when called by a get_input TOSCA function
+ conversions:
+ - query:
+ type:
+ to-name: type
+ to-value:
+ strategy: copy
+ - query:
+ description:
+ to-name: description
+ to-value:
+ strategy: copy
+ - query:
+ entry_schema:
+ type:
+ to-name: type
+ to-value:
+ strategy: replace
+ from: string
+ to: org.openecomp.datatypes.network.IpRequirements
+ - query:
+ default:
+ to-name: default
+ to-value:
+ strategy: replaceInList
+ list:
+ - from: ipv4
+ to:
+ assingment_method: dhcp
+ ip_version: 4
+ - from: ipv6
+ to:
+ assingment_method: dhcp
+ ip_version: 6
+- transformation-for: getInputFunction
+ name: stringTransformation
+ description: converts a string input
+ conversions:
+ - query:
+ type:
+ to-name: type
+ to-value:
+ strategy: copy
+ - query:
+ description:
+ to-name: description
+ to-value:
+ strategy: copy
+ - query:
+ default:
+ to-name: default
+ to-value:
+ strategy: copy \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/transformation/pnfParseEngine/pnfWithGetInput/transformationDescriptor/inputQueryWithMoreThanOneAttribute.yaml b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/transformation/pnfParseEngine/pnfWithGetInput/transformationDescriptor/inputQueryWithMoreThanOneAttribute.yaml
new file mode 100644
index 0000000000..1655ca4880
--- /dev/null
+++ b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/transformation/pnfParseEngine/pnfWithGetInput/transformationDescriptor/inputQueryWithMoreThanOneAttribute.yaml
@@ -0,0 +1,39 @@
+- transformation-for: nodeTemplate
+ name: PnfExtCp transformation
+ description: converts any node template that has a type tosca.nodes.nfv.PnfExtCp
+ query:
+ type: tosca.nodes.nfv.PnfExtCp
+ conversions:
+ - query:
+ properties:
+ trunk_mode:
+ to-name: trunk_mode_copy
+ to-value:
+ strategy: copy
+ - query:
+ properties:
+ role:
+ to-name: role
+ to-value:
+ strategy: copy
+ to-get-input: stringTransformation
+- transformation-for: getInputFunction
+ name: stringTransformation
+ description: converts a string input
+ conversions:
+ - query:
+ type:
+ invalid-another-attribute: #cannot have two attributes in the attribute query
+ to-name: type
+ to-value:
+ strategy: copy
+ - query:
+ description:
+ to-name: description
+ to-value:
+ strategy: copy
+ - query:
+ default:
+ to-name: default
+ to-value:
+ strategy: copy \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/transformation/pnfParseEngine/pnfWithGetInput/transformationDescriptor/moreThanOneTransformationWithSameBlockQuery.yaml b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/transformation/pnfParseEngine/pnfWithGetInput/transformationDescriptor/moreThanOneTransformationWithSameBlockQuery.yaml
new file mode 100644
index 0000000000..aa05627da2
--- /dev/null
+++ b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/transformation/pnfParseEngine/pnfWithGetInput/transformationDescriptor/moreThanOneTransformationWithSameBlockQuery.yaml
@@ -0,0 +1,37 @@
+#just one of the transformations will be considered
+- transformation-for: nodeTemplate #same time
+ name: PnfExtCp transformation
+ description: converts any node template that has a type tosca.nodes.nfv.PnfExtCp
+ query: #same block query
+ type: tosca.nodes.nfv.PnfExtCp
+ conversions:
+ - query:
+ properties:
+ trunk_mode:
+ to-name: trunk_mode_copy
+ to-value:
+ strategy: copy
+- transformation-for: nodeTemplate #same time
+ name: PnfExtCp transformation
+ description: converts any node template that has a type tosca.nodes.nfv.PnfExtCp
+ query: #same block query
+ type: tosca.nodes.nfv.PnfExtCp
+ conversions:
+ - query:
+ properties:
+ role:
+ to-name: role
+ to-value:
+ strategy: copy
+- transformation-for: nodeTemplate #same time
+ name: PnfExtCp transformation
+ description: converts any node template that has a type tosca.nodes.nfv.PnfExtCp
+ query: #same block query
+ type: tosca.nodes.nfv.PnfExtCp
+ conversions:
+ - query:
+ properties:
+ trunk_mode:
+ to-name: trunk_mode_copy1
+ to-value:
+ strategy: copy \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/transformation/pnfParseEngine/pnfWithGetInput/transformationDescriptor/nodeTemplateQueryWithMoreThanOneAttribute.yaml b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/transformation/pnfParseEngine/pnfWithGetInput/transformationDescriptor/nodeTemplateQueryWithMoreThanOneAttribute.yaml
new file mode 100644
index 0000000000..b20f48eebd
--- /dev/null
+++ b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/transformation/pnfParseEngine/pnfWithGetInput/transformationDescriptor/nodeTemplateQueryWithMoreThanOneAttribute.yaml
@@ -0,0 +1,14 @@
+- transformation-for: nodeTemplate
+ query:
+ type: tosca.nodes.nfv.PnfExtCp
+ properties:
+ anObjectAttribute:
+ anyAttribute: anyAttributeValue
+ conversions:
+ - query:
+ type:
+ to-name: type
+ to-value:
+ strategy: replace
+ from: tosca.nodes.nfv.PnfExtCp
+ to: org.openecomp.resource.cp.v2.extCP \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/transformation/pnfParseEngine/pnfWithGetInput/transformationDescriptor/wrongGetInputTransformationName.yaml b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/transformation/pnfParseEngine/pnfWithGetInput/transformationDescriptor/wrongGetInputTransformationName.yaml
new file mode 100644
index 0000000000..fd5133cb91
--- /dev/null
+++ b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/transformation/pnfParseEngine/pnfWithGetInput/transformationDescriptor/wrongGetInputTransformationName.yaml
@@ -0,0 +1,39 @@
+- transformation-for: nodeTemplate
+ name: PnfExtCp transformation
+ description: converts any node template that has a type tosca.nodes.nfv.PnfExtCp
+ query:
+ type: tosca.nodes.nfv.PnfExtCp
+ conversions:
+ - query:
+ properties:
+ trunk_mode:
+ to-name: trunk_mode_copy
+ to-value:
+ strategy: copy
+ - query:
+ properties:
+ role:
+ to-name: role
+ to-value:
+ strategy: copy
+ to-get-input: stringTransformation1
+- transformation-for: getInputFunction
+ name: stringTransformation
+ description: converts a string input
+ conversions:
+ - query:
+ type:
+ invalid-another-attribute: #cannot have two attributes in the attribute query
+ to-name: type
+ to-value:
+ strategy: copy
+ - query:
+ description:
+ to-name: description
+ to-value:
+ strategy: copy
+ - query:
+ default:
+ to-name: default
+ to-value:
+ strategy: copy \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/transformation/pnfParseEngine/pnfWithGetInput/transformationDescriptor/wrongTransformationBlock.yaml b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/transformation/pnfParseEngine/pnfWithGetInput/transformationDescriptor/wrongTransformationBlock.yaml
new file mode 100644
index 0000000000..0559b02642
--- /dev/null
+++ b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/transformation/pnfParseEngine/pnfWithGetInput/transformationDescriptor/wrongTransformationBlock.yaml
@@ -0,0 +1,24 @@
+- transformation-for: nodeTemplate
+ name: PnfExtCp transformation
+ description: converts any node template that has a type tosca.nodes.nfv.PnfExtCp
+ query:
+ type: tosca.nodes.nfv.PnfExtCp
+ conversions:
+ - query:
+ properties:
+ trunk_mode:
+ to-name: trunk_mode_copy
+ to-value:
+ strategy: copy
+- transformation-for: wrongBlock
+ name: PnfExtCp transformation
+ description: converts any node template that has a type tosca.nodes.nfv.PnfExtCp
+ query:
+ type: tosca.nodes.nfv.PnfExtCp
+ conversions:
+ - query:
+ properties:
+ role:
+ to-name: role
+ to-value:
+ strategy: copy \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/transformation/strategy/replaceStrategy.yaml b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/transformation/strategy/replaceStrategy.yaml
new file mode 100644
index 0000000000..f60655c5ca
--- /dev/null
+++ b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/transformation/strategy/replaceStrategy.yaml
@@ -0,0 +1,3 @@
+strategy: replace
+from: tosca.nodes.nfv.PnfExtCp
+to: org.openecomp.resource.cp.v2.extCP \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/transformation/strategy/strategyMissingStrategyAttribute.yaml b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/transformation/strategy/strategyMissingStrategyAttribute.yaml
new file mode 100644
index 0000000000..40200cecb0
--- /dev/null
+++ b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/resources/transformation/strategy/strategyMissingStrategyAttribute.yaml
@@ -0,0 +1,2 @@
+from: tosca.nodes.nfv.PnfExtCp
+to: org.openecomp.resource.cp.v2.extCP \ No newline at end of file