Accept header not honored when building exception 15/67015/1
authorBenjamin, Max (mb388a) <mb388a@us.att.com>
Mon, 17 Sep 2018 13:47:02 +0000 (09:47 -0400)
committerBenjamin, Max (mb388a) <mb388a@us.att.com>
Mon, 17 Sep 2018 13:47:14 +0000 (09:47 -0400)
added accept headers to http entity request
mappers were looking at "Content-Type" and not "Accept"
modified test to no longer share global headers
added additional tests and corrected comparison errors
Fixing issue with comparing media types, the equals method in
MediaType.class uses parameters as well to compare, added a method to
just compare the type and subtype and get done with it
Fixing test failures, getMEdiaType would come as null in most cases,
this causes the defautl serialization mode to be picked which is xml.
tests now pass with exception providers in place
exception providers now handle JSON and XML
Dumy push to re-trigger the build which failed at sonar evaluation
Trying to fix the build by removing different spy's
Returning XML instead of JSON in cases of error for
endpoints. Removed exceptions and its generic handler which is a good
thought, however given that the exceptionhandlers are generic it gets
tough to return to handle exceptions which require different namesaces
in response amongst other problems.

Change-Id: I684fe3b0047693093a99aa999faf261d7713f404
Issue-ID: SO-1058
Signed-off-by: Benjamin, Max (mb388a) <mb388a@us.att.com>
mso-api-handlers/mso-api-handler-common/src/main/java/org/onap/so/apihandlerinfra/exceptions/ApiExceptionMapper.java
mso-api-handlers/mso-api-handler-common/src/test/java/org/onap/so/apihandlerinfra/ApiExceptionMapperTest.java [deleted file]
mso-api-handlers/mso-api-handler-common/src/test/java/org/onap/so/apihandlerinfra/exceptions/ApiExceptionMapperTest.java [moved from mso-api-handlers/mso-api-handler-infra/src/test/java/org/onap/so/apihandlerinfra/ApiExceptionMapperTest.java with 61% similarity]
mso-api-handlers/mso-api-handler-infra/src/test/java/org/onap/so/apihandlerinfra/BaseTest.java
mso-api-handlers/mso-api-handler-infra/src/test/java/org/onap/so/apihandlerinfra/E2EServiceInstancesTest.java
mso-api-handlers/mso-api-handler-infra/src/test/java/org/onap/so/apihandlerinfra/HealthCheckHandlerTest.java
mso-api-handlers/mso-api-handler-infra/src/test/java/org/onap/so/apihandlerinfra/ManualTasksTest.java
mso-api-handlers/mso-api-handler-infra/src/test/java/org/onap/so/apihandlerinfra/OrchestrationRequestsTest.java
mso-api-handlers/mso-api-handler-infra/src/test/java/org/onap/so/apihandlerinfra/ServiceInstancesTest.java
mso-api-handlers/mso-api-handler-infra/src/test/java/org/onap/so/apihandlerinfra/TasksHandlerTest.java

index 0e581cb..7c49eea 100644 (file)
 
 package org.onap.so.apihandlerinfra.exceptions;
 
+import java.io.StringWriter;
+import java.util.ArrayList;
 import java.util.List;
+import java.util.Optional;
+import java.util.stream.Collectors;
 
+import javax.ws.rs.core.Context;
+import javax.ws.rs.core.HttpHeaders;
+import javax.ws.rs.core.MediaType;
 import javax.ws.rs.core.Response;
 import javax.ws.rs.ext.ExceptionMapper;
 import javax.ws.rs.ext.Provider;
+import javax.xml.bind.JAXBContext;
+import javax.xml.bind.JAXBException;
+import javax.xml.bind.Marshaller;
 
 import org.onap.so.apihandlerinfra.logging.AlarmLoggerInfo;
 import org.onap.so.apihandlerinfra.logging.ErrorLoggerInfo;
@@ -34,7 +44,6 @@ import org.onap.so.logger.MsoLogger;
 import org.onap.so.serviceinstancebeans.RequestError;
 import org.onap.so.serviceinstancebeans.ServiceException;
 
-
 import com.fasterxml.jackson.annotation.JsonInclude;
 import com.fasterxml.jackson.core.JsonProcessingException;
 import com.fasterxml.jackson.databind.ObjectMapper;
