package org.onap.aai.babel.csar.vnfcatalog;
+import static org.hamcrest.CoreMatchers.containsString;
import static org.hamcrest.CoreMatchers.equalTo;
import static org.hamcrest.CoreMatchers.instanceOf;
import static org.hamcrest.CoreMatchers.is;
import static org.junit.Assert.assertThat;
import java.io.IOException;
+import java.util.HashMap;
+import java.util.LinkedHashMap;
+import java.util.List;
import org.junit.Test;
import org.onap.aai.babel.service.data.BabelArtifact;
import org.onap.aai.babel.service.data.BabelArtifact.ArtifactType;
+import org.onap.aai.babel.testdata.CsarTest;
import org.onap.aai.babel.util.ArtifactTestUtils;
/**
- * Tests {@link VnfVendorImageExtractor}
+ * Tests {@link VnfVendorImageExtractor}.
*/
public class VnfVendorImageExtractorTest {
@Test(expected = ToscaToCatalogException.class)
public void createVendorImageMappingsInvalidCsarFile() throws IOException, ToscaToCatalogException {
- extractArtifact("noYmlFilesArchive.zip");
+ CsarTest.NO_YAML_FILES.extractVnfVendorImages();
}
@Test(expected = ToscaToCatalogException.class)
public void createVendorImageMappingsInvalidFile() throws IOException, ToscaToCatalogException {
- extractArtifact("Duff.txt");
+ new VnfVendorImageExtractor().extract("not a real file".getBytes());
}
@Test
public void createVendorImageMappingsMoreThanOneVnfConfigurationExists() throws IOException {
try {
- extractArtifact("catalog_csar_too_many_vnfConfigurations.csar");
+ CsarTest.MULTIPLE_VNF_CSAR.extractArtifacts();
} catch (Exception e) {
assertThat(e, is(instanceOf(ToscaToCatalogException.class)));
assertThat(e.getLocalizedMessage(),
@Test
public void createVendorImageMappingsNoVnfConfigurationExists() throws IOException, ToscaToCatalogException {
- assertThat(extractArtifact("noVnfConfiguration.csar"), is(nullValue()));
+ assertThat(CsarTest.NO_VNF_CONFIG_CSAR.extractVnfVendorImages(), is(nullValue()));
}
@Test
public void createVendorImageMappingsValidFile() throws IOException, ToscaToCatalogException {
- BabelArtifact artifact = extractArtifact("catalog_csar.csar");
+ BabelArtifact artifact = CsarTest.VNF_VENDOR_CSAR.extractVnfVendorImages();
assertThat(artifact.getName(), is(equalTo("vnfVendorImageConfigurations")));
assertThat(artifact.getType(), is(equalTo(ArtifactType.VNFCATALOG)));
assertThat(artifact.getPayload(),
is(equalTo(new ArtifactTestUtils().getRequestJson("vnfVendorImageConfigurations.json"))));
}
- private BabelArtifact extractArtifact(String artifactName) throws ToscaToCatalogException, IOException {
- return new VnfVendorImageExtractor().extract(new ArtifactTestUtils().getCompressedArtifact(artifactName));
+ @Test
+ public void testSoftwareVersions() throws ToscaToCatalogException {
+ VnfVendorImageExtractor extractor = new VnfVendorImageExtractor();
+ SdcToscaHelper helper = new SdcToscaHelper();
+
+ List<String> versions;
+ try {
+ versions = extractor.extractSoftwareVersions(helper.buildMappings());
+ assertThat(versions.size(), is(0));
+ } catch (ToscaToCatalogException e) {
+ assertThat(e.getMessage(), containsString("No software versions"));
+ }
+
+ helper.addNodeTemplate();
+ try {
+ versions = extractor.extractSoftwareVersions(helper.buildMappings());
+ assertThat(versions.size(), is(0));
+ } catch (ToscaToCatalogException e) {
+ assertThat(e.getMessage(), containsString("No software versions"));
+ }
+
+ helper.addNodeTemplate("string");
+ try {
+ versions = extractor.extractSoftwareVersions(helper.buildMappings());
+ assertThat(versions.size(), is(0));
+ } catch (ClassCastException e) {
+ assertThat(e.getMessage(), containsString("java.lang.String"));
+ }
+
+ HashMap<String, Object> images = new LinkedHashMap<>();
+ images.put("image", "string");
+ helper.addNodeTemplate(images);
+ try {
+ versions = extractor.extractSoftwareVersions(helper.buildMappings());
+ assertThat(versions.size(), is(1));
+ } catch (ClassCastException e) {
+ assertThat(e.getMessage(), containsString("java.lang.String"));
+ }
+
+ HashMap<String, Object> image = new LinkedHashMap<>();
+ image.put("software_version", "1.2.3");
+ images.put("image", image);
+ helper = new SdcToscaHelper();
+ helper.addNodeTemplate(images);
+ versions = extractor.extractSoftwareVersions(helper.buildMappings());
+ assertThat(versions.size(), is(1));
+ assertThat(versions.get(0), is("1.2.3"));
}
}