Load tosca with no imports section 94/83294/3
authorshiria <shiri.amichai@amdocs.com>
Tue, 26 Mar 2019 08:08:43 +0000 (10:08 +0200)
committerAvi Gaffa <avi.gaffa@amdocs.com>
Tue, 26 Mar 2019 09:57:35 +0000 (09:57 +0000)
Change-Id: I50df2a149bd8d27973bb66e41f80a3260b8a9b8b
Issue-ID: SDC-2192
Signed-off-by: shiria <shiri.amichai@amdocs.com>
openecomp-be/lib/openecomp-tosca-lib/src/main/java/org/openecomp/sdc/tosca/services/impl/ToscaAnalyzerServiceImpl.java
openecomp-be/lib/openecomp-tosca-lib/src/test/java/org/openecomp/sdc/tosca/services/impl/ToscaAnalyzerServiceImplTest.java
openecomp-be/lib/openecomp-tosca-lib/src/test/resources/mock/analyzerService/importConvertTestNoImport.yml [new file with mode: 0644]
openecomp-be/lib/openecomp-tosca-lib/src/test/resources/mock/analyzerService/invalidToscaImport.yml [new file with mode: 0644]

index bb557f6..053253a 100644 (file)
@@ -182,7 +182,6 @@ public class ToscaAnalyzerServiceImpl implements ToscaAnalyzerService {
     }
 
     String convertServiceTemplateImport(ToscaExtensionYamlUtil toscaExtensionYamlUtil, byte[] fileContent) {
-
         Map serviceTemplateMap = toscaExtensionYamlUtil.yamlToObject(new String(fileContent), Map.class);
         convertToscaImports(serviceTemplateMap, toscaExtensionYamlUtil);
         return toscaExtensionYamlUtil.objectToYaml(serviceTemplateMap);
@@ -191,8 +190,8 @@ public class ToscaAnalyzerServiceImpl implements ToscaAnalyzerService {
     private void convertToscaImports(Map serviceTemplateMap, ToscaExtensionYamlUtil toscaExtensionYamlUtil) {
         List<Map<String, Import>> convertedImport = new ArrayList<>();
         Object importObj = serviceTemplateMap.get(IMPORTS);
-        if (!(importObj instanceof List)) {
-            throw new SdcRuntimeException("Illegal Statement");
+        if (Objects.nonNull(importObj) && !(importObj instanceof List)) {
+            throw new SdcRuntimeException(new IllegalStateException("Invalid TOSCA import section"));
         }
         List<Object> imports = (List) importObj;
         if (CollectionUtils.isEmpty(imports)) {
index d2c1ed8..a915b9b 100644 (file)
@@ -1199,6 +1199,34 @@ public class ToscaAnalyzerServiceImplTest {
         Assert.assertNotNull(serviceTemplate.getImports().get(7).get("relationshipsExt"));
     }
 
+    @Test
+    public void testConvertToscaImportForEmptyImport() throws Exception {
+        String inputResourceName = "/mock/analyzerService/importConvertTestNoImport.yml";
+        byte[] uploadedFileData = IOUtils.toByteArray(this.getClass().getResource(inputResourceName));
+
+        ToscaExtensionYamlUtil toscaExtensionYamlUtil = new ToscaExtensionYamlUtil();
+        ToscaAnalyzerServiceImpl toscaAnalyzerServiceImpl = new ToscaAnalyzerServiceImpl();
+        String convertServiceTemplateImport =
+                toscaAnalyzerServiceImpl.convertServiceTemplateImport(toscaExtensionYamlUtil, uploadedFileData);
+
+        Assert.assertNotNull(convertServiceTemplateImport);
+        ServiceTemplate serviceTemplate =
+                new YamlUtil().yamlToObject(convertServiceTemplateImport, ServiceTemplate.class);
+        Assert.assertNull(serviceTemplate.getImports());
+    }
+
+    @Test
+    public void testInvalidToscaImportSection() throws Exception {
+        thrown.expect(SdcRuntimeException.class);
+        thrown.expectMessage("Invalid TOSCA import section");
+        String inputResourceName = "/mock/analyzerService/invalidToscaImport.yml";
+        byte[] uploadedFileData = IOUtils.toByteArray(this.getClass().getResource(inputResourceName));
+
+        ToscaExtensionYamlUtil toscaExtensionYamlUtil = new ToscaExtensionYamlUtil();
+        ToscaAnalyzerServiceImpl toscaAnalyzerServiceImpl = new ToscaAnalyzerServiceImpl();
+        toscaAnalyzerServiceImpl.convertServiceTemplateImport(toscaExtensionYamlUtil, uploadedFileData);
+    }
+
     @Test
     public void loadValidToscaYamlFileTest() throws Exception {
         String inputResourceName = "/mock/analyzerService/ServiceTemplateInterfaceInheritanceTest.yaml";
diff --git a/openecomp-be/lib/openecomp-tosca-lib/src/test/resources/mock/analyzerService/importConvertTestNoImport.yml b/openecomp-be/lib/openecomp-tosca-lib/src/test/resources/mock/analyzerService/importConvertTestNoImport.yml
new file mode 100644 (file)
index 0000000..536e136
--- /dev/null
@@ -0,0 +1,4 @@
+tosca_definitions_version: tosca_simple_yaml_1_1
+node_types:
+  tosca.nodes.Root:
+    description: The TOSCA Node Type all other TOSCA base Node Types derive from
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-tosca-lib/src/test/resources/mock/analyzerService/invalidToscaImport.yml b/openecomp-be/lib/openecomp-tosca-lib/src/test/resources/mock/analyzerService/invalidToscaImport.yml
new file mode 100644 (file)
index 0000000..8a5cfaa
--- /dev/null
@@ -0,0 +1,5 @@
+tosca_definitions_version: tosca_simple_yaml_1_1
+imports: abc
+node_types:
+  tosca.nodes.Root:
+    description: The TOSCA Node Type all other TOSCA base Node Types derive from
\ No newline at end of file