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=========================================================
21 package org.onap.aai.rest.db;
23 import com.google.gson.JsonObject;
24 import com.google.gson.JsonParser;
25 import org.javatuples.Pair;
26 import org.junit.Before;
27 import org.junit.FixMethodOrder;
28 import org.junit.Test;
29 import org.junit.runner.RunWith;
30 import org.junit.runners.MethodSorters;
31 import org.junit.runners.Parameterized;
32 import org.mockito.Mockito;
33 import org.onap.aai.AAISetup;
34 import org.onap.aai.db.props.AAIProperties;
35 import org.onap.aai.exceptions.AAIException;
36 import org.onap.aai.introspection.Introspector;
37 import org.onap.aai.introspection.Loader;
38 import org.onap.aai.introspection.ModelType;
39 import org.onap.aai.parsers.query.QueryParser;
40 import org.onap.aai.rest.ueb.UEBNotification;
41 import org.onap.aai.restcore.HttpMethod;
42 import org.onap.aai.serialization.engines.QueryStyle;
43 import org.onap.aai.serialization.engines.TransactionalGraphEngine;
44 import org.onap.aai.util.AAIConfig;
46 import javax.ws.rs.core.*;
47 import java.io.UnsupportedEncodingException;
51 import static org.hamcrest.Matchers.containsString;
52 import static org.hamcrest.Matchers.not;
53 import static org.junit.Assert.assertEquals;
54 import static org.junit.Assert.assertThat;
55 import static org.mockito.Matchers.anyObject;
56 import static org.mockito.Mockito.doNothing;
57 import static org.mockito.Mockito.when;
59 @RunWith(value = Parameterized.class)
60 @FixMethodOrder(MethodSorters.NAME_ASCENDING)
61 public class HttpEntryTest extends AAISetup {
63 protected static final MediaType APPLICATION_JSON = MediaType.valueOf("application/json");
65 private static final Set<Integer> VALID_HTTP_STATUS_CODES = new HashSet<>();
68 VALID_HTTP_STATUS_CODES.add(200);
69 VALID_HTTP_STATUS_CODES.add(201);
70 VALID_HTTP_STATUS_CODES.add(204);
73 @Parameterized.Parameter(value = 0)
74 public QueryStyle queryStyle;
77 * TODO Change the HttpEntry instances accoringly
79 @Parameterized.Parameters(name = "QueryStyle.{0}")
80 public static Collection<Object[]> data() {
81 return Arrays.asList(new Object[][] {{QueryStyle.TRAVERSAL}, {QueryStyle.TRAVERSAL_URI}});
84 private HttpHeaders httpHeaders;
86 private UriInfo uriInfo;
88 private MultivaluedMap<String, String> headersMultiMap;
89 private MultivaluedMap<String, String> queryParameters;
91 private List<String> aaiRequestContextList;
93 private List<MediaType> outputMediaTypes;
98 httpHeaders = Mockito.mock(HttpHeaders.class);
99 uriInfo = Mockito.mock(UriInfo.class);
101 headersMultiMap = new MultivaluedHashMap<>();
102 queryParameters = Mockito.spy(new MultivaluedHashMap<>());
104 headersMultiMap.add("X-FromAppId", "JUNIT");
105 headersMultiMap.add("X-TransactionId", UUID.randomUUID().toString());
106 headersMultiMap.add("Real-Time", "true");
107 headersMultiMap.add("Accept", "application/json");
108 headersMultiMap.add("aai-request-context", "");
110 outputMediaTypes = new ArrayList<>();
111 outputMediaTypes.add(APPLICATION_JSON);
113 aaiRequestContextList = new ArrayList<>();
114 aaiRequestContextList.add("");
116 when(httpHeaders.getAcceptableMediaTypes()).thenReturn(outputMediaTypes);
117 when(httpHeaders.getRequestHeaders()).thenReturn(headersMultiMap);
119 when(httpHeaders.getRequestHeader("aai-request-context")).thenReturn(aaiRequestContextList);
121 when(uriInfo.getQueryParameters()).thenReturn(queryParameters);
122 when(uriInfo.getQueryParameters(false)).thenReturn(queryParameters);
124 // TODO - Check if this is valid since RemoveDME2QueryParameters seems to be very unreasonable
125 Mockito.doReturn(null).when(queryParameters).remove(anyObject());
127 when(httpHeaders.getMediaType()).thenReturn(APPLICATION_JSON);
130 private Response doRequest(HttpEntry httpEntry, Loader loader, TransactionalGraphEngine dbEngine, HttpMethod method,
131 String uri, String content) throws UnsupportedEncodingException, AAIException {
132 URI uriObject = UriBuilder.fromPath(uri).build();
133 QueryParser uriQuery = dbEngine.getQueryBuilder().createQueryFromURI(uriObject);
134 String objType = uriQuery.getResultType();
135 if (uri.endsWith("relationship")) {
136 objType = "relationship";
139 if (method.equals(HttpMethod.GET)) {
140 obj = loader.introspectorFromName(objType);
142 obj = loader.unmarshal(objType, content, org.onap.aai.restcore.MediaType.getEnum("application/json"));
145 DBRequest dbRequest =
146 new DBRequest.Builder(method, uriObject, uriQuery, obj, httpHeaders, uriInfo, "JUNIT-TRANSACTION")
147 .rawRequestContent(content).build();
149 List<DBRequest> dbRequestList = new ArrayList<>();
150 dbRequestList.add(dbRequest);
152 Pair<Boolean, List<Pair<URI, Response>>> responsesTuple = httpEntry.process(dbRequestList, "JUNIT");
153 return responsesTuple.getValue1().get(0).getValue1();
157 public void test1PutOnPserver() throws UnsupportedEncodingException, AAIException {
160 * TODO do the same with uri
162 traversalHttpEntry.setHttpEntryProperties(schemaVersions.getDefaultVersion());
163 Loader loader = traversalHttpEntry.getLoader();
164 TransactionalGraphEngine dbEngine = traversalHttpEntry.getDbEngine();
166 String uri = "/cloud-infrastructure/pservers/pserver/junit-test1";
167 String content = "{\"hostname\":\"junit-test1\"}";
168 Response response = doRequest(traversalHttpEntry, loader, dbEngine, HttpMethod.PUT, uri, content);
170 assertEquals("Expected the pserver to be created", 201, response.getStatus());
174 public void test2PutOnPserverNoPInterface() throws UnsupportedEncodingException, AAIException {
176 traversalHttpEntry.setHttpEntryProperties(schemaVersions.getDefaultVersion());
177 Loader loader = traversalHttpEntry.getLoader();
178 TransactionalGraphEngine dbEngine = traversalHttpEntry.getDbEngine();
180 String uri = "/cloud-infrastructure/pservers/pserver/junit-test2";
181 String content = "{\"hostname\":\"junit-test2\"}";
182 Response response = doRequest(traversalHttpEntry, loader, dbEngine, HttpMethod.PUT, uri, content);
184 assertEquals("Expected the pserver to be created", 201, response.getStatus());
188 public void test3PutOnPInterface() {
190 traversalHttpEntry.setHttpEntryProperties(schemaVersions.getDefaultVersion());
191 Loader loader = traversalHttpEntry.getLoader();
192 TransactionalGraphEngine dbEngine = traversalHttpEntry.getDbEngine();
194 String uri = "/cloud-infrastructure/pservers/pserver/junit-test1/p-interfaces/p-interface/p1";
195 String content = "{\"interface-name\":\"p1\"}";
196 Response response = doRequest(traversalHttpEntry, loader, dbEngine, HttpMethod.PUT, uri, content);
198 assertEquals("Expected the p-interface to be created", 201, response.getStatus());
199 } catch (UnsupportedEncodingException | AAIException e) {
200 // TODO Auto-generated catch block
206 public void test4GetOnPserver() throws UnsupportedEncodingException, AAIException {
208 traversalHttpEntry.setHttpEntryProperties(schemaVersions.getDefaultVersion());
210 Loader loader = traversalHttpEntry.getLoader();
211 TransactionalGraphEngine dbEngine = traversalHttpEntry.getDbEngine();
213 String uri = "/cloud-infrastructure/pservers/pserver/junit-test1";
214 String content = "{\"hostname\":\"junit-test1\", \"equip-type\":\"junit-equip-type\"}";
215 Response response = doRequest(traversalHttpEntry, loader, dbEngine, HttpMethod.GET, uri, content);
217 assertEquals("Expected the pserver to be returned", 200, response.getStatus());
221 public void test5MergePatchOnPserver() throws UnsupportedEncodingException, AAIException {
223 traversalHttpEntry.setHttpEntryProperties(schemaVersions.getDefaultVersion());
225 Loader loader = traversalHttpEntry.getLoader();
226 TransactionalGraphEngine dbEngine = traversalHttpEntry.getDbEngine();
228 String uri = "/cloud-infrastructure/pservers/pserver/junit-test1";
229 String content = "{\"hostname\":\"junit-test1\", \"equip-type\":\"junit-equip-type\"}";
230 Response response = doRequest(traversalHttpEntry, loader, dbEngine, HttpMethod.MERGE_PATCH, uri, content);
232 assertEquals("Expected the pserver to be updated", 200, response.getStatus());
235 private int doDelete(String resourceVersion, String uri, String nodeType)
236 throws UnsupportedEncodingException, AAIException {
237 queryParameters.add("resource-version", resourceVersion);
238 traversalHttpEntry.setHttpEntryProperties(schemaVersions.getDefaultVersion());
239 Loader loader = traversalHttpEntry.getLoader();
240 TransactionalGraphEngine dbEngine = traversalHttpEntry.getDbEngine();
242 URI uriObject = UriBuilder.fromPath(uri).build();
244 QueryParser uriQuery = dbEngine.getQueryBuilder().createQueryFromURI(uriObject);
248 Introspector obj = loader.introspectorFromName(nodeType);
250 DBRequest dbRequest = new DBRequest.Builder(HttpMethod.DELETE, uriObject, uriQuery, obj, httpHeaders, uriInfo,
251 "JUNIT-TRANSACTION").rawRequestContent(content).build();
253 List<DBRequest> dbRequestList = new ArrayList<>();
254 dbRequestList.add(dbRequest);
256 Pair<Boolean, List<Pair<URI, Response>>> responsesTuple = traversalHttpEntry.process(dbRequestList, "JUNIT");
257 Response response = responsesTuple.getValue1().get(0).getValue1();
259 return response.getStatus();
263 public void test6DeleteOnPserver() throws UnsupportedEncodingException, AAIException {
265 traversalHttpEntry.setHttpEntryProperties(schemaVersions.getDefaultVersion());
266 Loader loader = traversalHttpEntry.getLoader();
267 TransactionalGraphEngine dbEngine = traversalHttpEntry.getDbEngine();
269 String uri = "/cloud-infrastructure/pservers/pserver/junit-test1";
271 Response response = doRequest(traversalHttpEntry, loader, dbEngine, HttpMethod.GET, uri, content);
273 String msg = response.getEntity().toString();
274 JsonObject jsonObj = new JsonParser().parse(msg).getAsJsonObject();
275 String resourceVersion = "";
276 if (jsonObj.isJsonObject()) {
277 resourceVersion = jsonObj.get("resource-version").getAsString();
279 assertEquals("Expected the pserver to be deleted", 204,
280 doDelete(resourceVersion, "/cloud-infrastructure/pservers/pserver/junit-test1", "pserver"));
284 public void test7DeleteOnPserverNoPinterface() throws UnsupportedEncodingException, AAIException {
286 traversalHttpEntry.setHttpEntryProperties(schemaVersions.getDefaultVersion());
287 // HttpEntry httpEntry = new HttpEntry(Version.getLatest(), ModelType.MOXY, queryStyle, type);
288 Loader loader = traversalHttpEntry.getLoader();
289 TransactionalGraphEngine dbEngine = traversalHttpEntry.getDbEngine();
291 String uri = "/cloud-infrastructure/pservers/pserver/junit-test2";
293 Response response = doRequest(traversalHttpEntry, loader, dbEngine, HttpMethod.GET, uri, content);
295 String msg = response.getEntity().toString();
296 JsonObject jsonObj = new JsonParser().parse(msg).getAsJsonObject();
297 String resourceVersion = "";
298 if (jsonObj.isJsonObject()) {
299 resourceVersion = jsonObj.get("resource-version").getAsString();
301 assertEquals("Expected the pserver to be deleted", 204,
302 doDelete(resourceVersion, "/cloud-infrastructure/pservers/pserver/junit-test2", "pserver"));
306 public void test8FailedGetOnPserver() throws UnsupportedEncodingException, AAIException {
308 traversalHttpEntry.setHttpEntryProperties(schemaVersions.getDefaultVersion());
309 // HttpEntry httpEntry = new HttpEntry(Version.getLatest(), ModelType.MOXY, queryStyle, type);
310 Loader loader = traversalHttpEntry.getLoader();
311 TransactionalGraphEngine dbEngine = traversalHttpEntry.getDbEngine();
313 String uri = "/cloud-infrastructure/pservers/pserver/junit-test2";
315 Response response = doRequest(traversalHttpEntry, loader, dbEngine, HttpMethod.GET, uri, content);
318 assertEquals("Expected the pserver to be deleted", 404, response.getStatus());
322 public void putEdgeTest() throws UnsupportedEncodingException, AAIException {
324 traversalHttpEntry.setHttpEntryProperties(schemaVersions.getDefaultVersion());
325 // HttpEntry httpEntry = new HttpEntry(Version.getLatest(), ModelType.MOXY, queryStyle, type);
326 Loader loader = traversalHttpEntry.getLoader();
327 TransactionalGraphEngine dbEngine = traversalHttpEntry.getDbEngine();
330 String uri = "/cloud-infrastructure/pservers/pserver/junit-edge-test-pserver";
331 String content = "{\"hostname\":\"junit-edge-test-pserver\"}";
332 doRequest(traversalHttpEntry, loader, dbEngine, HttpMethod.PUT, uri, content);
334 uri = "/cloud-infrastructure/complexes/complex/junit-edge-test-complex";
336 "{\"physical-location-id\":\"junit-edge-test-complex\",\"physical-location-type\":\"AAIDefault\",\"street1\":\"AAIDefault\",\"city\":\"AAIDefault\",\"state\":\"NJ\",\"postal-code\":\"07748\",\"country\":\"USA\",\"region\":\"US\"}";
337 doRequest(traversalHttpEntry, loader, dbEngine, HttpMethod.PUT, uri, content);
340 uri = "/cloud-infrastructure/complexes/complex/junit-edge-test-complex/relationship-list/relationship";
341 content = "{\"related-to\":\"pserver\",\"related-link\":\"/aai/" + schemaVersions.getDefaultVersion().toString()
342 + "/cloud-infrastructure/pservers/pserver/junit-edge-test-pserver\",\"relationship-label\":\"org.onap.relationships.inventory.LocatedIn\"}";
343 Response response = doRequest(traversalHttpEntry, loader, dbEngine, HttpMethod.PUT_EDGE, uri, content);
346 assertEquals("Expected the pserver relationship to be created", 200, response.getStatus());
350 public void notificationOnRelatedToTest() throws UnsupportedEncodingException, AAIException {
352 Loader ld = loaderFactory.createLoaderForVersion(ModelType.MOXY, schemaVersions.getDefaultVersion());
353 UEBNotification uebNotification = Mockito.spy(new UEBNotification(ld, loaderFactory, schemaVersions));
354 traversalHttpEntry.setHttpEntryProperties(schemaVersions.getDefaultVersion(), uebNotification);
356 Loader loader = traversalHttpEntry.getLoader();
357 TransactionalGraphEngine dbEngine = traversalHttpEntry.getDbEngine();
359 String uri = "/cloud-infrastructure/pservers/pserver/junit-edge-test-pserver";
360 String content = "{\"hostname\":\"junit-edge-test-pserver\"}";
361 doRequest(traversalHttpEntry, loader, dbEngine, HttpMethod.PUT, uri, content);
363 uri = "/cloud-infrastructure/complexes/complex/junit-edge-test-complex";
365 "{\"physical-location-id\":\"junit-edge-test-complex\",\"physical-location-type\":\"AAIDefault\",\"street1\":\"AAIDefault\",\"city\":\"AAIDefault\",\"state\":\"NJ\",\"postal-code\":\"07748\",\"country\":\"USA\",\"region\":\"US\"}";
366 doRequest(traversalHttpEntry, loader, dbEngine, HttpMethod.PUT, uri, content);
369 uri = "/cloud-infrastructure/complexes/complex/junit-edge-test-complex/relationship-list/relationship";
370 content = "{\"related-to\":\"pserver\",\"related-link\":\"/aai/" + schemaVersions.getDefaultVersion().toString()
371 + "/cloud-infrastructure/pservers/pserver/junit-edge-test-pserver\",\"relationship-label\":\"org.onap.relationships.inventory.LocatedIn\"}";
373 doNothing().when(uebNotification).triggerEvents();
374 Response response = doRequest(traversalHttpEntry, loader, dbEngine, HttpMethod.PUT_EDGE, uri, content);
377 assertEquals("Expected the pserver relationship to be deleted", 200, response.getStatus());
378 assertEquals("Two notifications", 2, uebNotification.getEvents().size());
379 assertEquals("Notification generated for PUT edge", "UPDATE",
380 uebNotification.getEvents().get(0).getEventHeader().getValue("action").toString());
381 assertThat("Event body for the edge create has the related to",
382 uebNotification.getEvents().get(0).getObj().marshal(false),
383 containsString("cloud-infrastructure/pservers/pserver/junit-edge-test-pserver"));
385 response = doRequest(traversalHttpEntry, loader, dbEngine, HttpMethod.DELETE_EDGE, uri, content);
386 assertEquals("Expected the pserver relationship to be deleted", 204, response.getStatus());
387 assertEquals("Two notifications", 2, uebNotification.getEvents().size());
388 assertEquals("Notification generated for DELETE edge", "UPDATE",
389 uebNotification.getEvents().get(0).getEventHeader().getValue("action").toString());
390 assertThat("Event body for the edge delete does not have the related to",
391 uebNotification.getEvents().get(0).getObj().marshal(false),
392 not(containsString("cloud-infrastructure/pservers/pserver/junit-edge-test-pserver")));
398 public void putEdgeWrongLabelTest() throws UnsupportedEncodingException, AAIException {
400 traversalHttpEntry.setHttpEntryProperties(schemaVersions.getDefaultVersion());
401 // HttpEntry httpEntry = new HttpEntry(Version.getLatest(), ModelType.MOXY, queryStyle, type);
402 Loader loader = traversalHttpEntry.getLoader();
403 TransactionalGraphEngine dbEngine = traversalHttpEntry.getDbEngine();
406 String uri = "/cloud-infrastructure/pservers/pserver/junit-edge-test-pserver";
407 String content = "{\"hostname\":\"junit-edge-test-pserver\"}";
408 doRequest(traversalHttpEntry, loader, dbEngine, HttpMethod.PUT, uri, content);
410 uri = "/cloud-infrastructure/complexes/complex/junit-edge-test-complex";
412 "{\"physical-location-id\":\"junit-edge-test-complex\",\"physical-location-type\":\"AAIDefault\",\"street1\":\"AAIDefault\",\"city\":\"AAIDefault\",\"state\":\"NJ\",\"postal-code\":\"07748\",\"country\":\"USA\",\"region\":\"US\"}";
413 doRequest(traversalHttpEntry, loader, dbEngine, HttpMethod.PUT, uri, content);
416 uri = "/cloud-infrastructure/complexes/complex/junit-edge-test-complex/relationship-list/relationship";
417 content = "{\"related-to\":\"pserver\",\"related-link\":\"/aai/" + schemaVersions.getDefaultVersion().toString()
418 + "/cloud-infrastructure/pservers/pserver/junit-edge-test-pserver\",\"relationship-label\":\"junk\"}";
419 Response response = doRequest(traversalHttpEntry, loader, dbEngine, HttpMethod.PUT_EDGE, uri, content);
422 String msg = response.getEntity().toString();
423 assertEquals("Expected the pserver to be created", 400, response.getStatus());
424 assertThat(msg, containsString("ERR.5.4.6107"));
425 assertThat(msg, containsString(
426 "Required Edge-property not found in input data:org.onap.aai.edges.exceptions.EdgeRuleNotFoundException: No rule found for EdgeRuleQuery with filter params node type: complex, node type: pserver, label: junk, type: COUSIN, isPrivate: false"));
431 public void pathedFormatOnGetTest() throws UnsupportedEncodingException, AAIException {
433 final String testName = new Object() {}.getClass().getEnclosingMethod().getName();
435 traversalHttpEntry.setHttpEntryProperties(schemaVersions.getDefaultVersion());
436 // HttpEntry httpEntry = new HttpEntry(schemaVersions.getDefaultVersion(), ModelType.MOXY, QueryStyle.TRAVERSAL,
438 Loader loader = traversalHttpEntry.getLoader();
439 TransactionalGraphEngine dbEngine = traversalHttpEntry.getDbEngine();
442 String pserverKey = "pserver-" + testName;
443 String pserverUri = "/cloud-infrastructure/pservers/pserver/" + pserverKey;
444 String content = "{\"hostname\":\"" + pserverKey + "\"}";
445 doRequest(traversalHttpEntry, loader, dbEngine, HttpMethod.PUT, pserverUri, content);
448 String complexKey = "complex-" + testName;
449 String complexUri = "/cloud-infrastructure/complexes/complex/" + complexKey;
450 content = "{\"physical-location-id\":\"" + complexKey
451 + "\",\"physical-location-type\":\"AAIDefault\",\"street1\":\"AAIDefault\",\"city\":\"AAIDefault\",\"state\":\"NJ\",\"postal-code\":\"07748\",\"country\":\"USA\",\"region\":\"US\"}";
452 doRequest(traversalHttpEntry, loader, dbEngine, HttpMethod.PUT, complexUri, content);
455 String relationshipUri =
456 "/cloud-infrastructure/complexes/complex/" + complexKey + "/relationship-list/relationship";
457 content = "{\"related-to\":\"pserver\",\"related-link\":\"/aai/" + schemaVersions.getDefaultVersion().toString()
458 + "/cloud-infrastructure/pservers/pserver/" + pserverKey
459 + "\",\"relationship-label\":\"org.onap.relationships.inventory.LocatedIn\"}";
460 doRequest(traversalHttpEntry, loader, dbEngine, HttpMethod.PUT_EDGE, relationshipUri, content);
462 // Get pserver with pathed
463 queryParameters.add("format", "pathed");
465 Response response = doRequest(traversalHttpEntry, loader, dbEngine, HttpMethod.GET, pserverUri, content);
466 queryParameters.remove("format");
468 String msg = response.getEntity().toString();
469 assertEquals("Expected get to succeed", 200, response.getStatus());
470 assertThat(msg, containsString(pserverUri));
477 public void getAllPserversTest() throws UnsupportedEncodingException, AAIException {
479 final String testName = new Object() {}.getClass().getEnclosingMethod().getName();
481 traversalHttpEntry.setHttpEntryProperties(schemaVersions.getDefaultVersion());
482 Loader loader = traversalHttpEntry.getLoader();
483 TransactionalGraphEngine dbEngine = traversalHttpEntry.getDbEngine();
486 String pserver1Key = "pserver-1-" + testName;
487 String pserver1Uri = "/cloud-infrastructure/pservers/pserver/" + pserver1Key;
488 String content = "{\"hostname\":\"" + pserver1Key + "\"}";
489 doRequest(traversalHttpEntry, loader, dbEngine, HttpMethod.PUT, pserver1Uri, content);
492 String pserver2Key = "pserver-2-" + testName;
493 String pserver2Uri = "/cloud-infrastructure/pservers/pserver/" + pserver2Key;
494 content = "{\"hostname\":\"" + pserver2Key + "\"}";
495 doRequest(traversalHttpEntry, loader, dbEngine, HttpMethod.PUT, pserver2Uri, content);
497 // Get pserver with pathed
498 queryParameters.add("format", "pathed");
500 Response response = doRequest(traversalHttpEntry, loader, dbEngine, HttpMethod.GET,
501 "/cloud-infrastructure/pservers", content);
502 queryParameters.remove("format");
504 String msg = response.getEntity().toString();
505 assertEquals("Expected get to succeed", 200, response.getStatus());
506 assertThat(msg, containsString(pserver1Uri));
507 assertThat(msg, containsString(pserver2Uri));
514 public void testSetGetPaginationMethods() {
515 traversalHttpEntry.setHttpEntryProperties(schemaVersions.getDefaultVersion());
516 traversalHttpEntry.setPaginationBucket(10);
517 traversalHttpEntry.setPaginationIndex(1);
518 traversalHttpEntry.setTotalsForPaging(101, traversalHttpEntry.getPaginationBucket());
519 assertEquals("Expected the pagination bucket size to be 10", 10, traversalHttpEntry.getPaginationBucket());
520 assertEquals("Expected the total number of pagination buckets to be 11", 11,
521 traversalHttpEntry.getTotalPaginationBuckets());
522 assertEquals("Expected the pagination index to be 1", 1, traversalHttpEntry.getPaginationIndex());
523 assertEquals("Expected the total amount of vertices to be 101", 101, traversalHttpEntry.getTotalVertices());
527 public void relatedToTest() throws UnsupportedEncodingException, AAIException {
529 traversalHttpEntry.setHttpEntryProperties(schemaVersions.getDefaultVersion());
530 Loader loader = traversalHttpEntry.getLoader();
531 TransactionalGraphEngine dbEngine = traversalHttpEntry.getDbEngine();
534 String uri = "/cloud-infrastructure/pservers/pserver/junit-edge-test-pserver";
535 String content = "{\"hostname\":\"junit-edge-test-pserver\"}";
536 doRequest(traversalHttpEntry, loader, dbEngine, HttpMethod.PUT, uri, content);
538 uri = "/cloud-infrastructure/complexes/complex/junit-edge-test-complex";
540 "{\"physical-location-id\":\"junit-edge-test-complex\",\"physical-location-type\":\"AAIDefault\",\"street1\":\"AAIDefault\",\"city\":\"AAIDefault\",\"state\":\"NJ\",\"postal-code\":\"07748\",\"country\":\"USA\",\"region\":\"US\"}";
541 doRequest(traversalHttpEntry, loader, dbEngine, HttpMethod.PUT, uri, content);
544 uri = "/cloud-infrastructure/complexes/complex/junit-edge-test-complex/relationship-list/relationship";
545 content = "{\"related-to\":\"pserver\",\"related-link\":\"/aai/" + schemaVersions.getDefaultVersion().toString()
546 + "/cloud-infrastructure/pservers/pserver/junit-edge-test-pserver\",\"relationship-label\":\"org.onap.relationships.inventory.LocatedIn\"}";
547 doRequest(traversalHttpEntry, loader, dbEngine, HttpMethod.PUT_EDGE, uri, content);
550 uri = "/cloud-infrastructure/complexes/complex/junit-edge-test-complex/related-to/pservers";
552 Response response = doRequest(traversalHttpEntry, loader, dbEngine, HttpMethod.GET, uri, content);
553 String respBody = response.getEntity().toString();
556 assertEquals("Expected the pserver to be created", 200, response.getStatus());
557 assertThat("Related to pserver is returned.", respBody,
558 containsString("\"hostname\":\"junit-edge-test-pserver\""));
563 public void setDepthTest() throws AAIException {
564 System.setProperty("AJSC_HOME", ".");
565 System.setProperty("BUNDLECONFIG_DIR", "src/main/test/resources");
567 String depthParam = AAIConfig.get("aai.rest.getall.depthparam");
568 traversalHttpEntry.setHttpEntryProperties(schemaVersions.getDefaultVersion());
569 int depth = traversalHttpEntry.setDepth(null, depthParam);
570 assertEquals(AAIProperties.MAXIMUM_DEPTH.intValue(), depth);
574 public void getAbstractTest() throws UnsupportedEncodingException, AAIException {
576 traversalHttpEntry.setHttpEntryProperties(schemaVersions.getDefaultVersion());
577 Loader loader = traversalHttpEntry.getLoader();
578 TransactionalGraphEngine dbEngine = traversalHttpEntry.getDbEngine();
581 String uri = "/network/generic-vnfs/generic-vnf/junit-abstract-test-generic-vnf";
582 String content = "{\"vnf-id\":\"junit-abstract-test-generic-vnf\",\"vnf-name\":\"junit-generic-vnf-name\"}";
583 doRequest(traversalHttpEntry, loader, dbEngine, HttpMethod.PUT, uri, content);
586 uri = "/cloud-infrastructure/pservers/pserver/junit-abstract-test-pserver";
587 content = "{\"hostname\":\"junit-abstract-test-pserver\"}";
588 doRequest(traversalHttpEntry, loader, dbEngine, HttpMethod.PUT, uri, content);
591 uri = "/cloud-infrastructure/pservers/pserver/junit-abstract-test-pserver/relationship-list/relationship";
593 "{\"related-to\":\"vnf\",\"relationship-data\":[{\"relationship-key\":\"vnf.vnf-id\",\"relationship-value\":\"junit-abstract-test-generic-vnf\"}]}";
594 doRequest(traversalHttpEntry, loader, dbEngine, HttpMethod.PUT_EDGE, uri, content);
597 uri = "/network/generic-vnfs/generic-vnf/junit-abstract-test-generic-vnf/related-to/pservers";
599 Response response = doRequest(traversalHttpEntry, loader, dbEngine, HttpMethod.GET, uri, content);
600 String respBody = response.getEntity().toString();
603 assertThat("Related to pserver is returned.", respBody,
604 containsString("\"hostname\":\"junit-abstract-test-pserver\""));