* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
*/
package org.onap.aai.rest;
-import com.att.eelf.configuration.EELFLogger;
-import com.att.eelf.configuration.EELFManager;
+import static org.hamcrest.CoreMatchers.containsString;
+import static org.hamcrest.MatcherAssert.assertThat;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.mockito.ArgumentMatchers.anyObject;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
+
import com.jayway.jsonpath.JsonPath;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.UUID;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.ws.rs.core.HttpHeaders;
+import javax.ws.rs.core.MediaType;
+import javax.ws.rs.core.MultivaluedHashMap;
+import javax.ws.rs.core.MultivaluedMap;
+import javax.ws.rs.core.Response;
+import javax.ws.rs.core.UriInfo;
+
+import org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversalSource;
import org.janusgraph.core.JanusGraph;
import org.janusgraph.core.JanusGraphTransaction;
-import org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversalSource;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.onap.aai.AAISetup;
import org.onap.aai.HttpTestUtil;
import org.onap.aai.PayloadUtil;
+import org.onap.aai.config.PropertyPasswordConfiguration;
import org.onap.aai.dbmap.AAIGraph;
import org.onap.aai.setup.SchemaVersion;
+import org.onap.aai.transforms.XmlFormatTransformer;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.test.context.ContextConfiguration;
-import javax.servlet.http.HttpServletRequest;
-import javax.ws.rs.core.*;
-import java.util.*;
+@ContextConfiguration(initializers = PropertyPasswordConfiguration.class)
+public class GfpVserverDataStoredQueryTest extends AAISetup {
-import static org.hamcrest.CoreMatchers.containsString;
-import static org.hamcrest.MatcherAssert.assertThat;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.mockito.Matchers.anyObject;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.when;
-
-public class GfpVserverDataStoredQueryTest extends AAISetup{
-
- private static final EELFLogger logger = EELFManager.getInstance().getLogger(GfpVserverDataStoredQueryTest.class);
+ private static final Logger logger =
+ LoggerFactory.getLogger(GfpVserverDataStoredQueryTest.class);
protected static final MediaType APPLICATION_JSON = MediaType.valueOf("application/json");
version = schemaVersions.getDefaultVersion();
- cloudRegionUri = "/aai/" + version.toString()
- + "/cloud-infrastructure/cloud-regions/"
- + "cloud-region/testOwner1/testRegion1";
+ cloudRegionUri = "/aai/" + version.toString() + "/cloud-infrastructure/cloud-regions/"
+ + "cloud-region/testOwner1/testRegion1";
httpTestUtil = new HttpTestUtil();
Map<String, String> templateValues = new HashMap<>();
templateValues.put("ipv6-address", "2001:0db8:85a3:0000:0000:8a2e:0370:7334");
templateValues.put("vlan-interface", "vlan-interface1");
- String cloudRegionPayload = PayloadUtil.
- getTemplatePayload("cloud-region-with-linterface.json", templateValues);
+ String cloudRegionPayload =
+ PayloadUtil.getTemplatePayload("cloud-region-with-linterface.json", templateValues);
Response response = httpTestUtil.doPut(cloudRegionUri, cloudRegionPayload);
logger.info("Response status received {}", response.getEntity());
assertEquals("Expecting the cloud region to be created", 201, response.getStatus());
logger.info("Successfully created the cloud region with linterface");
- queryConsumer = new QueryConsumer(traversalUriHttpEntry, schemaVersions, gremlinServerSingleton, basePath);
+ queryConsumer = new QueryConsumer(traversalUriHttpEntry, schemaVersions,
+ gremlinServerSingleton, new XmlFormatTransformer(), basePath);
- httpHeaders = mock(HttpHeaders.class);
+ httpHeaders = mock(HttpHeaders.class);
- headersMultiMap = new MultivaluedHashMap<>();
- queryParameters = Mockito.spy(new MultivaluedHashMap<>());
+ headersMultiMap = new MultivaluedHashMap<>();
+ queryParameters = Mockito.spy(new MultivaluedHashMap<>());
headersMultiMap.add("X-FromAppId", "JUNIT");
headersMultiMap.add("X-TransactionId", UUID.randomUUID().toString());
}
@Test
- public void testStoredQueryVerifyDoesNotThrowMethodTooLargeWhenLargeNumberOfStartingVertexes() throws Exception {
+ public void testStoredQueryVerifyDoesNotThrowMethodTooLargeWhenLargeNumberOfStartingVertexes()
+ throws Exception {
// Add hundred thousand vserver vertexes to properly
// test the scenario where the application was
String query = String.format("/aai/%s/query?format=resource_and_url", version.toString());
UriInfo uriInfo = Mockito.mock(UriInfo.class);
- HttpServletRequest httpServletRequest = Mockito.mock(HttpServletRequest.class);
queryParameters.add("format", "resource_and_url");
Mockito.when(uriInfo.getQueryParameters()).thenReturn(queryParameters);
when(uriInfo.getPath()).thenReturn(query);
+ HttpServletRequest mockRequest = Mockito.mock(HttpServletRequest.class);
+ when(mockRequest.getRequestURL())
+ .thenReturn(new StringBuffer("https://localhost:8446" + query));
- Response response = queryConsumer.executeQuery(
- payload,
- version.toString(),
- query,
- "resource_and_url", "" +
- "no_op",
- httpHeaders,
- uriInfo,
- httpServletRequest,
- "-1",
- "-1"
- );
+ Response response = queryConsumer.executeQuery(payload, version.toString(),
+ "resource_and_url", "" + "no_op", -1, -1, httpHeaders, mockRequest, uriInfo);
String entity = response.getEntity().toString();
- assertEquals("Expected the response to be 200 but got this returned: " + response.getEntity().toString(),
- 200, response.getStatus());
+ assertEquals("Expected the response to be 200 but got this returned: "
+ + response.getEntity().toString(), 200, response.getStatus());
List<String> urls = JsonPath.read(entity, "$.results[*].url");
assertEquals("Expected the urls to be 3", 3, urls.size());
removeVertexes();
String query = String.format("/aai/%s/query?format=resource_and_url", version.toString());
UriInfo uriInfo = Mockito.mock(UriInfo.class);
- HttpServletRequest httpServletRequest = Mockito.mock(HttpServletRequest.class);
queryParameters.add("format", "resource_and_url");
Mockito.when(uriInfo.getQueryParameters()).thenReturn(queryParameters);
when(uriInfo.getPath()).thenReturn(query);
- Response response = queryConsumer.executeQuery(
- payload,
- version.toString(),
- query,
- "resource_and_url", "" +
- "no_op",
- httpHeaders,
- uriInfo,
- httpServletRequest,
- "-1",
- "-1"
- );
+ HttpServletRequest mockRequest = Mockito.mock(HttpServletRequest.class);
+ when(mockRequest.getRequestURL())
+ .thenReturn(new StringBuffer("https://localhost:8446" + query));
+
+ Response response = queryConsumer.executeQuery(payload, version.toString(),
+ "resource_and_url", "" + "no_op", -1, -1, httpHeaders, mockRequest, uriInfo);
String entity = response.getEntity().toString();
- assertEquals("Expected the response to be 400 but got this returned: " + entity,
- 400, response.getStatus());
+ assertEquals("Expected the response to be 400 but got this returned: " + entity, 400,
+ response.getStatus());
assertThat("Expecting error message since query doesn't exist", entity,
- containsString("Query payload is invalid"));
+ containsString("Query payload is invalid"));
}
@Test
- public void testStoredQueryWhenStartFilterReturnsZeroVertexesItShouldHandleProperly() throws Exception {
+ public void testStoredQueryWhenStartFilterReturnsZeroVertexesItShouldHandleProperly()
+ throws Exception {
Map<String, String> templateValues = new HashMap<>();
String query = String.format("/aai/%s/query?format=resource_and_url", version.toString());
UriInfo uriInfo = Mockito.mock(UriInfo.class);
- HttpServletRequest httpServletRequest = Mockito.mock(HttpServletRequest.class);
queryParameters.add("format", "resource_and_url");
Mockito.when(uriInfo.getQueryParameters()).thenReturn(queryParameters);
when(uriInfo.getPath()).thenReturn(query);
+ HttpServletRequest mockRequest = Mockito.mock(HttpServletRequest.class);
+ when(mockRequest.getRequestURL())
+ .thenReturn(new StringBuffer("https://localhost:8446" + query));
- Response response = queryConsumer.executeQuery(
- payload,
- version.toString(),
- query,
- "resource_and_url", "" +
- "no_op",
- httpHeaders,
- uriInfo,
- httpServletRequest,
- "-1",
- "-1"
- );
+ Response response = queryConsumer.executeQuery(payload, version.toString(),
+ "resource_and_url", "" + "no_op", -1, -1, httpHeaders, mockRequest, uriInfo);
String entity = response.getEntity().toString();
- assertEquals("Expected the response to be 404 but got this returned: " + entity,
- 404, response.getStatus());
+ assertEquals("Expected the response to be 404 but got this returned: " + entity, 404,
+ response.getStatus());
- assertThat(entity, containsString("Start URI returned no vertexes, please check the start URI"));
+ assertThat(entity,
+ containsString("Start URI returned no vertexes, please check the start URI"));
}
@After
- public void tearDown(){
+ public void tearDown() {
removeVertexes();
}
- private void removeVertexes(){
+ private void removeVertexes() {
JanusGraph JanusGraph = AAIGraph.getInstance().getGraph();
JanusGraphTransaction transaction = JanusGraph.newTransaction();
try {
GraphTraversalSource g = transaction.traversal();
g.V().has("source-of-truth", "JUNIT").toList().stream()
- .forEach((vertex) -> vertex.remove());
- } catch(Exception ex){
+ .forEach((vertex) -> vertex.remove());
+ } catch (Exception ex) {
success = false;
logger.error("Unable to remove all of the junit vservers due to {}", ex);
} finally {
- if(success){
+ if (success) {
transaction.commit();
} else {
transaction.rollback();
}
- private void addVservers(int vserversCount){
+ private void addVservers(int vserversCount) {
JanusGraph JanusGraph = AAIGraph.getInstance().getGraph();
JanusGraphTransaction transaction = JanusGraph.newTransaction();
try {
GraphTraversalSource g = transaction.traversal();
- for(int index = 0; index < vserversCount; index++){
+ for (int index = 0; index < vserversCount; index++) {
String randomVserverId = UUID.randomUUID().toString();
g.addV().property("aai-node-type", "vserver")
- .property( "vserver-id", "random-" + randomVserverId)
- .property( "vserver-name", "junit-vservers")
- .property( "source-of-truth", "JUNIT")
- .next();
+ .property("vserver-id", "random-" + randomVserverId)
+ .property("vserver-name", "junit-vservers").property("source-of-truth", "JUNIT")
+ .next();
}
- } catch(Exception ex){
+ } catch (Exception ex) {
success = false;
logger.error("Unable to add all of the vservers due to {}", ex);
} finally {
- if(success){
+ if (success) {
transaction.commit();
} else {
transaction.rollback();