Fixed the CLM Issues
[holmes/common.git] / holmes-actions / src / test / java / org / onap / holmes / common / aai / AaiQueryTest.java
index 44e39b1..0340e04 100644 (file)
@@ -1,12 +1,12 @@
 /**
- * Copyright 2017 ZTE Corporation.
- *
+ * Copyright 2017-2020 ZTE Corporation.
+ * <p>
  * 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
- *
+ * <p>
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * <p>
  * 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.
  */
 
 package org.onap.holmes.common.aai;
-import static org.easymock.EasyMock.anyObject;
-import static org.hamcrest.core.IsEqual.equalTo;
-import static org.junit.Assert.assertThat;
-import static org.powermock.api.mockito.PowerMockito.when;
 
-import java.util.HashMap;
-import java.util.Map;
 import org.apache.http.HttpResponse;
+import org.apache.http.client.methods.HttpGet;
+import org.apache.http.impl.client.CloseableHttpClient;
+import org.easymock.EasyMock;
+import org.junit.BeforeClass;
 import org.junit.Rule;
 import org.junit.Test;
 import org.junit.rules.ExpectedException;
@@ -34,13 +32,22 @@ import org.onap.holmes.common.config.MicroServiceConfig;
 import org.onap.holmes.common.exception.CorrelationException;
 import org.onap.holmes.common.utils.HttpsUtils;
 import org.powermock.api.easymock.PowerMock;
-import org.powermock.api.mockito.PowerMockito;
+import org.powermock.core.classloader.annotations.PowerMockIgnore;
 import org.powermock.core.classloader.annotations.PrepareForTest;
 import org.powermock.modules.junit4.PowerMockRunner;
 import org.powermock.reflect.Whitebox;
 
+import java.util.HashMap;
+import java.util.Map;
+
+import static org.easymock.EasyMock.anyObject;
+import static org.easymock.EasyMock.expect;
+import static org.hamcrest.core.IsEqual.equalTo;
+import static org.junit.Assert.assertThat;
+
 
