- @Test
- public void parentAbstractTypeWithNesting() throws UnsupportedEncodingException, AAIException {
- URI uri = UriBuilder.fromPath("vnf/key1/vf-modules/vf-module/key2").build();
-
- QueryParser query = dbEngine.getQueryBuilder().createQueryFromURI(uri);
-
- GraphTraversal<Vertex, Vertex> expected = __.<Vertex>start()
- .has("vnf-id", "key1").has(AAIProperties.NODE_TYPE, P.within("vce", "generic-vnf"))
- .union(__.in("org.onap.relationships.inventory.BelongsTo").has(AAIProperties.NODE_TYPE, "vf-module")).has("vf-module-id", "key2");
-
- GraphTraversal<Vertex, Vertex> expectedParent = __.<Vertex>start()
- .has("vnf-id", "key1").has(AAIProperties.NODE_TYPE, P.within("vce", "generic-vnf"));
- assertEquals(
- "gremlin query should be " + expected.toString(),
- expected.toString(),
- query.getQueryBuilder().getQuery().toString());
- assertEquals(
- "parent gremlin query should be equal the query for ",
- expectedParent.toString(),
- query.getQueryBuilder().getParentQuery().getQuery().toString());
- assertEquals(
- "result type should be vnf",
- "vnf",
- query.getParentResultType());
- assertEquals(
- "result type should be vf-module",
- "vf-module",
- query.getResultType());
-
- assertEquals("dependent",true, query.isDependent());
-
- }
-
- @Test
- public void getViaBadQueryParam() throws UnsupportedEncodingException, AAIException {
- URI uri = UriBuilder.fromPath("cloud-infrastructure/cloud-regions/cloud-region/a/b/tenants/tenant").build();
- MultivaluedMap<String, String> map = new MultivaluedHashMap<>();
- map.putSingle("tenant-n231ame", "Tenant1");
- thrown.expect(AAIException.class);
- thrown.expect(hasProperty("code", is("AAI_3000")));
-
- QueryParser query = dbEngine.getQueryBuilder().createQueryFromURI(uri, map);
-
- }
-
- @Test
- public void getPluralViaBadQueryParam() throws UnsupportedEncodingException, AAIException {
- URI uri = UriBuilder.fromPath("cloud-infrastructure/cloud-regions/cloud-region/a/b/tenants").build();
- MultivaluedMap<String, String> map = new MultivaluedHashMap<>();
- map.putSingle("tenant-n231ame", "Tenant1");
- thrown.expect(AAIException.class);
- thrown.expect(hasProperty("code", is("AAI_3000")));
-
- QueryParser query = dbEngine.getQueryBuilder().createQueryFromURI(uri, map);
-
- }
-
- @Test
- public void getPluralViaDuplicateQueryParam() throws UnsupportedEncodingException, AAIException {
- URI uri = UriBuilder.fromPath("network/vnfcs").build();
- MultivaluedMap<String, String> map = new MultivaluedHashMap<>();
- List<String> values = new ArrayList<>();
- values.add("up");
- values.add("down");
- values.add("left");
- values.add("right");
- values.add("start");
- map.put("prov-status", values);
- QueryParser query = dbEngine.getQueryBuilder().createQueryFromURI(uri, map);
- GraphTraversal<Vertex, Vertex> expected = __.<Vertex>start()
- .has("aai-node-type", "vnfc")
- .has("prov-status", P.within(values));
-
- GraphTraversal<Vertex, Vertex> expectedParent = __.<Vertex>start()
- .has("aai-node-type", "vnfc");
-
- assertEquals(
- "gremlin query should be " + expected.toString(),
- expected.toString(),
- query.getQueryBuilder().getQuery().toString());
- assertEquals(
- "parent",
- expectedParent.toString(),
- query.getQueryBuilder().getParentQuery().getQuery().toString());
- assertEquals(
- "parent result type should be empty",
- "",
- query.getParentResultType());
- assertEquals(
- "result type should be vnfc",
- "vnfc",
- query.getResultType());
- assertEquals(
- "container type should be empty",
- "vnfcs",
- query.getContainerType());
- assertEquals("dependent",true, query.isDependent());
-
- }
-
- @Test
- public void dbAliasedSearch() throws UnsupportedEncodingException, AAIException {
- URI uri = UriBuilder.fromPath("network/generic-vnfs").build();
- MultivaluedMap<String, String> map = new MultivaluedHashMap<>();
- map.putSingle("persona-model-customization-id", "key2");
- QueryParser query = dbEngineDepthVersion.getQueryBuilder().createQueryFromURI(uri, map);
- GraphTraversal<Vertex, Vertex> expected = __.<Vertex>start()
- .has("aai-node-type", "generic-vnf")
- .has("model-customization-id", "key2");
- GraphTraversal<Vertex, Vertex> expectedParent = __.<Vertex>start()
- .has("aai-node-type", "generic-vnf");
-
- assertEquals(
- "gremlin query should be " + expected.toString(),
- expected.toString(),
- query.getQueryBuilder().getQuery().toString());
- assertEquals(
- "parent",
- expectedParent.toString(),
- query.getQueryBuilder().getParentQuery().getQuery().toString());
-
- assertEquals(
- "result type should be",
- "generic-vnf",
- query.getResultType());
- assertEquals(
- "result type should be empty",
- "",
- query.getParentResultType());
- assertEquals("dependent",true, query.isDependent());
-
-
- }
-
- @Test
- public void dataLinkedSearch() throws UnsupportedEncodingException, AAIException {
- URI uri = UriBuilder.fromPath("network/vpn-bindings").build();
- MultivaluedMap<String, String> map = new MultivaluedHashMap<>();
- map.putSingle("global-route-target", "key2");
- QueryParser query = dbEngineDepthVersion.getQueryBuilder().createQueryFromURI(uri, map);
- GraphTraversal<Vertex, Vertex> expected = __.<Vertex>start()
- .has("aai-node-type", "vpn-binding")
- .where(__.in("org.onap.relationships.inventory.BelongsTo").has(AAIProperties.NODE_TYPE, "route-target").has("global-route-target", "key2"));
- GraphTraversal<Vertex, Vertex> expectedParent = __.<Vertex>start()
- .has("aai-node-type", "vpn-binding");
-
- assertEquals(
- "gremlin query should be " + expected.toString(),
- expected.toString(),
- query.getQueryBuilder().getQuery().toString());
- assertEquals(
- "parent",
- expectedParent.toString(),
- query.getQueryBuilder().getParentQuery().getQuery().toString());
-
- assertEquals(
- "result type should be",
- "vpn-binding",
- query.getResultType());
- assertEquals(
- "result type should be empty",
- "",
- query.getParentResultType());
- assertEquals("dependent",true, query.isDependent());
- }
-
- @Test
- public void pluralCousin() throws UnsupportedEncodingException, AAIException {
- URI uri = UriBuilder.fromPath("cloud-infrastructure/complexes/complex/key1/related-to/pservers").build();
-
- QueryParser query = dbEngineDepthVersion.getQueryBuilder().createQueryFromURI(uri);
- GraphTraversal<Vertex, Vertex> expected = __.<Vertex>start()
- .has("physical-location-id", "key1")
- .has("aai-node-type", "complex")
- .in("org.onap.relationships.inventory.LocatedIn").has("aai-node-type", "pserver");
- GraphTraversal<Vertex, Vertex> expectedParent = __.<Vertex>start()
- .has("physical-location-id", "key1")
- .has("aai-node-type", "complex");
-
- assertEquals(
- "gremlin query should be " + expected.toString(),
- expected.toString(),
- query.getQueryBuilder().getQuery().toString());
- assertEquals(
- "parent",
- expectedParent.toString(),
- query.getQueryBuilder().getParentQuery().getQuery().toString());
-
- assertEquals(
- "result type should be",
- "pserver",
- query.getResultType());
- assertEquals(
- "result type should be",
- "complex",
- query.getParentResultType());
- //this is controversial but we're not allowing writes on this currently
- assertEquals("dependent",true, query.isDependent());
- }
-
- @Test
- public void specificCousin() throws UnsupportedEncodingException, AAIException {
- URI uri = UriBuilder.fromPath("cloud-infrastructure/complexes/complex/key1/related-to/pservers/pserver/key2").build();
-
- QueryParser query = dbEngineDepthVersion.getQueryBuilder().createQueryFromURI(uri);
- GraphTraversal<Vertex, Vertex> expected = __.<Vertex>start()
- .has("physical-location-id", "key1")
- .has("aai-node-type", "complex")
- .in("org.onap.relationships.inventory.LocatedIn").has("aai-node-type", "pserver")
- .has("hostname", "key2");
- GraphTraversal<Vertex, Vertex> expectedParent = __.<Vertex>start()
- .has("physical-location-id", "key1")
- .has("aai-node-type", "complex");
-
- assertEquals(
- "gremlin query should be " + expected.toString(),
- expected.toString(),
- query.getQueryBuilder().getQuery().toString());
- assertEquals(
- "parent",
- expectedParent.toString(),
- query.getQueryBuilder().getParentQuery().getQuery().toString());
-
- assertEquals(
- "result type should be",
- "pserver",
- query.getResultType());
- assertEquals(
- "result type should be",
- "complex",
- query.getParentResultType());
- //this is controversial but we're not allowing writes on this currently
- assertEquals("dependent",true, query.isDependent());
- }
-
- @Test
- public void doubleSpecificCousin() throws UnsupportedEncodingException, AAIException {
- URI uri = UriBuilder.fromPath("cloud-infrastructure/complexes/complex/key1/related-to/pservers/pserver/key2/related-to/vservers/vserver/key3").build();
-
- QueryParser query = dbEngineDepthVersion.getQueryBuilder().createQueryFromURI(uri);
- GraphTraversal<Vertex, Vertex> expected = __.<Vertex>start()
- .has("physical-location-id", "key1")
- .has("aai-node-type", "complex")
- .in("org.onap.relationships.inventory.LocatedIn").has("aai-node-type", "pserver")
- .has("hostname", "key2")
- .in("tosca.relationships.HostedOn").has("aai-node-type", "vserver")
- .has("vserver-id", "key3");
- GraphTraversal<Vertex, Vertex> expectedParent = __.<Vertex>start()
- .has("physical-location-id", "key1")
- .has("aai-node-type", "complex")
- .in("org.onap.relationships.inventory.LocatedIn").has("aai-node-type", "pserver")
- .has("hostname", "key2");
-
- assertEquals(
- "gremlin query should be " + expected.toString(),
- expected.toString(),
- query.getQueryBuilder().getQuery().toString());
- assertEquals(
- "parent",
- expectedParent.toString(),
- query.getQueryBuilder().getParentQuery().getQuery().toString());
-
- assertEquals(
- "result type should be",
- "vserver",
- query.getResultType());
- assertEquals(
- "result type should be",
- "pserver",
- query.getParentResultType());
- //this is controversial but we're not allowing writes on this currently
- assertEquals("dependent",true, query.isDependent());
- }
-
- @Test
- public void traversalEndsInRelatedTo() throws UnsupportedEncodingException, AAIException {
- URI uri = UriBuilder.fromPath("cloud-infrastructure/complexes/complex/key1/related-to").build();
-
- thrown.expect(AAIException.class);
- thrown.expectMessage(containsString(RestTokens.COUSIN.toString()));
- QueryParser query = dbEngineDepthVersion.getQueryBuilder().createQueryFromURI(uri);
-
- }
-
- @Test
- public void pluralCousinToPluralCousin() throws UnsupportedEncodingException, AAIException {
- URI uri = UriBuilder.fromPath("cloud-infrastructure/complexes/related-to/pservers").build();
-
- thrown.expect(AAIException.class);
- thrown.expectMessage(containsString("chain plurals"));
- QueryParser query = dbEngineDepthVersion.getQueryBuilder().createQueryFromURI(uri);
-
- }
+ @Test
+ public void specificCousin() throws UnsupportedEncodingException, AAIException {
+ URI uri = UriBuilder.fromPath("cloud-infrastructure/complexes/complex/key1/related-to/pservers/pserver/key2").build();
+
+ QueryParser query = dbEngineDepthVersion.getQueryBuilder().createQueryFromURI(uri);
+ GraphTraversal<Vertex, Vertex> expected = __.<Vertex>start()
+ .has("physical-location-id", "key1")
+ .has("aai-node-type", "complex")
+ .in("org.onap.relationships.inventory.LocatedIn").has("aai-node-type", "pserver")
+ .has("hostname", "key2");
+ GraphTraversal<Vertex, Vertex> expectedParent = __.<Vertex>start()
+ .has("physical-location-id", "key1")
+ .has("aai-node-type", "complex");
+
+ assertEquals(
+ "gremlin query should be " + expected.toString(),
+ expected.toString(),
+ query.getQueryBuilder().getQuery().toString());
+ assertEquals(
+ "parent",
+ expectedParent.toString(),
+ query.getQueryBuilder().getParentQuery().getQuery().toString());
+
+ assertEquals(
+ "result type should be",
+ "pserver",
+ query.getResultType());
+ assertEquals(
+ "result type should be",
+ "complex",
+ query.getParentResultType());
+ //this is controversial but we're not allowing writes on this currently
+ assertEquals("dependent",true, query.isDependent());
+ }
+
+ @Test
+ public void doubleSpecificCousin() throws UnsupportedEncodingException, AAIException {
+ URI uri = UriBuilder.fromPath("cloud-infrastructure/complexes/complex/key1/related-to/pservers/pserver/key2/related-to/vservers/vserver/key3").build();
+
+ QueryParser query = dbEngineDepthVersion.getQueryBuilder().createQueryFromURI(uri);
+ GraphTraversal<Vertex, Vertex> expected = __.<Vertex>start()
+ .has("physical-location-id", "key1")
+ .has("aai-node-type", "complex")
+ .in("org.onap.relationships.inventory.LocatedIn").has("aai-node-type", "pserver")
+ .has("hostname", "key2")
+ .in("tosca.relationships.HostedOn").has("aai-node-type", "vserver")
+ .has("vserver-id", "key3");
+ GraphTraversal<Vertex, Vertex> expectedParent = __.<Vertex>start()
+ .has("physical-location-id", "key1")
+ .has("aai-node-type", "complex")
+ .in("org.onap.relationships.inventory.LocatedIn").has("aai-node-type", "pserver")
+ .has("hostname", "key2");
+
+ assertEquals(
+ "gremlin query should be " + expected.toString(),
+ expected.toString(),
+ query.getQueryBuilder().getQuery().toString());
+ assertEquals(
+ "parent",
+ expectedParent.toString(),
+ query.getQueryBuilder().getParentQuery().getQuery().toString());
+
+ assertEquals(
+ "result type should be",
+ "vserver",
+ query.getResultType());
+ assertEquals(
+ "result type should be",
+ "pserver",
+ query.getParentResultType());
+ //this is controversial but we're not allowing writes on this currently
+ assertEquals("dependent",true, query.isDependent());
+ }
+
+ @Test
+ public void traversalEndsInRelatedTo() throws UnsupportedEncodingException, AAIException {
+ URI uri = UriBuilder.fromPath("cloud-infrastructure/complexes/complex/key1/related-to").build();
+
+ thrown.expect(AAIException.class);
+ thrown.expectMessage(containsString(RestTokens.COUSIN.toString()));
+ QueryParser query = dbEngineDepthVersion.getQueryBuilder().createQueryFromURI(uri);
+
+ }
+
+ @Test
+ public void pluralCousinToPluralCousin() throws UnsupportedEncodingException, AAIException {
+ URI uri = UriBuilder.fromPath("cloud-infrastructure/complexes/related-to/pservers").build();
+
+ thrown.expect(AAIException.class);
+ thrown.expectMessage(containsString("chain plurals"));
+ QueryParser query = dbEngineDepthVersion.getQueryBuilder().createQueryFromURI(uri);
+
+ }