Filter empty imports from files in bpgen 86/113086/4
authorRemigiusz Janeczek <remigiusz.janeczek@nokia.com>
Thu, 24 Sep 2020 05:47:30 +0000 (07:47 +0200)
committerRemigiusz Janeczek <remigiusz.janeczek@nokia.com>
Thu, 24 Sep 2020 08:07:03 +0000 (10:07 +0200)
Issue-ID: DCAEGEN2-2454
Signed-off-by: Remigiusz Janeczek <remigiusz.janeczek@nokia.com>
Change-Id: Ia51750c17483c3120d86949ea60be416065b0da9

mod/bpgenerator/TestCases/imports/imports.yaml [new file with mode: 0644]
mod/bpgenerator/TestCases/imports/importsWithBlanks.yaml [new file with mode: 0644]
mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/blueprint/Imports.java
mod/bpgenerator/src/test/java/org/onap/blueprintgenerator/models/blueprint/ImportsTest.java [new file with mode: 0644]
mod/bpgenerator/src/test/java/org/onap/blueprintgenerator/models/blueprint/tls/ExternalCertificateParametersFactoryTest.java

diff --git a/mod/bpgenerator/TestCases/imports/imports.yaml b/mod/bpgenerator/TestCases/imports/imports.yaml
new file mode 100644 (file)
index 0000000..4b52b8a
--- /dev/null
@@ -0,0 +1,2 @@
+imports: ['https://www.getcloudify.org/spec/cloudify/4.5.5/types.yaml', 'plugin:k8splugin?version=3.4.1',
+          'plugin:pgaas?version=1.3.0', 'plugin:clamppolicyplugin?version=1.1.0', 'plugin:dmaap?version=1.5.0']
diff --git a/mod/bpgenerator/TestCases/imports/importsWithBlanks.yaml b/mod/bpgenerator/TestCases/imports/importsWithBlanks.yaml
new file mode 100644 (file)
index 0000000..242c2a9
--- /dev/null
@@ -0,0 +1,3 @@
+imports: ['https://www.getcloudify.org/spec/cloudify/4.5.5/types.yaml', 'plugin:k8splugin?version=3.4.1',
+          '', ' ', '    ', 'plugin:pgaas?version=1.3.0', 'plugin:clamppolicyplugin?version=1.1.0',
+          'plugin:dmaap?version=1.5.0']
index 4e7a4f1..7b55e17 100644 (file)
@@ -20,7 +20,6 @@
 
 package org.onap.blueprintgenerator.models.blueprint;
 
-
 import com.fasterxml.jackson.annotation.JsonInclude;
 import com.fasterxml.jackson.annotation.JsonInclude.Include;
 import com.fasterxml.jackson.databind.ObjectMapper;
@@ -32,8 +31,6 @@ import java.util.ArrayList;
 import lombok.Getter;
 import lombok.Setter;
 
-
-
 @Getter @Setter
 @JsonInclude(value=Include.NON_NULL)
 public class Imports {
@@ -47,6 +44,7 @@ public class Imports {
                imps.add("plugin:dcaepolicyplugin?version=2.4.0");
                return imps;
        }
+
        public static ArrayList<String> createDmaapImports(){
                ArrayList<String> imps = new ArrayList<>();
                imps.add("https://www.getcloudify.org/spec/cloudify/4.5.5/types.yaml");
@@ -54,15 +52,16 @@ public class Imports {
                imps.add("plugin:dmaap?version=1.5.0");
                return imps;
        }
+
        public static ArrayList<String> createImportsFromFile(String path) {
-               Imports imports;
                ObjectMapper importMapper = new ObjectMapper(new YAMLFactory().configure(YAMLGenerator.Feature.MINIMIZE_QUOTES, true));
                File importPath = new File(path);
                try {
-                       imports = importMapper.readValue(importPath, Imports.class);
+                       Imports imports = importMapper.readValue(importPath, Imports.class);
+                       imports.getImports().removeIf(String::isBlank);
+                       return imports.getImports();
                } catch (IOException e) {
                        throw new RuntimeException(e);
                }
-               return imports.getImports();
        }
 }
diff --git a/mod/bpgenerator/src/test/java/org/onap/blueprintgenerator/models/blueprint/ImportsTest.java b/mod/bpgenerator/src/test/java/org/onap/blueprintgenerator/models/blueprint/ImportsTest.java
new file mode 100644 (file)
index 0000000..1ce296a
--- /dev/null
@@ -0,0 +1,52 @@
+/*============LICENSE_START=======================================================
+ org.onap.dcae
+ ================================================================================
+ Copyright (c) 2020 Nokia Intellectual Property. All rights reserved.
+ ================================================================================
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ ============LICENSE_END=========================================================
+ */
+
+package org.onap.blueprintgenerator.models.blueprint;
+
+import static org.junit.Assert.assertEquals;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+import org.junit.Test;
+
+public class ImportsTest {
+
+    private final List<String> expectedImports = Arrays.asList(
+        "https://www.getcloudify.org/spec/cloudify/4.5.5/types.yaml",
+        "plugin:k8splugin?version=3.4.1",
+        "plugin:pgaas?version=1.3.0",
+        "plugin:clamppolicyplugin?version=1.1.0",
+        "plugin:dmaap?version=1.5.0"
+    );
+
+    @Test
+    public void shouldReadImportsFromFile() {
+        ArrayList<String> importsFromFile = Imports.createImportsFromFile("TestCases/imports/imports.yaml");
+        assertEquals(expectedImports, importsFromFile);
+    }
+
+    @Test
+    public void shouldRemoveBlankImportsFromFile() {
+        ArrayList<String> importsFromFile =
+            Imports.createImportsFromFile("TestCases/imports/importsWithBlanks.yaml");
+        assertEquals(expectedImports, importsFromFile);
+    }
+
+}
index e854b19..1cdb58b 100644 (file)
@@ -25,7 +25,7 @@ import org.onap.blueprintgenerator.models.blueprint.tls.impl.ExternalCertificate
 import java.util.LinkedHashMap;
 import java.util.Map;
 
-import static org.junit.Assert.*;
+import static org.junit.Assert.assertEquals;
 import static org.onap.blueprintgenerator.models.blueprint.tls.TlsConstants.COMMON_NAME_FIELD;
 import static org.onap.blueprintgenerator.models.blueprint.tls.TlsConstants.DEFAULT_COMMON_NAME;
 import static org.onap.blueprintgenerator.models.blueprint.tls.TlsConstants.DEFAULT_SANS;