diff options
Diffstat (limited to 'src/test/java/org/onap/aai/migration/v13/MigrateModelVerTest.java')
-rw-r--r-- | src/test/java/org/onap/aai/migration/v13/MigrateModelVerTest.java | 487 |
1 files changed, 487 insertions, 0 deletions
diff --git a/src/test/java/org/onap/aai/migration/v13/MigrateModelVerTest.java b/src/test/java/org/onap/aai/migration/v13/MigrateModelVerTest.java new file mode 100644 index 0000000..00db1fa --- /dev/null +++ b/src/test/java/org/onap/aai/migration/v13/MigrateModelVerTest.java @@ -0,0 +1,487 @@ +/** + * ============LICENSE_START======================================================= + * org.onap.aai + * ================================================================================ + * Copyright © 2017-2018 AT&T 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.aai.migration.v13; + +import static org.junit.Assert.*; +import static org.mockito.Mockito.spy; +import static org.mockito.Mockito.when; + +import org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversalSource; +import org.apache.tinkerpop.gremlin.structure.Vertex; +import org.janusgraph.core.JanusGraph; +import org.janusgraph.core.JanusGraphFactory; +import org.janusgraph.core.JanusGraphTransaction; +import org.janusgraph.core.schema.JanusGraphManagement; +import org.junit.After; +import org.junit.Before; +import org.junit.Test; +import org.mockito.Mockito; +import org.onap.aai.AAISetup; +import org.onap.aai.dbmap.DBConnectionType; +import org.onap.aai.introspection.Loader; +import org.onap.aai.introspection.LoaderFactory; +import org.onap.aai.introspection.ModelType; +import org.onap.aai.setup.SchemaVersions; +import org.onap.aai.setup.SchemaVersion; +import org.onap.aai.serialization.engines.JanusGraphDBEngine; +import org.onap.aai.serialization.engines.QueryStyle; +import org.onap.aai.serialization.engines.TransactionalGraphEngine; + +public class MigrateModelVerTest extends AAISetup{ + + private final static ModelType introspectorFactoryType = ModelType.MOXY; + private final static QueryStyle queryStyle = QueryStyle.TRAVERSAL; + private final static DBConnectionType type = DBConnectionType.REALTIME; + + private Loader loader; + private TransactionalGraphEngine dbEngine; + private JanusGraph graph; + private GraphTraversalSource g; + private JanusGraphTransaction tx; + private MigrateModelVer migration; + + @Before + public void setUp() throws Exception { + graph = JanusGraphFactory.build().set("storage.backend", "inmemory").open(); + JanusGraphManagement janusgraphManagement = graph.openManagement(); + tx = graph.newTransaction(); + g = graph.traversal(); + loader = loaderFactory.createLoaderForVersion(introspectorFactoryType, schemaVersions.getDefaultVersion()); + dbEngine = new JanusGraphDBEngine(queryStyle, type, loader); + + TransactionalGraphEngine spy = spy(dbEngine); + TransactionalGraphEngine.Admin adminSpy = spy(dbEngine.asAdmin()); + GraphTraversalSource traversal = g; + when(spy.asAdmin()).thenReturn(adminSpy); + when(adminSpy.getTraversalSource()).thenReturn(traversal); + Mockito.doReturn(janusgraphManagement).when(adminSpy).getManagementSystem(); + + + // Add model1/model-ver1 -- invalid model/model-ver + Vertex model1 = g.addV().property("aai-node-type", "model") + .property("model-invariant-id", "model-invariant-id-1").property("model-type", "widget").next(); + Vertex modelVer1 = g.addV().property("aai-node-type", "model-ver").property("model-version-id", "model-version-id-1") + .property("aai-uri", "/service-design-and-creation/models/model/model-invariant-id-1/model-vers/model-ver/model-version-id-1") + .property("model-name", "connector").property("model-version", "v1.0").next(); + edgeSerializer.addTreeEdge(g, model1, modelVer1); + //connector + Vertex connector1= g.addV().property("aai-node-type", "connector").property("resource-instance-id", "connector1") + .property("model-invariant-id-local", "model-invariant-id-1").property("model-version-id-local", "model-version-id-1").next(); + Vertex connector2= g.addV().property("aai-node-type", "connector").property("resource-instance-id", "connector2") + .property("model-invariant-id-local", "model-invariant-id-x").property("model-version-id-local", "model-version-id-x").next(); + Vertex connector3= g.addV().property("aai-node-type", "connector").property("resource-instance-id", "connector3") + .property("model-invariant-id-local", "model-invariant-id-1").property("model-version-id-local", "model-version-id-1").next(); + edgeSerializer.addPrivateEdge(traversal, connector3, modelVer1, null); + + + // Add model1/model-ver1 -- invalid model/model-ver + Vertex model2 = g.addV().property("aai-node-type", "model") + .property("model-invariant-id", "model-invariant-id-2").property("model-type", "widget").next(); + Vertex modelVer2 = g.addV().property("aai-node-type", "model-ver").property("model-version-id", "model-version-id-2") + .property("aai-uri", "/service-design-and-creation/models/model/model-invariant-id-2/model-vers/model-ver/model-version-id-2") + .property("model-name", "service-instance").property("model-version", "v1.0").next(); + edgeSerializer.addTreeEdge(g, model2, modelVer2); + //serivce-instance + Vertex serviceInstance1= g.addV().property("aai-node-type", "service-instance").property("service-instance-id", "serviceinstance1") + .property("model-invariant-id-local", "model-invariant-id-2").property("model-version-id-local", "model-version-id-2").next(); + Vertex serviceInstance2= g.addV().property("aai-node-type", "service-instance").property("service-instance-id", "serviceinstance2") + .property("model-invariant-id-local", "model-invariant-id-y").property("model-version-id-local", "model-version-id-y").next(); + Vertex serviceInstance3= g.addV().property("aai-node-type", "service-instance").property("service-instance-id", "serviceinstance3") + .property("model-invariant-id-local", "model-invariant-id-2").property("model-version-id-local", "model-version-id-2").next(); + edgeSerializer.addPrivateEdge(traversal, serviceInstance3, modelVer2, null); + + // Add model3/model-ver3 + Vertex model3 = g.addV().property("aai-node-type", "model") + .property("model-invariant-id", "model-invariant-id-3").property("model-type", "widget").next(); + Vertex modelVer3 = g.addV().property("aai-node-type", "model-ver").property("model-version-id", "model-version-id-3") + .property("aai-uri", "/service-design-and-creation/models/model/model-invariant-id-3/model-vers/model-ver/model-version-id-3") + .property("model-name", "pnf").property("model-version", "v1.0").next(); + edgeSerializer.addTreeEdge(g, model3, modelVer3); + //pnf + Vertex pnfName1= g.addV().property("aai-node-type", "pnf").property("pnf-name", "pnfName1") + .property("model-invariant-id-local", "model-invariant-id-3").property("model-version-id-local", "model-version-id-3").next(); + Vertex pnfName2= g.addV().property("aai-node-type", "pnf").property("pnf-name", "pnfName2") + .property("model-invariant-id-local", "model-invariant-id-y").property("model-version-id-local", "model-version-id-y").next(); + Vertex pnfName3= g.addV().property("aai-node-type", "pnf").property("pnf-name", "pnfName3") + .property("model-invariant-id-local", "model-invariant-id-3").property("model-version-id-local", "model-version-id-3").next(); + edgeSerializer.addPrivateEdge(traversal, pnfName3, modelVer3, null); + + // Add model4/model-ver4 + Vertex model4 = g.addV().property("aai-node-type", "model") + .property("model-invariant-id", "model-invariant-id-4").property("model-type", "widget").next(); + Vertex modelVer4 = g.addV().property("aai-node-type", "model-ver").property("model-version-id", "model-version-id-4") + .property("aai-uri", "/service-design-and-creation/models/model/model-invariant-id-4/model-vers/model-ver/model-version-id-4") + .property("model-name", "logical-link").property("model-version", "v1.0").next(); + edgeSerializer.addTreeEdge(g, model4, modelVer4); + //logical-link + Vertex linkName1= g.addV().property("aai-node-type", "logical-link").property("link-name", "linkName1") + .property("model-invariant-id-local", "model-invariant-id-4").property("model-version-id-local", "model-version-id-4").next(); + Vertex linkName2= g.addV().property("aai-node-type", "logical-link").property("link-name", "linkName2") + .property("model-invariant-id-local", "model-invariant-id-y").property("model-version-id-local", "model-version-id-y").next(); + Vertex linkName3= g.addV().property("aai-node-type", "logical-link").property("link-name", "linkName3") + .property("model-invariant-id-local", "model-invariant-id-4").property("model-version-id-local", "model-version-id-4").next(); + edgeSerializer.addPrivateEdge(traversal, linkName3, modelVer4, null); + + + // Add model5/model-ver5 + Vertex model5 = g.addV().property("aai-node-type", "model") + .property("model-invariant-id", "model-invariant-id-5").property("model-type", "widget").next(); + Vertex modelVer5 = g.addV().property("aai-node-type", "model-ver").property("model-version-id", "model-version-id-5") + .property("aai-uri", "/service-design-and-creation/models/model/model-invariant-id-5/model-vers/model-ver/model-version-id-5") + .property("model-name", "vnfc").property("model-version", "v1.0").next(); + edgeSerializer.addTreeEdge(g, model5, modelVer5); + //vnfc + Vertex vnfc1= g.addV().property("aai-node-type", "vnfc").property("vnfc-name", "vnfc1") + .property("model-invariant-id-local", "model-invariant-id-5").property("model-version-id-local", "model-version-id-5").next(); + Vertex vnfc2= g.addV().property("aai-node-type", "vnfc").property("vnfc-name", "vnfc2") + .property("model-invariant-id-local", "model-invariant-id-y").property("model-version-id-local", "model-version-id-y").next(); + Vertex vnfc3= g.addV().property("aai-node-type", "vnfc").property("vnfc-name", "vnfc3") + .property("model-invariant-id-local", "model-invariant-id-5").property("model-version-id-local", "model-version-id-5").next(); + edgeSerializer.addPrivateEdge(traversal, vnfc3, modelVer5, null); + + // Add model6/model-ver6 + Vertex model6 = g.addV().property("aai-node-type", "model") + .property("model-invariant-id", "model-invariant-id-6").property("model-type", "widget").next(); + Vertex modelVer6 = g.addV().property("aai-node-type", "model-ver").property("model-version-id", "model-version-id-6") + .property("aai-uri", "/service-design-and-creation/models/model/model-invariant-id-6/model-vers/model-ver/model-version-id-6") + .property("model-name", "vnf").property("model-version", "v1.0").next(); + edgeSerializer.addTreeEdge(g, model6, modelVer6); + //generic-vnf + Vertex vnf1= g.addV().property("aai-node-type", "generic-vnf").property("vnf-id", "vnf1") + .property("model-invariant-id-local", "model-invariant-id-6").property("model-version-id-local", "model-version-id-6").next(); + Vertex vnf2= g.addV().property("aai-node-type", "generic-vnf").property("vnf-id", "vnf2") + .property("model-invariant-id-local", "model-invariant-id-y").property("model-version-id-local", "model-version-id-y").next(); + Vertex vnf3= g.addV().property("aai-node-type", "generic-vnf").property("vnf-id", "vnf3") + .property("model-invariant-id-local", "model-invariant-id-6").property("model-version-id-local", "model-version-id-6").next(); + edgeSerializer.addPrivateEdge(traversal, vnf3, modelVer6, null); + + // Add model7/model-ver7 + Vertex model7 = g.addV().property("aai-node-type", "model") + .property("model-invariant-id", "model-invariant-id-7").property("model-type", "widget").next(); + Vertex modelVer7 = g.addV().property("aai-node-type", "model-ver").property("model-version-id", "model-version-id-7") + .property("aai-uri", "/service-design-and-creation/models/model/model-invariant-id-7/model-vers/model-ver/model-version-id-7") + .property("model-name", "configuration").property("model-version", "v1.0").next(); + edgeSerializer.addTreeEdge(g, model7, modelVer7); + //configuration + Vertex configuration1= g.addV().property("aai-node-type", "configuration").property("configuration-id", "configuration1") + .property("model-invariant-id-local", "model-invariant-id-7").property("model-version-id-local", "model-version-id-7").next(); + Vertex configuration2= g.addV().property("aai-node-type", "configuration").property("configuration-id", "configuration2") + .property("model-invariant-id-local", "model-invariant-id-y").property("model-version-id-local", "model-version-id-y").next(); + Vertex configuration3= g.addV().property("aai-node-type", "configuration").property("configuration-id", "configuration3") + .property("model-invariant-id-local", "model-invariant-id-7").property("model-version-id-local", "model-version-id-7").next(); + edgeSerializer.addPrivateEdge(traversal, configuration3, modelVer7, null); + + // Add model8/model-ver8 + Vertex model8 = g.addV().property("aai-node-type", "model") + .property("model-invariant-id", "model-invariant-id-8").property("model-type", "widget").next(); + Vertex modelVer8 = g.addV().property("aai-node-type", "model-ver").property("model-version-id", "model-version-id-8") + .property("aai-uri", "/service-design-and-creation/models/model/model-invariant-id-8/model-vers/model-ver/model-version-id-8") + .property("model-name", "l3-network").property("model-version", "v1.0").next(); + edgeSerializer.addTreeEdge(g, model8, modelVer8); + //l3-network + Vertex l3Network1= g.addV().property("aai-node-type", "l3-network").property("network-id", "l3Network1") + .property("model-invariant-id-local", "model-invariant-id-8").property("model-version-id-local", "model-version-id-8").next(); + Vertex l3Network2= g.addV().property("aai-node-type", "l3-network").property("network-id", "l3Network2") + .property("model-invariant-id-local", "model-invariant-id-y").property("model-version-id-local", "model-version-id-y").next(); + Vertex l3Network3= g.addV().property("aai-node-type", "l3-network").property("network-id", "l3Network3") + .property("model-invariant-id-local", "model-invariant-id-8").property("model-version-id-local", "model-version-id-8").next(); + edgeSerializer.addPrivateEdge(traversal, l3Network3, modelVer8, null); + + // Add model9/model-ver9 + Vertex model9 = g.addV().property("aai-node-type", "model") + .property("model-invariant-id", "model-invariant-id-9").property("model-type", "widget").next(); + Vertex modelVer9 = g.addV().property("aai-node-type", "model-ver").property("model-version-id", "model-version-id-9") + .property("aai-uri", "/service-design-and-creation/models/model/model-invariant-id-9/model-vers/model-ver/model-version-id-9") + .property("model-name", "vf-module").property("model-version", "v1.0").next(); + edgeSerializer.addTreeEdge(g, model9, modelVer9); + //vf-module + Vertex vfModule1= g.addV().property("aai-node-type", "vf-module").property("vf-module-id", "vfModule1") + .property("model-invariant-id-local", "model-invariant-id-9").property("model-version-id-local", "model-version-id-9").next(); + Vertex vfModule2= g.addV().property("aai-node-type", "vf-module").property("vf-module-id", "vfModule2") + .property("model-invariant-id-local", "model-invariant-id-y").property("model-version-id-local", "model-version-id-y").next(); + Vertex vfModule3= g.addV().property("aai-node-type", "vf-module").property("vf-module-id", "vfModule3") + .property("model-invariant-id-local", "model-invariant-id-9").property("model-version-id-local", "model-version-id-9").next(); + edgeSerializer.addPrivateEdge(traversal, vfModule3, modelVer9, null); + + // Add model10/model-ver10 + Vertex model10 = g.addV().property("aai-node-type", "model") + .property("model-invariant-id", "model-invariant-id-10").property("model-type", "widget").next(); + Vertex modelVer10 = g.addV().property("aai-node-type", "model-ver").property("model-version-id", "model-version-id-10") + .property("aai-uri", "/service-design-and-creation/models/model/model-invariant-id-10/model-vers/model-ver/model-version-id-10") + .property("model-name", "collection").property("model-version", "v1.0").next(); + edgeSerializer.addTreeEdge(g, model10, modelVer10); + //collection + Vertex collection1= g.addV().property("aai-node-type", "collection").property("collection-id", "collection1") + .property("model-invariant-id-local", "model-invariant-id-10").property("model-version-id-local", "model-version-id-10").next(); + Vertex collection2= g.addV().property("aai-node-type", "collection").property("collection-id", "collection2") + .property("model-invariant-id-local", "model-invariant-id-y").property("model-version-id-local", "model-version-id-y").next(); + Vertex collection3= g.addV().property("aai-node-type", "collection").property("collection-id", "collection3") + .property("model-invariant-id-local", "model-invariant-id-10").property("model-version-id-local", "model-version-id-10").next(); + edgeSerializer.addPrivateEdge(traversal, collection3, modelVer10, null); + + // Add model11/model-ver11 + Vertex model11 = g.addV().property("aai-node-type", "model") + .property("model-invariant-id", "model-invariant-id-11").property("model-type", "widget").next(); + Vertex modelVer11 = g.addV().property("aai-node-type", "model-ver").property("model-version-id", "model-version-id-11") + .property("aai-uri", "/service-design-and-creation/models/model/model-invariant-id-11/model-vers/model-ver/model-version-id-11") + .property("model-name", "instance-group").property("model-version", "v1.0").next(); + edgeSerializer.addTreeEdge(g, model11, modelVer11); + //instance-group + Vertex instanceGroup1= g.addV().property("aai-node-type", "instance-group").property("id", "instanceGroup1") + .property("model-invariant-id-local", "model-invariant-id-11").property("model-version-id-local", "model-version-id-11").next(); + Vertex instanceGroup2= g.addV().property("aai-node-type", "instance-group").property("id", "instanceGroup2") + .property("model-invariant-id-local", "model-invariant-id-y").property("model-version-id-local", "model-version-id-y").next(); + Vertex instanceGroup3= g.addV().property("aai-node-type", "instance-group").property("id", "instanceGroup3") + .property("model-invariant-id-local", "model-invariant-id-11").property("model-version-id-local", "model-version-id-11").next(); + edgeSerializer.addPrivateEdge(traversal, instanceGroup3, modelVer11, null); + + // Add model12/model-ver12 + Vertex model12 = g.addV().property("aai-node-type", "model") + .property("model-invariant-id", "model-invariant-id-12").property("model-type", "widget").next(); + Vertex modelVer12 = g.addV().property("aai-node-type", "model-ver").property("model-version-id", "model-version-id-12") + .property("aai-uri", "/service-design-and-creation/models/model/model-invariant-id-12/model-vers/model-ver/model-version-id-12") + .property("model-name", "allotted-resource").property("model-version", "v1.0").next(); + edgeSerializer.addTreeEdge(g, model12, modelVer12); + //allotted-resource + Vertex allottedResource1= g.addV().property("aai-node-type", "allotted-resource").property("id", "allottedResource1") + .property("model-invariant-id-local", "model-invariant-id-12").property("model-version-id-local", "model-version-id-12").next(); + Vertex allottedResource2= g.addV().property("aai-node-type", "allotted-resource").property("id", "allottedResource2") + .property("model-invariant-id-local", "model-invariant-id-y").property("model-version-id-local", "model-version-id-y").next(); + Vertex allottedResource3= g.addV().property("aai-node-type", "allotted-resource").property("id", "allottedResource3") + .property("model-invariant-id-local", "model-invariant-id-12").property("model-version-id-local", "model-version-id-12").next(); + edgeSerializer.addPrivateEdge(traversal, allottedResource3, modelVer12, null); + + + migration = new MigrateModelVer(spy, loaderFactory, edgeIngestor, edgeSerializer, schemaVersions); + migration.run(); + } + + @After + public void cleanUp() { + tx.rollback(); + graph.close(); + } + + @Test + public void checkEdgeCreatedForConnector() { + assertEquals(true, + g.V().has("aai-node-type", "connector").has("resource-instance-id", "connector1") + .out() + .has("aai-node-type", "model-ver").has("model-version-id","model-version-id-1").hasNext()); + + assertEquals( "Edge not created", false, + g.V().has("aai-node-type", "connector").has("resource-instance-id", "connector2") + .out() + .has("aai-node-type", "model-ver").has("model-version-id","model-version-id-1").hasNext()); + + assertEquals("Edge exists to 2 connectors", new Long(2L), + g.V().has("aai-node-type", "model-ver").has("model-version-id", "model-version-id-1") + .in().count().next()); + } + + + @Test + public void checkEdgeCreatedForSerivceInstance() { + assertEquals(true, + g.V().has("aai-node-type", "service-instance").has("service-instance-id", "serviceinstance1") + .out() + .has("aai-node-type", "model-ver").has("model-version-id","model-version-id-2").hasNext()); + + assertEquals( "Edge not created", false, + g.V().has("aai-node-type", "service-instance").has("service-instance-id", "serviceinstance2") + .out() + .has("aai-node-type", "model-ver").has("model-version-id","model-version-id-2").hasNext()); + + assertEquals("Edge exists to only 2 service-instances", new Long(2L), + g.V().has("aai-node-type", "model-ver").has("model-version-id", "model-version-id-2") + .in().count().next()); + } + + @Test + public void checkEdgeCreatedForPnf() { + assertEquals(true, + g.V().has("aai-node-type", "pnf").has("pnf-name", "pnfName1") + .out() + .has("aai-node-type", "model-ver").has("model-version-id","model-version-id-3").hasNext()); + + assertEquals( "Edge not created", false, + g.V().has("aai-node-type", "pnf").has("pnf-name", "pnfName2") + .out() + .has("aai-node-type", "model-ver").has("model-version-id","model-version-id-3").hasNext()); + + assertEquals("Edge exists to only 2 pnfs", new Long(2L), + g.V().has("aai-node-type", "model-ver").has("model-version-id", "model-version-id-3") + .in().count().next()); + } + + @Test + public void checkEdgeCreatedForLogicalLink() { + assertEquals(true, + g.V().has("aai-node-type", "logical-link").has("link-name", "linkName1") + .out() + .has("aai-node-type", "model-ver").has("model-version-id","model-version-id-4").hasNext()); + + assertEquals( "Edge not created", false, + g.V().has("aai-node-type", "logical-link").has("link-name", "linkName2") + .out() + .has("aai-node-type", "model-ver").has("model-version-id","model-version-id-4").hasNext()); + + assertEquals("Edge exists to only 2 logical-link", new Long(2L), + g.V().has("aai-node-type", "model-ver").has("model-version-id", "model-version-id-4") + .in().count().next()); + } + + @Test + public void checkEdgeCreatedForVnfc() { + assertEquals(true, + g.V().has("aai-node-type", "vnfc").has("vnfc-name", "vnfc1") + .out() + .has("aai-node-type", "model-ver").has("model-version-id","model-version-id-5").hasNext()); + + assertEquals( "Edge not created", false, + g.V().has("aai-node-type", "vnfc").has("vnfc-name", "vnfc2") + .out() + .has("aai-node-type", "model-ver").has("model-version-id","model-version-id-5").hasNext()); + + assertEquals("Edge exists to only 2 logical-link", new Long(2L), + g.V().has("aai-node-type", "model-ver").has("model-version-id", "model-version-id-5") + .in().count().next()); + } + + @Test + public void checkEdgeCreatedForGenericVnf() { + assertEquals(true, + g.V().has("aai-node-type", "generic-vnf").has("vnf-id", "vnf1") + .out() + .has("aai-node-type", "model-ver").has("model-version-id","model-version-id-6").hasNext()); + + assertEquals( "Edge not created", false, + g.V().has("aai-node-type", "generic-vnf").has("vnf-id", "vnf2") + .out() + .has("aai-node-type", "model-ver").has("model-version-id","model-version-id-6").hasNext()); + + assertEquals("Edge exists to only 2 generic-vnfs", new Long(2L), + g.V().has("aai-node-type", "model-ver").has("model-version-id", "model-version-id-6") + .in().count().next()); + } + + @Test + public void checkEdgeCreatedForConfiguration() { + assertEquals(true, + g.V().has("aai-node-type", "configuration").has("configuration-id", "configuration1") + .out() + .has("aai-node-type", "model-ver").has("model-version-id","model-version-id-7").hasNext()); + + assertEquals( "Edge not created", false, + g.V().has("aai-node-type", "configuration").has("configuration-id", "configuration2") + .out() + .has("aai-node-type", "model-ver").has("model-version-id","model-version-id-7").hasNext()); + + assertEquals("Edge exists to only 2 configurations", new Long(2L), + g.V().has("aai-node-type", "model-ver").has("model-version-id", "model-version-id-7") + .in().count().next()); + } + + @Test + public void checkEdgeCreatedForl3Network() { + assertEquals(true, + g.V().has("aai-node-type", "l3-network").has("network-id", "l3Network1") + .out() + .has("aai-node-type", "model-ver").has("model-version-id","model-version-id-8").hasNext()); + + assertEquals( "Edge not created", false, + g.V().has("aai-node-type", "l3-network").has("network-id", "l3Network2") + .out() + .has("aai-node-type", "model-ver").has("model-version-id","model-version-id-8").hasNext()); + + assertEquals("Edge exists to only 2 l3-networks", new Long(2L), + g.V().has("aai-node-type", "model-ver").has("model-version-id", "model-version-id-8") + .in().count().next()); + } + + @Test + public void checkEdgeCreatedForVfModule() { + assertEquals(true, + g.V().has("aai-node-type", "vf-module").has("vf-module-id", "vfModule1") + .out() + .has("aai-node-type", "model-ver").has("model-version-id","model-version-id-9").hasNext()); + + assertEquals( "Edge not created", false, + g.V().has("aai-node-type", "vf-module").has(" vf-module-id", "vfModule2") + .out() + .has("aai-node-type", "model-ver").has("model-version-id","model-version-id-9").hasNext()); + + assertEquals("Edge exists to only 2 vf-modules", new Long(2L), + g.V().has("aai-node-type", "model-ver").has("model-version-id", "model-version-id-9") + .in().count().next()); + } + + @Test + public void checkEdgeCreatedForCollection() { + assertEquals(true, + g.V().has("aai-node-type", "collection").has("collection-id", "collection1") + .out() + .has("aai-node-type", "model-ver").has("model-version-id","model-version-id-10").hasNext()); + + assertEquals( "Edge not created", false, + g.V().has("aai-node-type", "collection").has("collection-id", "collection2") + .out() + .has("aai-node-type", "model-ver").has("model-version-id","model-version-id-10").hasNext()); + + assertEquals("Edge exists to only 2 collections", new Long(2L), + g.V().has("aai-node-type", "model-ver").has("model-version-id", "model-version-id-10") + .in().count().next()); + } + + @Test + public void checkEdgeCreatedForInstanceGroup() { + assertEquals(true, + g.V().has("aai-node-type", "instance-group").has("id", "instanceGroup1") + .out() + .has("aai-node-type", "model-ver").has("model-version-id","model-version-id-11").hasNext()); + + assertEquals( "Edge not created", false, + g.V().has("aai-node-type", "instance-group").has("collection-id", "instanceGroup2") + .out() + .has("aai-node-type", "model-ver").has("model-version-id","model-version-id-11").hasNext()); + + assertEquals("Edge exists to only 2 instance-group2", new Long(2L), + g.V().has("aai-node-type", "model-ver").has("model-version-id", "model-version-id-11") + .in().count().next()); + } + + @Test + public void checkEdgeCreatedForAllottedResource() { + assertEquals(true, + g.V().has("aai-node-type", "allotted-resource").has("id", "allottedResource1") + .out() + .has("aai-node-type", "model-ver").has("model-version-id","model-version-id-12").hasNext()); + + assertEquals( "Edge not created", false, + g.V().has("aai-node-type", "allotted-resource").has("id", "allottedResource2") + .out() + .has("aai-node-type", "model-ver").has("model-version-id","model-version-id-12").hasNext()); + + assertEquals("Edge exists to only 2 allotted-resource", new Long(2L), + g.V().has("aai-node-type", "model-ver").has("model-version-id", "model-version-id-12") + .in().count().next()); + } + +} |