- @Test
- public void createEdgeWithValidLabelWhenSameEdgeExistsTest() throws AAIException, UnsupportedEncodingException, NoSuchFieldException, SecurityException, IllegalArgumentException, IllegalAccessException {
-
- EdgeRules ers = EdgeRules.getInstance("/dbedgerules/DbEdgeRules_test.json");
-
- DBSerializer localDbser = getDBSerializerWithSpecificEdgeRules(ers);
-
- engine.startTransaction();
-
- Vertex gvnf = engine.tx().addVertex("aai-node-type","generic-vnf","vnf-id","myvnf", "aai-uri", "/network/generic-vnfs/generic-vnf/myvnf");
- Vertex vnfc = engine.tx().addVertex("aai-node-type","vnfc","vnfc-name","a-name", "aai-uri", "/network/vnfcs/vnfc/a-name");
- ers.addEdge(graph.traversal(), gvnf, vnfc, "re-uses");
-
- Introspector relData = loader.introspectorFromName("relationship-data");
- relData.setValue("relationship-key", "vnfc.vnfc-name");
- relData.setValue("relationship-value", "a-name");
- Introspector relationship = loader.introspectorFromName("relationship");
- relationship.setValue("related-to", "vnfc");
- relationship.setValue("related-link", "/network/vnfcs/vnfc/a-name");
- relationship.setValue("relationship-data",relData);
- relationship.setValue("relationship-label", "re-uses");
-
- assertTrue(localDbser.createEdge(relationship, gvnf));
- assertTrue(engine.tx().traversal().V(gvnf).both("re-uses").hasNext());
- assertTrue(engine.tx().traversal().V(vnfc).both("re-uses").hasNext());
- assertEquals("Number of edges between vertexes is 1", Long.valueOf(1), engine.tx().traversal().V(vnfc).both().count().next());
-
- }
-
- @Test
- public void createEdgeWithValidLabelWhenDiffEdgeExistsTest() throws AAIException, UnsupportedEncodingException, NoSuchFieldException, SecurityException, IllegalArgumentException, IllegalAccessException {
-
- EdgeRules ers = EdgeRules.getInstance("/dbedgerules/DbEdgeRules_test.json");
- DBSerializer localDbser = getDBSerializerWithSpecificEdgeRules(ers);
-
- engine.startTransaction();
-
- Vertex gvnf = engine.tx().addVertex("aai-node-type","generic-vnf","vnf-id","myvnf", "aai-uri", "/network/generic-vnfs/generic-vnf/myvnf");
- Vertex vnfc = engine.tx().addVertex("aai-node-type","vnfc","vnfc-name","a-name", "aai-uri", "/network/vnfcs/vnfc/a-name");
- ers.addEdge(graph.traversal(), gvnf, vnfc, "uses");
-
- Introspector relData = loader.introspectorFromName("relationship-data");
- relData.setValue("relationship-key", "vnfc.vnfc-name");
- relData.setValue("relationship-value", "a-name");
- Introspector relationship = loader.introspectorFromName("relationship");
- relationship.setValue("related-to", "vnfc");
- relationship.setValue("related-link", "/network/vnfcs/vnfc/a-name");
- relationship.setValue("relationship-data",relData);
- relationship.setValue("relationship-label", "uses");
- localDbser.createEdge(relationship, gvnf);
-
- relationship.setValue("relationship-label", "re-uses");
-
- assertTrue(localDbser.createEdge(relationship, gvnf));
- assertTrue(engine.tx().traversal().V(gvnf).both("re-uses").hasNext());
- assertTrue(engine.tx().traversal().V(vnfc).both("re-uses").hasNext());
- assertTrue(engine.tx().traversal().V(gvnf).both("uses").hasNext());
- assertTrue(engine.tx().traversal().V(vnfc).both("uses").hasNext());
- assertEquals("Number of edges between vertexes is 2", Long.valueOf(2), engine.tx().traversal().V(vnfc).both().count().next());
- assertEquals("Number of edges between vertexes is 2", Long.valueOf(2), engine.tx().traversal().V(gvnf).both().count().next());
-
- }
-
- @Test
- public void createEdgeWithNoLabelTest() throws AAIException, UnsupportedEncodingException, NoSuchFieldException, SecurityException, IllegalArgumentException, IllegalAccessException {
-
- EdgeRules ers = EdgeRules.getInstance("/dbedgerules/DbEdgeRules_test.json");
- DBSerializer localDbser = getDBSerializerWithSpecificEdgeRules(ers);
-
- engine.startTransaction();
-
- Vertex gvnf = engine.tx().addVertex("aai-node-type","generic-vnf","vnf-id","myvnf", "aai-uri", "/network/generic-vnfs/generic-vnf/myvnf");
- Vertex vnfc = engine.tx().addVertex("aai-node-type","vnfc","vnfc-name","a-name", "aai-uri", "/network/vnfcs/vnfc/a-name");
-
- Introspector relData = loader.introspectorFromName("relationship-data");
- relData.setValue("relationship-key", "vnfc.vnfc-name");
- relData.setValue("relationship-value", "a-name");
- Introspector relationship = loader.introspectorFromName("relationship");
- relationship.setValue("related-to", "vnfc");
- relationship.setValue("related-link", "/network/vnfcs/vnfc/a-name");
- relationship.setValue("relationship-data",relData);
- localDbser.createEdge(relationship, gvnf);
-
- assertTrue(localDbser.createEdge(relationship, gvnf));
- assertTrue(engine.tx().traversal().V(gvnf).both("uses").hasNext());
- assertTrue(engine.tx().traversal().V(vnfc).both("uses").hasNext());
- assertEquals("Number of edges between vertexes is 1", Long.valueOf(1), engine.tx().traversal().V(vnfc).both().count().next());
- assertEquals("Number of edges between vertexes is 1", Long.valueOf(1), engine.tx().traversal().V(gvnf).both().count().next());
-
-
- }
-
- @Test
- public void deleteEdgeWithNoLabelWhenMultipleExistsTest() throws AAIException, UnsupportedEncodingException, NoSuchFieldException, SecurityException, IllegalArgumentException, IllegalAccessException {
-
- EdgeRules ers = EdgeRules.getInstance("/dbedgerules/DbEdgeRules_test.json");
-
- DBSerializer localDbser = getDBSerializerWithSpecificEdgeRules(ers);
-
- engine.startTransaction();
-
- Vertex gvnf = engine.tx().addVertex("aai-node-type","generic-vnf","vnf-id","myvnf", "aai-uri", "/network/generic-vnfs/generic-vnf/myvnf");
- Vertex vnfc = engine.tx().addVertex("aai-node-type","vnfc","vnfc-name","a-name", "aai-uri", "/network/vnfcs/vnfc/a-name");
- ers.addEdge(graph.traversal(), gvnf, vnfc, "uses");
- ers.addEdge(graph.traversal(), gvnf, vnfc, "re-uses");
- ers.addEdge(graph.traversal(), gvnf, vnfc, "over-uses");
-
- Introspector relData = loader.introspectorFromName("relationship-data");
- relData.setValue("relationship-key", "vnfc.vnfc-name");
- relData.setValue("relationship-value", "a-name");
- Introspector relationship = loader.introspectorFromName("relationship");
- relationship.setValue("related-to", "vnfc");
- relationship.setValue("related-link", "/network/vnfcs/vnfc/a-name");
- relationship.setValue("relationship-data",relData);
-
- assertTrue(localDbser.deleteEdge(relationship, gvnf));
- assertFalse("generic-vnf has no edge uses", engine.tx().traversal().V(gvnf).both("uses").hasNext());
- assertFalse("vnfc has no edge uses", engine.tx().traversal().V(vnfc).both("uses").hasNext());
- assertTrue("generic-vnf has edge re-uses", engine.tx().traversal().V(gvnf).both("re-uses").hasNext());
- assertTrue("vnfc has edge re-uses", engine.tx().traversal().V(vnfc).both("re-uses").hasNext());
- assertTrue("generic-vnf has edge re-uses", engine.tx().traversal().V(gvnf).both("over-uses").hasNext());
- assertTrue("vnfc has edge re-uses", engine.tx().traversal().V(vnfc).both("over-uses").hasNext());
- assertEquals("Number of edges between vertexes is 2", Long.valueOf(2), engine.tx().traversal().V(vnfc).both().count().next());
- assertEquals("Number of edges between vertexes is 2", Long.valueOf(2), engine.tx().traversal().V(gvnf).both().count().next());
-
- }
-
- @Test
- public void deleteEdgeWithValidLabelWhenMultipleExistsTest() throws AAIException, UnsupportedEncodingException, NoSuchFieldException, SecurityException, IllegalArgumentException, IllegalAccessException {
-
- EdgeRules ers = EdgeRules.getInstance("/dbedgerules/DbEdgeRules_test.json");
- DBSerializer localDbser = getDBSerializerWithSpecificEdgeRules(ers);
-
- engine.startTransaction();
-
- Vertex gvnf = engine.tx().addVertex("aai-node-type","generic-vnf","vnf-id","myvnf", "aai-uri", "/network/generic-vnfs/generic-vnf/myvnf");
- Vertex vnfc = engine.tx().addVertex("aai-node-type","vnfc","vnfc-name","a-name", "aai-uri", "/network/vnfcs/vnfc/a-name");
- ers.addEdge(graph.traversal(), gvnf, vnfc, "uses");
- ers.addEdge(graph.traversal(), gvnf, vnfc, "re-uses");
- ers.addEdge(graph.traversal(), gvnf, vnfc, "over-uses");
-
- Introspector relData = loader.introspectorFromName("relationship-data");
- relData.setValue("relationship-key", "vnfc.vnfc-name");
- relData.setValue("relationship-value", "a-name");
- Introspector relationship = loader.introspectorFromName("relationship");
- relationship.setValue("related-to", "vnfc");
- relationship.setValue("related-link", "/network/vnfcs/vnfc/a-name");
- relationship.setValue("relationship-data",relData);
- relationship.setValue("relationship-label", "re-uses");
-
- assertTrue(localDbser.deleteEdge(relationship, gvnf));
- assertTrue("generic-vnf has edge uses", engine.tx().traversal().V(gvnf).both("uses").hasNext());
- assertTrue("vnfc has edge uses", engine.tx().traversal().V(vnfc).both("uses").hasNext());
- assertFalse("generic-vnf has no edge re-uses", engine.tx().traversal().V(gvnf).both("re-uses").hasNext());
- assertFalse("vnfc has no edge re-uses", engine.tx().traversal().V(vnfc).both("re-uses").hasNext());
- assertTrue("generic-vnf has edge re-uses", engine.tx().traversal().V(gvnf).both("over-uses").hasNext());
- assertTrue("vnfc has edge re-uses", engine.tx().traversal().V(vnfc).both("over-uses").hasNext());
- assertEquals("Number of edges between vertexes is 2", Long.valueOf(2), engine.tx().traversal().V(vnfc).both().count().next());
- assertEquals("Number of edges between vertexes is 2", Long.valueOf(2), engine.tx().traversal().V(gvnf).both().count().next());
-
- }
-
- @Test
- public void deleteEdgeWithValidInvalidLabelWhenMultipleExistsTest() throws AAIException, UnsupportedEncodingException, NoSuchFieldException, SecurityException, IllegalArgumentException, IllegalAccessException {
-
- EdgeRules ers = EdgeRules.getInstance("/dbedgerules/DbEdgeRules_test.json");
- DBSerializer localDbser = getDBSerializerWithSpecificEdgeRules(ers);
-
- engine.startTransaction();
-
- Vertex gvnf = engine.tx().addVertex("aai-node-type","generic-vnf","vnf-id","myvnf", "aai-uri", "/network/generic-vnfs/generic-vnf/myvnf");
- Vertex vnfc = engine.tx().addVertex("aai-node-type","vnfc","vnfc-name","a-name", "aai-uri", "/network/vnfcs/vnfc/a-name");
- ers.addEdge(graph.traversal(), gvnf, vnfc, "uses");
- ers.addEdge(graph.traversal(), gvnf, vnfc, "re-uses");
- ers.addEdge(graph.traversal(), gvnf, vnfc, "over-uses");
-
- Introspector relData = loader.introspectorFromName("relationship-data");
- relData.setValue("relationship-key", "vnfc.vnfc-name");
- relData.setValue("relationship-value", "a-name");
- Introspector relationship = loader.introspectorFromName("relationship");
- relationship.setValue("related-to", "vnfc");
- relationship.setValue("related-link", "/network/vnfcs/vnfc/a-name");
- relationship.setValue("relationship-data",relData);
- relationship.setValue("relationship-label", "NA");
-
- thrown.expect(AAIException.class);
- thrown.expectMessage("no COUSIN edge rule between generic-vnf and vnfc with label NA");
- localDbser.deleteEdge(relationship, gvnf);
- }
-
- @Test
- public void serializeToDbWithLabelTest() throws AAIException, UnsupportedEncodingException, NoSuchFieldException, SecurityException, IllegalArgumentException, IllegalAccessException, URISyntaxException {
-
- EdgeRules ers = EdgeRules.getInstance("/dbedgerules/DbEdgeRules_test.json");
- DBSerializer localDbser = getDBSerializerWithSpecificEdgeRules(ers);
-
- engine.startTransaction();
-
- engine.tx().addVertex("aai-node-type","vnfc","vnfc-name","a-name", "aai-uri", "/network/vnfcs/vnfc/a-name");
-
- Introspector relationship = loader.introspectorFromName("relationship");
- relationship.setValue("related-to", "vnfc");
- relationship.setValue("related-link", "/network/vnfcs/vnfc/a-name");
- relationship.setValue("relationship-label", "re-uses");
- Introspector relationshipList = loader.introspectorFromName("relationship-list");
- relationshipList.setValue("relationship", Collections.singletonList(relationship.getUnderlyingObject()));
-
- Introspector gvnfObj = loader.introspectorFromName("generic-vnf");
- Vertex gvnf = localDbser.createNewVertex(gvnfObj);
- gvnfObj.setValue("relationship-list", relationshipList.getUnderlyingObject());
- gvnfObj.setValue("vnf-id", "myvnf");
-
- QueryParser uriQuery = dbEngine.getQueryBuilder().createQueryFromURI(new URI("/network/generic-vnfs/generic-vnf/myvnf"));
-
- localDbser.serializeToDb(gvnfObj, gvnf, uriQuery, null, "test");
-
- assertTrue("vertex with vnf-id myvnf exists", engine.tx().traversal().V().has("vnf-id", "myvnf").hasNext());
- assertTrue("vertex with vnfc-name a-name exists", engine.tx().traversal().V().has("vnfc-name", "a-name").hasNext());
- assertFalse("generic-vnf has no edge re-uses", engine.tx().traversal().V().has("vnf-id", "myvnf").both("uses").hasNext());
- assertFalse("vnfc has no edge re-uses", engine.tx().traversal().V().has("vnfc-name", "a-name").both("uses").hasNext());
- assertTrue("generic-vnf has edge re-uses", engine.tx().traversal().V().has("vnf-id", "myvnf").both("re-uses").hasNext());
- assertTrue("vnfc has edge re-uses", engine.tx().traversal().V().has("vnfc-name", "a-name").both("re-uses").hasNext());
- assertFalse("generic-vnf has no edge re-uses", engine.tx().traversal().V().has("vnf-id", "myvnf").both("over-uses").hasNext());
- assertFalse("vnfc has no edge re-uses", engine.tx().traversal().V().has("vnfc-name", "a-name").both("over-uses").hasNext());
- assertEquals("Number of edges between vertexes is 1", Long.valueOf(1), engine.tx().traversal().V().has("vnfc-name", "a-name").both().count().next());
- assertEquals("Number of edges between vertexes is 1", Long.valueOf(1), engine.tx().traversal().V().has("vnf-id", "myvnf").both().count().next());
-
- }
-
- @Test
- public void serializeToDbWithoutLabelTest() throws AAIException, UnsupportedEncodingException, NoSuchFieldException, SecurityException, IllegalArgumentException, IllegalAccessException, URISyntaxException {
-
- EdgeRules ers = EdgeRules.getInstance("/dbedgerules/DbEdgeRules_test.json");
- DBSerializer localDbser = getDBSerializerWithSpecificEdgeRules(ers);
-
- engine.startTransaction();
-
- engine.tx().addVertex("aai-node-type","vnfc","vnfc-name","a-name", "aai-uri", "/network/vnfcs/vnfc/a-name");
-
- Introspector relationship = loader.introspectorFromName("relationship");
- relationship.setValue("related-to", "vnfc");
- relationship.setValue("related-link", "/network/vnfcs/vnfc/a-name");
-
- Introspector relationshipList = loader.introspectorFromName("relationship-list");
- relationshipList.setValue("relationship", Collections.singletonList(relationship.getUnderlyingObject()));
-
- Introspector gvnfObj = loader.introspectorFromName("generic-vnf");
- Vertex gvnf = localDbser.createNewVertex(gvnfObj);
- gvnfObj.setValue("relationship-list", relationshipList.getUnderlyingObject());
- gvnfObj.setValue("vnf-id", "myvnf");
-
- QueryParser uriQuery = dbEngine.getQueryBuilder().createQueryFromURI(new URI("/network/generic-vnfs/generic-vnf/myvnf"));
-
- localDbser.serializeToDb(gvnfObj, gvnf, uriQuery, null, "test");
-
- assertTrue("vertex with vnf-id myvnf exists", engine.tx().traversal().V().has("vnf-id", "myvnf").hasNext());
- assertTrue("vertex with vnfc-name a-name exists", engine.tx().traversal().V().has("vnfc-name", "a-name").hasNext());
- assertTrue("generic-vnf has edge uses", engine.tx().traversal().V().has("vnf-id", "myvnf").both("uses").hasNext());
- assertTrue("vnfc has edge uses", engine.tx().traversal().V().has("vnfc-name", "a-name").both("uses").hasNext());
- assertFalse("generic-vnf has no edge re-uses", engine.tx().traversal().V().has("vnf-id", "myvnf").both("re-uses").hasNext());
- assertFalse("vnfc has no edge re-uses", engine.tx().traversal().V().has("vnfc-name", "a-name").both("re-uses").hasNext());
- assertFalse("generic-vnf has no edge over-uses", engine.tx().traversal().V().has("vnf-id", "myvnf").both("over-uses").hasNext());
- assertFalse("vnfc has no edge over-uses", engine.tx().traversal().V().has("vnfc-name", "a-name").both("over-uses").hasNext());
- assertEquals("Number of edges between vertexes is 1", Long.valueOf(1), engine.tx().traversal().V().has("vnfc-name", "a-name").both().count().next());
- assertEquals("Number of edges between vertexes is 1", Long.valueOf(1), engine.tx().traversal().V().has("vnf-id", "myvnf").both().count().next());
-
- }
-
- @Test
- public void serializeToDbWithInvalidLabelTest() throws AAIException, UnsupportedEncodingException, NoSuchFieldException, SecurityException, IllegalArgumentException, IllegalAccessException, URISyntaxException {
-
- EdgeRules ers = EdgeRules.getInstance("/dbedgerules/DbEdgeRules_test.json");
- DBSerializer localDbser = getDBSerializerWithSpecificEdgeRules(ers);
-
- engine.startTransaction();
-
- engine.tx().addVertex("aai-node-type","vnfc","vnfc-name","a-name", "aai-uri", "/network/vnfcs/vnfc/a-name");
-
- Introspector relationship = loader.introspectorFromName("relationship");
- relationship.setValue("related-to", "vnfc");
- relationship.setValue("related-link", "/network/vnfcs/vnfc/a-name");
- relationship.setValue("relationship-label", "NA");
- Introspector relationshipList = loader.introspectorFromName("relationship-list");
- relationshipList.setValue("relationship", Collections.singletonList(relationship.getUnderlyingObject()));
-
- Introspector gvnfObj = loader.introspectorFromName("generic-vnf");
- Vertex gvnf = localDbser.createNewVertex(gvnfObj);
- gvnfObj.setValue("relationship-list", relationshipList.getUnderlyingObject());
- gvnfObj.setValue("vnf-id", "myvnf");
-
- QueryParser uriQuery = dbEngine.getQueryBuilder().createQueryFromURI(new URI("/network/generic-vnfs/generic-vnf/myvnf"));
-
- thrown.expect(AAIException.class);
- thrown.expectMessage("No EdgeRule found for passed nodeTypes: generic-vnf, vnfc with label NA.");
- localDbser.serializeToDb(gvnfObj, gvnf, uriQuery, null, "test");
-
- }
-
- @Test
- public void serializeToDbWithLabelAndEdgeExistsTest() throws AAIException, UnsupportedEncodingException, NoSuchFieldException, SecurityException, IllegalArgumentException, IllegalAccessException, URISyntaxException {
-
- EdgeRules ers = EdgeRules.getInstance("/dbedgerules/DbEdgeRules_test.json");
- DBSerializer localDbser = getDBSerializerWithSpecificEdgeRules(ers);
-
- engine.startTransaction();
- engine.tx().addVertex("aai-node-type","vnfc","vnfc-name","a-name", "aai-uri", "/network/vnfcs/vnfc/a-name");
-
- Introspector relationship;
- Introspector relationshipList;
- List<Object> relList = new ArrayList<>();
-
- // create generic-vnf
- Introspector gvnfObj = loader.introspectorFromName("generic-vnf");
- Vertex gvnf = localDbser.createNewVertex(gvnfObj);
- gvnfObj.setValue("vnf-id", "myvnf");
- QueryParser uriQuery = dbEngine.getQueryBuilder().createQueryFromURI(new URI("/network/generic-vnfs/generic-vnf/myvnf"));
-
- // create relationship to vnfc
- relationship = loader.introspectorFromName("relationship");
- relationship.setValue("related-to", "vnfc");
- relationship.setValue("related-link", "/network/vnfcs/vnfc/a-name");
- relList.add(relationship.getUnderlyingObject());
- relationshipList = loader.introspectorFromName("relationship-list");
- relationshipList.setValue("relationship", relList);
- gvnfObj.setValue("relationship-list", relationshipList.getUnderlyingObject());
-
- // add gvnf to graph
- localDbser.serializeToDb(gvnfObj, gvnf, uriQuery, null, "test");
-
- // add second relationship
- relationship = loader.introspectorFromName("relationship");
- relationship.setValue("related-to", "vnfc");
- relationship.setValue("related-link", "/network/vnfcs/vnfc/a-name");
- relationship.setValue("relationship-label", "re-uses");
- relList.add(relationship.getUnderlyingObject());
- relationshipList = loader.introspectorFromName("relationship-list");
- relationshipList.setValue("relationship", relList);
- gvnfObj.setValue("relationship-list", relationshipList.getUnderlyingObject());
-
- localDbser.serializeToDb(gvnfObj, gvnf, uriQuery, null, "test");
-
- assertTrue("vertex with vnf-id myvnf exists", engine.tx().traversal().V().has("vnf-id", "myvnf").hasNext());
- assertTrue("vertex with vnfc-name a-name exists", engine.tx().traversal().V().has("vnfc-name", "a-name").hasNext());
- assertTrue("generic-vnf has edge uses", engine.tx().traversal().V().has("vnf-id", "myvnf").both("uses").hasNext());
- assertTrue("vnfc has edge uses", engine.tx().traversal().V().has("vnfc-name", "a-name").both("uses").hasNext());
- assertTrue("generic-vnf has edge re-uses", engine.tx().traversal().V().has("vnf-id", "myvnf").both("re-uses").hasNext());
- assertTrue("vnfc has edge re-uses", engine.tx().traversal().V().has("vnfc-name", "a-name").both("re-uses").hasNext());
- assertFalse("generic-vnf has no edge over-uses", engine.tx().traversal().V().has("vnf-id", "myvnf").both("over-uses").hasNext());
- assertFalse("vnfc has no edge over-uses", engine.tx().traversal().V().has("vnfc-name", "a-name").both("over-uses").hasNext());
- assertEquals("Number of edges between vertexes is 2", Long.valueOf(2), engine.tx().traversal().V().has("vnfc-name", "a-name").both().count().next());
- assertEquals("Number of edges between vertexes is 2", Long.valueOf(2), engine.tx().traversal().V().has("vnf-id", "myvnf").both().count().next());
-
- }
-
- @Test
- public void serializeToDbWithLabelDroppingRelationshipTest() throws AAIException, UnsupportedEncodingException, NoSuchFieldException, SecurityException, IllegalArgumentException, IllegalAccessException, URISyntaxException {
-
- EdgeRules ers = EdgeRules.getInstance("/dbedgerules/DbEdgeRules_test.json");
- DBSerializer localDbser = getDBSerializerWithSpecificEdgeRules(ers);
-
- engine.startTransaction();
- engine.tx().addVertex("aai-node-type","vnfc","vnfc-name","a-name", "aai-uri", "/network/vnfcs/vnfc/a-name");
-
-
- Introspector relationship;
- Introspector relationshipList;
- List<Object> relList = new ArrayList<>();
-
- // create generic-vnf
- Introspector gvnfObj = loader.introspectorFromName("generic-vnf");
- Vertex gvnf = localDbser.createNewVertex(gvnfObj);
- gvnfObj.setValue("vnf-id", "myvnf");
- QueryParser uriQuery = dbEngine.getQueryBuilder().createQueryFromURI(new URI("/network/generic-vnfs/generic-vnf/myvnf"));
-
- // create relationship to vnfc
- relationship = loader.introspectorFromName("relationship");
- relationship.setValue("related-to", "vnfc");
- relationship.setValue("related-link", "/network/vnfcs/vnfc/a-name");
- relList.add(relationship.getUnderlyingObject());
- // add second relationship
- relationship = loader.introspectorFromName("relationship");
- relationship.setValue("related-to", "vnfc");
- relationship.setValue("related-link", "/network/vnfcs/vnfc/a-name");
- relationship.setValue("relationship-label", "re-uses");
- relList.add(relationship.getUnderlyingObject());
- relationshipList = loader.introspectorFromName("relationship-list");
- relationshipList.setValue("relationship", relList);
- gvnfObj.setValue("relationship-list", relationshipList.getUnderlyingObject());
-
- // add gvnf to graph
- localDbser.serializeToDb(gvnfObj, gvnf, uriQuery, null, "test");
-
- // drop second relationship
- relList.remove(1);
- relationshipList = loader.introspectorFromName("relationship-list");
- relationshipList.setValue("relationship", relList);
- gvnfObj.setValue("relationship-list", relationshipList.getUnderlyingObject());
-
- localDbser.serializeToDb(gvnfObj, gvnf, uriQuery, null, "test");
-
- assertTrue("vertex with vnf-id myvnf exists", engine.tx().traversal().V().has("vnf-id", "myvnf").hasNext());
- assertTrue("vertex with vnfc-name a-name exists", engine.tx().traversal().V().has("vnfc-name", "a-name").hasNext());
- assertTrue("generic-vnf has edge uses", engine.tx().traversal().V().has("vnf-id", "myvnf").both("uses").hasNext());
- assertTrue("vnfc has edge uses", engine.tx().traversal().V().has("vnfc-name", "a-name").both("uses").hasNext());
- assertFalse("generic-vnf no longer has edge re-uses", engine.tx().traversal().V().has("vnf-id", "myvnf").both("re-uses").hasNext());
- assertFalse("vnfc no longer has edge re-uses", engine.tx().traversal().V().has("vnfc-name", "a-name").both("re-uses").hasNext());
- assertFalse("generic-vnf has no edge over-uses", engine.tx().traversal().V().has("vnf-id", "myvnf").both("over-uses").hasNext());
- assertFalse("vnfc has no edge over-uses", engine.tx().traversal().V().has("vnfc-name", "a-name").both("over-uses").hasNext());
- assertEquals("Number of edges between vertexes is 1", Long.valueOf(1), engine.tx().traversal().V().has("vnfc-name", "a-name").both().count().next());
- assertEquals("Number of edges between vertexes is 1", Long.valueOf(1), engine.tx().traversal().V().has("vnf-id", "myvnf").both().count().next());
-
- }
-
- private DBSerializer getDBSerializerWithSpecificEdgeRules(EdgeRules ers)
- throws NoSuchFieldException, AAIException, IllegalAccessException {
- // reflection to set the edge rules to the test one for DBSerializer
- Field reader = DBSerializer.class.getDeclaredField("edgeRules");
- reader.setAccessible(true);
- DBSerializer localDbser = new DBSerializer(Version.getLatest(), engine, introspectorFactoryType, "AAI-TEST");
- reader.set(localDbser, ers);
- return localDbser;
- }
-