-@PrepareForTest({AaiQuery.class, HttpsUtils.class, MicroServiceConfig.class})
+@PrepareForTest({AaiQuery.class, HttpsUtils.class, MicroServiceConfig.class, HttpGet.class})
+@PowerMockIgnore("javax.net.ssl.*")
 @RunWith(PowerMockRunner.class)
 public class AaiQueryTest {
 
@@ -50,6 +57,11 @@ public class AaiQueryTest {
     private AaiQuery aaiQuery;
     private AaiResponseUtil aaiResponseUtil;
 
+    @BeforeClass
+    static public void before() {
+        System.setProperty("ENABLE_ENCRYPT", "true");
+    }
+
     @Test
     public void testAaiQuery_getAaiVnfData_ok() throws Exception {
         PowerMock.resetAll();
@@ -88,22 +100,26 @@ public class AaiQueryTest {
         aaiQuery = PowerMock.createPartialMock(AaiQuery.class, "getVmResourceLinks");
         aaiResponseUtil = new AaiResponseUtil();
         Whitebox.setInternalState(aaiQuery, "aaiResponseUtil", aaiResponseUtil);
-        PowerMockito.mockStatic(HttpsUtils.class);
+        PowerMock.mockStatic(HttpsUtils.class);
         Map<String, String> headers = new HashMap<>();
         headers.put("X-TransactionId", AaiConfig.X_TRANSACTION_ID);
         headers.put("X-FromAppId", AaiConfig.X_FROMAPP_ID);
         headers.put("Authorization", AaiConfig.getAuthenticationCredentials());
         headers.put("Accept", "application/json");
-        String url = "http://10.96.33.33/api/aai-cloudInfrastructure/v11";
+        String url = "https://aai.onap:8443/aai/v11/cloud-infrastructure";
         HttpResponse httpResponse = PowerMock.createMock(HttpResponse.class);
-        when(HttpsUtils.get(url, headers)).thenReturn(httpResponse);
-        when(HttpsUtils.extractResponseEntity(httpResponse)).thenReturn("{}");
-
-        PowerMockito.mockStatic(MicroServiceConfig.class);
-        when(MicroServiceConfig.getMsbServerAddrWithHttpPrefix()).thenReturn("http://10.96.33.33:80");
+        CloseableHttpClient httpClient = PowerMock.createMock(CloseableHttpClient.class);
+        expect(HttpsUtils.getHttpsClient(30000)).andReturn(httpClient);
+        HttpGet httpGet = new HttpGet(url);
+        PowerMock.expectNew(HttpGet.class, url).andReturn(httpGet);
+        expect(HttpsUtils.get(anyObject(HttpGet.class), anyObject(Map.class),
+                anyObject(CloseableHttpClient.class))).andReturn(httpResponse);
+        expect(HttpsUtils.extractResponseEntity(httpResponse)).andReturn("{}");
 
         PowerMock.expectPrivate(aaiQuery, "getVmResourceLinks", "test1", "test2")
                 .andReturn("/aai/v11/cloud-infrastructure");
+        PowerMock.expectPrivate(httpClient, "close");
+        EasyMock.expectLastCall();
         PowerMock.replayAll();
         VmEntity vmEntity = Whitebox.invokeMethod(aaiQuery, "getAaiVmData", "test1", "test2");
         PowerMock.verifyAll();
@@ -121,21 +137,24 @@ public class AaiQueryTest {
         aaiResponseUtil = new AaiResponseUtil();
         Whitebox.setInternalState(aaiQuery, "aaiResponseUtil", aaiResponseUtil);
 
-        PowerMockito.mockStatic(HttpsUtils.class);
+        PowerMock.mockStatic(HttpsUtils.class);
         Map<String, String> headers = new HashMap<>();
         headers.put("X-TransactionId", AaiConfig.X_TRANSACTION_ID);
         headers.put("X-FromAppId", AaiConfig.X_FROMAPP_ID);
         headers.put("Authorization", AaiConfig.getAuthenticationCredentials());
         headers.put("Accept", "application/json");
-        String url = "http://10.96.33.33/api/aai-cloudInfrastructure/v11";
-
-        when(HttpsUtils.get(url, headers)).thenThrow(new CorrelationException(""));
-
-        PowerMockito.mockStatic(MicroServiceConfig.class);
-        when(MicroServiceConfig.getMsbServerAddrWithHttpPrefix()).thenReturn("http://10.96.33.33:80");
-
+        String url = "https://aai.onap:8443/aai/v11/cloud-infrastructure";
+        CloseableHttpClient httpClient = PowerMock.createMock(CloseableHttpClient.class);
+        EasyMock.expect(HttpsUtils.getHttpsClient(30000)).andReturn(httpClient);
+        HttpGet httpGet = new HttpGet(url);
+        PowerMock.expectNew(HttpGet.class, url).andReturn(httpGet);
+        EasyMock.expect(HttpsUtils.get(anyObject(HttpGet.class), anyObject(Map.class),
+                anyObject(CloseableHttpClient.class))).andThrow(new CorrelationException(""));
+        PowerMock.mockStatic(MicroServiceConfig.class);
         PowerMock.expectPrivate(aaiQuery, "getVmResourceLinks", "test1", "test2")
                 .andReturn("/aai/v11/cloud-infrastructure");
+        PowerMock.expectPrivate(httpClient, "close");
+        EasyMock.expectLastCall();
         PowerMock.replayAll();
         Whitebox.invokeMethod(aaiQuery, "getAaiVmData", "test1", "test2");
         PowerMock.verifyAll();
@@ -160,7 +179,6 @@ public class AaiQueryTest {
     }
 
 
-
     @Test
     public void testAaiQuery_getResourceLinksResponse() throws Exception {
         PowerMock.resetAll();
@@ -169,9 +187,6 @@ public class AaiQueryTest {
         aaiResponseUtil = new AaiResponseUtil();
         Whitebox.setInternalState(aaiQuery, "aaiResponseUtil", aaiResponseUtil);
 
-        PowerMockito.mockStatic(MicroServiceConfig.class);
-        when(MicroServiceConfig.getMsbServerAddrWithHttpPrefix()).thenReturn("host_url");
-
         PowerMock.expectPrivate(aaiQuery, "getResponse", anyObject(String.class)).andReturn("").anyTimes();
         PowerMock.replayAll();
         String resource = Whitebox.invokeMethod(aaiQuery, "getResourceLinksResponse", "test1", "test2");
@@ -188,9 +203,6 @@ public class AaiQueryTest {
         aaiResponseUtil = new AaiResponseUtil();
         Whitebox.setInternalState(aaiQuery, "aaiResponseUtil", aaiResponseUtil);
 
-        PowerMockito.mockStatic(MicroServiceConfig.class);
-        when(MicroServiceConfig.getMsbServerAddrWithHttpPrefix()).thenReturn("host_url");
-
         PowerMock.expectPrivate(aaiQuery, "getResponse", anyObject(String.class)).andReturn("").anyTimes();
         PowerMock.replayAll();
         String resource = Whitebox.invokeMethod(aaiQuery, "getVnfDataResponse", "test1", "test2");
@@ -203,7 +215,7 @@ public class AaiQueryTest {
     public void testAaiQuery_getResponse_ok() throws Exception {
         PowerMock.resetAll();
         aaiQuery = new AaiQuery();
-        PowerMockito.mockStatic(HttpsUtils.class);
+        PowerMock.mockStatic(HttpsUtils.class);
         Map<String, String> headers = new HashMap<>();
         headers.put("X-TransactionId", AaiConfig.X_TRANSACTION_ID);
         headers.put("X-FromAppId", AaiConfig.X_FROMAPP_ID);
@@ -212,8 +224,15 @@ public class AaiQueryTest {
         String url = "host_url";
 
         HttpResponse httpResponse = PowerMock.createMock(HttpResponse.class);
-        when(HttpsUtils.get(url, headers)).thenReturn(httpResponse);
-        when(HttpsUtils.extractResponseEntity(httpResponse)).thenReturn("");
+        CloseableHttpClient httpClient = PowerMock.createMock(CloseableHttpClient.class);
+        expect(HttpsUtils.getHttpsClient(30000)).andReturn(httpClient);
+        HttpGet httpGet = new HttpGet(url);
+        PowerMock.expectNew(HttpGet.class, url).andReturn(httpGet);
+        expect(HttpsUtils.get(anyObject(HttpGet.class), anyObject(Map.class),
+                anyObject(CloseableHttpClient.class))).andReturn(httpResponse);
+        expect(HttpsUtils.extractResponseEntity(httpResponse)).andReturn("");
+        PowerMock.expectPrivate(httpClient, "close");
+        EasyMock.expectLastCall();
 
         PowerMock.replayAll();
         String resource = Whitebox.invokeMethod(aaiQuery, "getResponse", "host_url");
@@ -229,14 +248,20 @@ public class AaiQueryTest {
         thrown.expectMessage("Failed to get data from aai");
         aaiQuery = new AaiQuery();
 
-        PowerMockito.mockStatic(HttpsUtils.class);
+        PowerMock.mockStatic(HttpsUtils.class);
         Map<String, String> headers = new HashMap<>();
         headers.put("X-TransactionId", AaiConfig.X_TRANSACTION_ID);
         headers.put("X-FromAppId", AaiConfig.X_FROMAPP_ID);
         headers.put("Authorization", AaiConfig.getAuthenticationCredentials());
         headers.put("Accept", "application/json");
         String url = "host_url";
-        when(HttpsUtils.get(url, headers)).thenThrow(new CorrelationException(""));
+        CloseableHttpClient httpClient = PowerMock.createMock(CloseableHttpClient.class);
+        expect(HttpsUtils.getHttpsClient(30000)).andReturn(httpClient);
+        HttpGet httpGet = new HttpGet(url);
+        PowerMock.expectNew(HttpGet.class, url).andReturn(httpGet);
+        expect(HttpsUtils.get(httpGet, headers, httpClient)).andThrow(new CorrelationException(""));
+        PowerMock.expectPrivate(httpClient, "close");
+        EasyMock.expectLastCall();
         PowerMock.replayAll();
         String resource = Whitebox.invokeMethod(aaiQuery, "getResponse", "host_url");
         PowerMock.verifyAll();
@@ -257,63 +282,17 @@ public class AaiQueryTest {
         assertThat(actual.get("Accept"), equalTo("application/json"));
     }
 
-    @Test
-    public void testAaiQuery_getBaseUrl_msb() throws Exception {
-        PowerMock.resetAll();
-        aaiQuery = new AaiQuery();
-
-        PowerMockito.mockStatic(MicroServiceConfig.class);
-        when(MicroServiceConfig.getMsbServerAddrWithHttpPrefix()).thenReturn("http://10.96.33.33:80");
-        when(MicroServiceConfig.getServiceConfigInfoFromCBS("nihao")).thenReturn("");
-
-        PowerMock.replayAll();
-        String actual = Whitebox.invokeMethod(aaiQuery,"getBaseUrl", "/url");
-        PowerMock.verifyAll();
-        assertThat(actual, equalTo("http://10.96.33.33/url"));
-    }
-
     @Test
     public void testAaiQuery_getBaseUrl_aaiurl() throws Exception {
         PowerMock.resetAll();
         aaiQuery = new AaiQuery();
 
-        PowerMockito.mockStatic(MicroServiceConfig.class);
-        when(MicroServiceConfig.getMsbServerAddrWithHttpPrefix()).thenThrow(new NullPointerException());
-        when(MicroServiceConfig.getServiceConfigInfoFromCBS("aai_config")).thenReturn("aai");
-
-        PowerMock.replayAll();
-        String actual = Whitebox.invokeMethod(aaiQuery,"getBaseUrl", "url");
-        System.out.println(actual);
-        PowerMock.verifyAll();
-        assertThat(actual, equalTo("https://aaiurl"));
-    }
-
-    @Test
-    public void testAaiQuery_getBaseUrl_exception() throws Exception {
-        PowerMock.resetAll();
-        aaiQuery = new AaiQuery();
-
-        PowerMockito.mockStatic(MicroServiceConfig.class);
-        when(MicroServiceConfig.getMsbServerAddrWithHttpPrefix()).thenThrow(new NullPointerException());
-        when(MicroServiceConfig.getServiceConfigInfoFromCBS("aai_config"))
-                .thenThrow(new NullPointerException());
+        PowerMock.mockStatic(MicroServiceConfig.class);
 
         PowerMock.replayAll();
-        String actual = Whitebox.invokeMethod(aaiQuery,"getBaseUrl", "url");
-        System.out.println(actual);
+        String actual = Whitebox.invokeMethod(aaiQuery, "getBaseUrl", "/url");
         PowerMock.verifyAll();
-        assertThat(actual, equalTo(""));
-    }
 
-    @Test
-    public void testAaiQuery_getMsbSuffixAddr_Ok() throws Exception {
-        PowerMock.resetAll();
-        String url = "/aai/v11/network/generic-vnfs/generic-vnf?";
-        String expect = "/api/aai-network/v11/generic-vnfs/generic-vnf?";
-        aaiQuery = new AaiQuery();
-        PowerMock.replayAll();
-        String actual = Whitebox.invokeMethod(aaiQuery, "getMsbSuffixAddr", url);
-        PowerMock.verifyAll();
-        assertThat(actual, equalTo(expect));
+        assertThat(actual, equalTo("https://aai.onap:8443/url"));
     }
 }