Add unit test for JSON object convert 49/16249/1
authorLvbo163 <lv.bo163@zte.com.cn>
Thu, 28 Sep 2017 07:08:34 +0000 (15:08 +0800)
committerLvbo163 <lv.bo163@zte.com.cn>
Thu, 28 Sep 2017 07:08:34 +0000 (15:08 +0800)
Issue-ID: SDC-415

Change-Id: Ia616d008d863a39429fd5d78451a5edba81f5f3d
Signed-off-by: Lvbo163 <lv.bo163@zte.com.cn>
sdc-workflow-designer-server/src/test/java/org/onap/sdc/workflowdesigner/parser/Bpmn4ToscaJsonParserTest.java [new file with mode: 0644]
sdc-workflow-designer-server/src/test/resources/workflow/workflow.json

diff --git a/sdc-workflow-designer-server/src/test/java/org/onap/sdc/workflowdesigner/parser/Bpmn4ToscaJsonParserTest.java b/sdc-workflow-designer-server/src/test/java/org/onap/sdc/workflowdesigner/parser/Bpmn4ToscaJsonParserTest.java
new file mode 100644 (file)
index 0000000..1f56efb
--- /dev/null
@@ -0,0 +1,137 @@
+/**\r
+ * Copyright (c) 2017 ZTE Corporation.\r
+ * All rights reserved. This program and the accompanying materials\r
+ * are made available under the Apache License, Version 2.0\r
+ * and the Eclipse Public License v1.0 which both accompany this distribution,\r
+ * and are available at http://www.eclipse.org/legal/epl-v10.html\r
+ * and http://www.apache.org/licenses/LICENSE-2.0\r
+ *\r
+ * Contributors:\r
+ *     ZTE - initial API and implementation and/or initial documentation\r
+ */\r
+package org.onap.sdc.workflowdesigner.parser;\r
+\r
+import static org.junit.Assert.assertEquals;\r
+import static org.junit.Assert.fail;\r
+\r
+import java.io.IOException;\r
+import java.net.MalformedURLException;\r
+import java.net.URI;\r
+import java.nio.file.Paths;\r
+import java.util.Iterator;\r
+import java.util.List;\r
+\r
+import org.junit.Test;\r
+import org.onap.sdc.workflowdesigner.model.Element;\r
+import org.onap.sdc.workflowdesigner.model.EndEvent;\r
+import org.onap.sdc.workflowdesigner.model.Process;\r
+import org.onap.sdc.workflowdesigner.model.SequenceFlow;\r
+import org.onap.sdc.workflowdesigner.model.StartEvent;\r
+\r
+import com.fasterxml.jackson.core.JsonParseException;\r
+import com.fasterxml.jackson.databind.JsonMappingException;\r
+\r
+public class Bpmn4ToscaJsonParserTest {\r
+\r
+    private static String RESOURCES_DIR = "src/test/resources/workflow";\r
+    protected static String PROCESS_NAME = "test1";\r
+\r
+    @Test\r
+    public void parseTest() throws JsonParseException, JsonMappingException, MalformedURLException, IOException {\r
+        Bpmn4ToscaJsonParser parser = new Bpmn4ToscaJsonParser();\r
+        URI srcUri = Paths.get(RESOURCES_DIR, "workflow.json").toUri();\r
+        Process actualProcess = parser.parse(PROCESS_NAME, srcUri);\r
+        Process expectedProcess = createReferenceProcess();\r
+\r
+        assertElements(expectedProcess.getElementList(), actualProcess.getElementList());\r
+        assertSequenceFlows(expectedProcess.getSequenceFlowList(), actualProcess.getSequenceFlowList());\r
+    }\r
+\r
+    private static void assertElements(List<Element> expectedElementList, List<Element> actualElementList) {\r
+        assertEquals(expectedElementList.size(), actualElementList.size());\r
+\r
+        for (Iterator<Element> iterator = expectedElementList.iterator(); iterator.hasNext();) {\r
+            Element expectedElement = (Element) iterator.next();\r
+            Element actualElement = getElementById(expectedElement.getId(), actualElementList);\r
+            if (actualElement != null) {\r
+                assertElement(expectedElement, actualElement);\r
+            } else {\r
+                fail("Element with id " + expectedElement.getId() + " could not be found");\r
+            }\r
+        }\r
+    }\r
+\r
+    private static Element getElementById(String id, List<Element> actualElementList) {\r
+        Iterator<Element> iter = actualElementList.iterator();\r
+        while (iter.hasNext()) {\r
+            Element element = (Element) iter.next();\r
+            if (element.getId().equals(id)) {\r
+                return element;\r
+            }\r
+        }\r
+        return null;\r
+    }\r
+\r
+    public static void assertElement(Element expected, Element actual) {\r
+        assertEquals("element: id ", expected.getId(), actual.getId());\r
+        assertEquals("element: name ", expected.getName(), actual.getName());\r
+    }\r
+\r
+    public static void assertSequenceFlows(List<SequenceFlow> expectedSequenceList,\r
+            List<SequenceFlow> actualSequenceFlowList) {\r
+        assertEquals(expectedSequenceList.size(), actualSequenceFlowList.size());\r
+\r
+        for (Iterator<SequenceFlow> iterator = expectedSequenceList.iterator(); iterator.hasNext();) {\r
+            SequenceFlow expectedElement = (SequenceFlow) iterator.next();\r
+            SequenceFlow actualElement = getSequenceById(expectedElement.getSourceRef(), expectedElement.getTargetRef(),\r
+                    actualSequenceFlowList);\r
+            if (actualElement != null) {\r
+                assertLink(expectedElement, actualElement);\r
+            } else {\r
+                fail("Element with id " + expectedElement.getId() + " could not be found");\r
+            }\r
+        }\r
+    }\r
+\r
+    private static SequenceFlow getSequenceById(String sourceRef, String targetRef,\r
+            List<SequenceFlow> actualSequenceFlowList) {\r
+        Iterator<SequenceFlow> iter = actualSequenceFlowList.iterator();\r
+        while (iter.hasNext()) {\r
+            SequenceFlow element = (SequenceFlow) iter.next();\r
+            if (element.getSourceRef().equals(sourceRef) && element.getTargetRef().equals(targetRef)) {\r
+                return element;\r
+            }\r
+        }\r
+        return null;\r
+    }\r
+\r
+    public static void assertLink(SequenceFlow expectedLink, SequenceFlow actualLink) {\r
+        assertEquals("Link source: id", expectedLink.getSourceRef(), actualLink.getSourceRef());\r
+        assertEquals("Link target :id", expectedLink.getTargetRef(), actualLink.getTargetRef());\r
+    }\r
+\r
+    private static Process createReferenceProcess() {\r
+        Process process = new Process(PROCESS_NAME);\r
+\r
+        StartEvent startEvent = new StartEvent();\r
+        startEvent.setDocumentation("");\r
+        startEvent.setId("node0");\r
+        startEvent.setName("startEvent");\r
+        process.getElementList().add(startEvent);\r
+\r
+        EndEvent endEvent = new EndEvent();\r
+        endEvent.setDocumentation("");\r
+        endEvent.setId("node1");\r
+        endEvent.setName("endEvent");\r
+        process.getElementList().add(endEvent);\r
+\r
+        SequenceFlow flow2 = new SequenceFlow();\r
+        flow2.setId("node0node1");\r
+        flow2.setSourceRef("node0");\r
+        flow2.setTargetRef("node1");\r
+        process.getSequenceFlowList().add(flow2);\r
+\r
+        return process;\r
+    }\r
+\r
+}\r
index 4799fc9..2042810 100644 (file)
@@ -1,14 +1,13 @@
 {"nodes":[\r
         {\r
             "sequenceFlows":[\r
-                {"condition":"","sourceRef":"node0","targetRef":"node1"},\r
-                {"condition":"","sourceRef":"node0","targetRef":"node3"}\r
+                {"condition":"","sourceRef":"node0","targetRef":"node1"}\r
             ],\r
             "parameters":[],"id":"node0","name":"startEvent","type":"startEvent","parentId":"root",\r
             "position":{"width":30,"height":30,"left":468,"top":55}\r
         },\r
         {\r
-            "sequenceFlows":[{"condition":"","sourceRef":"node1","targetRef":"node2"}],\r
+            "sequenceFlows":[],\r
             "input":[],"output":[],"template":{},"id":"node1","name":"endEvent",\r
             "type":"endEvent","parentId":"root",\r
             "position":{"width":252.08334350585938,"height":46.66666793823242,"left":432,"top":167}\r