X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=src%2Ftest%2Fjava%2Forg%2Fonap%2Faai%2Fbabel%2Futil%2FArtifactTestUtils.java;h=df27c22fcb1f018a0e4c58657f814f0ee05fdb5b;hb=ff0718120f36e14b065047f0b3f29665f2191e53;hp=3cbe194fb3650927d0e5e234740ea65b8f39ed49;hpb=0c9acb0e4e7ecde50c274ba60535fafc968f59ba;p=aai%2Fbabel.git diff --git a/src/test/java/org/onap/aai/babel/util/ArtifactTestUtils.java b/src/test/java/org/onap/aai/babel/util/ArtifactTestUtils.java index 3cbe194..df27c22 100644 --- a/src/test/java/org/onap/aai/babel/util/ArtifactTestUtils.java +++ b/src/test/java/org/onap/aai/babel/util/ArtifactTestUtils.java @@ -2,8 +2,8 @@ * ============LICENSE_START======================================================= * org.onap.aai * ================================================================================ - * Copyright © 2017-2018 AT&T Intellectual Property. All rights reserved. - * Copyright © 2017-2018 European Software Marketing Ltd. + * Copyright (c) 2017-2019 AT&T Intellectual Property. All rights reserved. + * Copyright (c) 2017-2019 European Software Marketing Ltd. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -18,6 +18,7 @@ * limitations under the License. * ============LICENSE_END========================================================= */ + package org.onap.aai.babel.util; import static org.hamcrest.CoreMatchers.equalTo; @@ -27,6 +28,7 @@ import static org.hamcrest.CoreMatchers.nullValue; import static org.junit.Assert.assertThat; import java.io.IOException; +import java.io.InputStream; import java.net.URISyntaxException; import java.net.URL; import java.nio.charset.Charset; @@ -36,14 +38,17 @@ import java.util.Base64; import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.Properties; import java.util.stream.Collectors; import org.apache.commons.io.IOUtils; import org.custommonkey.xmlunit.Diff; +import org.onap.aai.babel.parser.ArtifactGeneratorToscaParser; import org.onap.aai.babel.xml.generator.data.Artifact; +import org.onap.aai.babel.xml.generator.data.WidgetConfigurationUtil; import org.xml.sax.SAXException; /** - * This class provides some utilities to assist with running tests. + * This class provides some utilities to assist with running local unit tests. */ public class ArtifactTestUtils { @@ -51,6 +56,47 @@ public class ArtifactTestUtils { private static final String JSON_RESPONSES_FOLDER = "response/"; private static final String CSAR_INPUTS_FOLDER = "compressedArtifacts/"; + /** + * Initialize System Properties for test configuration files. + */ + public void setGeneratorSystemProperties() { + System.setProperty(ArtifactGeneratorToscaParser.PROPERTY_ARTIFACT_GENERATOR_CONFIG_FILE, + getResourcePath(Resources.ARTIFACT_GENERATOR_CONFIG)); + + System.setProperty(ArtifactGeneratorToscaParser.PROPERTY_TOSCA_MAPPING_FILE, + getResourcePath(Resources.TOSCA_MAPPING_CONFIG)); + } + + /** + * Load the Widget to UUID mappings from the Artifact Generator Properties (resource). + * + * @throws IOException + * if the properties file is not loaded + */ + public void loadWidgetToUuidMappings() throws IOException { + WidgetConfigurationUtil.setConfig(getResourceAsProperties(Resources.ARTIFACT_GENERATOR_CONFIG)); + } + + /** + * Load the Widget type mappings (resource). + * + * @throws IOException + * if the configuration file is not loaded + */ + public void loadWidgetMappings() throws IOException { + ArtifactGeneratorToscaParser.initToscaMappingsConfiguration(getResourcePath(Resources.TOSCA_MAPPING_CONFIG)); + } + + /** + * Specific test method for the YAML Extractor test. + * + * @param toscaFiles + * files extracted by the YamlExtractor + * @param ymlPayloadsToLoad + * the expected YAML files + * @throws IOException + * if an I/O exception occurs + */ public void performYmlAsserts(List toscaFiles, List ymlPayloadsToLoad) throws IOException { assertThat("An incorrect number of YAML files have been extracted", toscaFiles.size(), is(equalTo(ymlPayloadsToLoad.size()))); @@ -70,22 +116,20 @@ public class ArtifactTestUtils { } /** - * Compare 2 XML strings to see if they have the same content + * Compare two XML strings to see if they have the same content. * * @param string1 + * XML content * @param string2 - * @return true if similar + * XML content + * @return true if XML content is similar + * @throws IOException + * if an I/O exception occurs + * @throws SAXException + * if the XML parsing fails */ - public boolean compareXmlStrings(String string1, String string2) { - boolean similar = false; - - try { - similar = new Diff(string1, string2).similar(); - } catch (SAXException | IOException e) { // NOSONAR - similar = true; - } - - return similar; + public boolean compareXmlStrings(String string1, String string2) throws SAXException, IOException { + return new Diff(string1, string2).similar(); } public byte[] getCompressedArtifact(String resourceName) throws IOException { @@ -112,6 +156,23 @@ public class ArtifactTestUtils { return Files.lines(Paths.get(getResource(resourceFile).toURI())).collect(Collectors.joining()); } + /** + * Create Properties from the content of the named resource (e.g. a file on the classpath). + * + * @param resourceName + * the resource name + * @return Properties loaded from the named resource + * @throws IOException + * if an error occurred when reading from the named resource + */ + public Properties getResourceAsProperties(String resourceName) throws IOException { + final Properties properties = new Properties(); + InputStream in = ArtifactTestUtils.class.getClassLoader().getResourceAsStream(resourceName); + properties.load(in); + in.close(); + return properties; + } + public String getResourcePath(String resourceName) { return getResource(resourceName).getPath(); }