X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=holmes-actions%2Fsrc%2Ftest%2Fjava%2Forg%2Fonap%2Fholmes%2Fcommon%2Faai%2FAaiQueryTest.java;h=0340e04cd64cf31c5bde3545e27b85cf97857735;hb=490fc3c1fafe50d5fb0e23db5cfd10730be96866;hp=59f8848b3e252e513939cb39831ea68889fa937b;hpb=c9ed775685b01f5622618216748eeac3000285c4;p=holmes%2Fcommon.git diff --git a/holmes-actions/src/test/java/org/onap/holmes/common/aai/AaiQueryTest.java b/holmes-actions/src/test/java/org/onap/holmes/common/aai/AaiQueryTest.java index 59f8848..0340e04 100644 --- a/holmes-actions/src/test/java/org/onap/holmes/common/aai/AaiQueryTest.java +++ b/holmes-actions/src/test/java/org/onap/holmes/common/aai/AaiQueryTest.java @@ -1,12 +1,12 @@ /** - * Copyright 2017 ZTE Corporation. - * + * Copyright 2017-2020 ZTE Corporation. + *

* 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 - * + *

+ * 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. @@ -15,13 +15,12 @@ */ package org.onap.holmes.common.aai; -import static org.easymock.EasyMock.anyObject; -import static org.hamcrest.CoreMatchers.equalTo; -import static org.hamcrest.MatcherAssert.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; @@ -33,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; -@PrepareForTest({AaiQuery.class, HttpsUtils.class, MicroServiceConfig.class}) +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, HttpGet.class}) +@PowerMockIgnore("javax.net.ssl.*") @RunWith(PowerMockRunner.class) public class AaiQueryTest { @@ -49,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(); @@ -87,19 +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 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)).thenReturn("{}"); - - PowerMockito.mockStatic(MicroServiceConfig.class); - when(MicroServiceConfig.getMsbServerAddr()).thenReturn("host_url"); - - PowerMock.expectPrivate(aaiQuery, "getVmResourceLinks", "test1", "test2").andReturn(""); + String url = "https://aai.onap:8443/aai/v11/cloud-infrastructure"; + HttpResponse httpResponse = PowerMock.createMock(HttpResponse.class); + 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(); @@ -107,38 +127,6 @@ public class AaiQueryTest { assertThat(vmEntity == null, equalTo(true)); } - - - @Test - public void testAaiQuery_getAaiVmData_exception() throws Exception { - PowerMock.resetAll(); - thrown.expect(CorrelationException.class); - thrown.expectMessage("Failed to convert aai vm response data to vm entity"); - aaiQuery = PowerMock.createPartialMock(AaiQuery.class, "getVmResourceLinks"); - - aaiResponseUtil = new AaiResponseUtil(); - Whitebox.setInternalState(aaiQuery, "aaiResponseUtil", aaiResponseUtil); - - PowerMockito.mockStatic(HttpsUtils.class); - Map 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)).thenReturn(""); - - PowerMockito.mockStatic(MicroServiceConfig.class); - when(MicroServiceConfig.getMsbServerAddr()).thenReturn("host_url"); - - PowerMock.expectPrivate(aaiQuery, "getVmResourceLinks", "test1", "test2").andReturn(""); - - PowerMock.replayAll(); - Whitebox.invokeMethod(aaiQuery, "getAaiVmData", "test1", "test2"); - PowerMock.verifyAll(); - } - @Test public void testAaiQuery_getAaiVmData_httpsutils_exception() throws Exception { PowerMock.resetAll(); @@ -149,20 +137,24 @@ public class AaiQueryTest { aaiResponseUtil = new AaiResponseUtil(); Whitebox.setInternalState(aaiQuery, "aaiResponseUtil", aaiResponseUtil); - PowerMockito.mockStatic(HttpsUtils.class); + PowerMock.mockStatic(HttpsUtils.class); Map 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("")); - - PowerMockito.mockStatic(MicroServiceConfig.class); - when(MicroServiceConfig.getMsbServerAddr()).thenReturn("host_url"); - - PowerMock.expectPrivate(aaiQuery, "getVmResourceLinks", "test1", "test2").andReturn(""); + 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(); @@ -186,23 +178,6 @@ public class AaiQueryTest { assertThat(resource, equalTo("le-vserver-id-val-51834")); } - @Test - public void testAaiQuery_getVmResourceLinks_exception() throws Exception { - PowerMock.resetAll(); - thrown.expect(CorrelationException.class); - thrown.expectMessage("Failed to get aai resource link"); - aaiQuery = PowerMock.createPartialMock(AaiQuery.class, "getResourceLinksResponse"); - - aaiResponseUtil = new AaiResponseUtil(); - Whitebox.setInternalState(aaiQuery, "aaiResponseUtil", aaiResponseUtil); - - PowerMock.expectPrivate(aaiQuery, "getResourceLinksResponse", "test1", "test2").andReturn(""); - PowerMock.replayAll(); - String resource = Whitebox.invokeMethod(aaiQuery, "getVmResourceLinks", "test1", "test2"); - PowerMock.verifyAll(); - - assertThat(resource, equalTo("le-vserver-id-val-51834")); - } @Test public void testAaiQuery_getResourceLinksResponse() throws Exception { @@ -212,9 +187,6 @@ public class AaiQueryTest { aaiResponseUtil = new AaiResponseUtil(); Whitebox.setInternalState(aaiQuery, "aaiResponseUtil", aaiResponseUtil); - PowerMockito.mockStatic(MicroServiceConfig.class); - when(MicroServiceConfig.getMsbServerAddr()).thenReturn("host_url"); - PowerMock.expectPrivate(aaiQuery, "getResponse", anyObject(String.class)).andReturn("").anyTimes(); PowerMock.replayAll(); String resource = Whitebox.invokeMethod(aaiQuery, "getResourceLinksResponse", "test1", "test2"); @@ -231,9 +203,6 @@ public class AaiQueryTest { aaiResponseUtil = new AaiResponseUtil(); Whitebox.setInternalState(aaiQuery, "aaiResponseUtil", aaiResponseUtil); - PowerMockito.mockStatic(MicroServiceConfig.class); - when(MicroServiceConfig.getMsbServerAddr()).thenReturn("host_url"); - PowerMock.expectPrivate(aaiQuery, "getResponse", anyObject(String.class)).andReturn("").anyTimes(); PowerMock.replayAll(); String resource = Whitebox.invokeMethod(aaiQuery, "getVnfDataResponse", "test1", "test2"); @@ -246,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 headers = new HashMap<>(); headers.put("X-TransactionId", AaiConfig.X_TRANSACTION_ID); headers.put("X-FromAppId", AaiConfig.X_FROMAPP_ID); @@ -254,7 +223,16 @@ public class AaiQueryTest { headers.put("Accept", "application/json"); String url = "host_url"; - when(HttpsUtils.get(url, headers)).thenReturn(""); + HttpResponse httpResponse = PowerMock.createMock(HttpResponse.class); + 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"); @@ -270,22 +248,24 @@ public class AaiQueryTest { thrown.expectMessage("Failed to get data from aai"); aaiQuery = new AaiQuery(); - PowerMockito.mockStatic(HttpsUtils.class); + PowerMock.mockStatic(HttpsUtils.class); Map 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(); - assertThat(resource, equalTo("")); - } @Test @@ -302,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.getMsbServerAddr()).thenReturn("msb"); - when(MicroServiceConfig.getServiceAddrInfoFromCBS("nihao")).thenReturn(""); - - PowerMock.replayAll(); - String actual = Whitebox.invokeMethod(aaiQuery,"getBaseUrl", "url"); - PowerMock.verifyAll(); - assertThat(actual, equalTo("msburl")); - } - @Test public void testAaiQuery_getBaseUrl_aaiurl() throws Exception { PowerMock.resetAll(); aaiQuery = new AaiQuery(); - PowerMockito.mockStatic(MicroServiceConfig.class); - when(MicroServiceConfig.getMsbServerAddr()).thenThrow(new NullPointerException()); - when(MicroServiceConfig.getServiceAddrInfoFromCBS("aai_config")).thenReturn("aai"); + 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("https:\\\\aaiurl")); - } - - @Test - public void testAaiQuery_getBaseUrl_exception() throws Exception { - PowerMock.resetAll(); - aaiQuery = new AaiQuery(); - PowerMockito.mockStatic(MicroServiceConfig.class); - when(MicroServiceConfig.getMsbServerAddr()).thenThrow(new NullPointerException()); - when(MicroServiceConfig.getServiceAddrInfoFromCBS("aai_config")) - .thenThrow(new NullPointerException()); - - PowerMock.replayAll(); - String actual = Whitebox.invokeMethod(aaiQuery,"getBaseUrl", "url"); - System.out.println(actual); - 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 = "/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")); } }