import org.junit.Test;
import org.onap.aai.PayloadUtil;
import org.onap.aai.dbmap.AAIGraph;
+import org.onap.aai.entities.AAIErrorResponse;
+import org.onap.aai.entities.ServiceException;
import org.onap.aai.util.AAIConfig;
import org.onap.aai.util.TraversalConstants;
import org.slf4j.Logger;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
+import com.fasterxml.jackson.databind.ObjectMapper;
import com.google.gson.JsonArray;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
public class DslConsumerTest extends AbstractSpringRestTest {
private static final Logger LOGGER = LoggerFactory.getLogger(DslConsumerTest.class);
+ private static final ObjectMapper objectMapper = new ObjectMapper();
+
@Override
public void createTestGraph() {
dslQueryMap.put("dsl-query", "pserver*('hostname','test-pserver-dsl')");
String payload = PayloadUtil.getTemplatePayload("dsl-query.json", dslQueryMap);
headers.add("X-Dsl-Version", "V1");
- httpEntity = new HttpEntity(payload, headers);
- ResponseEntity responseEntity =
+ httpEntity = new HttpEntity<String>(payload, headers);
+ ResponseEntity<String> responseEntity =
restTemplate.exchange(baseUrl + endpoint, HttpMethod.PUT, httpEntity, String.class);
- LOGGER.debug("Response for PUT request with uri {} : {}", baseUrl + endpoint,
- responseEntity.getBody());
- System.out.println(responseEntity.getBody());
+
assertNotNull("Response from /aai/v14/dsl is not null", responseEntity);
assertEquals("Expected the response to be 200", HttpStatus.OK,
responseEntity.getStatusCode());
headers.setAccept(Collections.singletonList(MediaType.APPLICATION_XML));
- httpEntity = new HttpEntity(payload, headers);
+ httpEntity = new HttpEntity<String>(payload, headers);
responseEntity =
restTemplate.exchange(baseUrl + endpoint, HttpMethod.PUT, httpEntity, String.class);
LOGGER.debug("Response for PUT request with uri {} : {}", baseUrl + endpoint,
dslQueryMap.put("dsl-query", "pserver*('hostname','test-pserver-dsl') > complex*");
String payload = PayloadUtil.getTemplatePayload("dsl-query.json", dslQueryMap);
headers.add("X-Dsl-Version", "V2");
- httpEntity = new HttpEntity(payload, headers);
- ResponseEntity responseEntity =
+ httpEntity = new HttpEntity<String>(payload, headers);
+ ResponseEntity<String> responseEntity =
restTemplate.exchange(baseUrl + endpoint, HttpMethod.PUT, httpEntity, String.class);
- LOGGER.debug("Response for PUT request with uri {} : {}", baseUrl + endpoint,
- responseEntity.getBody());
+
assertNotNull("Response from /aai/v14/dsl is not null", responseEntity);
assertEquals("Expected the response to be 200", HttpStatus.OK,
responseEntity.getStatusCode());
headers.setAccept(Collections.singletonList(MediaType.APPLICATION_XML));
- httpEntity = new HttpEntity(payload, headers);
+ httpEntity = new HttpEntity<String>(payload, headers);
responseEntity =
restTemplate.exchange(baseUrl + endpoint, HttpMethod.PUT, httpEntity, String.class);
- LOGGER.debug("Response for PUT request with uri {} : {}", baseUrl + endpoint,
- responseEntity.getBody());
+
assertNotNull("Response from /aai/v14/dsl is not null", responseEntity);
assertEquals("Expected the response to be 200", HttpStatus.OK,
responseEntity.getStatusCode());
String payload = PayloadUtil.getTemplatePayload("dsl-query.json", dslQueryMap);
System.out.println("Payload" + payload);
headers.add("X-Dsl-Version", "V2");
- httpEntity = new HttpEntity(payload, headers);
- ResponseEntity responseEntity =
+ httpEntity = new HttpEntity<String>(payload, headers);
+ ResponseEntity<String> responseEntity =
restTemplate.exchange(baseUrl + endpoint, HttpMethod.PUT, httpEntity, String.class);
- LOGGER.debug("Response for PUT request with uri {} : {}", baseUrl + endpoint,
- responseEntity.getBody());
- System.out.println(responseEntity.getBody());
+
assertNotNull("Response from /aai/v17/dsl is not null", responseEntity);
assertEquals("Expected the response to be 200", HttpStatus.OK,
responseEntity.getStatusCode());
public void testDslQueryException() throws Exception {
Map<String, String> dslQuerymap = new HashMap<>();
dslQuerymap.put("dsl-query", "xserver");
-
String payload = PayloadUtil.getTemplatePayload("dsl-query.json", dslQuerymap);
-
- ResponseEntity responseEntity = null;
-
String endpoint = "/aai/v11/dsl?format=console";
+ httpEntity = new HttpEntity<String>(payload, headers);
- httpEntity = new HttpEntity(payload, headers);
- responseEntity =
- restTemplate.exchange(baseUrl + endpoint, HttpMethod.PUT, httpEntity, String.class);
+ ResponseEntity<AAIErrorResponse> response =
+ restTemplate.exchange(baseUrl + endpoint, HttpMethod.PUT, httpEntity, AAIErrorResponse.class);
assertEquals("Expected the response to be 404", HttpStatus.BAD_REQUEST,
- responseEntity.getStatusCode());
+ response.getStatusCode());
+ assertEquals("SVC6152", response.getBody().getRequestError().getServiceException().getMessageId());
+ assertEquals("DSL Generic Error (msg=%1) (ec=%2)", response.getBody().getRequestError().getServiceException().getText());
+ assertEquals("DSL Generic Error:Error while processing the query: org.onap.aai.exceptions.AAIException: No nodes marked for output", response.getBody().getRequestError().getServiceException().getVariables().get(0));
}
@Test
public void testDslQueryOverride() throws Exception {
Map<String, String> dslQuerymap = new HashMap<>();
dslQuerymap.put("dsl-query", "pserver*");
-
String payload = PayloadUtil.getTemplatePayload("dsl-query.json", dslQuerymap);
-
- ResponseEntity responseEntity = null;
-
String endpoint = "/aai/v11/dsl?format=console";
-
headers.add("X-DslOverride", AAIConfig.get(TraversalConstants.DSL_OVERRIDE));
- httpEntity = new HttpEntity(payload, headers);
- responseEntity =
- restTemplate.exchange(baseUrl + endpoint, HttpMethod.PUT, httpEntity, String.class);
+ httpEntity = new HttpEntity<String>(payload, headers);
+
+ ResponseEntity<AAIErrorResponse> responseEntity =
+ restTemplate.exchange(baseUrl + endpoint, HttpMethod.PUT, httpEntity, AAIErrorResponse.class);
assertEquals("Expected the response to be 404", HttpStatus.BAD_REQUEST,
responseEntity.getStatusCode());
}
public void testSelectedPropertiesNotRequiredOnDSLStartNode() throws Exception {
Map<String, String> dslQuerymap = new HashMap<>();
dslQuerymap.put("dsl-query", "pserver*('equip-model','abc')");
-
String payload = PayloadUtil.getTemplatePayload("dsl-query.json", dslQuerymap);
-
String endpoint = "/aai/v11/dsl?format=console";
+ httpEntity = new HttpEntity<String>(payload, headers);
- httpEntity = new HttpEntity(payload, headers);
- ResponseEntity responseEntity =
+ ResponseEntity<String> responseEntity =
restTemplate.exchange(baseUrl + endpoint, HttpMethod.PUT, httpEntity, String.class);
assertEquals("Expected the response to be " + HttpStatus.OK, HttpStatus.OK,
public void testAPropertyIsRequiredOnDSLStartNode() throws Exception {
Map<String, String> dslQuerymap = new HashMap<>();
dslQuerymap.put("dsl-query", "pserver*");
-
String payload = PayloadUtil.getTemplatePayload("dsl-query.json", dslQuerymap);
-
String endpoint = "/aai/v11/dsl?format=console";
+ httpEntity = new HttpEntity<String>(payload, headers);
- httpEntity = new HttpEntity(payload, headers);
- ResponseEntity responseEntity =
- restTemplate.exchange(baseUrl + endpoint, HttpMethod.PUT, httpEntity, String.class);
+ ResponseEntity<AAIErrorResponse> responseEntity =
+ restTemplate.exchange(baseUrl + endpoint, HttpMethod.PUT, httpEntity, AAIErrorResponse.class);
assertEquals("Expected the response to be " + HttpStatus.BAD_REQUEST,
HttpStatus.BAD_REQUEST, responseEntity.getStatusCode());
+ ServiceException serviceException = responseEntity.getBody().getRequestError().getServiceException();
+ assertEquals("SVC6149", serviceException.getMessageId());
+ assertEquals("DSL Query/Schema Error (msg=%1) (ec=%2)", serviceException.getText());
+ assertEquals("DSL Query/Schema Error:DSL Error while processing the query :No keys sent. Valid keys for pserver are hostname,pserver-id,pserver-name2,inv-status,fqdn,prov-status,ptnii-equip-name,equip-model,equip-vendor,function,data-owner,data-source,data-source-version,role", serviceException.getVariables().get(0));
}
@Test
// Add header with V2 to use the {} feature as a part of dsl query
headers.add("X-DslApiVersion", "V2");
- httpEntity = new HttpEntity(payload, headers);
- ResponseEntity responseEntity =
+ httpEntity = new HttpEntity<String>(payload, headers);
+ ResponseEntity<String> responseEntity =
restTemplate.exchange(baseUrl + endpoint, HttpMethod.PUT, httpEntity, String.class);
String responseString = responseEntity.getBody().toString();
Map<String, String> dslQueryMap = new HashMap<>();
dslQueryMap.put("dsl-query",
"pserver{'hostname', 'ptnii-equip-name', 'in-maint'}('hostname','test-pserver-dsl')");
-
String payload = PayloadUtil.getTemplatePayload("dsl-query.json", dslQueryMap);
String endpoint = "/aai/v16/dsl?format=simple&depth=0&nodesOnly=true";
// Add header with V2 to use the {} feature as a part of dsl query
headers.add("X-DslApiVersion", "V2");
- httpEntity = new HttpEntity(payload, headers);
- ResponseEntity responseEntity =
+ httpEntity = new HttpEntity<String>(payload, headers);
+
+ ResponseEntity<String> responseEntity =
restTemplate.exchange(baseUrl + endpoint, HttpMethod.PUT, httpEntity, String.class);
String responseString = responseEntity.getBody().toString();
+
// Extract the properties array from the response and compare in assert statements
JsonObject results = JsonParser.parseString(responseString).getAsJsonObject();
JsonArray resultsArray = results.get("results").getAsJsonArray();
Map<String, String> dslQueryMap = new HashMap<>();
dslQueryMap.put("dsl-query",
"pserver{'hostname', 'ptnii-equip-name', 'in-maint'}('hostname','test-pserver-dsl')");
-
String payload = PayloadUtil.getTemplatePayload("dsl-query.json", dslQueryMap);
String endpoint = "/aai/v16/dsl?format=resource&depth=0&nodesOnly=true&as-tree=true";
// Add header with V2 to use the {} feature as a part of dsl query
headers.add("X-DslApiVersion", "V2");
- httpEntity = new HttpEntity(payload, headers);
- ResponseEntity responseEntity =
+ httpEntity = new HttpEntity<String>(payload, headers);
+ ResponseEntity<String> responseEntity =
restTemplate.exchange(baseUrl + endpoint, HttpMethod.PUT, httpEntity, String.class);
String responseString = responseEntity.getBody().toString();
Map<String, String> dslQueryMap = new HashMap<>();
dslQueryMap.put("dsl-query",
"pserver{'hostname', 'ptnii-equip-name', 'in-maint'}('hostname','test-pserver-dsl')");
-
String payload = PayloadUtil.getTemplatePayload("dsl-query.json", dslQueryMap);
String endpoint = "/aai/v16/dsl?format=resource&depth=0&nodesOnly=true";
// Add header with V2 to use the {} feature as a part of dsl query
headers.add("X-DslApiVersion", "V2");
- httpEntity = new HttpEntity(payload, headers);
- ResponseEntity responseEntity =
+ httpEntity = new HttpEntity<String>(payload, headers);
+ ResponseEntity<String> responseEntity =
restTemplate.exchange(baseUrl + endpoint, HttpMethod.PUT, httpEntity, String.class);
String responseString = responseEntity.getBody().toString();
Map<String, String> dslQueryMap = new HashMap<>();
dslQueryMap.put("dsl-query",
"pserver{'hostname', 'ptnii-equip-name', 'in-maint'}('hostname','test-pserver-dsl')");
-
String payload = PayloadUtil.getTemplatePayload("dsl-query.json", dslQueryMap);
String endpoint =
"/aai/v16/dsl?format=resource_and_url&depth=0&nodesOnly=true&as-tree=true";
// Add header with V2 to use the {} feature as a part of dsl query
headers.add("X-DslApiVersion", "V2");
- httpEntity = new HttpEntity(payload, headers);
- ResponseEntity responseEntity =
+ httpEntity = new HttpEntity<String>(payload, headers);
+ ResponseEntity<String> responseEntity =
restTemplate.exchange(baseUrl + endpoint, HttpMethod.PUT, httpEntity, String.class);
String responseString = responseEntity.getBody().toString();
Map<String, String> dslQueryMap = new HashMap<>();
dslQueryMap.put("dsl-query",
"pserver{'hostname', 'ptnii-equip-name', 'in-maint'}('hostname','test-pserver-dsl')");
-
String payload = PayloadUtil.getTemplatePayload("dsl-query.json", dslQueryMap);
String endpoint = "/aai/v16/dsl?format=resource_and_url&depth=0&nodesOnly=true";
// Add header with V2 to use the {} feature as a part of dsl query
headers.add("X-DslApiVersion", "V2");
- httpEntity = new HttpEntity(payload, headers);
- ResponseEntity responseEntity =
+ httpEntity = new HttpEntity<String>(payload, headers);
+ ResponseEntity<String> responseEntity =
restTemplate.exchange(baseUrl + endpoint, HttpMethod.PUT, httpEntity, String.class);
String responseString = responseEntity.getBody().toString();
// Add header with V2 to use the {} feature as a part of dsl query
headers.add("X-DslApiVersion", "V2");
- httpEntity = new HttpEntity(payload, headers);
- ResponseEntity responseEntity =
+ httpEntity = new HttpEntity<String>(payload, headers);
+ ResponseEntity<String> responseEntity =
restTemplate.exchange(baseUrl + endpoint, HttpMethod.PUT, httpEntity, String.class);
String responseString = responseEntity.getBody().toString();
// Extract the properties array from the response and compare in assert statements
// Add header with V2 to use the {} feature as a part of dsl query
headers.add("X-DslApiVersion", "V2");
- httpEntity = new HttpEntity(payload, headers);
- ResponseEntity responseEntity =
+ httpEntity = new HttpEntity<String>(payload, headers);
+ ResponseEntity<String> responseEntity =
restTemplate.exchange(baseUrl + endpoint, HttpMethod.PUT, httpEntity, String.class);
String responseString = responseEntity.getBody().toString();
// Extract the properties array from the response and compare in assert statements
// Add header with V2 to use the {} feature as a part of dsl query
headers.add("X-DslApiVersion", "V2");
- httpEntity = new HttpEntity(payload, headers);
- ResponseEntity responseEntity =
+ httpEntity = new HttpEntity<String>(payload, headers);
+ ResponseEntity<String> responseEntity =
restTemplate.exchange(baseUrl + endpoint, HttpMethod.PUT, httpEntity, String.class);
String responseString = responseEntity.getBody().toString();
// Extract the properties array from the response and compare in assert statements
// Add header with V2 to use the {} feature as a part of dsl query
headers.add("X-DslApiVersion", "V2");
- httpEntity = new HttpEntity(payload, headers);
- ResponseEntity responseEntity =
+ httpEntity = new HttpEntity<String>(payload, headers);
+ ResponseEntity<String> responseEntity =
restTemplate.exchange(baseUrl + endpoint, HttpMethod.PUT, httpEntity, String.class);
String responseString = responseEntity.getBody().toString();
// Extract the properties array from the response and compare in assert statements
// Add header with V2 to use the {} feature as a part of dsl query
headers.add("X-DslApiVersion", "V2");
- httpEntity = new HttpEntity(payload, headers);
- ResponseEntity responseEntity =
+ httpEntity = new HttpEntity<String>(payload, headers);
+ ResponseEntity<String> responseEntity =
restTemplate.exchange(baseUrl + endpoint, HttpMethod.PUT, httpEntity, String.class);
String responseString = responseEntity.getBody().toString();
// Extract the properties array from the response and compare in assert statements
String payload = PayloadUtil.getTemplatePayload("dsl-query.json", dslQueryMap);
String endpoint = "/aai/v16/dsl?format=simple";
- httpEntity = new HttpEntity(payload, headers);
- ResponseEntity responseEntity =
+ httpEntity = new HttpEntity<String>(payload, headers);
+ ResponseEntity<String> responseEntity =
restTemplate.exchange(baseUrl + endpoint, HttpMethod.PUT, httpEntity, String.class);
String responseString = responseEntity.getBody().toString();
Assert.assertTrue(responseString.contains(
String payload = PayloadUtil.getTemplatePayload("dsl-query.json", dslQueryMap);
String endpoint = "/aai/v16/dsl?format=resource";
- httpEntity = new HttpEntity(payload, headers);
- ResponseEntity responseEntity =
+ httpEntity = new HttpEntity<String>(payload, headers);
+ ResponseEntity<String> responseEntity =
restTemplate.exchange(baseUrl + endpoint, HttpMethod.PUT, httpEntity, String.class);
String responseString = responseEntity.getBody().toString();
String payload = PayloadUtil.getTemplatePayload("dsl-query.json", dslQueryMap);
String endpoint = "/aai/v16/dsl?format=resource";
- httpEntity = new HttpEntity(payload, headers);
- ResponseEntity responseEntity =
+ httpEntity = new HttpEntity<String>(payload, headers);
+ ResponseEntity<String> responseEntity =
restTemplate.exchange(baseUrl + endpoint, HttpMethod.PUT, httpEntity, String.class);
String responseString = responseEntity.getBody().toString();
String payload = PayloadUtil.getTemplatePayload("dsl-query.json", dslQueryMap);
String endpoint = "/aai/v16/dsl?format=resource";
- httpEntity = new HttpEntity(payload, headers);
- ResponseEntity responseEntity =
+ httpEntity = new HttpEntity<String>(payload, headers);
+ ResponseEntity<String> responseEntity =
restTemplate.exchange(baseUrl + endpoint, HttpMethod.PUT, httpEntity, String.class);
String responseString = responseEntity.getBody().toString(); // pnf should have no results
String payload = PayloadUtil.getTemplatePayload("dsl-query.json", dslQueryMap);
String endpoint = "/aai/v16/dsl?format=resource";
- httpEntity = new HttpEntity(payload, headers);
- ResponseEntity responseEntity =
+ httpEntity = new HttpEntity<String>(payload, headers);
+ ResponseEntity<String> responseEntity =
restTemplate.exchange(baseUrl + endpoint, HttpMethod.PUT, httpEntity, String.class);
String responseString = responseEntity.getBody().toString();
dslQueryMap.put("dsl-query",
"cloud-region*('cloud-owner', 'test-cloud-owner-02')>tenant*>vserver*('in-maint', 1)");
String payload = PayloadUtil.getTemplatePayload("dsl-query.json", dslQueryMap);
- httpEntity = new HttpEntity(payload, headers);
- ResponseEntity responseEntity =
+ httpEntity = new HttpEntity<String>(payload, headers);
+ ResponseEntity<String> responseEntity =
restTemplate.exchange(baseUrl + endpoint, HttpMethod.PUT, httpEntity, String.class);
String responseString = responseEntity.getBody().toString();
"cloud-region*('cloud-owner', 'test-cloud-owner-02')>tenant*>vserver*('in-maint', 'false')");
payload = PayloadUtil.getTemplatePayload("dsl-query.json", dslQueryMap);
- httpEntity = new HttpEntity(payload, headers);
+ httpEntity = new HttpEntity<String>(payload, headers);
responseEntity =
restTemplate.exchange(baseUrl + endpoint, HttpMethod.PUT, httpEntity, String.class);
responseString = responseEntity.getBody().toString();
"cloud-region*('cloud-owner', 'test-cloud-owner-02')>tenant*>vserver*('in-maint', 'bogusBoolean')>l-interface*('priority', 123)");
String payload = PayloadUtil.getTemplatePayload("dsl-query.json", dslQueryMap);
- httpEntity = new HttpEntity(payload, headers);
- ResponseEntity responseEntity =
+ httpEntity = new HttpEntity<String>(payload, headers);
+ ResponseEntity<String> responseEntity =
restTemplate.exchange(baseUrl + endpoint, HttpMethod.PUT, httpEntity, String.class);
String responseString = responseEntity.getBody().toString();
// Confirm that the l-interface was returned in the response
"cloud-region*('cloud-owner', 'test-cloud-owner-02')>tenant*>vserver*('in-maint', 0)>l-interface*('priority', 123)");
String payload = PayloadUtil.getTemplatePayload("dsl-query.json", dslQueryMap);
- httpEntity = new HttpEntity(payload, headers);
- ResponseEntity responseEntity =
+ httpEntity = new HttpEntity<String>(payload, headers);
+ ResponseEntity<String> responseEntity =
restTemplate.exchange(baseUrl + endpoint, HttpMethod.PUT, httpEntity, String.class);
String responseString = responseEntity.getBody().toString();
// Confirm that the l-interface was returned in the response
"cloud-region*('cloud-owner', 'test-cloud-owner-02')>tenant*>vserver*('in-maint', 1)>l-interface*('priority', 123)");
String payload = PayloadUtil.getTemplatePayload("dsl-query.json", dslQueryMap);
- httpEntity = new HttpEntity(payload, headers);
- ResponseEntity responseEntity =
+ httpEntity = new HttpEntity<String>(payload, headers);
+ ResponseEntity<String> responseEntity =
restTemplate.exchange(baseUrl + endpoint, HttpMethod.PUT, httpEntity, String.class);
String responseString = responseEntity.getBody().toString();
// Confirm that the l-interface was returned in the response
"cloud-region*('cloud-owner', 'test-cloud-owner-02')>tenant*>vserver*('in-maint', true)>l-interface*('priority', 123)");
String payload = PayloadUtil.getTemplatePayload("dsl-query.json", dslQueryMap);
- httpEntity = new HttpEntity(payload, headers);
- ResponseEntity responseEntity =
+ httpEntity = new HttpEntity<String>(payload, headers);
+ ResponseEntity<String> responseEntity =
restTemplate.exchange(baseUrl + endpoint, HttpMethod.PUT, httpEntity, String.class);
String responseString = responseEntity.getBody().toString();
// Confirm that the l-interface was returned in the response
"cloud-region*('cloud-owner', 'test-cloud-owner-02')>tenant*>vserver*('in-maint', 'true')>l-interface*('priority', 123)");
String payload = PayloadUtil.getTemplatePayload("dsl-query.json", dslQueryMap);
- httpEntity = new HttpEntity(payload, headers);
- ResponseEntity responseEntity =
+ httpEntity = new HttpEntity<String>(payload, headers);
+ ResponseEntity<String> responseEntity =
restTemplate.exchange(baseUrl + endpoint, HttpMethod.PUT, httpEntity, String.class);
String responseString = responseEntity.getBody().toString();
// Confirm that the l-interface was returned in the response
dslQueryMap.put("dsl-query",
"cloud-region*('cloud-owner', 'test-cloud-owner-02')>tenant*>vserver*('in-maint', false)>l-interface*('priority', '00123')");
String payload = PayloadUtil.getTemplatePayload("dsl-query.json", dslQueryMap);
- httpEntity = new HttpEntity(payload, headers);
- ResponseEntity responseEntity =
+ httpEntity = new HttpEntity<String>(payload, headers);
+ ResponseEntity<String> responseEntity =
restTemplate.exchange(baseUrl + endpoint, HttpMethod.PUT, httpEntity, String.class);
String responseString = responseEntity.getBody().toString();
"cloud-region*('cloud-owner', 'test-cloud-owner-02')>tenant*>vserver*('in-maint', 'false')>l-interface*('priority', 00123)");
payload = PayloadUtil.getTemplatePayload("dsl-query.json", dslQueryMap);
- httpEntity = new HttpEntity(payload, headers);
+ httpEntity = new HttpEntity<String>(payload, headers);
responseEntity =
restTemplate.exchange(baseUrl + endpoint, HttpMethod.PUT, httpEntity, String.class);
responseString = responseEntity.getBody().toString();
dslQueryMap.put("dsl-query",
"cloud-region*('cloud-owner', 'test-cloud-owner-02')>oam-network*('cvlan-tag', '456')");
String payload = PayloadUtil.getTemplatePayload("dsl-query.json", dslQueryMap);
- httpEntity = new HttpEntity(payload, headers);
- ResponseEntity responseEntity =
+ httpEntity = new HttpEntity<String>(payload, headers);
+ ResponseEntity<String> responseEntity =
restTemplate.exchange(baseUrl + endpoint, HttpMethod.PUT, httpEntity, String.class);
String responseString = responseEntity.getBody().toString();
"cloud-region*('cloud-owner', 'test-cloud-owner-02')>oam-network*('cvlan-tag', 456)");
payload = PayloadUtil.getTemplatePayload("dsl-query.json", dslQueryMap);
- httpEntity = new HttpEntity(payload, headers);
+ httpEntity = new HttpEntity<String>(payload, headers);
responseEntity =
restTemplate.exchange(baseUrl + endpoint, HttpMethod.PUT, httpEntity, String.class);
responseString = responseEntity.getBody().toString();
dslQueryMap.put("dsl-query",
"complex('state')>pserver*('number-of-cpus', '234', '364', 2342)");
String payload = PayloadUtil.getTemplatePayload("dsl-query.json", dslQueryMap);
- httpEntity = new HttpEntity(payload, headers);
- ResponseEntity responseEntity =
+ httpEntity = new HttpEntity<String>(payload, headers);
+ ResponseEntity<String> responseEntity =
restTemplate.exchange(baseUrl + endpoint, HttpMethod.PUT, httpEntity, String.class);
String responseString = responseEntity.getBody().toString();
"complex('state')>pserver*('number-of-cpus', '234', 364, 2342)");
payload = PayloadUtil.getTemplatePayload("dsl-query.json", dslQueryMap);
- httpEntity = new HttpEntity(payload, headers);
+ httpEntity = new HttpEntity<String>(payload, headers);
responseEntity =
restTemplate.exchange(baseUrl + endpoint, HttpMethod.PUT, httpEntity, String.class);
responseString = responseEntity.getBody().toString();
* org.onap.aai
* ================================================================================
* Copyright © 2017-2018 AT&T Intellectual Property. All rights reserved.
+ * Modifications Copyright (C) 2023 Deutsche Telekom SA.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
import com.fasterxml.jackson.core.JsonLocation;
import com.fasterxml.jackson.core.JsonParseException;
+import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.databind.JsonMappingException;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.dataformat.xml.XmlMapper;
import com.sun.istack.SAXParseException2;
import java.util.ArrayList;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
+import org.onap.aai.entities.AAIErrorResponse;
public class ExceptionHandlerTest {
protected static final MediaType APPLICATION_JSON = MediaType.valueOf("application/json");
+ private static final ObjectMapper objectMapper = new ObjectMapper();
+
@Mock
private HttpHeaders httpHeaders;
public void setup() {
MockitoAnnotations.initMocks(this);
- MultivaluedHashMap headersMultiMap = new MultivaluedHashMap<>();
+ MultivaluedHashMap<String, String> headersMultiMap = new MultivaluedHashMap<>();
headersMultiMap.add("X-FromAppId", "JUNIT");
headersMultiMap.add("X-TransactionId", UUID.randomUUID().toString());
outputMediaTypes.add(APPLICATION_JSON);
when(httpHeaders.getAcceptableMediaTypes()).thenReturn(outputMediaTypes);
when(httpHeaders.getRequestHeaders()).thenReturn(headersMultiMap);
+ when(request.getMethod()).thenReturn("PUT");
}
@Test
SAXParseException2 mockSaxParseException = mock(SAXParseException2.class);
Exception exception = new WebApplicationException(mockSaxParseException);
Response response = handler.toResponse(exception);
+ AAIErrorResponse responseEntity = objectMapper.readValue(response.getEntity().toString(), AAIErrorResponse.class);
assertNotNull(response);
assertNotNull(response.getEntity());
assertEquals(Response.Status.BAD_REQUEST.getStatusCode(), response.getStatus());
+ assertEquals("SVC3102",responseEntity.getRequestError().getServiceException().getMessageId());
+ assertEquals("Error parsing input performing %1 on %2 (msg=%3) (ec=%4)",responseEntity.getRequestError().getServiceException().getText());
+ assertEquals("UnmarshalException",responseEntity.getRequestError().getServiceException().getVariables().get(0));
+ assertEquals("null",responseEntity.getRequestError().getServiceException().getVariables().get(1));
+ assertEquals("Input parsing error:javax.ws.rs.WebApplicationException: HTTP 500 Internal Server Error",responseEntity.getRequestError().getServiceException().getVariables().get(2));
+ assertEquals("ERR.5.4.4007",responseEntity.getRequestError().getServiceException().getVariables().get(3));
}
@Test
public void testConversionWhenJsonParseExceptionResultBadRequest() throws Exception {
- JsonLocation jsonLocation = mock(JsonLocation.class);
- Exception exception = new JsonParseException("", jsonLocation);
+ JsonParser jsonParser = mock(JsonParser.class);
+ Exception exception = new JsonParseException(jsonParser, "");
Response response = handler.toResponse(exception);
+ AAIErrorResponse responseEntity = objectMapper.readValue(response.getEntity().toString(), AAIErrorResponse.class);
assertNotNull(response);
assertNotNull(response.getEntity());
assertEquals(Response.Status.BAD_REQUEST.getStatusCode(), response.getStatus());
+ assertEquals("SVC3102",responseEntity.getRequestError().getServiceException().getMessageId());
+ assertEquals("Error parsing input performing %1 on %2 (msg=%3) (ec=%4)",responseEntity.getRequestError().getServiceException().getText());
+ assertEquals("JsonParseException",responseEntity.getRequestError().getServiceException().getVariables().get(0));
+ assertEquals("null",responseEntity.getRequestError().getServiceException().getVariables().get(1));
+ assertEquals("Input parsing error:com.fasterxml.jackson.core.JsonParseException: ",responseEntity.getRequestError().getServiceException().getVariables().get(2));
+ assertEquals("ERR.5.4.4007",responseEntity.getRequestError().getServiceException().getVariables().get(3));
}
@Test
public void testConversionWhenJsonMappingExceptionResultBadRequest() throws Exception {
+ JsonParser jsonParser = mock(JsonParser.class);
+ Exception exception = JsonMappingException.from(jsonParser,"");
+ Response response = handler.toResponse(exception);
+ AAIErrorResponse responseEntity = objectMapper.readValue(response.getEntity().toString(), AAIErrorResponse.class);
- JsonLocation jsonLocation = mock(JsonLocation.class);
- Exception exception = new JsonMappingException("", jsonLocation);
+ assertNotNull(response);
+ assertNotNull(response.getEntity());
+ assertEquals(Response.Status.BAD_REQUEST.getStatusCode(), response.getStatus());
+ assertEquals("SVC3102",responseEntity.getRequestError().getServiceException().getMessageId());
+ assertEquals("Error parsing input performing %1 on %2 (msg=%3) (ec=%4)",responseEntity.getRequestError().getServiceException().getText());
+ assertEquals("JsonMappingException",responseEntity.getRequestError().getServiceException().getVariables().get(0));
+ assertEquals("null",responseEntity.getRequestError().getServiceException().getVariables().get(1));
+ assertEquals("Input parsing error:com.fasterxml.jackson.databind.JsonMappingException: ",responseEntity.getRequestError().getServiceException().getVariables().get(2));
+ assertEquals("ERR.5.4.4007",responseEntity.getRequestError().getServiceException().getVariables().get(3));
+ }
+
+ @Test
+ public void testJsonDefaultErrorResponse()
+ throws Exception {
+ Exception exception = new Exception();
Response response = handler.toResponse(exception);
+ AAIErrorResponse responseEntity = objectMapper.readValue(response.getEntity().toString(), AAIErrorResponse.class);
assertNotNull(response);
assertNotNull(response.getEntity());
assertEquals(Response.Status.BAD_REQUEST.getStatusCode(), response.getStatus());
+ assertEquals("SVC3002",responseEntity.getRequestError().getServiceException().getMessageId());
+ assertEquals("Error writing output performing %1 on %2 (msg=%3) (ec=%4)",responseEntity.getRequestError().getServiceException().getText());
+ assertEquals("PUT",responseEntity.getRequestError().getServiceException().getVariables().get(0));
+ assertEquals("unknown",responseEntity.getRequestError().getServiceException().getVariables().get(1));
+ assertEquals("Internal Error:java.lang.Exception",responseEntity.getRequestError().getServiceException().getVariables().get(2));
+ assertEquals("ERR.5.4.4000",responseEntity.getRequestError().getServiceException().getVariables().get(3));
+ }
+
+ @Test
+ public void testXmlDefaultErrorResponse()
+ throws Exception {
+ List<MediaType> outputMediaTypes = new ArrayList<>();
+ outputMediaTypes.add(MediaType.APPLICATION_XML_TYPE);
+ when(httpHeaders.getAcceptableMediaTypes()).thenReturn(outputMediaTypes);
+ Exception exception = new Exception();
+ Response response = handler.toResponse(exception);
+ XmlMapper xmlMapper = new XmlMapper();
+ AAIErrorResponse responseEntity = xmlMapper.readValue(response.getEntity().toString(), AAIErrorResponse.class);
+
+ assertNotNull(response);
+ assertNotNull(response.getEntity());
+ assertEquals(Response.Status.BAD_REQUEST.getStatusCode(), response.getStatus());
+ assertEquals("SVC3002",responseEntity.getRequestError().getServiceException().getMessageId());
+ assertEquals("Error writing output performing %1 on %2 (msg=%3) (ec=%4)",responseEntity.getRequestError().getServiceException().getText());
+ assertEquals("PUT",responseEntity.getRequestError().getServiceException().getVariables().get(0));
+ assertEquals("unknown",responseEntity.getRequestError().getServiceException().getVariables().get(1));
+ assertEquals("Internal Error:java.lang.Exception",responseEntity.getRequestError().getServiceException().getVariables().get(2));
+ assertEquals("ERR.5.4.4000",responseEntity.getRequestError().getServiceException().getVariables().get(3));
}
@Test
assertNotNull(response);
assertNotNull(response.getEntity());
assertEquals(Response.Status.BAD_REQUEST.getStatusCode(), response.getStatus());
-
}
@Test