+
+ @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"));
+ }