2  * ============LICENSE_START=======================================================
 
   4  * ================================================================================
 
   5  * Copyright © 2017-2018 AT&T Intellectual Property. All rights reserved.
 
   6  * ================================================================================
 
   7  * Licensed under the Apache License, Version 2.0 (the "License");
 
   8  * you may not use this file except in compliance with the License.
 
   9  * You may obtain a copy of the License at
 
  11  *    http://www.apache.org/licenses/LICENSE-2.0
 
  13  * Unless required by applicable law or agreed to in writing, software
 
  14  * distributed under the License is distributed on an "AS IS" BASIS,
 
  15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 
  16  * See the License for the specific language governing permissions and
 
  17  * limitations under the License.
 
  18  * ============LICENSE_END=========================================================
 
  20 package org.onap.aai.rest.search;
 
  22 import org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversal;
 
  23 import org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversalSource;
 
  24 import org.apache.tinkerpop.gremlin.structure.T;
 
  25 import org.apache.tinkerpop.gremlin.structure.Vertex;
 
  26 import org.junit.Test;
 
  27 import org.onap.aai.exceptions.AAIException;
 
  28 import org.onap.aai.serialization.db.exceptions.NoEdgeRuleFoundException;
 
  32 public class GetL3networkCloudRegionByNetworkRoleQueryTest extends QueryTest {
 
  33     public GetL3networkCloudRegionByNetworkRoleQueryTest () throws AAIException, NoEdgeRuleFoundException {
 
  43     protected void createGraph() throws AAIException, NoEdgeRuleFoundException {
 
  45         // Set up the test graph
 
  46         Vertex l3Network1 = graph.addVertex(T.label, "l3-network", T.id, "0", "aai-node-type", "l3-network", "network-id", "networkId1", "network-name", "networkName1", "network-role","networkRole1");
 
  47         Vertex genericVnf1 = graph.addVertex(T.label, "generic-vnf", T.id, "1", "aai-node-type", "generic-vnf", "vnf-id", "vnfId1", "vnf-name", "vnfName1", "vnf-type", "vnfType1");
 
  48         Vertex vserver1 = graph.addVertex(T.label, "vserver", T.id, "2", "aai-node-type", "vserver", "vserver-id", "vserverId1", "vserver-name", "vserverName1", "vserver-selflink", "vserverSelfLink1");
 
  49         Vertex tenant1 = graph.addVertex(T.label, "tenant", T.id, "3", "aai-node-type", "tenant", "tenant-id", "tenantId1", "tenant-name" ,"tenantName1");
 
  50         Vertex cloudRegion1 = graph.addVertex(T.label, "cloud-region", T.id, "4", "aai-node-type", "cloud-region", "cloud-owner", "cloudOwner1", "cloud-region-id", "cloudRegionId1");
 
  52         // adding extra vertices and edges which shouldn't be picked.
 
  53         Vertex l3Network2 = graph.addVertex(T.label, "l3-network", T.id, "5", "aai-node-type", "l3-network", "network-id", "networkId2", "network-name", "networkName2", "network-role","networkRole2");
 
  54         Vertex genericVnf2 = graph.addVertex(T.label, "generic-vnf", T.id, "6", "aai-node-type", "generic-vnf", "vnf-id", "vnfId2", "vnf-name", "vnfName2", "vnf-type", "vnfType2");
 
  55         Vertex vserver2 = graph.addVertex(T.label, "vserver", T.id, "7", "aai-node-type", "vserver", "vserver-id", "vserverId2", "vserver-name", "vserverName2", "vserver-selflink", "vserverSelfLink2");
 
  56         Vertex tenant2 = graph.addVertex(T.label, "tenant", T.id, "8", "aai-node-type", "tenant", "tenant-id", "tenantId2", "tenant-name" ,"tenantName2");
 
  57         Vertex cloudRegion2 = graph.addVertex(T.label, "cloud-region", T.id, "9", "aai-node-type", "cloud-region", "cloud-owner", "cloudOwner2", "cloud-region-id", "cloudRegionId2");
 
  59         GraphTraversalSource g = graph.traversal();
 
  60         rules.addEdge(g, l3Network1, genericVnf1);
 
  61         rules.addEdge(g, genericVnf1, vserver1);
 
  62         rules.addTreeEdge(g, vserver1, tenant1);
 
  63         rules.addTreeEdge(g, tenant1, cloudRegion1);
 
  65         rules.addEdge(g, l3Network2, genericVnf2);
 
  66         rules.addEdge(g, genericVnf2, vserver2);
 
  67         rules.addTreeEdge(g, vserver2, tenant2);
 
  68         rules.addTreeEdge(g, tenant2, cloudRegion2);
 
  70         expectedResult.add(l3Network1);
 
  71         expectedResult.add(genericVnf1);
 
  72         expectedResult.add(vserver1);
 
  73         expectedResult.add(tenant1);
 
  74         expectedResult.add(cloudRegion1);
 
  78     protected String getQueryName() {
 
  79         return "getL3networkCloudRegionByNetworkRole";
 
  83     protected void addStartNode(GraphTraversal<Vertex, Vertex> g) {
 
  84         g.has("aai-node-type", "l3-network").has("network-id", "networkId1").has("network-role", "networkRole1");
 
  88     protected void addParam(Map<String, Object> params) {