@@ -45,6 +54,22 @@ public class ApiExceptionMapper implements ExceptionMapper<ApiException> {
 
     private static MsoLogger logger = MsoLogger.getMsoLogger(MsoLogger.Catalog.RA, ApiExceptionMapper.class);
     private static MsoAlarmLogger alarmLogger = new MsoAlarmLogger();
+    
+    private final JAXBContext context;
+    private final Marshaller marshaller;
+
+    @Context
+    private HttpHeaders headers;
+
+    public ApiExceptionMapper() {
+       try {
+                       context = JAXBContext.newInstance(RequestError.class);
+               marshaller = context.createMarshaller();
+               } catch (JAXBException e) {
+                       logger.debug("could not create JAXB marshaller");
+                       throw new IllegalStateException(e);
+               }
+    }
     @Override
     public Response toResponse(ApiException exception) {
 
@@ -64,12 +89,23 @@ public class ApiExceptionMapper implements ExceptionMapper<ApiException> {
         }
 
         writeErrorLog(exception, errorText, errorLoggerInfo, alarmLoggerInfo);
+        
+        List<MediaType> typeList = Optional.ofNullable(headers.getAcceptableMediaTypes()).orElse(new ArrayList<>());
+        List<String> typeListString = typeList.stream().map(item -> item.toString()).collect(Collectors.toList());
+        MediaType type;
+        if (typeListString.stream().anyMatch(item -> item.contains(MediaType.APPLICATION_XML))) {
+               type = MediaType.APPLICATION_XML_TYPE;
+        } else if (typeListString.stream().anyMatch(item -> typeListString.contains(MediaType.APPLICATION_JSON))) {
+               type = MediaType.APPLICATION_JSON_TYPE;
+        } else {
+               type = MediaType.APPLICATION_JSON_TYPE;
+        }
 
-        return buildServiceErrorResponse(errorText,messageId,variables);
+        return buildServiceErrorResponse(errorText,messageId,variables, type);
 
     }
 
-    protected String buildServiceErrorResponse(String errorText, String messageId, List<String> variables){
+    protected String buildServiceErrorResponse(String errorText, String messageId, List<String> variables, MediaType type){
         RequestError re = new RequestError();
         ServiceException se = new ServiceException();
         se.setMessageId(messageId);
@@ -83,11 +119,18 @@ public class ApiExceptionMapper implements ExceptionMapper<ApiException> {
         String requestErrorStr;
 
         ObjectMapper mapper = createObjectMapper();
+       
         mapper.configure(SerializationFeature.WRAP_ROOT_VALUE, true);
         mapper.setSerializationInclusion(JsonInclude.Include.NON_DEFAULT);
         try {
-            requestErrorStr = mapper.writeValueAsString(re);
-        } catch (JsonProcessingException e) {
+               if (MediaType.APPLICATION_JSON_TYPE.equals(type)) {
+                       requestErrorStr = mapper.writeValueAsString(re);
+            } else {
+               StringWriter sw = new StringWriter();
+               this.getMarshaller().marshal(re, sw);
+               requestErrorStr = sw.toString();
+            }
+        } catch (JsonProcessingException | JAXBException e) {
             String errorMsg = "Exception in buildServiceErrorResponse writing exceptionType to string " + e.getMessage();
             logger.error(MessageEnum.GENERAL_EXCEPTION, "BuildServiceErrorResponse", "", "", MsoLogger.ErrorCode.DataError, errorMsg, e);
             return errorMsg;
@@ -109,4 +152,9 @@ public class ApiExceptionMapper implements ExceptionMapper<ApiException> {
     public ObjectMapper createObjectMapper(){
         return new ObjectMapper();
     }
+    
+    public Marshaller getMarshaller() {
+       return marshaller;
+    }
+    
 }
diff --git a/mso-api-handlers/mso-api-handler-common/src/test/java/org/onap/so/apihandlerinfra/ApiExceptionMapperTest.java b/mso-api-handlers/mso-api-handler-common/src/test/java/org/onap/so/apihandlerinfra/ApiExceptionMapperTest.java
deleted file mode 100644 (file)
index b98c474..0000000
+++ /dev/null
@@ -1,97 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP - SO
- * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * 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
- * 
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END=========================================================
- */
-
-package org.onap.so.apihandlerinfra;
-
-
-import com.fasterxml.jackson.core.JsonProcessingException;
-import com.fasterxml.jackson.databind.ObjectMapper;
-
-import org.junit.Test;
-import org.mockito.Mockito;
-import org.onap.so.apihandler.common.ErrorNumbers;
-import org.onap.so.apihandlerinfra.exceptions.*;
-
-import org.apache.http.HttpStatus;
-import javax.ws.rs.core.Response;
-
-
-import java.io.IOException;
-
-import static org.hamcrest.MatcherAssert.assertThat;
-import static org.junit.Assert.assertEquals;
-import static org.mockito.Matchers.anyObject;
-import static org.hamcrest.core.StringStartsWith.startsWith;
-
-public class ApiExceptionMapperTest {
-
-    ApiExceptionMapper mapper = new ApiExceptionMapper();
-
-
-    @Test
-    public void testObjectMapperError() throws JsonProcessingException {
-        ObjectMapper mockedMapper = Mockito.mock(ObjectMapper.class);
-        Mockito.when(mockedMapper.writeValueAsString(anyObject())).thenThrow(JsonProcessingException.class);
-        ValidateException validateException = new ValidateException.Builder("Test", 0 , null).build();
-        ApiExceptionMapper mockedException = Mockito.spy(new ApiExceptionMapper());
-        Mockito.doReturn(mockedMapper).when(mockedException).createObjectMapper();
-        Response resp = mockedException.toResponse((ApiException) validateException);
-
-       /// assertEquals(resp.getStatus(), HttpStatus.SC_BAD_REQUEST);
-        assertThat(resp.getEntity().toString(),startsWith("Exception in buildServiceErrorResponse writing exceptionType to string"));
-    }
-
-    @Test
-    public void testValidateResponse(){
-        ValidateException validateException = new ValidateException.Builder("Test Message", HttpStatus.SC_BAD_REQUEST, ErrorNumbers.SVC_BAD_PARAMETER).build();
-        Response resp = mapper.toResponse((ApiException) validateException);
-
-        assertEquals(resp.getStatus(), HttpStatus.SC_BAD_REQUEST);
-    }
-
-    @Test
-    public void testBPMNFailureResponse(){
-        BPMNFailureException bpmnException = new BPMNFailureException.Builder("Test Message", HttpStatus.SC_NOT_FOUND, ErrorNumbers.SVC_BAD_PARAMETER).build();
-        Response resp = mapper.toResponse((ApiException) bpmnException);
-
-        assertEquals(resp.getStatus(), HttpStatus.SC_NOT_FOUND);
-    }
-    @Test
-    public void testClientConnectionResponse(){
-        ClientConnectionException clientConnectionException = new ClientConnectionException.Builder("test", HttpStatus.SC_INTERNAL_SERVER_ERROR,ErrorNumbers.SVC_BAD_PARAMETER).build();
-        Response resp =  mapper.toResponse((ApiException) clientConnectionException);
-
-        assertEquals(resp.getStatus(), HttpStatus.SC_INTERNAL_SERVER_ERROR);
-    }
-    @Test
-    public void testVFModuleResponse() {
-        VfModuleNotFoundException vfModuleException = new VfModuleNotFoundException.Builder("Test Message", HttpStatus.SC_CONFLICT,ErrorNumbers.SVC_BAD_PARAMETER).build();
-        Response resp =  mapper.toResponse((ApiException) vfModuleException);
-
-        assertEquals(resp.getStatus(), HttpStatus.SC_CONFLICT);
-    }
-    @Test
-    public void testDuplicateRequestResponse() throws IOException {
-        DuplicateRequestException duplicateRequestException = new DuplicateRequestException.Builder("Test1", "Test2","Test3","Test4", HttpStatus.SC_BAD_GATEWAY,ErrorNumbers.SVC_BAD_PARAMETER).build();
-        Response resp =  mapper.toResponse((ApiException) duplicateRequestException);
-
-        assertEquals(resp.getStatus(), HttpStatus.SC_BAD_GATEWAY);
-    }
-}
  * ============LICENSE_END=========================================================
  */
 
-package org.onap.so.apihandlerinfra;
+package org.onap.so.apihandlerinfra.exceptions;
 
 
+import static org.hamcrest.CoreMatchers.equalTo;
 import static org.hamcrest.MatcherAssert.assertThat;
 import static org.hamcrest.core.StringStartsWith.startsWith;
 import static org.junit.Assert.assertEquals;
+import static org.mockito.Matchers.any;
 import static org.mockito.Matchers.anyObject;
+import static org.mockito.Matchers.eq;
+import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.times;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
 
 import java.io.IOException;
+import java.io.Writer;
+import java.util.Arrays;
+import java.util.List;
 
+import javax.ws.rs.core.HttpHeaders;
+import javax.ws.rs.core.MediaType;
 import javax.ws.rs.core.Response;
+import javax.xml.bind.JAXBException;
+import javax.xml.bind.Marshaller;
 
 import org.apache.http.HttpStatus;
+import org.junit.Before;
 import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.InjectMocks;
+import org.mockito.Mock;
 import org.mockito.Mockito;
+import org.mockito.runners.MockitoJUnitRunner;
 import org.onap.so.apihandler.common.ErrorNumbers;
 import org.onap.so.apihandlerinfra.exceptions.ApiException;
 import org.onap.so.apihandlerinfra.exceptions.ApiExceptionMapper;
@@ -45,17 +64,29 @@ import org.onap.so.apihandlerinfra.exceptions.VfModuleNotFoundException;
 import com.fasterxml.jackson.core.JsonProcessingException;
 import com.fasterxml.jackson.databind.ObjectMapper;
 
-public class ApiExceptionMapperTest extends BaseTest {
 
+@RunWith(MockitoJUnitRunner.class)
+public class ApiExceptionMapperTest {
+
+       @Mock
+       private HttpHeaders headers;
+       @Mock
+       private Marshaller marshaller;
+       
+       @InjectMocks
     ApiExceptionMapper mapper = new ApiExceptionMapper();
 
 
+       @Before
+       public void setUp() {
+               when(headers.getAcceptableMediaTypes()).thenReturn(Arrays.asList(MediaType.APPLICATION_JSON_TYPE));
+       }
     @Test
     public void testObjectMapperError() throws JsonProcessingException {
         ObjectMapper mockedMapper = Mockito.mock(ObjectMapper.class);
         Mockito.when(mockedMapper.writeValueAsString(anyObject())).thenThrow(JsonProcessingException.class);
         ValidateException validateException = new ValidateException.Builder("Test", 0 , null).build();
-        ApiExceptionMapper mockedException = Mockito.spy(new ApiExceptionMapper());
+        ApiExceptionMapper mockedException = Mockito.spy(mapper);
         Mockito.doReturn(mockedMapper).when(mockedException).createObjectMapper();
         Response resp = mockedException.toResponse((ApiException) validateException);
 
@@ -99,4 +130,31 @@ public class ApiExceptionMapperTest extends BaseTest {
 
         assertEquals(resp.getStatus(), HttpStatus.SC_BAD_GATEWAY);
     }
+    
+    @Test
+    public void verifyXMLPath() throws JAXBException {
+               when(headers.getAcceptableMediaTypes()).thenReturn(Arrays.asList(MediaType.APPLICATION_XML_TYPE));
+        BPMNFailureException bpmnException = new BPMNFailureException.Builder("Test Message", HttpStatus.SC_NOT_FOUND, ErrorNumbers.SVC_BAD_PARAMETER).build();
+        ApiExceptionMapper mapperSpy = Mockito.spy(mapper);
+        doReturn(marshaller).when(mapperSpy).getMarshaller();
+        Response resp =  mapperSpy.toResponse((ApiException) bpmnException);
+        verify(marshaller, times(1)).marshal(any(Object.class), any(Writer.class));
+    }
+    
+    @Test
+    public void verifyMediaType() {
+       ApiExceptionMapper mapperSpy = Mockito.spy(mapper);
+        BPMNFailureException bpmnException = new BPMNFailureException.Builder("Test Message", HttpStatus.SC_NOT_FOUND, ErrorNumbers.SVC_BAD_PARAMETER).build();
+               when(headers.getAcceptableMediaTypes()).thenReturn(Arrays.asList(MediaType.APPLICATION_XML_TYPE.withCharset("UTF-8")));
+       mapperSpy.toResponse(bpmnException);
+       verify(mapperSpy, times(1)).buildServiceErrorResponse(any(String.class), any(String.class), any(List.class), eq(MediaType.APPLICATION_XML_TYPE));
+               when(headers.getAcceptableMediaTypes()).thenReturn(Arrays.asList(MediaType.APPLICATION_JSON_TYPE.withCharset("UTF-8")));
+       mapperSpy = Mockito.spy(mapper);
+       mapperSpy.toResponse(bpmnException);
+       verify(mapperSpy, times(1)).buildServiceErrorResponse(any(String.class), any(String.class), any(List.class), eq(MediaType.APPLICATION_JSON_TYPE));
+               when(headers.getAcceptableMediaTypes()).thenReturn(null);
+       mapperSpy = Mockito.spy(mapper);
+       mapperSpy.toResponse(bpmnException);
+       verify(mapperSpy, times(1)).buildServiceErrorResponse(any(String.class), any(String.class), any(List.class), eq(MediaType.APPLICATION_JSON_TYPE));
+    }
 }
index 52ed34a..4072613 100644 (file)
@@ -59,8 +59,6 @@ public abstract class BaseTest {
        protected MsoLogger logger = MsoLogger.getMsoLogger(Catalog.GENERAL, BaseTest.class);
        protected TestRestTemplate restTemplate = new TestRestTemplate("test", "test");
 
-       protected HttpHeaders headers = new HttpHeaders();      
-
        @Autowired
        protected Environment env;
 
index f634057..66e29a8 100644 (file)
 
 package org.onap.so.apihandlerinfra;
 
-import static com.github.tomakehurst.wiremock.client.WireMock.*;
+import static com.github.tomakehurst.wiremock.client.WireMock.aResponse;
+import static com.github.tomakehurst.wiremock.client.WireMock.equalToJson;
+import static com.github.tomakehurst.wiremock.client.WireMock.get;
+import static com.github.tomakehurst.wiremock.client.WireMock.post;
+import static com.github.tomakehurst.wiremock.client.WireMock.stubFor;
+import static com.github.tomakehurst.wiremock.client.WireMock.urlPathEqualTo;
 import static com.shazam.shazamcrest.matcher.Matchers.sameBeanAs;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertThat;
@@ -30,11 +35,9 @@ import java.io.IOException;
 import java.nio.file.Files;
 import java.nio.file.Paths;
 
-import javax.ws.rs.core.HttpHeaders;
 import javax.ws.rs.core.MediaType;
 import javax.ws.rs.core.Response;
 
-import com.fasterxml.jackson.core.JsonProcessingException;
 import org.apache.http.HttpStatus;
 import org.junit.Before;
 import org.junit.Test;
@@ -44,10 +47,12 @@ import org.onap.so.db.request.beans.OperationStatus;
 import org.onap.so.serviceinstancebeans.RequestError;
 import org.onap.so.serviceinstancebeans.ServiceException;
 import org.springframework.http.HttpEntity;
+import org.springframework.http.HttpHeaders;
 import org.springframework.http.HttpMethod;
 import org.springframework.http.ResponseEntity;
 import org.springframework.web.util.UriComponentsBuilder;
 
+import com.fasterxml.jackson.core.JsonProcessingException;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import com.github.tomakehurst.wiremock.http.Fault;
 
@@ -87,7 +92,8 @@ private final ObjectMapper mapper = new ObjectMapper();
                JsonInput = "src/test/resources/E2EServiceInstancesTest" + JsonInput;
                return new String(Files.readAllBytes(Paths.get(JsonInput)));
        }
-       public ResponseEntity<String> sendRequest(String requestJson, String uriPath, HttpMethod reqMethod){             
+       public ResponseEntity<String> sendRequest(String requestJson, String uriPath, HttpMethod reqMethod){
+               HttpHeaders headers = new HttpHeaders();
                headers.set("Accept", MediaType.APPLICATION_JSON);
                headers.set("Content-Type",MediaType.APPLICATION_JSON);
                
index e16f265..8b4d353 100644 (file)
@@ -39,7 +39,7 @@ public class HealthCheckHandlerTest extends BaseTest{
                
        @Test
        public void testHealthcheckGet() throws JSONException {
-
+               HttpHeaders headers = new HttpHeaders();
                HttpEntity<String> entity = new HttpEntity<String>(null, headers);
 
                ResponseEntity<String> response = restTemplate.exchange(
index 76d4b48..eec68d8 100644 (file)
@@ -32,12 +32,10 @@ import static org.junit.Assert.assertThat;
 import java.io.IOException;
 import java.util.Map;
 
-import javax.ws.rs.core.HttpHeaders;
 import javax.ws.rs.core.MediaType;
 import javax.ws.rs.core.Response;
 
 import org.apache.http.HttpStatus;
-import org.apache.log4j.MDC;
 import org.junit.Test;
 import org.onap.logging.ref.slf4j.ONAPLogConstants;
 import org.onap.so.apihandlerinfra.tasksbeans.RequestDetails;
@@ -47,6 +45,7 @@ import org.onap.so.apihandlerinfra.tasksbeans.TasksRequest;
 import org.onap.so.apihandlerinfra.tasksbeans.ValidResponses;
 import org.onap.so.logger.MsoLogger;
 import org.springframework.http.HttpEntity;
+import org.springframework.http.HttpHeaders;
 import org.springframework.http.HttpMethod;
 import org.springframework.http.ResponseEntity;
 import org.springframework.web.util.UriComponentsBuilder;
@@ -82,7 +81,7 @@ public class ManualTasksTest extends BaseTest{
         //expected response
         TaskRequestReference expectedResponse = new TaskRequestReference();
         expectedResponse.setTaskId(taskId);    
-
+        HttpHeaders headers = new HttpHeaders();
         headers.set("Accept", MediaType.APPLICATION_JSON);
         headers.set("Content-Type", MediaType.APPLICATION_JSON);
         headers.set(MsoLogger.ECOMP_REQUEST_ID, "987654321");
index 0af9826..ea2261a 100644 (file)
@@ -41,7 +41,6 @@ import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
-import javax.ws.rs.core.HttpHeaders;
 import javax.ws.rs.core.MediaType;
 import javax.ws.rs.core.Response;
 
@@ -60,6 +59,7 @@ import org.onap.so.serviceinstancebeans.RequestProcessingData;
 import org.onap.so.serviceinstancebeans.ServiceException;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpEntity;
+import org.springframework.http.HttpHeaders;
 import org.springframework.http.HttpMethod;
 import org.springframework.http.ResponseEntity;
 import org.springframework.web.util.UriComponentsBuilder;
@@ -105,7 +105,7 @@ public class OrchestrationRequestsTest extends BaseTest {
         Request request = ORCHESTRATION_LIST.getRequestList().get(1).getRequest();
         testResponse.setRequest(request);
         String testRequestId = request.getRequestId();
-
+        HttpHeaders headers = new HttpHeaders();
         headers.set("Accept", MediaType.APPLICATION_JSON);
         headers.set("Content-Type", MediaType.APPLICATION_JSON);
         HttpEntity<Request> entity = new HttpEntity<Request>(null, headers);
@@ -136,6 +136,7 @@ public class OrchestrationRequestsTest extends BaseTest {
         testResponse.setRequest(request);
         String testRequestId = request.getRequestId();
 
+        HttpHeaders headers = new HttpHeaders();
         headers.set("Accept", MediaType.APPLICATION_JSON);
         headers.set("Content-Type", MediaType.APPLICATION_JSON);
         HttpEntity<Request> entity = new HttpEntity<Request>(null, headers);
@@ -158,9 +159,10 @@ public class OrchestrationRequestsTest extends BaseTest {
 
     @Test
     public void testGetOrchestrationRequestNoRequestID() {
+       HttpHeaders headers = new HttpHeaders();
+       headers.set("Accept", "application/json; charset=UTF-8");
+        headers.set("Content-Type", "application/json; charset=UTF-8"); 
         HttpEntity<Request> entity = new HttpEntity<Request>(null, headers);
-        headers.set("Accept", MediaType.APPLICATION_JSON);
-
         UriComponentsBuilder builder = UriComponentsBuilder
                 .fromHttpUrl(createURLWithPort("/onap/so/infra/orchestrationRequests/v6/"));
 
@@ -185,9 +187,10 @@ public class OrchestrationRequestsTest extends BaseTest {
         List<GetOrchestrationResponse> testResponses = new ArrayList<>();
 
         List<InfraActiveRequests> requests = requestsDbClient.getOrchestrationFiltersFromInfraActive(orchestrationMap);
-        HttpEntity<Request> entity = new HttpEntity<Request>(null, headers);
+        HttpHeaders headers = new HttpHeaders();
         headers.set("Accept", MediaType.APPLICATION_JSON);
-
+        HttpEntity<Request> entity = new HttpEntity<Request>(null, headers);
+        
         UriComponentsBuilder builder = UriComponentsBuilder
                 .fromHttpUrl(createURLWithPort("/onap/so/infra/orchestrationRequests/v6?filter=modelType:EQUALS:vfModule"));
 
@@ -206,7 +209,7 @@ public class OrchestrationRequestsTest extends BaseTest {
         ObjectMapper mapper = new ObjectMapper();
         mapper.configure(DeserializationFeature.UNWRAP_ROOT_VALUE, true);
         String requestJSON = new String(Files.readAllBytes(Paths.get("src/test/resources/OrchestrationRequest/Request.json")));
-
+        HttpHeaders headers = new HttpHeaders();
         headers.set("Accept", MediaType.APPLICATION_JSON);
         headers.set("Content-Type", MediaType.APPLICATION_JSON);
         HttpEntity<String> entity = new HttpEntity<String>(requestJSON, headers);
@@ -240,7 +243,7 @@ public class OrchestrationRequestsTest extends BaseTest {
         ObjectMapper mapper = new ObjectMapper();
         mapper.configure(DeserializationFeature.UNWRAP_ROOT_VALUE, true);
         String requestJSON = new String(Files.readAllBytes(Paths.get("src/test/resources/OrchestrationRequest/Request.json")));
-
+        HttpHeaders headers = new HttpHeaders();
         headers.set("Accept", MediaType.APPLICATION_JSON);
         headers.set("Content-Type", MediaType.APPLICATION_JSON);
         HttpEntity<String> entity = new HttpEntity<String>(requestJSON, headers);
@@ -274,7 +277,7 @@ public class OrchestrationRequestsTest extends BaseTest {
         setupTestUnlockOrchestrationRequest_Valid_Status("5ffbabd6-b793-4377-a1ab-082670fbc7ac", "PENDING");
         ObjectMapper mapper = new ObjectMapper();
         String requestJSON = new String(Files.readAllBytes(Paths.get("src/test/resources/OrchestrationRequest/Request.json")));
-
+        HttpHeaders headers = new HttpHeaders();
         headers.set("Accept", MediaType.APPLICATION_JSON);
         headers.set("Content-Type", MediaType.APPLICATION_JSON);
         HttpEntity<String> entity = new HttpEntity<String>(requestJSON, headers);
@@ -305,7 +308,7 @@ public class OrchestrationRequestsTest extends BaseTest {
         String json = mapper.writeValueAsString(requests);
 
         requestsDbClient.save(requests);
-
+        HttpHeaders headers = new HttpHeaders();
         headers.set("Accept", MediaType.APPLICATION_JSON);
         headers.set("Content-Type", MediaType.APPLICATION_JSON);
         HttpEntity<Request> entity = new HttpEntity<Request>(null, headers);
@@ -337,7 +340,7 @@ public class OrchestrationRequestsTest extends BaseTest {
         requests.setRequestScope("service");
         requests.setRequestType("createInstance");
 //        iar.save(requests);
-
+        HttpHeaders headers = new HttpHeaders();
         headers.set("Accept", MediaType.APPLICATION_JSON);
         headers.set("Content-Type", MediaType.APPLICATION_JSON);
         HttpEntity<Request> entity = new HttpEntity<Request>(null, headers);
index fddd149..f726194 100644 (file)
 package org.onap.so.apihandlerinfra;
 
 
-import ch.qos.logback.classic.spi.ILoggingEvent;
-import com.fasterxml.jackson.annotation.JsonInclude.Include;
-import com.fasterxml.jackson.databind.DeserializationFeature;
-import com.fasterxml.jackson.databind.ObjectMapper;
-import com.github.tomakehurst.wiremock.http.Fault;
+import static com.github.tomakehurst.wiremock.client.WireMock.aResponse;
+import static com.github.tomakehurst.wiremock.client.WireMock.get;
+import static com.github.tomakehurst.wiremock.client.WireMock.post;
+import static com.github.tomakehurst.wiremock.client.WireMock.stubFor;
+import static com.github.tomakehurst.wiremock.client.WireMock.urlMatching;
+import static com.github.tomakehurst.wiremock.client.WireMock.urlPathEqualTo;
+import static com.shazam.shazamcrest.matcher.Matchers.sameBeanAs;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertThat;
+import static org.junit.Assert.assertTrue;
+
+import java.io.File;
+import java.io.IOException;
+import java.nio.file.Files;
+import java.nio.file.Paths;
+import java.util.List;
+import java.util.Map;
+
+import javax.ws.rs.core.MediaType;
+import javax.ws.rs.core.Response;
+
 import org.apache.http.HttpStatus;
 import org.junit.Before;
 import org.junit.Test;
@@ -44,32 +61,18 @@ import org.onap.so.serviceinstancebeans.ServiceInstancesResponse;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.http.HttpEntity;
+import org.springframework.http.HttpHeaders;
 import org.springframework.http.HttpMethod;
 import org.springframework.http.ResponseEntity;
 import org.springframework.util.ResourceUtils;
 import org.springframework.web.util.UriComponentsBuilder;
 
-import javax.ws.rs.core.HttpHeaders;
-import javax.ws.rs.core.MediaType;
-import javax.ws.rs.core.Response;
-import java.io.File;
-import java.io.IOException;
-import java.nio.file.Files;
-import java.nio.file.Paths;
-import java.util.List;
-import java.util.Map;
+import com.fasterxml.jackson.annotation.JsonInclude.Include;
+import com.fasterxml.jackson.databind.DeserializationFeature;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.github.tomakehurst.wiremock.http.Fault;
 
-import static com.github.tomakehurst.wiremock.client.WireMock.aResponse;
-import static com.github.tomakehurst.wiremock.client.WireMock.get;
-import static com.github.tomakehurst.wiremock.client.WireMock.post;
-import static com.github.tomakehurst.wiremock.client.WireMock.stubFor;
-import static com.github.tomakehurst.wiremock.client.WireMock.urlMatching;
-import static com.github.tomakehurst.wiremock.client.WireMock.urlPathEqualTo;
-import static com.shazam.shazamcrest.matcher.Matchers.sameBeanAs;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertThat;
-import static org.junit.Assert.assertTrue;
+import ch.qos.logback.classic.spi.ILoggingEvent;
 
 
 public class ServiceInstancesTest extends BaseTest{
@@ -109,10 +112,14 @@ public class ServiceInstancesTest extends BaseTest{
 
        }
        
-       
-    public ResponseEntity<String> sendRequest(String requestJson, String uriPath, HttpMethod reqMethod){                
-        headers.set("Accept", MediaType.APPLICATION_JSON);
-        headers.set(HttpHeaders.CONTENT_TYPE,MediaType.APPLICATION_JSON);
+       public ResponseEntity<String> sendRequest(String requestJson, String uriPath, HttpMethod reqMethod, HttpHeaders headers){
+               
+               if (!headers.containsKey(HttpHeaders.ACCEPT)) {
+                       headers.set(HttpHeaders.ACCEPT, MediaType.APPLICATION_JSON);
+               }
+               if (!headers.containsKey(HttpHeaders.CONTENT_TYPE)) {
+                       headers.set(HttpHeaders.CONTENT_TYPE,MediaType.APPLICATION_JSON);
+               }
 
         UriComponentsBuilder builder = UriComponentsBuilder.fromHttpUrl(createURLWithPort(uriPath));
 
@@ -121,6 +128,10 @@ public class ServiceInstancesTest extends BaseTest{
         return restTemplate.exchange(builder.toUriString(),
                 reqMethod, request, String.class);
     }
+       
+    public ResponseEntity<String> sendRequest(String requestJson, String uriPath, HttpMethod reqMethod){
+       return sendRequest(requestJson, uriPath, reqMethod, new HttpHeaders());
+    }
 
     @Test
     public void test_mapJSONtoMSOStyle() throws IOException{
@@ -163,7 +174,7 @@ public class ServiceInstancesTest extends BaseTest{
                 .willReturn(aResponse().withHeader(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON)
                         .withBody(mapper.writeValueAsString(serviceRecipe))
                         .withStatus(HttpStatus.SC_OK)));
-                       
+        HttpHeaders headers = new HttpHeaders();
                headers.set(MsoLogger.TRANSACTION_ID, "32807a28-1a14-4b88-b7b3-2950918aa76d");
         headers.set(MsoLogger.CLIENT_ID, "VID");
         //expect
@@ -172,7 +183,7 @@ public class ServiceInstancesTest extends BaseTest{
         requestReferences.setInstanceId("1882939");
         expectedResponse.setRequestReferences(requestReferences);
         uri = servInstanceuri + "v5/serviceInstances";
-        ResponseEntity<String> response = sendRequest(inputStream("/ServiceInstanceDefault.json"), uri, HttpMethod.POST);
+        ResponseEntity<String> response = sendRequest(inputStream("/ServiceInstanceDefault.json"), uri, HttpMethod.POST, headers);
 
         ObjectMapper mapper = new ObjectMapper();
         mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
@@ -347,8 +358,9 @@ public class ServiceInstancesTest extends BaseTest{
     @Test
     public void activateServiceInstanceNoRecipeALaCarte() throws IOException{
         uri = servInstanceuri + "v5" + "/serviceInstances/f7ce78bb-423b-11e7-93f8-0050569a7968/activate";
+        HttpHeaders headers = new HttpHeaders();
         headers.set("X-ECOMP-RequestID", "32807a28-1a14-4b88-b7b3-2950918aa76d");
-        ResponseEntity<String> response = sendRequest(inputStream("/ServiceInstanceALaCarteTrueNoRecipe.json"), uri, HttpMethod.POST);
+        ResponseEntity<String> response = sendRequest(inputStream("/ServiceInstanceALaCarteTrueNoRecipe.json"), uri, HttpMethod.POST, headers);
 
         Service defaultService = new Service();
         defaultService.setModelUUID("d88da85c-d9e8-4f73-b837-3a72a431622a");
@@ -407,7 +419,7 @@ public class ServiceInstancesTest extends BaseTest{
                                .willReturn(aResponse().withHeader(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON)
                                                .withBody(mapper.writeValueAsString(serviceRecipe))
                                                .withStatus(HttpStatus.SC_OK)));
-
+               HttpHeaders headers = new HttpHeaders();
         headers.set("X-TransactionID", "32807a28-1a14-4b88-b7b3-2950918aa76d");
         //expected response
         ServiceInstancesResponse expectedResponse = new ServiceInstancesResponse();
@@ -415,7 +427,7 @@ public class ServiceInstancesTest extends BaseTest{
         requestReferences.setInstanceId("1882939");
         expectedResponse.setRequestReferences(requestReferences);
         uri = servInstanceuri + "v7" + "/serviceInstances/f7ce78bb-423b-11e7-93f8-0050569a7968/activate";
-        ResponseEntity<String> response = sendRequest(inputStream("/ServiceInstanceActivate.json"), uri, HttpMethod.POST);
+        ResponseEntity<String> response = sendRequest(inputStream("/ServiceInstanceActivate.json"), uri, HttpMethod.POST, headers);
 
         ObjectMapper mapper = new ObjectMapper();
         mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
@@ -608,6 +620,7 @@ public class ServiceInstancesTest extends BaseTest{
         stubFor(post(urlPathEqualTo("/mso/async/services/ALaCarteOrchestrator"))
                 .willReturn(aResponse().withHeader(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON)
                         .withBodyFile("Camunda/TestResponse.json").withStatus(org.apache.http.HttpStatus.SC_OK)));
+        HttpHeaders headers = new HttpHeaders();
         headers.set("X-TransactionID", "32807a28-1a14-4b88-b7b3-2950918aa76d");
         //expected response
         ServiceInstancesResponse expectedResponse = new ServiceInstancesResponse();
@@ -615,7 +628,7 @@ public class ServiceInstancesTest extends BaseTest{
         requestReferences.setInstanceId("1882939");
         expectedResponse.setRequestReferences(requestReferences);
         uri = servInstanceuri + "v5" + "/serviceInstances/f7ce78bb-423b-11e7-93f8-0050569a7968/configurations";
-        ResponseEntity<String> response = sendRequest(inputStream("/ServiceInstancePortConfiguration.json"), uri, HttpMethod.POST);
+        ResponseEntity<String> response = sendRequest(inputStream("/ServiceInstancePortConfiguration.json"), uri, HttpMethod.POST, headers);
 
         ObjectMapper mapper = new ObjectMapper();
         mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
@@ -638,6 +651,7 @@ public class ServiceInstancesTest extends BaseTest{
                 .willReturn(aResponse().withHeader(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON)
                         .withBodyFile("Camunda/TestResponse.json").withStatus(org.apache.http.HttpStatus.SC_OK)));
 
+        HttpHeaders headers = new HttpHeaders();
         headers.set("X-ECOMP-RequestID", "32807a28-1a14-4b88-b7b3-2950918aa76d");
         //expected response
         ServiceInstancesResponse expectedResponse = new ServiceInstancesResponse();
@@ -645,7 +659,7 @@ public class ServiceInstancesTest extends BaseTest{
         requestReferences.setInstanceId("1882939");
         expectedResponse.setRequestReferences(requestReferences);
         uri = servInstanceuri + "v7" + "/serviceInstances/f7ce78bb-423b-11e7-93f8-0050569a7968/configurations/f7ce78bb-423b-11e7-93f8-0050569a7970";
-        ResponseEntity<String> response = sendRequest(inputStream("/ServiceInstance.json"), uri, HttpMethod.DELETE);
+        ResponseEntity<String> response = sendRequest(inputStream("/ServiceInstance.json"), uri, HttpMethod.DELETE, headers);
 
         ObjectMapper mapper = new ObjectMapper();
         mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
@@ -840,6 +854,7 @@ public class ServiceInstancesTest extends BaseTest{
                         .withStatus(org.apache.http.HttpStatus.SC_OK)));
 
         String requestId = "b7a6b76f-2ee2-416c-971b-548472a8c5c3";
+        HttpHeaders headers = new HttpHeaders();
         headers.set(MsoLogger.ONAP_REQUEST_ID, requestId);
         //expected response
         ServiceInstancesResponse expectedResponse = new ServiceInstancesResponse();
@@ -847,7 +862,7 @@ public class ServiceInstancesTest extends BaseTest{
         requestReferences.setInstanceId("1882939");
         expectedResponse.setRequestReferences(requestReferences);
         uri = servInstanceuri + "v7" + "/serviceInstances/ff305d54-75b4-431b-adb2-eb6b9e5ff000/vnfs";
-        ResponseEntity<String> response = sendRequest(inputStream("/VnfWithServiceRelatedInstance.json"), uri, HttpMethod.POST);
+        ResponseEntity<String> response = sendRequest(inputStream("/VnfWithServiceRelatedInstance.json"), uri, HttpMethod.POST, headers);
 
         ObjectMapper mapper = new ObjectMapper();
         mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
@@ -1035,6 +1050,7 @@ public class ServiceInstancesTest extends BaseTest{
                         .withStatus(org.apache.http.HttpStatus.SC_OK)));
         
         String requestId = "b7a6b76f-2ee2-416c-971b-548472a8c5c5";
+        HttpHeaders headers = new HttpHeaders();
         headers.set(MsoLogger.ONAP_REQUEST_ID, requestId);
         //expected response
         ServiceInstancesResponse expectedResponse = new ServiceInstancesResponse();
@@ -1042,7 +1058,7 @@ public class ServiceInstancesTest extends BaseTest{
         requestReferences.setInstanceId("1882939");
         expectedResponse.setRequestReferences(requestReferences);
         uri = servInstanceuri + "v7" + "/serviceInstances/f7ce78bb-423b-11e7-93f8-0050569a7968/vnfs/ff305d54-75b4-431b-adb2-eb6b9e5ff000/applyUpdatedConfig";
-        ResponseEntity<String> response = sendRequest(inputStream("/ApplyUpdatedConfig.json"), uri, HttpMethod.POST);
+        ResponseEntity<String> response = sendRequest(inputStream("/ApplyUpdatedConfig.json"), uri, HttpMethod.POST, headers);
 
         ObjectMapper mapper = new ObjectMapper();
         mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
@@ -1343,6 +1359,7 @@ public class ServiceInstancesTest extends BaseTest{
     }
     @Test
     public void createVfModuleNoModelType() throws IOException{
+       HttpHeaders headers = new HttpHeaders();
         headers.set(MsoLogger.ONAP_REQUEST_ID, "32807a28-1a14-4b88-b7b3-2950918aa76d");
         InfraActiveRequests expectedRecord = new InfraActiveRequests();
         expectedRecord.setRequestStatus("FAILED");
@@ -1362,7 +1379,7 @@ public class ServiceInstancesTest extends BaseTest{
         expectedRecord.setVnfType("");
         uri = servInstanceuri + "v5/serviceInstances/32807a28-1a14-4b88-b7b3-2950918aa76d/vnfs/32807a28-1a14-4b88-b7b3-2950918aa76d/vfModules";
 
-        ResponseEntity<String> response = sendRequest(inputStream("/VfModuleNoModelType.json"), uri, HttpMethod.POST);
+        ResponseEntity<String> response = sendRequest(inputStream("/VfModuleNoModelType.json"), uri, HttpMethod.POST, headers);
         //ActualRecord
         assertEquals(Response.Status.BAD_REQUEST.getStatusCode(), response.getStatusCode().value());
     }
@@ -1626,6 +1643,7 @@ public class ServiceInstancesTest extends BaseTest{
                         .withStatus(org.apache.http.HttpStatus.SC_OK)));
         
         String requestId = "b7a6b76f-2ee2-416c-971b-548472a8c5c4";
+        HttpHeaders headers = new HttpHeaders();
         headers.set(MsoLogger.ONAP_REQUEST_ID, requestId);
         //expected response
         ServiceInstancesResponse expectedResponse = new ServiceInstancesResponse();
@@ -1633,7 +1651,7 @@ public class ServiceInstancesTest extends BaseTest{
         requestReferences.setInstanceId("1882939");
         expectedResponse.setRequestReferences(requestReferences);
         uri = servInstanceuri + "v7" + "/serviceInstances/f7ce78bb-423b-11e7-93f8-0050569a7969/networks";
-        ResponseEntity<String> response = sendRequest(inputStream("/NetworkCreate.json"), uri, HttpMethod.POST);
+        ResponseEntity<String> response = sendRequest(inputStream("/NetworkCreate.json"), uri, HttpMethod.POST, headers);
 
         ObjectMapper mapper = new ObjectMapper();
         mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
@@ -1746,6 +1764,7 @@ public class ServiceInstancesTest extends BaseTest{
     }
     @Test
     public void convertJsonToServiceInstanceRequestFail() throws IOException {
+       HttpHeaders headers = new HttpHeaders();
         headers.set(MsoLogger.ONAP_REQUEST_ID, "32807a28-1a14-4b88-b7b3-2950918aa76d");
         //ExpectedRecord
         InfraActiveRequests expectedRecord = new InfraActiveRequests();
@@ -1759,7 +1778,7 @@ public class ServiceInstancesTest extends BaseTest{
         expectedRecord.setRequestId("32807a28-1a14-4b88-b7b3-2950918aa76d");
 
         uri = servInstanceuri + "v6" + "/serviceInstances/f7ce78bb-423b-11e7-93f8-0050569a7969/networks/1710966e-097c-4d63-afda-e0d3bb7015fb";
-        ResponseEntity<String> response = sendRequest(inputStream("/ConvertRequestFail.json"), uri, HttpMethod.DELETE);
+        ResponseEntity<String> response = sendRequest(inputStream("/ConvertRequestFail.json"), uri, HttpMethod.DELETE, headers);
 
         //ActualRecord
 
@@ -1967,6 +1986,7 @@ public class ServiceInstancesTest extends BaseTest{
            stubFor(post(urlPathEqualTo("/mso/async/services/WorkflowActionBB"))
                 .willReturn(aResponse().withHeader(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON)
                         .withBodyFile("Camunda/TestResponse.json").withStatus(org.apache.http.HttpStatus.SC_OK)));
+           HttpHeaders headers = new HttpHeaders();
         headers.set("X-ECOMP-RequestID", "32807a28-1a14-4b88-b7b3-2950918aa76d");
 
         stubFor(get(urlMatching(".*/service/.*"))
@@ -1985,7 +2005,7 @@ public class ServiceInstancesTest extends BaseTest{
         requestReferences.setInstanceId("1882939");
         expectedResponse.setRequestReferences(requestReferences);
         uri = servInstanceuri + "v5" + "/serviceInstances/f7ce78bb-423b-11e7-93f8-0050569a7999/activate";
-        ResponseEntity<String> response = sendRequest(inputStream("/ServiceInstancePrev8.json"), uri, HttpMethod.POST);
+        ResponseEntity<String> response = sendRequest(inputStream("/ServiceInstancePrev8.json"), uri, HttpMethod.POST, headers);
 
         ObjectMapper mapper = new ObjectMapper();
         mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
@@ -1998,10 +2018,11 @@ public class ServiceInstancesTest extends BaseTest{
     @Test
     public void invalidRequestId() throws IOException {
         String illegalRequestId = "1234";
+        HttpHeaders headers = new HttpHeaders();
         headers.set(ONAPLogConstants.Headers.REQUEST_ID, illegalRequestId);
 
         uri = servInstanceuri + "v5/serviceInstances";
-        ResponseEntity<String> response = sendRequest(inputStream("/ServiceInstanceDefault.json"), uri, HttpMethod.POST);
+        ResponseEntity<String> response = sendRequest(inputStream("/ServiceInstanceDefault.json"), uri, HttpMethod.POST, headers);
 
         assertEquals(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode(), response.getStatusCode().value());
         assertTrue(response.getBody().contains("Request Id " + illegalRequestId + " is not a valid UUID"));
index 459214b..fa323a1 100644 (file)
@@ -34,7 +34,6 @@ import java.text.ParseException;
 import java.util.ArrayList;
 import java.util.List;
 
-import javax.ws.rs.core.HttpHeaders;
 import javax.ws.rs.core.MediaType;
 import javax.ws.rs.core.Response;
 
@@ -45,6 +44,7 @@ import org.onap.so.apihandlerinfra.tasksbeans.TaskList;
 import org.onap.so.apihandlerinfra.tasksbeans.TasksGetResponse;
 import org.onap.so.apihandlerinfra.tasksbeans.ValidResponses;
 import org.springframework.http.HttpEntity;
+import org.springframework.http.HttpHeaders;
 import org.springframework.http.HttpMethod;
 import org.springframework.http.ResponseEntity;
 import org.springframework.web.util.UriComponentsBuilder;
@@ -93,7 +93,7 @@ public class TasksHandlerTest extends BaseTest{
                taskList.add(taskList1);
        
                expectedResponse.setTaskList(taskList);
-                               
+               HttpHeaders headers = new HttpHeaders();
                headers.set("Accept", MediaType.APPLICATION_JSON);
                headers.set("Content-Type", MediaType.APPLICATION_JSON);
                HttpEntity<String> entity = new HttpEntity<String>(null, headers);