Load tosca with no imports section

Change-Id: I50df2a149bd8d27973bb66e41f80a3260b8a9b8b
Issue-ID: SDC-2192
Signed-off-by: shiria <shiri.amichai@amdocs.com>
diff --git a/openecomp-be/lib/openecomp-tosca-lib/src/main/java/org/openecomp/sdc/tosca/services/impl/ToscaAnalyzerServiceImpl.java b/openecomp-be/lib/openecomp-tosca-lib/src/main/java/org/openecomp/sdc/tosca/services/impl/ToscaAnalyzerServiceImpl.java
index bb557f6..053253a 100644
--- a/openecomp-be/lib/openecomp-tosca-lib/src/main/java/org/openecomp/sdc/tosca/services/impl/ToscaAnalyzerServiceImpl.java
+++ b/openecomp-be/lib/openecomp-tosca-lib/src/main/java/org/openecomp/sdc/tosca/services/impl/ToscaAnalyzerServiceImpl.java
@@ -182,7 +182,6 @@
     }
 
     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 @@
     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)) {
diff --git a/openecomp-be/lib/openecomp-tosca-lib/src/test/java/org/openecomp/sdc/tosca/services/impl/ToscaAnalyzerServiceImplTest.java b/openecomp-be/lib/openecomp-tosca-lib/src/test/java/org/openecomp/sdc/tosca/services/impl/ToscaAnalyzerServiceImplTest.java
index d2c1ed8..a915b9b 100644
--- a/openecomp-be/lib/openecomp-tosca-lib/src/test/java/org/openecomp/sdc/tosca/services/impl/ToscaAnalyzerServiceImplTest.java
+++ b/openecomp-be/lib/openecomp-tosca-lib/src/test/java/org/openecomp/sdc/tosca/services/impl/ToscaAnalyzerServiceImplTest.java
@@ -1200,6 +1200,34 @@
     }
 
     @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";
         byte[] uploadedFileData = IOUtils.toByteArray(this.getClass().getResource(inputResourceName));
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
index 0000000..536e136
--- /dev/null
+++ b/openecomp-be/lib/openecomp-tosca-lib/src/test/resources/mock/analyzerService/importConvertTestNoImport.yml
@@ -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
index 0000000..8a5cfaa
--- /dev/null
+++ b/openecomp-be/lib/openecomp-tosca-lib/src/test/resources/mock/analyzerService/invalidToscaImport.yml
@@ -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