Apply multiplicity Rule upon Edge creation
[aai/gizmo.git] / src / test / java / org / onap / crud / parser / util / EdgePayloadUtilTest.java
diff --git a/src/test/java/org/onap/crud/parser/util/EdgePayloadUtilTest.java b/src/test/java/org/onap/crud/parser/util/EdgePayloadUtilTest.java
new file mode 100644 (file)
index 0000000..f5baae8
--- /dev/null
@@ -0,0 +1,110 @@
+/**\r
+ * ============LICENSE_START=======================================================\r
+ * org.onap.aai\r
+ * ================================================================================\r
+ * Copyright © 2017-2018 AT&T Intellectual Property. All rights reserved.\r
+ * Copyright © 2017-2018 Amdocs\r
+ * ================================================================================\r
+ * Licensed under the Apache License, Version 2.0 (the "License");\r
+ * you may not use this file except in compliance with the License.\r
+ * You may obtain a copy of the License at\r
+ *\r
+ *       http://www.apache.org/licenses/LICENSE-2.0\r
+ *\r
+ * Unless required by applicable law or agreed to in writing, software\r
+ * distributed under the License is distributed on an "AS IS" BASIS,\r
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+ * See the License for the specific language governing permissions and\r
+ * limitations under the License.\r
+ * ============LICENSE_END=========================================================\r
+ */\r
+package org.onap.crud.parser.util;\r
+\r
+import java.util.ArrayList;\r
+import java.util.List;\r
+import org.junit.Assert;\r
+import org.junit.Test;\r
+import org.onap.crud.entity.Edge;\r
+import org.onap.crud.entity.Vertex;\r
+import org.onap.crud.exception.CrudException;\r
+\r
+public class EdgePayloadUtilTest {\r
+\r
+    @Test\r
+    public void testGetVertexNodeType() throws CrudException {\r
+        Assert.assertEquals("vserver", EdgePayloadUtil\r
+                .getVertexNodeType("services/inventory/v12/vserver/50bdab41-ad1c-4d00-952c-a0aa5d827811"));\r
+    }\r
+\r
+    @Test\r
+    public void testGetVertexNodeId() throws CrudException {\r
+        Assert.assertEquals("50bdab41-ad1c-4d00-952c-a0aa5d827811",\r
+                EdgePayloadUtil.getVertexNodeId("services/inventory/v12/vserver/50bdab41-ad1c-4d00-952c-a0aa5d827811"));\r
+    }\r
+\r
+    @Test\r
+    public void testGenerateEdgeKey() throws CrudException {\r
+        Assert.assertEquals("vserver:pserver:tosca.relationships.HostedOn",\r
+                EdgePayloadUtil.generateEdgeKey("services/inventory/v12/vserver/50bdab41-ad1c-4d00-952c-a0aa5d827811",\r
+                        "services/inventory/v12/pserver/1d326bc7-b985-492b-9604-0d5d1f06f908",\r
+                        "tosca.relationships.HostedOn"));\r
+    }\r
+\r
+    @Test\r
+    public void testKeyGenerationEnforcesSourceAndTargetOrder() throws Exception {\r
+        String generateEdgeKey1 = EdgePayloadUtil.generateEdgeKey(\r
+                "services/inventory/v12/vserver/50bdab41-ad1c-4d00-952c-a0aa5d827811",\r
+                "services/inventory/v12/pserver/1d326bc7-b985-492b-9604-0d5d1f06f908", "tosca.relationships.HostedOn");\r
+\r
+        String generateEdgeKey2 = EdgePayloadUtil.generateEdgeKey(\r
+                "services/inventory/v12/pserver/1d326bc7-b985-492b-9604-0d5d1f06f908",\r
+                "services/inventory/v12/vserver/50bdab41-ad1c-4d00-952c-a0aa5d827811", "tosca.relationships.HostedOn");\r
+\r
+        Assert.assertNotEquals(generateEdgeKey1, generateEdgeKey2);\r
+    }\r
+\r
+\r
+    @Test\r
+    public void testGetBuilderFromEdgePayload() throws CrudException {\r
+        Edge.Builder builder = EdgePayloadUtil.getBuilderFromEdgePayload(\r
+                "services/inventory/v12/vserver/50bdab41-ad1c-4d00-952c-a0aa5d827811",\r
+                "services/inventory/v12/pserver/1d326bc7-b985-492b-9604-0d5d1f06f908", "tosca.relationships.HostedOn");\r
+\r
+        Edge edge = builder.build();\r
+        Assert.assertEquals("tosca.relationships.HostedOn", edge.getType());\r
+        Assert.assertEquals("vserver", edge.getSource().getType());\r
+        Assert.assertEquals("50bdab41-ad1c-4d00-952c-a0aa5d827811", edge.getSource().getId().get());\r
+        Assert.assertEquals("pserver", edge.getTarget().getType());\r
+        Assert.assertEquals("1d326bc7-b985-492b-9604-0d5d1f06f908", edge.getTarget().getId().get());\r
+    }\r
+\r
+    @Test\r
+    public void tesGetBuilderFromEdge() throws CrudException {\r
+        Edge edge = createEdge("vserver", "pserver");\r
+\r
+        Assert.assertNotNull(edge);\r
+        Assert.assertNotNull(EdgePayloadUtil.getBuilderFromEdge(edge));\r
+    }\r
+\r
+    @Test\r
+    public void testFilterEdgesByRelatedVertexAndType() throws CrudException {\r
+        List<Edge> edges = new ArrayList<>();\r
+        edges.add(createEdge("vserver", "pserver"));\r
+        edges.add(createEdge("vce", "pserver"));\r
+        edges.add(createEdge("snapshot", "pserver"));\r
+        edges.add(createEdge("vserver", "pserver"));\r
+\r
+        List<Edge> filteredEdges =\r
+                EdgePayloadUtil.filterEdgesByRelatedVertexAndType("vserver", "tosca.relationships.HostedOn", edges);\r
+\r
+        Assert.assertNotNull(filteredEdges);\r
+        Assert.assertEquals(2, filteredEdges.size());\r
+    }\r
+\r
+    private Edge createEdge(String sourceVertexType, String targetVertexType) {\r
+        return new Edge.Builder("tosca.relationships.HostedOn").id("test")\r
+                .source(new Vertex.Builder(sourceVertexType).id("50bdab41-ad1c-4d00-952c-a0aa5d827811").build())\r
+                .target(new Vertex.Builder(targetVertexType).id("1d326bc7-b985-492b-9604-0d5d1f06f908").build())\r
+                .build();\r
+    }\r
+}\r