Merge "change management cypress test"
[vid.git] / vid-app-common / src / test / java / org / onap / vid / mso / RestMsoImplementationTest.java
index 102c89a..2e321f9 100644 (file)
@@ -3,6 +3,7 @@
  * VID
  * ================================================================================
  * Copyright (C) 2019 Nokia Intellectual Property. All rights reserved.
+ * Modifications Copyright (C) 2017 - 2019 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.
 
 package org.onap.vid.mso;
 
+import static org.assertj.core.api.Java6Assertions.assertThat;
+import static org.hamcrest.collection.IsCollectionWithSize.hasSize;
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.eq;
+import static org.mockito.Mockito.when;
+import static org.mockito.MockitoAnnotations.initMocks;
+
 import io.joshworks.restclient.request.HttpRequest;
+import java.io.IOException;
+import java.security.GeneralSecurityException;
+import java.util.List;
+import java.util.Optional;
+import javax.ws.rs.client.Client;
+import javax.ws.rs.client.Entity;
+import javax.ws.rs.client.WebTarget;
+import javax.ws.rs.core.MultivaluedHashMap;
+import javax.ws.rs.core.MultivaluedMap;
+import javax.ws.rs.core.Response;
+import org.glassfish.jersey.client.ClientProperties;
 import org.glassfish.jersey.client.JerseyInvocation;
+import org.hamcrest.MatcherAssert;
 import org.mockito.InjectMocks;
 import org.mockito.Mock;
+import org.onap.vid.aai.util.HttpClientMode;
 import org.onap.vid.aai.util.HttpsAuthClient;
-import org.onap.vid.changeManagement.RequestDetailsWrapper;
-import org.onap.vid.exceptions.GenericUncheckedException;
 import org.onap.vid.mso.rest.RequestDetails;
+import org.onap.vid.utils.Logging;
 import org.onap.vid.utils.SystemPropertiesWrapper;
 import org.springframework.http.HttpMethod;
 import org.springframework.http.HttpStatus;
 import org.testng.annotations.BeforeClass;
 import org.testng.annotations.Test;
 
