Inject an SystemPropertiesWrapper instance to MsoClient 68/84668/2
authorWojciech Sliwka <wojciech.sliwka@nokia.com>
Tue, 9 Apr 2019 12:10:15 +0000 (14:10 +0200)
committerWojciech Sliwka <wojciech.sliwka@nokia.com>
Wed, 10 Apr 2019 11:28:26 +0000 (13:28 +0200)
Change-Id: Ibbc8540042fc46bd0df42efec99cff5fc2e371a3
Issue-ID: VID-404
Signed-off-by: Wojciech Sliwka <wojciech.sliwka@nokia.com>
vid-app-common/src/main/java/org/onap/vid/controller/MsoConfig.java
vid-app-common/src/main/java/org/onap/vid/mso/RestMsoImplementation.java
vid-app-common/src/main/java/org/onap/vid/mso/rest/MsoRestClientNew.java
vid-app-common/src/test/java/org/onap/vid/mso/RestMsoImplementationTest.java
vid-app-common/src/test/java/org/onap/vid/mso/rest/MsoRestClientNewTest.java
vid-app-common/src/test/java/org/onap/vid/mso/rest/MsoRestClientTest.java

index a82dfab..8d5fbbd 100644 (file)
@@ -33,6 +33,7 @@ import org.onap.vid.mso.MsoProperties;
 import org.onap.vid.mso.rest.MsoRestClientNew;
 import org.onap.vid.services.CloudOwnerService;
 import org.onap.vid.services.CloudOwnerServiceImpl;
+import org.onap.vid.utils.SystemPropertiesWrapper;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
 import org.togglz.core.manager.FeatureManager;
@@ -47,10 +48,10 @@ public class MsoConfig {
     }
 
     @Bean
-    public MsoRestClientNew msoClient(ObjectMapper unirestObjectMapper, HttpsAuthClient httpsAuthClient){
+    public MsoRestClientNew msoClient(ObjectMapper unirestObjectMapper, HttpsAuthClient httpsAuthClient, SystemPropertiesWrapper systemPropertiesWrapper){
         // Satisfy both interfaces -- MsoInterface and RestMsoImplementation
         return new MsoRestClientNew(new SyncRestClient(unirestObjectMapper), SystemProperties.getProperty(
-            MsoProperties.MSO_SERVER_URL),httpsAuthClient);
+            MsoProperties.MSO_SERVER_URL),httpsAuthClient, systemPropertiesWrapper);
     }
 
 
index e14ac0e..17af752 100644 (file)
@@ -26,7 +26,6 @@ import org.apache.commons.codec.binary.Base64;
 import org.apache.http.HttpException;
 import org.eclipse.jetty.util.security.Password;
 import org.onap.portalsdk.core.logging.logic.EELFLoggerDelegate;
-import org.onap.portalsdk.core.util.SystemProperties;
 import org.onap.vid.aai.ExceptionWithRequestInfo;
 import org.onap.vid.aai.util.HttpClientMode;
 import org.onap.vid.aai.util.HttpsAuthClient;
@@ -34,6 +33,7 @@ import org.onap.vid.client.HttpBasicClient;
 import org.onap.vid.exceptions.GenericUncheckedException;
 import org.onap.vid.mso.rest.RestInterface;
 import org.onap.vid.utils.Logging;
+import org.onap.vid.utils.SystemPropertiesWrapper;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpMethod;
 
