Implement PNFD Model driven conversion
[sdc.git] / 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) {