aboutsummaryrefslogtreecommitdiffstats
path: root/mso-api-handlers/mso-api-handler-common/src/test/java/org/onap
diff options
context:
space:
mode:
authorBenjamin, Max (mb388a) <mb388a@us.att.com>2018-09-17 09:47:02 -0400
committerBenjamin, Max (mb388a) <mb388a@us.att.com>2018-09-17 09:47:14 -0400
commit04c607ef77edb757a43b24c8bff233fad6ede4de (patch)
treed889d1770aef252cf18fa76cca042bb87f8bc519 /mso-api-handlers/mso-api-handler-common/src/test/java/org/onap
parent618ae3415a0412ba8e49985790c591f6238f7c1b (diff)
Accept header not honored when building exception
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>
Diffstat (limited to 'mso-api-handlers/mso-api-handler-common/src/test/java/org/onap')
-rw-r--r--mso-api-handlers/mso-api-handler-common/src/test/java/org/onap/so/apihandlerinfra/exceptions/ApiExceptionMapperTest.java (renamed from mso-api-handlers/mso-api-handler-common/src/test/java/org/onap/so/apihandlerinfra/ApiExceptionMapperTest.java)91
1 files changed, 77 insertions, 14 deletions
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/exceptions/ApiExceptionMapperTest.java
index b98c47490a..e666df34f9 100644
--- 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/exceptions/ApiExceptionMapperTest.java
@@ -18,39 +18,75 @@
* ============LICENSE_END=========================================================
*/
-package org.onap.so.apihandlerinfra;
+package org.onap.so.apihandlerinfra.exceptions;
-import com.fasterxml.jackson.core.JsonProcessingException;
-import com.fasterxml.jackson.databind.ObjectMapper;
+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 org.junit.Test;
-import org.mockito.Mockito;
-import org.onap.so.apihandler.common.ErrorNumbers;
-import org.onap.so.apihandlerinfra.exceptions.*;
+import java.io.IOException;
+import java.io.Writer;
+import java.util.Arrays;
+import java.util.List;
-import org.apache.http.HttpStatus;
+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;
+import org.onap.so.apihandlerinfra.exceptions.BPMNFailureException;
+import org.onap.so.apihandlerinfra.exceptions.ClientConnectionException;
+import org.onap.so.apihandlerinfra.exceptions.DuplicateRequestException;
+import org.onap.so.apihandlerinfra.exceptions.ValidateException;
+import org.onap.so.apihandlerinfra.exceptions.VfModuleNotFoundException;
-import java.io.IOException;
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.databind.ObjectMapper;
-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;
+@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);
@@ -94,4 +130,31 @@ public class ApiExceptionMapperTest {
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));
+ }
}