AAI-1523 Batch reformat aai-core
[aai/aai-common.git] / aai-core / src / test / java / org / onap / aai / rest / PrivateEdgeIntegrationOldClientTest.java
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
21 package org.onap.aai.rest;
22
23 import static org.hamcrest.CoreMatchers.containsString;
24 import static org.hamcrest.CoreMatchers.not;
25 import static org.hamcrest.MatcherAssert.assertThat;
26 import static org.hamcrest.core.Is.is;
27 import static org.junit.Assert.assertNotNull;
28
29 import com.jayway.jsonpath.JsonPath;
30
31 import java.util.*;
32
33 import javax.ws.rs.core.Response;
34
35 import org.apache.tinkerpop.gremlin.structure.Edge;
36 import org.junit.Before;
37 import org.junit.Test;
38 import org.junit.runner.RunWith;
39 import org.junit.runners.Parameterized;
40 import org.onap.aai.AAISetup;
41 import org.onap.aai.HttpTestUtil;
42 import org.onap.aai.PayloadUtil;
43 import org.onap.aai.dbmap.AAIGraph;
44 import org.onap.aai.serialization.engines.QueryStyle;
45 import org.onap.aai.setup.SchemaVersion;
46 import org.springframework.test.annotation.DirtiesContext;
47
48 @RunWith(value = Parameterized.class)
49 @DirtiesContext(classMode = DirtiesContext.ClassMode.BEFORE_CLASS)
50 public class PrivateEdgeIntegrationOldClientTest extends AAISetup {
51
52     private HttpTestUtil httpTestUtil;
53     private Map<String, String> relationshipMap;
54
55     private String modelId;
56     private String modelVerId;
57
58     @Parameterized.Parameter(value = 0)
59     public QueryStyle queryStyle;
60
61     @Parameterized.Parameter(value = 1)
62     public SchemaVersion version;
63
64     @Parameterized.Parameters(name = "QueryStyle.{0} {1}")
65     public static Collection<Object[]> data() {
66         return Arrays.asList(new Object[][] {{QueryStyle.TRAVERSAL, new SchemaVersion("v14")},
67                 {QueryStyle.TRAVERSAL_URI, new SchemaVersion("v14")},});
68     }
69
70     @Before
71     public void setUpModelData() throws Exception {
72         httpTestUtil = new HttpTestUtil(QueryStyle.TRAVERSAL);
73         relationshipMap = new HashMap<>();
74
75         modelId = "test-model-" + UUID.randomUUID().toString();
76         modelVerId = "test-model-ver-" + UUID.randomUUID().toString();
77
78         Map<String, String> modelTemplateValues = new HashMap<>();
79         modelTemplateValues.put("model-invariant-id", modelId);
80
81         String modelPayload = PayloadUtil.getTemplatePayload("model.json", modelTemplateValues);
82
83         Response response = httpTestUtil.doPut(
84                 "/aai/" + version.toString() + "/service-design-and-creation/models/model/" + modelId, modelPayload);
85
86         assertNotNull(response);
87         assertThat("Model was not successfully created", response.getStatus(), is(201));
88
89         Map<String, String> modelVersionTemplateValues = new HashMap<>();
90         modelVersionTemplateValues.put("model-version-id", modelVerId);
91         modelVersionTemplateValues.put("model-name", "some-model");
92         modelVersionTemplateValues.put("model-version", "testValue");
93
94         String modelVersionPayload = PayloadUtil.getTemplatePayload("model-ver.json", modelVersionTemplateValues);
95
96         response = httpTestUtil.doPut("/aai/" + version.toString() + "/service-design-and-creation/models/model/"
97                 + modelId + "/model-vers/model-ver/" + modelVerId, modelVersionPayload);
98         assertNotNull(response);
99         assertThat("Model was not successfully created", response.getStatus(), is(201));
100     }
101
102     @Test
103     public void testPutGenericVnfWithModelInfoToMatchExistingModelAndCheckIfPrivateEdgeCreatedAndDoGetOnOldModelAndMakeSureNoRelationship()
104             throws Exception {
105
106         Map<String, String> genericVnfHashMap = new HashMap<>();
107         String genericVnf = "test-generic-" + UUID.randomUUID().toString();
108
109         genericVnfHashMap.put("vnf-id", genericVnf);
110         genericVnfHashMap.put("model-invariant-id", modelId);
111         genericVnfHashMap.put("model-version-id", modelVerId);
112         String genericVnfPayload = PayloadUtil.getTemplatePayload("generic-vnf.json", genericVnfHashMap);
113
114         Response response = httpTestUtil.doPut(
115                 "/aai/" + version.toString() + "/network/generic-vnfs/generic-vnf/" + genericVnf, genericVnfPayload);
116         assertNotNull("Response returned null", response);
117         assertThat("Check the generic vnf is created", response.getStatus(), is(201));
118
119         response = httpTestUtil.doGet("/aai/" + version.toString() + "/network/generic-vnfs/generic-vnf/" + genericVnf);
120         assertNotNull("Response returned null", response);
121         assertThat("Check the generic vnf is created", response.getStatus(), is(200));
122         assertThat(response.getEntity().toString(), not(containsString("relationship-list")));
123
124         List<Edge> edges =
125                 AAIGraph.getInstance().getGraph().newTransaction().traversal().E().has("private", true).toList();
126         assertNotNull("List of edges should not be null", edges);
127         assertThat(edges.size(), is(1));
128         Edge oldEdge = edges.get(0);
129         assertNotNull(oldEdge);
130
131         response = httpTestUtil.doGet("/aai/v11/network/generic-vnfs/generic-vnf/" + genericVnf);
132         assertNotNull("Response returned null", response);
133         assertThat("Check the generic vnf is created", response.getStatus(), is(200));
134         assertThat(response.getEntity().toString(), not(containsString("relationship-list")));
135
136         String resourceVersion = JsonPath.read(response.getEntity().toString(), "$.resource-version");
137         response = httpTestUtil.doDelete(
138                 "/aai/" + version.toString() + "/network/generic-vnfs/generic-vnf/" + genericVnf, resourceVersion);
139         assertNotNull("Response returned null", response);
140         assertThat("Check the generic vnf is deleted", response.getStatus(), is(204));
141
142         edges = AAIGraph.getInstance().getGraph().newTransaction().traversal().E().has("private", true).toList();
143         assertNotNull("List of edges should not be null", edges);
144         assertThat(edges.size(), is(0));
145     }
146
147 }