summaryrefslogtreecommitdiffstats
path: root/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/java/org
diff options
context:
space:
mode:
Diffstat (limited to 'openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/java/org')
-rw-r--r--openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/java/org/openecomp/core/impl/ToscaDefinitionImportHandlerTest.java291
-rw-r--r--openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/java/org/openecomp/core/impl/ToscaSolConverterVnfTest.java78
-rw-r--r--openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/java/org/openecomp/core/util/TestResourcesUtil.java80
3 files changed, 431 insertions, 18 deletions
diff --git a/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/java/org/openecomp/core/impl/ToscaDefinitionImportHandlerTest.java b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/java/org/openecomp/core/impl/ToscaDefinitionImportHandlerTest.java
new file mode 100644
index 0000000000..30cba677f2
--- /dev/null
+++ b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/java/org/openecomp/core/impl/ToscaDefinitionImportHandlerTest.java
@@ -0,0 +1,291 @@
+/*
+ * ============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 static org.hamcrest.MatcherAssert.assertThat;
+import static org.hamcrest.Matchers.containsInAnyOrder;
+import static org.hamcrest.Matchers.hasSize;
+import static org.openecomp.core.util.TestResourcesUtil.getResourceBytesOrFail;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import org.junit.Before;
+import org.junit.Test;
+import org.openecomp.sdc.common.errors.Messages;
+import org.openecomp.sdc.datatypes.error.ErrorLevel;
+import org.openecomp.sdc.datatypes.error.ErrorMessage;
+
+public class ToscaDefinitionImportHandlerTest {
+
+ private static final String RESOURCES_FILE_PATH = "/toscaDefinitionImportHandler/";
+ private Map<String, byte[]> descriptorFileMap;
+
+ @Before
+ public void setUp() {
+ descriptorFileMap = new HashMap<>();
+ }
+
+ /**
+ * Tests correct descriptor files.
+ */
+ @Test
+ public void testGivenDescriptorFiles_whenMainDescriptorImportsAreHandled_allDescriptorsAreProcessedWithoutError() {
+ final List<String> filesToHandleList = Arrays.asList("Definitions/Main.yaml", "Definitions/descriptorBasicImport.yaml",
+ "Definitions/descriptorWithRelativePaths.yaml", "Artifacts/descriptorWithAbsolutePaths.yaml",
+ "Artifacts/descriptorCyclicReference.yaml");
+
+ filesToHandleList.forEach(file -> descriptorFileMap.put(file, getResourceBytesOrFail(RESOURCES_FILE_PATH + file)));
+
+ final ToscaDefinitionImportHandler toscaDefinitionImportHandler = new ToscaDefinitionImportHandler(
+ descriptorFileMap,
+ "Definitions/Main.yaml");
+ final Set<String> actualHandledFiles = toscaDefinitionImportHandler.getHandledDefinitionFilesList();
+
+ assertThat("The handled files should be the same", actualHandledFiles, hasSize(filesToHandleList.size()));
+ assertThat("The handled files should be the same"
+ , actualHandledFiles, containsInAnyOrder(filesToHandleList.toArray(new String[0]))
+ );
+
+ final List<ErrorMessage> validationErrorList = toscaDefinitionImportHandler.getErrors();
+ assertThat("No errors should be detected", validationErrorList, hasSize(0));
+ }
+
+ /**
+ * Tests an empty package.
+ */
+ @Test
+ public void testGivenEmptyPackage_whenMainDescriptorIsHandled_aMissingFileErrorIsReported() {
+ final List<String> filesToHandleList = Collections.emptyList();
+
+ final ToscaDefinitionImportHandler toscaDefinitionImportHandler = new ToscaDefinitionImportHandler(
+ descriptorFileMap,
+ "Definitions/Main.yaml");
+ final Set<String> actualHandledFiles = toscaDefinitionImportHandler.getHandledDefinitionFilesList();
+
+ assertThat("The handled files should be the same", actualHandledFiles, hasSize(filesToHandleList.size()));
+ assertThat("The handled files should be the same"
+ , actualHandledFiles, containsInAnyOrder(filesToHandleList.toArray(new String[0]))
+ );
+
+ final List<ErrorMessage> expectedErrorList = new ArrayList<>();
+ expectedErrorList.add(new ErrorMessage(ErrorLevel.ERROR,
+ Messages.MISSING_IMPORT_FILE.formatMessage("Definitions/Main.yaml")));
+
+ final List<ErrorMessage> validationErrorList = toscaDefinitionImportHandler.getErrors();
+ assertThat("The errors should be the same", validationErrorList, hasSize(expectedErrorList.size()));
+ assertThat("The errors should be the same"
+ , validationErrorList, containsInAnyOrder(expectedErrorList.toArray(new ErrorMessage[0]))
+ );
+ }
+
+ /**
+ * Tests a file imported in a descriptor but missing in the package.
+ */
+ @Test
+ public void testGivenOneMissingDescriptorFile_whenMainDescriptorImportsAreHandled_aMissingFileErrorIsReported() {
+ final List<String> filesToHandleList = Arrays.asList("Definitions/Main.yaml",
+ "Definitions/descriptorBasicImport.yaml", "Definitions/descriptorWithRelativePaths.yaml",
+ "Artifacts/descriptorWithAbsolutePaths.yaml");
+ filesToHandleList.forEach(file -> descriptorFileMap.put(file, getResourceBytesOrFail(RESOURCES_FILE_PATH + file)));
+
+ final List<ErrorMessage> expectedErrorList = new ArrayList<>();
+ expectedErrorList.add(new ErrorMessage(ErrorLevel.ERROR,
+ String.format(Messages.MISSING_IMPORT_FILE.getErrorMessage(), "Artifacts/descriptorCyclicReference.yaml")));
+
+ final ToscaDefinitionImportHandler toscaDefinitionImportHandler = new ToscaDefinitionImportHandler(
+ descriptorFileMap,
+ "Definitions/Main.yaml");
+ final Set<String> actualHandledFiles = toscaDefinitionImportHandler.getHandledDefinitionFilesList();
+
+ assertThat("The handled files should be the same", actualHandledFiles, hasSize(filesToHandleList.size()));
+ assertThat("The handled files should be the same"
+ , actualHandledFiles, containsInAnyOrder(filesToHandleList.toArray(new String[0]))
+ );
+
+ final List<ErrorMessage> validationErrorList = toscaDefinitionImportHandler.getErrors();
+ assertThat("The errors should be the same", validationErrorList, hasSize(expectedErrorList.size()));
+ assertThat("The errors should be the same"
+ , validationErrorList, containsInAnyOrder(expectedErrorList.toArray(new ErrorMessage[0]))
+ );
+ }
+
+ /**
+ * Tests a descriptor with invalid import statements.
+ */
+ @Test
+ public void testGivenDescriptorWithInvalidImportStatement_whenMainDescriptorImportsAreHandled_aInvalidImportStatementErrorIsReported() {
+ final String mainDefinitionFile = "Definitions/MainWithInvalidImportedFile.yaml";
+
+ final List<String> filesToHandleList = Arrays.asList(mainDefinitionFile,
+ "Definitions/descriptorInvalidImportStatement.yaml");
+ filesToHandleList.forEach(file -> descriptorFileMap.put(file, getResourceBytesOrFail(RESOURCES_FILE_PATH + file)));
+
+ final List<ErrorMessage> expectedErrorList = new ArrayList<>();
+ expectedErrorList.add(new ErrorMessage(ErrorLevel.ERROR,
+ Messages.INVALID_IMPORT_STATEMENT.formatMessage("Definitions/descriptorInvalidImportStatement.yaml", "null")));
+
+ final ToscaDefinitionImportHandler toscaDefinitionImportHandler = new ToscaDefinitionImportHandler(
+ descriptorFileMap,
+ mainDefinitionFile);
+ final Set<String> actualHandledFiles = toscaDefinitionImportHandler.getHandledDefinitionFilesList();
+
+ assertThat("The handled files should be the same", actualHandledFiles, hasSize(filesToHandleList.size()));
+ assertThat("The handled files should be the same"
+ , actualHandledFiles, containsInAnyOrder(filesToHandleList.toArray(new String[0]))
+ );
+
+ final List<ErrorMessage> validationErrorList = toscaDefinitionImportHandler.getErrors();
+ assertThat("The errors should be the same", validationErrorList, hasSize(expectedErrorList.size()));
+ assertThat("The errors should be the same"
+ , validationErrorList, containsInAnyOrder(expectedErrorList.toArray(new ErrorMessage[0]))
+ );
+ }
+
+ /**
+ * Tests an invalid main descriptor file path.
+ */
+ @Test
+ public void testGivenInvalidMainDescriptorFilePath_whenDescriptorIsHandled_aMissingImportErrorIsReported() {
+ final String mainDefinitionFilePath = "Definitions/Main1.yaml";
+ final String invalidMainDefinitionFilePath = "../Definitions/InvalidMainDefinitionFile.yaml";
+
+ final List<String> filesToHandleList = Arrays.asList(mainDefinitionFilePath);
+ filesToHandleList.forEach(file -> descriptorFileMap.put(file, getResourceBytesOrFail(RESOURCES_FILE_PATH + file)));
+
+ final List<ErrorMessage> expectedErrorList = new ArrayList<>();
+ expectedErrorList.add(new ErrorMessage(ErrorLevel.ERROR, Messages.MISSING_IMPORT_FILE.formatMessage(invalidMainDefinitionFilePath)));
+
+ final ToscaDefinitionImportHandler toscaDefinitionImportHandler = new ToscaDefinitionImportHandler(
+ descriptorFileMap,
+ invalidMainDefinitionFilePath);
+ final Set<String> actualHandledFiles = toscaDefinitionImportHandler.getHandledDefinitionFilesList();
+
+ assertThat("No files should be handled", actualHandledFiles, hasSize(0));
+
+ final List<ErrorMessage> validationErrorList = toscaDefinitionImportHandler.getErrors();
+
+ assertThat("The errors should be the same", validationErrorList, hasSize(expectedErrorList.size()));
+ assertThat("The errors should be the same"
+ , validationErrorList, containsInAnyOrder(expectedErrorList.toArray(new ErrorMessage[0]))
+ );
+ }
+
+ /**
+ * Tests a descriptor with invalid yaml.
+ */
+ @Test
+ public void testGivenInvalidYamlDescriptorFile_whenDescriptorIsHandled_aInvalidYamlFormatErrorIsReported() {
+ final String mainDefinitionFile = "Definitions/descriptorInvalid.yaml";
+
+ final List<String> filesToHandleList = Arrays.asList(mainDefinitionFile);
+ filesToHandleList.forEach(file -> descriptorFileMap.put(file, getResourceBytesOrFail(RESOURCES_FILE_PATH + file)));
+
+ final List<ErrorMessage> expectedErrorList = new ArrayList<>();
+ expectedErrorList.add(new ErrorMessage(ErrorLevel.ERROR, String.format(Messages.INVALID_YAML_FORMAT.getErrorMessage()
+ , "while scanning a simple key\n"
+ + " in 'string', line 5, column 3:\n"
+ + " template_author= onap\n"
+ + " ^\n"
+ + "could not find expected ':'\n"
+ + " in 'string', line 6, column 1:\n"
+ + " description: vCPE_vgw\n"
+ + " ^\n")));
+
+ final ToscaDefinitionImportHandler toscaDefinitionImportHandler = new ToscaDefinitionImportHandler(
+ descriptorFileMap,
+ mainDefinitionFile);
+ final Set<String> actualHandledFiles = toscaDefinitionImportHandler.getHandledDefinitionFilesList();
+
+ assertThat("No files should be handled", actualHandledFiles, hasSize(0));
+
+ final List<ErrorMessage> validationErrorList = toscaDefinitionImportHandler.getErrors();
+
+ assertThat("The errors should be the same", validationErrorList, hasSize(expectedErrorList.size()));
+ assertThat("The errors should be the same"
+ , validationErrorList, containsInAnyOrder(expectedErrorList.toArray(new ErrorMessage[0]))
+ );
+ }
+
+ /**
+ * Tests all forms of import statements.
+ */
+ @Test
+ public void testGivenDescriptorFiles_whenMainDescriptorWithDifferentImportStatementsIsHandled_noErrorsAreReported() {
+ final String mainDefinitionFile = "Definitions/descriptorFileWithValidImportStatements.yaml";
+
+ final List<String> filesToHandleList = Arrays.asList(mainDefinitionFile, "Artifacts/descriptorCyclicReference.yaml");
+ filesToHandleList.forEach(file -> descriptorFileMap.put(file, getResourceBytesOrFail(RESOURCES_FILE_PATH + file)));
+
+ final ToscaDefinitionImportHandler toscaDefinitionImportHandler =
+ new ToscaDefinitionImportHandler(descriptorFileMap, mainDefinitionFile);
+ final Set<String> actualHandledFiles = toscaDefinitionImportHandler.getHandledDefinitionFilesList();
+
+ assertThat("The handled files should be the same", actualHandledFiles, hasSize(filesToHandleList.size()));
+ assertThat("The handled files should be the same"
+ , actualHandledFiles, containsInAnyOrder(filesToHandleList.toArray(new String[0]))
+ );
+
+ final List<ErrorMessage> validationErrorList = toscaDefinitionImportHandler.getErrors();
+ assertThat("No errors should be detected", validationErrorList, hasSize(0));
+ }
+
+ /**
+ * Tests a descriptor with nonexistent import paths.
+ */
+ @Test
+ public void testGivenDescriptorFileWithNonexistentRelativeImport_whenIncorrectMainDescriptorIsHandled_aMissingFileErrorIsReported() {
+ final String mainDefinitionFile = "Definitions/MainWithNonexistentReferences.yaml";
+
+ final List<String> filesToHandleList = Arrays.asList(mainDefinitionFile, "Definitions/descriptorNonexistentImport.yaml",
+ "Artifacts/descriptorCyclicReference.yaml");
+ filesToHandleList.forEach(file -> descriptorFileMap.put(file, getResourceBytesOrFail(RESOURCES_FILE_PATH + file)));
+
+ final List<ErrorMessage> expectedErrorList = new ArrayList<>();
+ expectedErrorList.add(new ErrorMessage(ErrorLevel.ERROR,
+ String.format(Messages.MISSING_IMPORT_FILE.getErrorMessage(), "Definitions/descriptorCyclicReference.yaml")));
+ expectedErrorList.add(new ErrorMessage(ErrorLevel.ERROR,
+ String.format(Messages.MISSING_IMPORT_FILE.getErrorMessage(), "Definitions/descriptorCyclicReference.yaml")));
+ expectedErrorList.add(new ErrorMessage(ErrorLevel.ERROR,
+ String.format(Messages.MISSING_IMPORT_FILE.getErrorMessage(), "Definitions/descriptorCyclicReference.yaml")));
+
+ final ToscaDefinitionImportHandler toscaDefinitionImportHandler = new ToscaDefinitionImportHandler(
+ descriptorFileMap,
+ mainDefinitionFile);
+ final Set<String> actualHandledFiles = toscaDefinitionImportHandler.getHandledDefinitionFilesList();
+
+ assertThat("The handled files should be the same", actualHandledFiles, hasSize(filesToHandleList.size()));
+ assertThat("The handled files should be the same"
+ , actualHandledFiles, containsInAnyOrder(filesToHandleList.toArray(new String[0]))
+ );
+
+ final List<ErrorMessage> validationErrorList = toscaDefinitionImportHandler.getErrors();
+
+ assertThat("The errors should be the same", validationErrorList, hasSize(expectedErrorList.size()));
+ assertThat("The errors should be the same"
+ , validationErrorList, containsInAnyOrder(expectedErrorList.toArray(new ErrorMessage[0]))
+ );
+ }
+
+} \ 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/ToscaSolConverterVnfTest.java b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/java/org/openecomp/core/impl/ToscaSolConverterVnfTest.java
index 532573bcf4..f130f262a7 100644
--- a/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/java/org/openecomp/core/impl/ToscaSolConverterVnfTest.java
+++ b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/java/org/openecomp/core/impl/ToscaSolConverterVnfTest.java
@@ -22,6 +22,8 @@
package org.openecomp.core.impl;
+import static org.junit.Assert.fail;
+
import org.apache.commons.io.IOUtils;
import org.junit.Assert;
import org.junit.Before;
@@ -29,6 +31,8 @@ import org.junit.Test;
import org.onap.sdc.tosca.datatypes.model.ServiceTemplate;
import org.openecomp.core.utilities.file.FileContentHandler;
import org.openecomp.sdc.common.errors.CoreException;
+import org.openecomp.sdc.logging.api.Logger;
+import org.openecomp.sdc.logging.api.LoggerFactory;
import org.openecomp.sdc.tosca.datatypes.ToscaServiceModel;
import java.io.IOException;
import java.io.InputStream;
@@ -37,6 +41,7 @@ import java.util.Map;
public class ToscaSolConverterVnfTest {
+ private static final Logger LOGGER = LoggerFactory.getLogger(ToscaSolConverterVnfTest.class);
private AbstractToscaSolConverter toscaSolConverter;
private FileContentHandler fileContentHandler;
@@ -47,10 +52,8 @@ public class ToscaSolConverterVnfTest {
fileContentHandler = new FileContentHandler();
}
-
@Test
- public void testGivenSOL004WithMetadataDirectoryPackage_whenToscaSolConverterIsCalled_validToscaServiceModelIsReturned()
- throws IOException{
+ public void testGivenSOL004WithMetadataDirectoryPackage_whenToscaSolConverterIsCalled_validToscaServiceModelIsReturned() {
fileContentHandler.addFile("TOSCA-Metadata/TOSCA.meta",
("TOSCA-Meta-File-Version: 1.0\n " +
"CSAR-Version: 1.1\n" +
@@ -60,29 +63,52 @@ public class ToscaSolConverterVnfTest {
"Entry-Change-Log: Artifacts/ChangeLog.txt")
.getBytes(StandardCharsets.UTF_8));
- fileContentHandler.addFile("Definitions/Main.yaml", getFileResource("/toscaSOlConverter/Main.yaml"));
- fileContentHandler.addFile("Main.mf", "".getBytes());
+ final String mainServiceTemplate = "Main.yaml";
+ final String mainManifest = "Main.mf";
+
+ fileContentHandler.addFile("Definitions/" + mainServiceTemplate, getFileResource("/toscaSOlConverter/Main.yaml"));
+ fileContentHandler.addFile(mainManifest, "".getBytes());
fileContentHandler.addFile("Definitions/sample_import1.yaml", getFileResource("/toscaSOlConverter/sample_import1.yaml"));
fileContentHandler.addFile("Definitions/sample_import2.yaml", getFileResource("/toscaSOlConverter/sample_import2.yaml"));
fileContentHandler.addFile("Artifacts/sample_import3.yaml", getFileResource("/toscaSOlConverter/sample_import3.yaml"));
fileContentHandler.addFile("Artifacts/sample_import4.yaml", getFileResource("/toscaSOlConverter/sample_import4.yaml"));
- ToscaServiceModel toscaServiceModel = toscaSolConverter.convert(fileContentHandler);
- FileContentHandler contentHandler = toscaServiceModel.getArtifactFiles();
- Map<String, ServiceTemplate> serviceTemplateMap = toscaServiceModel.getServiceTemplates();
- String entryDefinitionTemplateName = toscaServiceModel.getEntryDefinitionServiceTemplate();
- Assert.assertTrue("Artifacts should contain external files", contentHandler.containsFile("Main.mf"));
- Assert.assertTrue("Main service template should exist", serviceTemplateMap.containsKey("Main.yaml"));
+ fileContentHandler.addFile("sample_import5.yaml", getFileResource("/toscaSOlConverter/sample_import3.yaml"));
+
+ final ToscaServiceModel toscaServiceModel = convertToscaSol();
+ final FileContentHandler contentHandler = toscaServiceModel.getArtifactFiles();
+ final Map<String, ServiceTemplate> serviceTemplateMap = toscaServiceModel.getServiceTemplates();
+ final String entryDefinitionTemplateName = toscaServiceModel.getEntryDefinitionServiceTemplate();
+ Assert.assertTrue("Artifacts should contain external files", contentHandler.containsFile(mainManifest));
+ Assert.assertTrue("Main service template should exist", serviceTemplateMap.containsKey(mainServiceTemplate));
Assert.assertEquals("Entry Definition name should be same as passed in TOSCA.meta",
- "Main.yaml", entryDefinitionTemplateName);
+ mainServiceTemplate, entryDefinitionTemplateName);
+ }
+
+ @Test(expected = RuntimeException.class)
+ public void testGivenSOL004InvalidDirectoryPackage_whenToscaSolConverterIsCalled_exceptionIsExpected() {
+ fileContentHandler.addFile("TOSCA-Metadata/TOSCA.meta",
+ ("TOSCA-Meta-File-Version: 1.0\n " +
+ "CSAR-Version: 1.1\n" +
+ "Created-by: Ericsson\n" +
+ "Entry-Definitions: Definitions/Main.yaml\n" +
+ "Entry-Manifest: Main.mf\n" +
+ "Entry-Change-Log: Artifacts/ChangeLog.txt")
+ .getBytes(StandardCharsets.UTF_8));
+
+ fileContentHandler.addFile("Definitions/Main.yaml", getFileResource("/toscaSOlConverter/Main.yaml"));
+ fileContentHandler.addFile("Main.mf", "".getBytes());
+ fileContentHandler.addFile("Definitions/sample_import1.yaml", getFileResource("/toscaSOlConverter/sample_import3.yaml"));
+
+ convertToscaSol();
}
@Test(expected = IOException.class)
- public void testGivenMetaFileDoesNotExist_thenAnExceptionIsThrown() throws IOException{
+ public void testGivenMetaFileDoesNotExist_thenAnExceptionIsThrown() throws IOException {
toscaSolConverter.convert(fileContentHandler);
}
@Test(expected = CoreException.class)
- public void testGivenInvalidServiceTemplate_thenAnExceptionIsThrown() throws IOException{
+ public void testGivenInvalidServiceTemplate_thenAnExceptionIsThrown() {
fileContentHandler.addFile("TOSCA-Metadata/TOSCA.meta",
("TOSCA-Meta-File-Version: 1.0\n " +
@@ -94,12 +120,28 @@ public class ToscaSolConverterVnfTest {
.getBytes(StandardCharsets.UTF_8));
fileContentHandler.addFile("Definitions/Main.yaml", getFileResource("/toscaSOlConverter/invalidMainService.yaml"));
- toscaSolConverter.convert(fileContentHandler);
+ convertToscaSol();
}
- private byte[] getFileResource(String filePath) throws IOException {
- InputStream inputStream = ClassLoader.class.getClass().getResourceAsStream(filePath);
- return IOUtils.toByteArray(inputStream);
+ private ToscaServiceModel convertToscaSol() {
+ try {
+ return toscaSolConverter.convert(fileContentHandler);
+ } catch (final IOException e) {
+ final String errorMsg = "Could convert file content handler";
+ LOGGER.error(errorMsg, e);
+ fail(errorMsg);
+ }
+ return null;
+ }
+
+ private byte[] getFileResource(final String filePath) {
+ try (final InputStream inputStream = ClassLoader.class.getResourceAsStream(filePath)) {
+ return IOUtils.toByteArray(inputStream);
+ } catch (final IOException ex) {
+ fail(String.format("Could not load file: %s", filePath));
+ }
+
+ return null;
}
} \ 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/util/TestResourcesUtil.java b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/java/org/openecomp/core/util/TestResourcesUtil.java
new file mode 100644
index 0000000000..34559f5386
--- /dev/null
+++ b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/java/org/openecomp/core/util/TestResourcesUtil.java
@@ -0,0 +1,80 @@
+/*
+ * ============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.IOException;
+import java.io.InputStream;
+import org.apache.commons.io.IOUtils;
+import org.openecomp.sdc.logging.api.Logger;
+import org.openecomp.sdc.logging.api.LoggerFactory;
+
+/**
+ * Test resources utility class.
+ */
+public class TestResourcesUtil {
+
+ private static final Logger LOGGER = LoggerFactory.getLogger(TestResourcesUtil.class);
+
+ private TestResourcesUtil() {
+
+ }
+
+ /**
+ * Reads a file and coverts it to a byte array.
+ *
+ * @param resourcePath The resource file path
+ * @return
+ * The resource file byte array
+ * @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 {
+ 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));
+ }
+ return IOUtils.toByteArray(inputStream);
+ } catch (final IOException ex) {
+ throw new IOException(String.format("Could not open the input stream for resource on path \"%s\"", resourcePath), ex);
+ }
+ }
+
+ /**
+ * Reads a file in the given path.
+ * The method forces an assertion fail if the resource could not be loaded.
+ * @param resourcePath The resource file path
+ * @return
+ * The resource file byte array
+ */
+ public static byte[] getResourceBytesOrFail(final String resourcePath) {
+ try {
+ return getFileResource(resourcePath);
+ } catch (final IOException e) {
+ final String errorMsg = String.format("Could not load resource '%s'", resourcePath);
+ LOGGER.error(errorMsg, e);
+ fail(errorMsg);
+ }
+
+ return null;
+ }
+
+}