@@ -64,6 +64,7 @@ public class RestMsoImplementation implements RestInterface {
 
 
     protected HttpsAuthClient httpsAuthClient;
+    protected SystemPropertiesWrapper systemProperties;
 
     private static final String START_LOG = " start";
     private static final String APPLICATION_JSON = "application/json";
@@ -80,8 +81,9 @@ public class RestMsoImplementation implements RestInterface {
      */
 
     @Autowired
-    protected RestMsoImplementation(HttpsAuthClient httpsAuthClient){
+    protected RestMsoImplementation(HttpsAuthClient httpsAuthClient, SystemPropertiesWrapper systemProperties){
         this.httpsAuthClient=httpsAuthClient;
+        this.systemProperties = systemProperties;
     }
 
     @SuppressWarnings("Duplicates")
@@ -89,9 +91,9 @@ public class RestMsoImplementation implements RestInterface {
     {
         final String methodname = "initRestClient()";
 
-        final String username = SystemProperties.getProperty(MsoProperties.MSO_USER_NAME);
-        final String password = SystemProperties.getProperty(MsoProperties.MSO_PASSWORD);
-        final String mso_url = SystemProperties.getProperty(MsoProperties.MSO_SERVER_URL);
+        final String username = systemProperties.getProperty(MsoProperties.MSO_USER_NAME);
+        final String password = systemProperties.getProperty(MsoProperties.MSO_PASSWORD);
+        final String mso_url = systemProperties.getProperty(MsoProperties.MSO_SERVER_URL);
         final String decrypted_password = Password.deobfuscate(password);
 
         String authString = username + ":" + decrypted_password;
@@ -140,7 +142,7 @@ public class RestMsoImplementation implements RestInterface {
 
         try {
             restObject.set(t);
-            url = SystemProperties.getProperty(MsoProperties.MSO_SERVER_URL) + path;
+            url = systemProperties.getProperty(MsoProperties.MSO_SERVER_URL) + path;
 
             MultivaluedHashMap<String, Object> commonHeaders = initMsoClient();
             Logging.logRequest(outgoingRequestsLogger, HttpMethod.GET, url);
@@ -179,7 +181,7 @@ public class RestMsoImplementation implements RestInterface {
         final String methodName = getMethodName();
         logger.debug(EELFLoggerDelegate.debugLogger, "start {}->{}({}, {})", getMethodCallerName(), methodName, path, clazz);
 
-        String url = SystemProperties.getProperty(MsoProperties.MSO_SERVER_URL) + path;
+        String url = systemProperties.getProperty(MsoProperties.MSO_SERVER_URL) + path;
         logger.debug(EELFLoggerDelegate.debugLogger, "<== " +  methodName + " sending request to url= " + url);
 
         MultivaluedHashMap<String, Object> commonHeaders = initMsoClient();
@@ -216,7 +218,7 @@ public class RestMsoImplementation implements RestInterface {
         try {
             MultivaluedHashMap<String, Object> commonHeaders = initMsoClient();
 
-            url = SystemProperties.getProperty(MsoProperties.MSO_SERVER_URL) + path;
+            url = systemProperties.getProperty(MsoProperties.MSO_SERVER_URL) + path;
             Logging.logRequest(outgoingRequestsLogger, HttpMethod.DELETE, url, r);
             cres = client.target(url)
                     .request()
@@ -281,7 +283,7 @@ public class RestMsoImplementation implements RestInterface {
     public Invocation.Builder prepareClient(String path, String methodName) {
         MultivaluedHashMap<String, Object> commonHeaders = initMsoClient();
 
-        String url = SystemProperties.getProperty(MsoProperties.MSO_SERVER_URL) + path;
+        String url = systemProperties.getProperty(MsoProperties.MSO_SERVER_URL) + path;
         logger.debug(EELFLoggerDelegate.debugLogger,"<== " +  methodName + " sending request to url= " + url);
         // Change the content length
         return client.target(url)
@@ -307,7 +309,7 @@ public class RestMsoImplementation implements RestInterface {
             MultivaluedHashMap<String, Object> commonHeaders = initMsoClient();
             userId.ifPresent(id->commonHeaders.put("X-RequestorID", Collections.singletonList(id)));
 
-            url = SystemProperties.getProperty(MsoProperties.MSO_SERVER_URL) + path;
+            url = systemProperties.getProperty(MsoProperties.MSO_SERVER_URL) + path;
             Logging.logRequest(outgoingRequestsLogger, httpMethod, url, payload);
             // Change the content length
             final Invocation.Builder restBuilder = client.target(url)
@@ -369,7 +371,7 @@ public class RestMsoImplementation implements RestInterface {
 
             MultivaluedHashMap<String, Object> commonHeaders = initMsoClient();
 
-            url = SystemProperties.getProperty(MsoProperties.MSO_SERVER_URL) + path;
+            url = systemProperties.getProperty(MsoProperties.MSO_SERVER_URL) + path;
             Logging.logRequest(outgoingRequestsLogger, HttpMethod.PUT, url, r);
             // Change the content length
             final Response cres = client.target(url)
index 0c05b80..6a498fc 100644 (file)
@@ -50,6 +50,7 @@ import org.onap.vid.mso.MsoUtil;
 import org.onap.vid.mso.RestMsoImplementation;
 import org.onap.vid.mso.RestObject;
 import org.onap.vid.utils.Logging;
+import org.onap.vid.utils.SystemPropertiesWrapper;
 
 
 /**
@@ -71,8 +72,8 @@ public class MsoRestClientNew extends RestMsoImplementation implements MsoInterf
      */
     EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(MsoRestClientNew.class);
 
-    public MsoRestClientNew(SyncRestClient client, String baseUrl, HttpsAuthClient authClient) {
-        super(authClient);
+    public MsoRestClientNew(SyncRestClient client, String baseUrl, HttpsAuthClient authClient, SystemPropertiesWrapper systemPropertiesWrapper) {
+        super(authClient,systemPropertiesWrapper);
         this.client = client;
         this.baseUrl = baseUrl;
         this.commonHeaders = initCommonHeaders();
@@ -525,8 +526,8 @@ public class MsoRestClientNew extends RestMsoImplementation implements MsoInterf
     }
 
     private Map<String, String> initCommonHeaders() {
-        String username = SystemProperties.getProperty(MsoProperties.MSO_USER_NAME);
-        String password = SystemProperties.getProperty(MsoProperties.MSO_PASSWORD);
+        String username = systemProperties.getProperty(MsoProperties.MSO_USER_NAME);
+        String password = systemProperties.getProperty(MsoProperties.MSO_PASSWORD);
         String decrypted_password = Password.deobfuscate(password);
 
         String authString = username + ":" + decrypted_password;
@@ -538,7 +539,7 @@ public class MsoRestClientNew extends RestMsoImplementation implements MsoInterf
         map.put(HttpHeaders.AUTHORIZATION,  "Basic " + authStringEnc);
         map.put(HttpHeaders.ACCEPT, MediaType.APPLICATION_JSON);
         map.put(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON);
-        map.put(X_FROM_APP_ID, SystemProperties.getProperty(SystemProperties.APP_DISPLAY_NAME));
+        map.put(X_FROM_APP_ID, systemProperties.getProperty(SystemProperties.APP_DISPLAY_NAME));
         map.put(SystemProperties.ECOMP_REQUEST_ID, Logging.extractOrGenerateRequestId());
         return ImmutableMap.copyOf(map);
     }
index 4cba537..102c89a 100644 (file)
@@ -24,11 +24,11 @@ import io.joshworks.restclient.request.HttpRequest;
 import org.glassfish.jersey.client.JerseyInvocation;
 import org.mockito.InjectMocks;
 import org.mockito.Mock;
-import org.onap.portalsdk.core.util.SystemProperties;
 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.SystemPropertiesWrapper;
 import org.springframework.http.HttpMethod;
 import org.springframework.http.HttpStatus;
 import org.testng.annotations.BeforeClass;
@@ -72,15 +72,19 @@ public class RestMsoImplementationTest  {
     @Mock
     private JerseyInvocation jerseyInvocation;
 
+    @Mock
+    private SystemPropertiesWrapper systemProperties;
+
     @InjectMocks
-    private RestMsoImplementation restMsoImplementation = new RestMsoImplementation(mockHttpsAuthClient);
+    private RestMsoImplementation restMsoImplementation = new RestMsoImplementation(mockHttpsAuthClient, systemProperties);
 
-    String path = "/test_path/";
-    String rawData = "test-row-data";
+    private String path = "/test_path/";
+    private String rawData = "test-row-data";
 
     @BeforeClass
     public void setUp(){
         initMocks(this);
+        when(systemProperties.getProperty(MsoProperties.MSO_PASSWORD)).thenReturn("OBF:1ghz1kfx1j1w1m7w1i271e8q1eas1hzj1m4i1iyy1kch1gdz");
     }
 
     @Test
@@ -127,7 +131,8 @@ public class RestMsoImplementationTest  {
         RestObject<HttpRequest> restObject = new RestObject<>();
 
         prepareMocks("",HttpStatus.ACCEPTED.value(),"");
-        when(mockClient.target(SystemProperties.getProperty(MsoProperties.MSO_SERVER_URL))).thenThrow(new MsoTestException("test-target-exception"));
+        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);
@@ -418,4 +423,4 @@ public class RestMsoImplementationTest  {
         }
     }
 
-}
\ No newline at end of file
+}
index 12fd4a5..832aa09 100644 (file)
@@ -45,6 +45,7 @@ import org.onap.vid.mso.MsoProperties;
 import org.onap.vid.mso.MsoResponseWrapper;
 import org.onap.vid.mso.MsoResponseWrapperInterface;
 import org.onap.vid.mso.RestObject;
+import org.onap.vid.utils.SystemPropertiesWrapper;
 import org.springframework.test.context.ContextConfiguration;
 
 @ContextConfiguration(classes = {SystemProperties.class})
@@ -473,10 +474,10 @@ public class MsoRestClientNewTest {
 
     private MsoRestClientNew msoRestClient() {
         final WebConfig webConfig = new WebConfig();
-        return new MsoRestClientNew(new SyncRestClient(webConfig.unirestFasterxmlObjectMapper(new ObjectMapper())), baseUrl(),null);
+        return new MsoRestClientNew(new SyncRestClient(webConfig.unirestFasterxmlObjectMapper(new ObjectMapper())), baseUrl(), null, new SystemPropertiesWrapper());
     }
 
     private MsoRestClientNew createTestSubject() {
-        return new MsoRestClientNew(null, "",null);
+        return new MsoRestClientNew(null, "", null, new SystemPropertiesWrapper());
     }
 }
index 839e6e6..050fa0d 100644 (file)
@@ -44,12 +44,14 @@ import org.onap.vid.changeManagement.WorkflowRequestDetail;
 import org.onap.vid.client.SyncRestClient;
 import org.onap.vid.controller.LocalWebConfig;
 import org.onap.vid.model.RequestReferencesContainer;
+import org.onap.vid.mso.MsoProperties;
 import org.onap.vid.mso.MsoResponseWrapper;
 import org.onap.vid.mso.MsoResponseWrapperInterface;
 import org.onap.vid.mso.MsoUtil;
 import org.onap.vid.mso.RestObject;
 import org.onap.vid.mso.model.CloudConfiguration;
 import org.onap.vid.mso.model.RequestReferences;
+import org.onap.vid.utils.SystemPropertiesWrapper;
 import org.springframework.test.context.ContextConfiguration;
 import org.springframework.test.context.web.WebAppConfiguration;
 import org.testng.annotations.BeforeClass;
@@ -75,6 +77,8 @@ public class MsoRestClientTest {
     @Mock
     private SyncRestClient client;
 
+    @Mock
+    private SystemPropertiesWrapper systemProperties;
 
     private MsoRestClientNew restClient;
 
@@ -82,8 +86,9 @@ public class MsoRestClientTest {
     @BeforeClass
     private void setUp(){
         initMocks(this);
-        restClient = new MsoRestClientNew(client,baseUrl,null);
-
+        when(systemProperties.getProperty(MsoProperties.MSO_PASSWORD)).thenReturn("OBF:1ghz1kfx1j1w1m7w1i271e8q1eas1hzj1m4i1iyy1kch1gdz");
+        when(systemProperties.getProperty("app_display_name")).thenReturn("vid");
+        restClient = new MsoRestClientNew(client,baseUrl,null,systemProperties);
     }
 
     @Test