-import javax.ws.rs.client.Client;
-import javax.ws.rs.client.Entity;
-import javax.ws.rs.client.WebTarget;
-import javax.ws.rs.core.MultivaluedHashMap;
-import javax.ws.rs.core.MultivaluedMap;
-import javax.ws.rs.core.Response;
-
-import java.util.Optional;
-
-import static org.assertj.core.api.Java6Assertions.assertThat;
-import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.ArgumentMatchers.eq;
-import static org.mockito.Mockito.when;
-import static org.mockito.MockitoAnnotations.initMocks;
-
 public class RestMsoImplementationTest  {
 
     @Mock
@@ -75,15 +80,19 @@ public class RestMsoImplementationTest  {
     @Mock
     private SystemPropertiesWrapper systemProperties;
 
+    @Mock
+    private Logging loggingService;
+
     @InjectMocks
-    private RestMsoImplementation restMsoImplementation = new RestMsoImplementation(mockHttpsAuthClient, systemProperties);
+    private RestMsoImplementation restMsoImplementation;
 
     private String path = "/test_path/";
     private String rawData = "test-row-data";
 
     @BeforeClass
-    public void setUp(){
+    public void setUp() throws GeneralSecurityException, IOException {
         initMocks(this);
+        when(mockHttpsAuthClient.getClient(any(HttpClientMode.class))).thenReturn(mockClient);
         when(systemProperties.getProperty(MsoProperties.MSO_PASSWORD)).thenReturn("OBF:1ghz1kfx1j1w1m7w1i271e8q1eas1hzj1m4i1iyy1kch1gdz");
     }
 
@@ -93,50 +102,12 @@ public class RestMsoImplementationTest  {
         MultivaluedHashMap<String, Object> result = restMsoImplementation.initMsoClient();
 
         //  then
-        assertThat(result).containsKeys("Authorization","X-ONAP-PartnerName");
+        List<Object> authorizationHeaders = result.get("Authorization");
+        MatcherAssert.assertThat(authorizationHeaders, hasSize(1));
+        assertThat((String) authorizationHeaders.get(0)).startsWith("Basic ");
         assertThat(result).doesNotContainKey("notExistingKey");
     }
 
-    @Test
-    public void shouldProperlyGetRestObjectWithRequestInfo() {
-        //  given
-        RestObject<HttpRequest> restObject = new RestObject<>();
-
-        prepareMocks(rawData, HttpStatus.ACCEPTED.value(),"");
-
-        //  when
-        RestObjectWithRequestInfo<HttpRequest> response = restMsoImplementation.Get(httpRequest, path, restObject,false);
-
-        //  then
-        assertThat(response.getRequestedUrl()).contains(path);
-        assertThat(response.getRawData()).isEqualTo(rawData);
-        assertThat(response.getHttpCode()).isEqualTo(HttpStatus.ACCEPTED.value());
-        assertThat(response.getHttpMethod()).isEqualTo(HttpMethod.GET);
-    }
-
-    @Test( expectedExceptions = GenericUncheckedException.class)
-    public void shouldThrowExceptionWhenGetRestObjectWithRequestInfoGetsWrongStatus() {
-        //  given
-        RestObject<HttpRequest> restObject = new RestObject<>();
-
-        prepareMocks("",HttpStatus.BAD_REQUEST.value(),"");
-
-        //  when
-        restMsoImplementation.Get(httpRequest, "", restObject,false);
-    }
-
-    @Test( expectedExceptions = MsoTestException.class)
-    public void shouldThrowExceptionWhenGetRestObjectWithRequestInfoGetsWrongParameters() {
-        //  given
-        RestObject<HttpRequest> restObject = new RestObject<>();
-
-        prepareMocks("",HttpStatus.ACCEPTED.value(),"");
-        when(systemProperties.getProperty(MsoProperties.MSO_SERVER_URL)).thenReturn("SAMPLE_URL");
-        when(mockClient.target("SAMPLE_URL")).thenThrow(new MsoTestException("test-target-exception"));
-
-        //  when
-        restMsoImplementation.Get(httpRequest, "", restObject,false);
-    }
 
     @Test()
     public void shouldProperlyGetRestObjectForObjectWithRequestInfoAndAcceptCode() {
@@ -164,79 +135,6 @@ public class RestMsoImplementationTest  {
         assertThat(response.getRaw()).isEqualTo(rawData);
     }
 
-    @Test()
-    public void shouldProperlyDeleteRestObjectWithStatusHttpAccepted() {
-        //  given
-        RestObject<HttpRequest> restObject = new RestObject<>();
-
-        prepareMocks(rawData,HttpStatus.ACCEPTED.value(),"DELETE");
-
-        //  when
-        restMsoImplementation.Delete(httpRequest, "testObject", path, restObject);
-
-        //  then
-        assertThat(restObject.getStatusCode()).isEqualTo(HttpStatus.ACCEPTED.value());
-    }
-
-    @Test()
-    public void shouldProperlyDeleteRestObjectWithStatusOK() {
-        //  given
-        RestObject<HttpRequest> restObject = new RestObject<>();
-
-        prepareMocks(rawData,HttpStatus.OK.value(),"DELETE");
-
-        //  when
-        restMsoImplementation.Delete(httpRequest, "testObject", path, restObject);
-
-        //  then
-        assertThat(restObject.getStatusCode()).isEqualTo(HttpStatus.OK.value());
-    }
-
-    @Test()
-    public void shouldProperlyReturnFromDeleteWithStatusBadRequest() {
-        //  given
-        RestObject<HttpRequest> restObject = new RestObject<>();
-
-        prepareMocks(rawData,HttpStatus.BAD_REQUEST.value(),"DELETE");
-
-        //  when
-        restMsoImplementation.Delete(httpRequest, "testObject", path, restObject);
-
-        //  then
-        assertThat(restObject.getStatusCode()).isEqualTo(HttpStatus.BAD_REQUEST.value());
-    }
-
-    @Test()
-    public void shouldProperlyReturnFromDeleteWithStatusOtherThenAbove() {
-        //  given
-        RestObject<HttpRequest> restObject = new RestObject<>();
-        prepareMocks(rawData,HttpStatus.NOT_EXTENDED.value(),"DELETE");
-
-        //  when
-        restMsoImplementation.Delete(httpRequest, "testObject", path, restObject);
-
-        //  then
-        assertThat(restObject.getStatusCode()).isEqualTo(HttpStatus.NOT_EXTENDED.value());
-    }
-
-    @Test( expectedExceptions = MsoTestException.class)
-    public void shouldThrowExceptionWhenCallsDeleteWithWrongParameters() {
-        //  given
-        when(mockClient.target(any(String.class))).thenThrow(new MsoTestException("testDeleteException"));
-
-        //  when
-        restMsoImplementation.Delete(httpRequest, "testObject", "", null);
-    }
-
-    @Test( expectedExceptions = NullPointerException.class)
-    public void shouldThrowExceptionWhenCallsDeleteWithWrongObjectType() {
-        //  given
-        RestObject<HttpRequest> restObject = new RestObject<>();
-        prepareMocks(rawData,HttpStatus.ACCEPTED.value(),"DELETE");
-
-        //  when
-        restMsoImplementation.Delete(null, "testObject", path, restObject);
-    }
 
     @Test
     public void shouldProperlyPostForObject() {
@@ -256,43 +154,6 @@ public class RestMsoImplementationTest  {
         assertThat(response).isEqualToComparingFieldByField(expectedResponse);
     }
 
-    @Test
-    public void shouldProperlyDeleteForObject() {
-        //  given
-        RequestDetails requestDetails = new RequestDetails();
-
-        RestObject<HttpRequest> expectedResponse = new RestObject<>();
-        expectedResponse.setStatusCode(HttpStatus.ACCEPTED.value());
-        expectedResponse.setRaw(rawData);
-
-        prepareMocks(rawData,HttpStatus.ACCEPTED.value(),"DELETE");
-
-        //  when
-        RestObject<HttpRequest> response = restMsoImplementation.DeleteForObject(requestDetails, path, HttpRequest.class);
-
-        //  then
-        assertThat(response).isEqualToComparingFieldByField(expectedResponse);
-    }
-
-    @Test
-    public void shouldProperlyPost() {
-        //  given
-        RequestDetails requestDetails = new RequestDetails();
-        RestObject<String> response = new RestObject<>();
-
-        RestObject<String> expectedResponse = new RestObject<>();
-        expectedResponse.setStatusCode(HttpStatus.ACCEPTED.value());
-        expectedResponse.setRaw(rawData);
-
-        prepareMocks(rawData,HttpStatus.ACCEPTED.value(),"POST");
-
-        //  when
-        restMsoImplementation.Post(rawData,requestDetails, path, response);
-
-        //  then
-        assertThat(response).isEqualToComparingFieldByField(expectedResponse);
-    }
-
     @Test
     public void shouldProperlyPrepareClient() {
         //  given
@@ -332,70 +193,6 @@ public class RestMsoImplementationTest  {
         restMsoImplementation.restCall(HttpMethod.GET, String.class, null, "", Optional.empty());
     }
 
-    @Test
-    public void shouldProperlyPutRestObjectWithProperParametersAndStatusAccepted() {
-        //  given
-        String method = "PUT";
-        prepareMocks(rawData,HttpStatus.ACCEPTED.value(),method);
-
-        org.onap.vid.changeManagement.RequestDetailsWrapper requestDetailsWrapper = new RequestDetailsWrapper();
-        RestObject<String> response = new RestObject<>();
-
-        RestObject<String> expectedResponse = new RestObject<>();
-        expectedResponse.setStatusCode(HttpStatus.ACCEPTED.value());
-        expectedResponse.set(rawData);
-
-        //  when
-        restMsoImplementation.Put("testPutBody", requestDetailsWrapper , path, response);
-
-        //  then
-        assertThat(response).isEqualToComparingFieldByField(expectedResponse);
-    }
-
-    @Test
-    public void shouldProperlyPutRestObjectWithProperParametersAndStatusMultipleChoices() {
-        //  given
-        String method = "PUT";
-        prepareMocks(rawData,HttpStatus.MULTIPLE_CHOICES.value(),method);
-
-        org.onap.vid.changeManagement.RequestDetailsWrapper requestDetailsWrapper = new RequestDetailsWrapper();
-        RestObject<String> response = new RestObject<>();
-
-        RestObject<String> expectedResponse = new RestObject<>();
-        expectedResponse.setStatusCode(HttpStatus.MULTIPLE_CHOICES.value());
-        expectedResponse.set(rawData);
-
-        //  when
-        restMsoImplementation.Put("testPutBody", requestDetailsWrapper , path, response);
-
-        //  then
-        assertThat(response).isEqualToComparingFieldByField(expectedResponse);
-    }
-
-    @Test( expectedExceptions = MsoTestException.class)
-    public void shouldThrowExceptionWhenCallsPutWithWrongParameters() {
-        //  given
-        when(mockClient.target(any(String.class))).thenThrow(new MsoTestException("testDeleteException"));
-        org.onap.vid.changeManagement.RequestDetailsWrapper requestDetailsWrapper = new RequestDetailsWrapper();
-
-        //  when
-        restMsoImplementation.Put(null, requestDetailsWrapper, "", null);
-    }
-
-    @Test( expectedExceptions = NullPointerException.class)
-    public void shouldThrowExceptionWhenCallsPutWithWrongObjectType() {
-        //  given
-        RestObject<HttpRequest> restObject = new RestObject<>();
-        org.onap.vid.changeManagement.RequestDetailsWrapper requestDetailsWrapper = new RequestDetailsWrapper();
-
-        prepareMocks(rawData,HttpStatus.ACCEPTED.value(),"DELETE");
-
-        //  when
-        restMsoImplementation.Put(null, requestDetailsWrapper, path, restObject);
-    }
-
-
-
     private void prepareMocks(String rawData,int status,String httpMethod) {
 
         when(mockClient.target(any(String.class))).thenReturn(webTarget);
@@ -404,6 +201,7 @@ public class RestMsoImplementationTest  {
 
         when(builder.accept(any(String.class))).thenReturn(builder);
         when(builder.headers(any(MultivaluedMap.class))).thenReturn(builder);
+        when(builder.property(eq(ClientProperties.SUPPRESS_HTTP_COMPLIANCE_VALIDATION), eq(true))).thenReturn(builder);
         when(builder.get()).thenReturn(response);
 
         when(builder.build( eq(httpMethod), any(Entity.class))).thenReturn(jerseyInvocation);