Added new unit tests

Added new unit tests to GraphMLConverter class.
Fixed the Sonar issue.

Issue-ID: SDC-2327
Signed-off-by: Krystian Kedron <k.kedron@partner.samsung.com>
Change-Id: I985a860012c0c2b0b6524c0a2346415cb113d83c
diff --git a/asdctool/src/main/java/org/openecomp/sdc/asdctool/Utils.java b/asdctool/src/main/java/org/openecomp/sdc/asdctool/Utils.java
index 378b81a..4c52647 100644
--- a/asdctool/src/main/java/org/openecomp/sdc/asdctool/Utils.java
+++ b/asdctool/src/main/java/org/openecomp/sdc/asdctool/Utils.java
@@ -20,6 +20,7 @@
 
 package org.openecomp.sdc.asdctool;
 
+import org.apache.commons.collections4.CollectionUtils;
 import org.apache.commons.configuration.Configuration;
 import org.apache.tinkerpop.gremlin.structure.Element;
 import org.apache.tinkerpop.gremlin.structure.Property;
@@ -38,7 +39,10 @@
 
 	private static Logger log = Logger.getLogger(Utils.class.getName());
 
-	public static String NEW_LINE = System.getProperty("line.separator");
+	public static final String NEW_LINE = System.getProperty("line.separator");
+
+	private Utils() {
+	}
 
 	public static Response buildOkResponse(
 			/*
@@ -122,10 +126,9 @@
 
 	public static Map<String, Object> getProperties(Element element) {
 
-		Map<String, Object> result = new HashMap<String, Object>();
-		;
+		Map<String, Object> result = new HashMap<>();
 
-		if (element.keys() != null && element.keys().size() > 0) {
+		if (CollectionUtils.isNotEmpty(element.keys())) {
 			Map<String, Property> propertyMap = ElementHelper.propertyMap(element,
 					element.keys().toArray(new String[element.keys().size()]));
 
diff --git a/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/GraphMLConverter.java b/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/GraphMLConverter.java
index ae4a559..d0eea9a 100644
--- a/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/GraphMLConverter.java
+++ b/asdctool/src/main/java/org/openecomp/sdc/asdctool/impl/GraphMLConverter.java
@@ -23,15 +23,12 @@
 import com.google.gson.Gson;
 import org.apache.commons.configuration.BaseConfiguration;
 import org.apache.commons.lang3.tuple.ImmutablePair;
-import org.apache.tinkerpop.gremlin.structure.Element;
 import org.apache.tinkerpop.gremlin.structure.Graph;
-import org.apache.tinkerpop.gremlin.structure.Property;
 import org.apache.tinkerpop.gremlin.structure.Vertex;
 import org.apache.tinkerpop.gremlin.structure.io.IoCore;
 import org.apache.tinkerpop.gremlin.structure.io.graphson.GraphSONMapper;
 import org.apache.tinkerpop.gremlin.structure.io.graphson.GraphSONReader;
 import org.apache.tinkerpop.gremlin.structure.io.graphson.GraphSONWriter;
-import org.apache.tinkerpop.gremlin.structure.util.ElementHelper;
 import org.janusgraph.core.JanusGraph;
 import org.janusgraph.core.JanusGraphFactory;
 import org.janusgraph.core.JanusGraphQuery;
@@ -49,12 +46,12 @@
 import java.io.InputStream;
 import java.io.OutputStream;
 import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
 import java.util.Map.Entry;
 
+import static org.openecomp.sdc.asdctool.Utils.getProperties;
+
 public class GraphMLConverter {
 
     private static final String STORAGE_BACKEND = "storage.backend";
@@ -65,7 +62,7 @@
 
     private static final String DOT_JSON = ".json";
 
-    private static final String EXPORTED_FILE = "Exported file=";
+    private static final String EXPORTED_FILE = "Exported file={}";
 
     private static final String NODE_LABEL = "nodeLabel";
 
@@ -96,7 +93,6 @@
             return importJsonGraph(graph, inputFile, propertiesCriteriaToDelete);
 
         } catch (Exception e) {
-			e.printStackTrace();
             log.info("import graph failed ", e);
             return false;
         } finally {
@@ -123,7 +119,6 @@
 
             log.info(LOG_FORMATTER, EXPORTED_FILE, result);
         } catch (Exception e) {
-			e.printStackTrace();
             log.info("export graph failed ", e);
             return false;
         } finally {
@@ -138,7 +133,7 @@
     public String exportGraphMl(String[] args) {
 
         JanusGraph graph = null;
-        String result = null;
+        String result;
         try {
             String janusGraphFileLocation = args[1];
             String outputDirectory = args[2];
@@ -148,7 +143,6 @@
 
             log.info(LOG_FORMATTER, EXPORTED_FILE, result);
         } catch (Exception e) {
-			e.printStackTrace();
             log.info("export exportGraphMl failed ", e);
             return null;
         } finally {
@@ -176,7 +170,6 @@
 
             log.info(LOG_FORMATTER, EXPORTED_FILE, result);
         } catch (Exception e) {
-			e.printStackTrace();
             log.info("find Error In Json Graph failed ", e);
             return false;
         } finally {
@@ -189,9 +182,7 @@
     }
 
     public JanusGraph openGraph(String janusGraphFileLocation) {
-
         return JanusGraphFactory.open(janusGraphFileLocation);
-
     }
 
     public String exportJsonGraph(JanusGraph graph, String outputDirectory) {
@@ -213,10 +204,8 @@
             result = outputFile;
 
         } catch (Exception e) {
-			e.printStackTrace();
             log.info("export Json Graph failed ", e);
             graph.tx().rollback();
-				e.printStackTrace();
         }
         return result;
 
@@ -234,7 +223,6 @@
             graph.tx().commit();
         } catch (Exception e) {
             graph.tx().rollback();
-			e.printStackTrace();
             log.info("export Graph Ml failed ", e);
         }
         return result;
@@ -252,30 +240,26 @@
         boolean result = false;
 
         if (propertiesCriteriaToDelete != null) {
-            for (Entry<String, String> entry : propertiesCriteriaToDelete
-
-            ) {
+            for (Entry<String, String> entry : propertiesCriteriaToDelete) {
 
                 String key = entry.getKey();
                 String value = entry.getValue();
-                Iterator iterator = graph.query().has(key, value).vertices().iterator();
-                while (iterator.hasNext()) {
-                    Vertex vertex = (Vertex) iterator.next();
-                    vertex.remove();
-                    log.info("Remove vertex of type{} ", key, " and value {}", value);
+                for (JanusGraphVertex janusGraphVertex : graph.query().has(key, value).vertices()) {
+                    janusGraphVertex.remove();
+                    log.info("Remove vertex of type {} and value {}", key, value);
                 }
 
             }
         }
         File file = new File(graphJsonFile);
         if (!file.isFile()) {
-            log.info("File ", graphJsonFile, " cannot be found.");
-            return result;
+            log.info("File {} cannot be found.", graphJsonFile );
+            return false;
         }
 
         try (final InputStream is = new BufferedInputStream(new FileInputStream(graphJsonFile))) {
 
-            log.info("Before importing file ", graphJsonFile);
+            log.info("Before importing file {}", graphJsonFile);
 
             GraphSONReader create = GraphSONReader.build().create();
             create.readGraph(is, graph);
@@ -286,9 +270,7 @@
 
         } catch (Exception e) {
             log.info("Failed to import graph ", e);
-			e.printStackTrace();
             graph.tx().rollback();
-				e.printStackTrace();
         }
         return result;
 
@@ -297,7 +279,6 @@
     public String findErrorInJsonGraph(JanusGraph graph, String outputDirectory) {
 
         String result = null;
-
         String outputFile = outputDirectory + File.separator + EXPORT_GRAPH + System.currentTimeMillis() + DOT_JSON;
 
         try (final OutputStream out = new BufferedOutputStream(new FileOutputStream(outputFile))) {
@@ -315,23 +296,22 @@
 
             graph.tx().rollback();
 
+            result = outputFile;
+
         } catch (Exception e) {
-			e.printStackTrace();
-            log.info("find Error In Json Graph failed ", e);
+            log.info("Find error In Json Graph ", e);
             graph.tx().rollback();
-				e.printStackTrace();
         }
+
         return result;
 
     }
 
     private void removeNodesByLabel(JanusGraph graph, String label) {
         Iterable<JanusGraphVertex> vertices =
-            graph.query().has(GraphPropertiesDictionary.LABEL.getProperty(), label).vertices();
-        Iterator<JanusGraphVertex> iterator = vertices.iterator();
-        while (iterator.hasNext()) {
-            Vertex next2 = iterator.next();
-            next2.remove();
+                graph.query().has(GraphPropertiesDictionary.LABEL.getProperty(), label).vertices();
+        for (Vertex vertex : vertices) {
+            vertex.remove();
         }
     }
 
@@ -367,34 +347,14 @@
             result = outputFile;
 
         } catch (Exception e) {
-			e.printStackTrace();
-            log.info("export Users failed ", e);
+            log.info("Export users failed because ", e);
             graph.tx().rollback();
-				e.printStackTrace();
         }
+
         return result;
 
     }
 
-    public Map<String, Object> getProperties(Element element) {
-
-        Map<String, Object> result = new HashMap<>();
-        ;
-
-        if (element.keys() != null && !element.keys().isEmpty()) {
-            Map<String, Property> propertyMap =
-                ElementHelper.propertyMap(element, element.keys().toArray(new String[element.keys().size()]));
-
-            for (Entry<String, Property> entry : propertyMap.entrySet()) {
-                String key = entry.getKey();
-                Object value = entry.getValue().value();
-
-                result.put(key, value);
-            }
-        }
-        return result;
-    }
-
     public boolean exportUsers(String[] args) {
 
         JanusGraph graph = null;
@@ -411,8 +371,7 @@
 
             log.info(EXPORTED_FILE, result);
         } catch (Exception e) {
-			e.printStackTrace();
-            log.info("export Users failed ", e);
+            log.info("Export users failed because", e);
             return false;
         } finally {
             if (graph != null) {
diff --git a/asdctool/src/test/java/org/openecomp/sdc/asdctool/impl/GraphMLConverterTest.java b/asdctool/src/test/java/org/openecomp/sdc/asdctool/impl/GraphMLConverterTest.java
index 87eb40d..96369e0 100644
--- a/asdctool/src/test/java/org/openecomp/sdc/asdctool/impl/GraphMLConverterTest.java
+++ b/asdctool/src/test/java/org/openecomp/sdc/asdctool/impl/GraphMLConverterTest.java
@@ -7,9 +7,9 @@
  * 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.
@@ -20,156 +20,129 @@
 
 package org.openecomp.sdc.asdctool.impl;
 
-import org.apache.commons.lang3.tuple.ImmutablePair;
-import org.apache.tinkerpop.gremlin.structure.Element;
 import org.janusgraph.core.JanusGraph;
 import org.junit.Test;
 
-import java.util.List;
-import java.util.Map;
+import java.io.File;
+import java.util.Collections;
+
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertTrue;
+
 
 public class GraphMLConverterTest {
-	
-	public GraphMLConverter createTestSubject() {
-		return new GraphMLConverter();
-	}
-	
-	@Test
-	public void testImportGraph() throws Exception {
-		GraphMLConverter testSubject;
-		String[] args = new String[] { "" };
-		boolean result;
 
-		// default test
-		testSubject = createTestSubject();
-		result = testSubject.importGraph(args);
-	}
+    @Test
+    public void testImportGraph() {
+        String[] args = getInputArgs();
+        GraphMLConverter testSubject = new GraphMLConverter();
+        assertTrue(testSubject.importGraph(args));
+    }
 
-	@Test
-	public void testExportGraph() throws Exception {
-		GraphMLConverter testSubject;
-		String[] args = new String[] { "" };
-		boolean result;
+    @Test
+    public void testExportGraph() {
+        String[] args = getOutputArgs();
+        GraphMLConverter testSubject = new GraphMLConverter();
+        assertTrue(testSubject.exportGraph(args));
+    }
 
-		// default test
-		testSubject = createTestSubject();
-		result = testSubject.exportGraph(args);
-	}
+    @Test
+    public void testExportGraphMl() {
+        String[] args = getOutputArgs();
+        GraphMLConverter testSubject = new GraphMLConverter();
 
-	@Test
-	public void testExportGraphMl() throws Exception {
-		GraphMLConverter testSubject;
-		String[] args = new String[] { "" };
-		String result;
+        String result = testSubject.exportGraphMl(args);
+        assertNotNull(result);
+        assertTrue(result.startsWith(args[2]));
+    }
 
-		// default test
-		testSubject = createTestSubject();
-		result = testSubject.exportGraphMl(args);
-	}
+    @Test
+    public void testFindErrorInJsonGraph() {
+        String[] args = getOutputArgs();
+        GraphMLConverter testSubject = new GraphMLConverter();
+        assertTrue(testSubject.findErrorInJsonGraph(args));
+    }
 
-	@Test
-	public void testFindErrorInJsonGraph() throws Exception {
-		GraphMLConverter testSubject;
-		String[] args = new String[] { "" };
-		boolean result;
+    @Test(expected = IllegalArgumentException.class)
+    public void testOpenGraphWithBadPath() {
 
-		// default test
-		testSubject = createTestSubject();
-		result = testSubject.findErrorInJsonGraph(args);
-	}
+        GraphMLConverter testSubject = new GraphMLConverter();
+        testSubject.openGraph("badPath");
+    }
 
-	@Test(expected=IllegalArgumentException.class)
-	public void testOpenGraph() throws Exception {
-		GraphMLConverter testSubject;
-		String janusGraphFileLocation = "";
-		JanusGraph result;
+    @Test
+    public void testExportJsonGraphWithBadOutputDir() {
 
-		// default test
-		testSubject = createTestSubject();
-		result = testSubject.openGraph("src/main/resources/config/janusgraph.properties");
-	}
+        GraphMLConverter testSubject = new GraphMLConverter();
+        JanusGraph graph = testSubject.openGraph(getJanusGraphConfig());
+        assertNull(testSubject.exportJsonGraph(graph, "badOutputDir"));
+    }
 
-	@Test(expected=NullPointerException.class)
-	public void testExportJsonGraph() throws Exception {
-		GraphMLConverter testSubject;
-		JanusGraph graph = null;
-		String outputDirectory = "";
-		String result;
+    @Test
+    public void testImportJsonGraph() {
+        GraphMLConverter testSubject = new GraphMLConverter();
+        JanusGraph graph = testSubject.openGraph(getJanusGraphConfig());
 
-		// default test
-		testSubject = createTestSubject();
-		result = testSubject.exportJsonGraph(graph, outputDirectory);
-	}
+        assertTrue(testSubject.importJsonGraph(graph, getGraphSON(), Collections.emptyList()));
+    }
 
-	@Test(expected=NullPointerException.class)
-	public void testExportGraphMl_1() throws Exception {
-		GraphMLConverter testSubject;
-		JanusGraph graph = null;
-		String outputDirectory = "";
-		String result;
+    @Test
+    public void testImportJsonGraphNoGraphSONFile() {
+        GraphMLConverter testSubject = new GraphMLConverter();
+        JanusGraph graph = testSubject.openGraph(getJanusGraphConfig());
 
-		// default test
-		testSubject = createTestSubject();
-		result = testSubject.exportGraphMl(graph, outputDirectory);
-	}
-
-	@Test
-	public void testImportJsonGraph() throws Exception {
-		GraphMLConverter testSubject;
-		JanusGraph graph = null;
-		String graphJsonFile = "";
-		List<ImmutablePair<String, String>> propertiesCriteriaToDelete = null;
-		boolean result;
-
-		// default test
-		testSubject = createTestSubject();
-		result = testSubject.importJsonGraph(graph, graphJsonFile, propertiesCriteriaToDelete);
-	}
-
-	@Test(expected=NullPointerException.class)
-	public void testFindErrorInJsonGraph_1() throws Exception {
-		GraphMLConverter testSubject;
-		JanusGraph graph = null;
-		String outputDirectory = "";
-		String result;
-
-		// default test
-		testSubject = createTestSubject();
-		result = testSubject.findErrorInJsonGraph(graph, outputDirectory);
-	}
+        assertFalse(testSubject.importJsonGraph(graph, "noFile", Collections.emptyList()));
+    }
 
 
-	@Test(expected=NullPointerException.class)
-	public void testExportUsers() throws Exception {
-		GraphMLConverter testSubject;
-		JanusGraph graph = null;
-		String outputDirectory = "";
-		String result;
+    @Test
+    public void testExportUsers() {
+        GraphMLConverter testSubject = new GraphMLConverter();
 
-		// default test
-		testSubject = createTestSubject();
-		result = testSubject.exportUsers(graph, outputDirectory);
-	}
+        JanusGraph graph = testSubject.openGraph(getJanusGraphConfig());
+        String outputDirectory = getOutputJanusGraph();
 
-	@Test(expected=NullPointerException.class)
-	public void testGetProperties() throws Exception {
-		GraphMLConverter testSubject;
-		Element element = null;
-		Map<String, Object> result;
+        String result = testSubject.exportUsers(graph, outputDirectory);
+        assertNotNull(result);
+        assertTrue(result.startsWith(outputDirectory));
+    }
 
-		// default test
-		testSubject = createTestSubject();
-		result = testSubject.getProperties(element);
-	}
+    @Test
+    public void testExportUsersWithBadOutputDir() {
+        GraphMLConverter testSubject = new GraphMLConverter();
 
-	@Test
-	public void testExportUsers_1() throws Exception {
-		GraphMLConverter testSubject;
-		String[] args = new String[] { "" };
-		boolean result;
+        JanusGraph graph = testSubject.openGraph(getJanusGraphConfig());
+        assertNull(testSubject.exportUsers(graph, "badOutputDir"));
+    }
 
-		// default test
-		testSubject = createTestSubject();
-		result = testSubject.exportUsers(args);
-	}
+    @Test
+    public void testExportUsersFromArgs() {
+        String[] args = getOutputArgs();
+        GraphMLConverter testSubject = new GraphMLConverter();
+        assertTrue(testSubject.exportUsers(args));
+    }
+
+    private String getJanusGraphConfig() {
+        return getClass().getClassLoader().getResource("config/janusgraph.properties").getPath();
+    }
+
+    private String getOutputJanusGraph() {
+        return new File(getClass().getClassLoader().getResource("graphSON.json").getFile())
+                .getAbsolutePath()
+                .replace(File.separator + "graphSON.json", "");
+    }
+
+    private String getGraphSON() {
+        return getClass().getClassLoader().getResource("graphSON.json").getPath();
+    }
+
+    private String[] getOutputArgs() {
+        return new String[]{"", getJanusGraphConfig(), getOutputJanusGraph()};
+    }
+
+    private String[] getInputArgs() {
+        return new String[]{"", getJanusGraphConfig(), getGraphSON()};
+    }
 }
diff --git a/asdctool/src/test/resources/config/janusgraph.properties b/asdctool/src/test/resources/config/janusgraph.properties
new file mode 100644
index 0000000..4f8d3ad
--- /dev/null
+++ b/asdctool/src/test/resources/config/janusgraph.properties
@@ -0,0 +1 @@
+storage.backend=inmemory
diff --git a/asdctool/src/test/resources/graphSON.json b/asdctool/src/test/resources/graphSON.json
new file mode 100644
index 0000000..726c20a
--- /dev/null
+++ b/asdctool/src/test/resources/graphSON.json
@@ -0,0 +1 @@
+{"id":0,"label":"node","outE":{"relation_is":[{"id":0,"inV":1,"properties":{"value":1}}]},"properties":{"node0":[{"id":0,"value":"node0"}],"node1":[{"id":1,"value":"node1"}]}}
\ No newline at end of file