a9fedcda6989af055d76bdd785f9071d61eba701
[aai/traversal.git] /
1 /**
2  * ============LICENSE_START=======================================================
3  * org.onap.aai
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
10  *
11  *    http://www.apache.org/licenses/LICENSE-2.0
12  *
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=========================================================
19  */
20 package org.onap.aai.rest.search;
21
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;
29
30 import java.util.Map;
31
32 public class GetL3networkCloudRegionByNetworkRoleQueryTest extends QueryTest {
33     public GetL3networkCloudRegionByNetworkRoleQueryTest () throws AAIException, NoEdgeRuleFoundException {
34         super();
35     }
36
37     @Test
38     public void run() {
39         super.run();
40     }
41
42     @Override
43     protected void createGraph() throws AAIException, NoEdgeRuleFoundException {
44
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");
51
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");
58
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);
64
65         rules.addEdge(g, l3Network2, genericVnf2);
66         rules.addEdge(g, genericVnf2, vserver2);
67         rules.addTreeEdge(g, vserver2, tenant2);
68         rules.addTreeEdge(g, tenant2, cloudRegion2);
69
70         expectedResult.add(l3Network1);
71         expectedResult.add(genericVnf1);
72         expectedResult.add(vserver1);
73         expectedResult.add(tenant1);
74         expectedResult.add(cloudRegion1);
75     }
76
77     @Override
78     protected String getQueryName() {
79         return "getL3networkCloudRegionByNetworkRole";
80     }
81
82     @Override
83     protected void addStartNode(GraphTraversal<Vertex, Vertex> g) {
84         g.has("aai-node-type", "l3-network").has("network-id", "networkId1").has("network-role", "networkRole1");
85     }
86
87     @Override
88     protected void addParam(Map<String, Object> params) {
89         return;
90     }
91 }