summaryrefslogtreecommitdiffstats
path: root/dcae-analytics-aai/src/test
diff options
context:
space:
mode:
authoran4828 <nekrassov@att.com>2017-09-26 14:35:17 -0400
committeran4828 <nekrassov@att.com>2017-09-26 14:35:24 -0400
commit06044df56fb07f4b368888581752855595e7b147 (patch)
tree6400a3a6ede762887861a621b7fdbfadd25190d5 /dcae-analytics-aai/src/test
parent475cb8c867038acd73ff540173d54bac3947c610 (diff)
TCA: Support for VES/A&AI enrichment
Change-Id: I75e0f8e034b9334e918304739e4d73dd12c1ff62 Signed-off-by: an4828 <nekrassov@att.com> Issue-ID: DCAEGEN2-116
Diffstat (limited to 'dcae-analytics-aai/src/test')
-rw-r--r--dcae-analytics-aai/src/test/java/org/openecomp/dcae/apod/analytics/aai/BaseAnalyticsAAIGuiceUnitTest.java31
-rw-r--r--dcae-analytics-aai/src/test/java/org/openecomp/dcae/apod/analytics/aai/BaseAnalyticsAAIUnitTest.java83
-rw-r--r--dcae-analytics-aai/src/test/java/org/openecomp/dcae/apod/analytics/aai/it/AAIClientFactoryIT.java81
-rw-r--r--dcae-analytics-aai/src/test/java/org/openecomp/dcae/apod/analytics/aai/it/BaseAnalyticsAAIIT.java76
-rw-r--r--dcae-analytics-aai/src/test/java/org/openecomp/dcae/apod/analytics/aai/service/AAIEnrichmentClientImplTest.java96
-rw-r--r--dcae-analytics-aai/src/test/java/org/openecomp/dcae/apod/analytics/aai/service/AAIHttpClientImplTest.java109
-rw-r--r--dcae-analytics-aai/src/test/resources/logback-test.xml57
7 files changed, 533 insertions, 0 deletions
diff --git a/dcae-analytics-aai/src/test/java/org/openecomp/dcae/apod/analytics/aai/BaseAnalyticsAAIGuiceUnitTest.java b/dcae-analytics-aai/src/test/java/org/openecomp/dcae/apod/analytics/aai/BaseAnalyticsAAIGuiceUnitTest.java
new file mode 100644
index 0000000..8c18a74
--- /dev/null
+++ b/dcae-analytics-aai/src/test/java/org/openecomp/dcae/apod/analytics/aai/BaseAnalyticsAAIGuiceUnitTest.java
@@ -0,0 +1,31 @@
+/*
+ * ===============================LICENSE_START======================================
+ * dcae-analytics
+ * ================================================================================
+ * Copyright © 2017 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.
+ * You may obtain a copy of the License at
+ *
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============================LICENSE_END===========================================
+ */
+
+package org.openecomp.dcae.apod.analytics.aai;
+
+import org.junit.runner.RunWith;
+import org.openecomp.dcae.apod.analytics.test.runner.GuiceJUnitRunner;
+
+/**
+ * @author Rajiv Singla . Creation Date: 10/20/2016.
+ */
+@RunWith(GuiceJUnitRunner.class)
+public abstract class BaseAnalyticsAAIGuiceUnitTest extends BaseAnalyticsAAIUnitTest {
+}
diff --git a/dcae-analytics-aai/src/test/java/org/openecomp/dcae/apod/analytics/aai/BaseAnalyticsAAIUnitTest.java b/dcae-analytics-aai/src/test/java/org/openecomp/dcae/apod/analytics/aai/BaseAnalyticsAAIUnitTest.java
new file mode 100644
index 0000000..955b5b1
--- /dev/null
+++ b/dcae-analytics-aai/src/test/java/org/openecomp/dcae/apod/analytics/aai/BaseAnalyticsAAIUnitTest.java
@@ -0,0 +1,83 @@
+/*
+ * ===============================LICENSE_START======================================
+ * dcae-analytics
+ * ================================================================================
+ * Copyright © 2017 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.
+ * You may obtain a copy of the License at
+ *
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============================LICENSE_END===========================================
+ */
+
+package org.openecomp.dcae.apod.analytics.aai;
+
+import org.openecomp.dcae.apod.analytics.aai.domain.config.AAIHttpClientConfig;
+import org.openecomp.dcae.apod.analytics.aai.domain.config.AAIHttpClientConfigBuilder;
+import org.openecomp.dcae.apod.analytics.test.BaseDCAEAnalyticsUnitTest;
+
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.util.LinkedHashMap;
+import java.util.Map;
+
+/**
+ * @author Rajiv Singla . Creation Date: 9/18/2017.
+ */
+public class BaseAnalyticsAAIUnitTest extends BaseDCAEAnalyticsUnitTest {
+
+ protected static final String AAI_HOST_NAME = "1.2.3.4";
+ protected static final Integer AAI_HOST_PORT_NUMBER = 1234;
+ protected static final String AAI_HOST_PROTOCOL = "https";
+ protected static final String AAI_VNF_ENRICHMENT_PATH = "/aai/v11/network/generic-vnfs/generic-vnf";
+ protected static final String AAI_VSERVER_NODE_QUERY_PATH = "/aai/v11/search/nodes-query";
+ protected static final String AAI_VSERVER_QUERY_RESPONSE_LOCATION = "data/json/aai/aai_vserver_resource_data.json";
+
+ protected static final Map<String, String> AAI_HEADERS = new LinkedHashMap<>();
+
+ static {
+ AAI_HEADERS.put("X-FromAppId", "vv-temp");
+ AAI_HEADERS.put("X-TransactionId", "vv-temp");
+ AAI_HEADERS.put("Accept", "application/json");
+ AAI_HEADERS.put("Real-Time", "true");
+ AAI_HEADERS.put("Content-Type", "application/json");
+ }
+
+ protected static final String PROXY_HOST = "proxy.att.com";
+ protected static final Integer PROXY_PORT = 80;
+ protected static final String PROXY_URL = String.format("http://username:password@%s:%s", PROXY_HOST, PROXY_PORT);
+
+ protected static final String AAI_USER_NAME = "DCAE";
+ protected static final String AAI_USER_PASSWORD = "DCAE";
+ protected static final boolean IGNORE_SSL_CERTIFICATE_ERRORS = true;
+
+ protected AAIHttpClientConfig getAAIHttpClientTestConfig(final boolean ignoreSSLCertificateErrors,
+ final String proxyURLString) {
+ URL proxyURL;
+ if (proxyURLString != null) {
+ try {
+ proxyURL = new URL(proxyURLString);
+ } catch (MalformedURLException e) {
+ throw new IllegalArgumentException("Proxy URL format is Invalid", e);
+ }
+ } else {
+ proxyURL = null;
+ }
+ return new AAIHttpClientConfigBuilder(AAI_HOST_NAME)
+ .setAaiProtocol(AAI_HOST_PROTOCOL)
+ .setAaiHostPortNumber(AAI_HOST_PORT_NUMBER)
+ .setAaiUserName(AAI_USER_NAME)
+ .setAaiUserPassword(AAI_USER_PASSWORD)
+ .setAaiProxyURL(proxyURL)
+ .setAaiIgnoreSSLCertificateErrors(ignoreSSLCertificateErrors).build();
+ }
+
+}
diff --git a/dcae-analytics-aai/src/test/java/org/openecomp/dcae/apod/analytics/aai/it/AAIClientFactoryIT.java b/dcae-analytics-aai/src/test/java/org/openecomp/dcae/apod/analytics/aai/it/AAIClientFactoryIT.java
new file mode 100644
index 0000000..5ebca27
--- /dev/null
+++ b/dcae-analytics-aai/src/test/java/org/openecomp/dcae/apod/analytics/aai/it/AAIClientFactoryIT.java
@@ -0,0 +1,81 @@
+/*
+ * ===============================LICENSE_START======================================
+ * dcae-analytics
+ * ================================================================================
+ * Copyright © 2017 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.
+ * You may obtain a copy of the License at
+ *
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============================LICENSE_END===========================================
+ */
+
+package org.openecomp.dcae.apod.analytics.aai.it;
+
+import com.fasterxml.jackson.databind.JsonNode;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.google.common.collect.ImmutableMap;
+import org.junit.Before;
+import org.junit.Ignore;
+import org.junit.Test;
+import org.openecomp.dcae.apod.analytics.aai.AAIClientFactory;
+import org.openecomp.dcae.apod.analytics.aai.service.AAIEnrichmentClient;
+
+import java.util.Collections;
+import java.util.Map;
+
+/**
+ * @author Rajiv Singla . Creation Date: 9/19/2017.
+ */
+@Ignore
+public class AAIClientFactoryIT extends BaseAnalyticsAAIIT {
+
+ private AAIEnrichmentClient enrichmentClient;
+
+ @Before
+ public void before() {
+ enrichmentClient = AAIClientFactory.create().getEnrichmentClient(getAAIHttpClientConfig());
+ }
+
+ @Test
+ public void testGetEnrichmentClientForVNF() throws Exception {
+ final String vnfName = "vCPEInfraVNF13";
+ Map<String, String> queryParams = ImmutableMap.of("vnf-name", vnfName);
+ final String vCPEInfraVNF13 =
+ enrichmentClient.getEnrichmentDetails(AAI_VNF_ENRICHMENT_PATH, queryParams, AAI_HEADERS);
+ LOG.info("Fetched VNF A&AI Enrichment Response: \n{}", vCPEInfraVNF13);
+
+ }
+
+ @Test
+ public void testGetVServerObjectResourceLink() throws Exception {
+ final String vServerName = "example-vserver-name-val-2";
+ Map<String, String> queryParams = ImmutableMap.of("search-node-type", "vserver", "filter",
+ "vserver-name:EQUALS:" + vServerName);
+ final String serverResourceLink =
+ enrichmentClient.getEnrichmentDetails(AAI_VSERVER_NODE_QUERY_PATH, queryParams, AAI_HEADERS);
+
+ LOG.info("Fetched Vserver Object Resource Link A&AI Enrichment Response: \n{}", serverResourceLink);
+
+ }
+
+ @Test
+ public void testGetVServerEnrichmentDetails() throws Exception {
+ final String serverResourceLink = fromStream(AAI_VSERVER_QUERY_RESPONSE_LOCATION);
+ final ObjectMapper objectMapper = new ObjectMapper();
+ final JsonNode jsonNode = objectMapper.readTree(serverResourceLink);
+ final String resourceLink = jsonNode.findPath("resource-link").asText();
+ final String vServerEnrichmentDetails =
+ enrichmentClient.getEnrichmentDetails(resourceLink, Collections.<String, String>emptyMap(),
+ AAI_HEADERS);
+ LOG.info("Fetched Vserver enrichment details: \n{}", vServerEnrichmentDetails);
+ }
+}
diff --git a/dcae-analytics-aai/src/test/java/org/openecomp/dcae/apod/analytics/aai/it/BaseAnalyticsAAIIT.java b/dcae-analytics-aai/src/test/java/org/openecomp/dcae/apod/analytics/aai/it/BaseAnalyticsAAIIT.java
new file mode 100644
index 0000000..8f54f77
--- /dev/null
+++ b/dcae-analytics-aai/src/test/java/org/openecomp/dcae/apod/analytics/aai/it/BaseAnalyticsAAIIT.java
@@ -0,0 +1,76 @@
+/*
+ * ===============================LICENSE_START======================================
+ * dcae-analytics
+ * ================================================================================
+ * Copyright © 2017 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.
+ * You may obtain a copy of the License at
+ *
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============================LICENSE_END===========================================
+ */
+
+package org.openecomp.dcae.apod.analytics.aai.it;
+
+import org.openecomp.dcae.apod.analytics.aai.domain.config.AAIHttpClientConfig;
+import org.openecomp.dcae.apod.analytics.aai.domain.config.AAIHttpClientConfigBuilder;
+import org.openecomp.dcae.apod.analytics.test.BaseDCAEAnalyticsIT;
+
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.util.LinkedHashMap;
+import java.util.Map;
+
+/**
+ * @author Rajiv Singla . Creation Date: 9/18/2017.
+ */
+public abstract class BaseAnalyticsAAIIT extends BaseDCAEAnalyticsIT {
+
+ protected static final String AAI_HOST_NAME = "1.2.3.4";
+ protected static final Integer AAI_HOST_PORT_NUMBER = 1234;
+ protected static final String AAI_HOST_PROTOCOL = "https";
+ protected static final String AAI_VNF_ENRICHMENT_PATH = "/aai/v11/network/generic-vnfs/generic-vnf";
+ protected static final String AAI_VSERVER_NODE_QUERY_PATH = "/aai/v11/search/nodes-query";
+ protected static final Map<String, String> AAI_HEADERS = new LinkedHashMap<>();
+
+
+ protected static final String AAI_VSERVER_QUERY_RESPONSE_LOCATION = "data/json/aai/aai_vserver_resource_data.json";
+
+ static {
+ AAI_HEADERS.put("X-FromAppId", "vv-temp");
+ AAI_HEADERS.put("X-TransactionId", "vv-temp");
+ AAI_HEADERS.put("Accept", "application/json");
+ AAI_HEADERS.put("Real-Time", "true");
+ AAI_HEADERS.put("Content-Type", "application/json");
+ }
+
+ protected static final String AAI_USER_NAME = "DCAE";
+ protected static final String AAI_USER_PASSWORD = "DCAE";
+ protected static final boolean IGNORE_SSL_CERTIFICATE_ERRORS = true;
+
+
+ protected AAIHttpClientConfig getAAIHttpClientConfig() {
+ try {
+ URL proxyURL = new URL("http://username:password@proxy.att.com:80");
+ return new AAIHttpClientConfigBuilder(AAI_HOST_NAME)
+ .setAaiProtocol(AAI_HOST_PROTOCOL)
+ .setAaiHostPortNumber(AAI_HOST_PORT_NUMBER)
+ .setAaiUserName(AAI_USER_NAME)
+ .setAaiUserPassword(AAI_USER_PASSWORD)
+ .setAaiProxyURL(proxyURL)
+ .setAaiIgnoreSSLCertificateErrors(IGNORE_SSL_CERTIFICATE_ERRORS).build();
+ } catch (MalformedURLException e) {
+ throw new IllegalArgumentException(e);
+ }
+ }
+
+
+}
diff --git a/dcae-analytics-aai/src/test/java/org/openecomp/dcae/apod/analytics/aai/service/AAIEnrichmentClientImplTest.java b/dcae-analytics-aai/src/test/java/org/openecomp/dcae/apod/analytics/aai/service/AAIEnrichmentClientImplTest.java
new file mode 100644
index 0000000..0fbd0e7
--- /dev/null
+++ b/dcae-analytics-aai/src/test/java/org/openecomp/dcae/apod/analytics/aai/service/AAIEnrichmentClientImplTest.java
@@ -0,0 +1,96 @@
+/*
+ * ===============================LICENSE_START======================================
+ * dcae-analytics
+ * ================================================================================
+ * Copyright © 2017 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.
+ * You may obtain a copy of the License at
+ *
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============================LICENSE_END===========================================
+ */
+
+package org.openecomp.dcae.apod.analytics.aai.service;
+
+import com.google.common.base.Optional;
+import com.google.common.collect.ImmutableMap;
+import org.apache.http.HttpEntity;
+import org.apache.http.HttpResponse;
+import org.apache.http.StatusLine;
+import org.apache.http.client.ResponseHandler;
+import org.apache.http.client.methods.HttpGet;
+import org.apache.http.impl.client.CloseableHttpClient;
+import org.junit.Assert;
+import org.junit.Test;
+import org.openecomp.dcae.apod.analytics.aai.BaseAnalyticsAAIUnitTest;
+import org.openecomp.dcae.apod.analytics.aai.domain.config.AAIHttpClientConfig;
+
+import java.io.BufferedInputStream;
+import java.io.ByteArrayInputStream;
+import java.io.InputStream;
+import java.util.Map;
+
+import static org.hamcrest.CoreMatchers.is;
+import static org.junit.Assert.assertThat;
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.anyInt;
+import static org.mockito.ArgumentMatchers.eq;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
+
+/**
+ * @author Rajiv Singla . Creation Date: 9/25/2017.
+ */
+public class AAIEnrichmentClientImplTest extends BaseAnalyticsAAIUnitTest {
+
+
+ @Test
+ public void testGetEnrichmentDetails() throws Exception {
+
+ final String enrichmentResponseJson = "{}";
+
+ final String vnfName = "vCPEInfraVNF13";
+ final AAIHttpClientConfig aaiHttpClientTestConfig = getAAIHttpClientTestConfig(true, PROXY_URL);
+ Map<String, String> queryParams = ImmutableMap.of("vnf-name", vnfName);
+ final AAIHttpClientFactory aaiHttpClientFactory = mock(AAIHttpClientFactory.class);
+ final CloseableHttpClient closeableHttpClient = mock(CloseableHttpClient.class);
+ final AAIHttpClient aaiHttpClient = mock(AAIHttpClient.class);
+ when(aaiHttpClientFactory.create(any(AAIHttpClientConfig.class))).thenReturn(aaiHttpClient);
+ when(aaiHttpClient.getAAIHttpClient()).thenReturn(closeableHttpClient);
+ when(closeableHttpClient.execute(any(HttpGet.class), any(ResponseHandler.class)))
+ .thenReturn(Optional.of(enrichmentResponseJson));
+ final AAIEnrichmentClientImpl aaiEnrichmentClient = new AAIEnrichmentClientImpl(
+ aaiHttpClientTestConfig, aaiHttpClientFactory);
+
+ final String enrichmentDetails = aaiEnrichmentClient.getEnrichmentDetails(AAI_VNF_ENRICHMENT_PATH,
+ queryParams, AAI_HEADERS);
+ assertThat("Enrichment response is same", enrichmentDetails, is(enrichmentResponseJson));
+
+ }
+
+ @Test
+ public void testAAiResponseHandler() throws Exception {
+ final ResponseHandler<Optional<String>> aaiResponseHandler =
+ AAIEnrichmentClientImpl.aaiResponseHandler();
+ final HttpResponse httpResponse = mock(HttpResponse.class);
+ final HttpEntity httpEntity = mock(HttpEntity.class);
+ final String response = "{}";
+ InputStream inputStream = new ByteArrayInputStream(response.getBytes());
+ when(httpEntity.getContent()).thenReturn(inputStream);
+ when(httpResponse.getEntity()).thenReturn(httpEntity);
+ final StatusLine statusLine = mock(StatusLine.class);
+ when(httpResponse.getStatusLine()).thenReturn(statusLine);
+ when(statusLine.getStatusCode()).thenReturn(200);
+ final Optional<String> result = aaiResponseHandler.handleResponse(httpResponse);
+ assertThat("Response must match", result.get(), is(response));
+ }
+
+}
diff --git a/dcae-analytics-aai/src/test/java/org/openecomp/dcae/apod/analytics/aai/service/AAIHttpClientImplTest.java b/dcae-analytics-aai/src/test/java/org/openecomp/dcae/apod/analytics/aai/service/AAIHttpClientImplTest.java
new file mode 100644
index 0000000..0bb7307
--- /dev/null
+++ b/dcae-analytics-aai/src/test/java/org/openecomp/dcae/apod/analytics/aai/service/AAIHttpClientImplTest.java
@@ -0,0 +1,109 @@
+/*
+ * ===============================LICENSE_START======================================
+ * dcae-analytics
+ * ================================================================================
+ * Copyright © 2017 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.
+ * You may obtain a copy of the License at
+ *
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============================LICENSE_END===========================================
+ */
+
+package org.openecomp.dcae.apod.analytics.aai.service;
+
+import org.apache.http.HttpHost;
+import org.apache.http.config.ConnectionConfig;
+import org.apache.http.config.Registry;
+import org.apache.http.conn.ssl.DefaultHostnameVerifier;
+import org.apache.http.conn.ssl.NoopHostnameVerifier;
+import org.apache.http.conn.ssl.SSLConnectionSocketFactory;
+import org.apache.http.impl.client.CloseableHttpClient;
+import org.apache.http.impl.conn.DefaultHttpClientConnectionOperator;
+import org.apache.http.impl.conn.DefaultProxyRoutePlanner;
+import org.apache.http.impl.conn.PoolingHttpClientConnectionManager;
+import org.apache.http.impl.conn.SystemDefaultRoutePlanner;
+import org.junit.Assert;
+import org.junit.Test;
+import org.openecomp.dcae.apod.analytics.aai.BaseAnalyticsAAIUnitTest;
+import org.openecomp.dcae.apod.analytics.aai.domain.config.AAIHttpClientConfig;
+import sun.security.ssl.SSLContextImpl;
+import sun.security.ssl.SSLSocketFactoryImpl;
+
+import javax.net.ssl.HostnameVerifier;
+
+import static org.hamcrest.CoreMatchers.is;
+import static org.junit.Assert.assertThat;
+import static org.junit.Assert.assertTrue;
+
+/**
+ * @author Rajiv Singla . Creation Date: 9/25/2017.
+ */
+public class AAIHttpClientImplTest extends BaseAnalyticsAAIUnitTest {
+
+ @Test
+ public void getAAIHttpClientWithIgnoredSSLErrorsAndProxySettings() throws Exception {
+
+ final AAIHttpClientConfig aaiHttpClientTestConfig =
+ getAAIHttpClientTestConfig(true, PROXY_URL);
+ final AAIHttpClientImpl aaiHttpClient = new AAIHttpClientImpl(aaiHttpClientTestConfig);
+ final CloseableHttpClient closeableHttpClient = aaiHttpClient.getAAIHttpClient();
+
+ final HostnameVerifier hostnameVerifier = getHostNameVerifier(closeableHttpClient);
+
+ assertTrue("HostName Verifier must be NoOpHostnameVerifier",
+ NoopHostnameVerifier.INSTANCE.getClass().equals(hostnameVerifier.getClass()));
+
+ final DefaultProxyRoutePlanner routePlanner = getPrivateFiledValue(closeableHttpClient, "routePlanner",
+ DefaultProxyRoutePlanner.class);
+
+ final HttpHost proxyHost = getPrivateFiledValue(routePlanner, "proxy", HttpHost.class);
+
+ final String hostName = proxyHost.getHostName();
+ final int port = proxyHost.getPort();
+
+ assertThat("Proxy Host name must match", hostName, is(PROXY_HOST));
+ assertThat("Proxy Port number must match", port, is(PROXY_PORT));
+
+ }
+
+ @Test
+ public void getAAIHttpClientWithNoIgnoredSSLErrorsAndProxySettings() throws Exception {
+
+ final AAIHttpClientConfig aaiHttpClientTestConfig =
+ getAAIHttpClientTestConfig(false, null);
+ final AAIHttpClientImpl aaiHttpClient = new AAIHttpClientImpl(aaiHttpClientTestConfig);
+ final CloseableHttpClient closeableHttpClient = aaiHttpClient.getAAIHttpClient();
+ final HostnameVerifier hostnameVerifier = getHostNameVerifier(closeableHttpClient);
+
+ assertTrue("HostName Verifier must be DefaultHostNameVerifier",
+ hostnameVerifier instanceof DefaultHostnameVerifier);
+
+ getPrivateFiledValue(closeableHttpClient, "routePlanner",
+ SystemDefaultRoutePlanner.class);
+ }
+
+
+ private HostnameVerifier getHostNameVerifier(final CloseableHttpClient closeableHttpClient) {
+ final PoolingHttpClientConnectionManager connManager =
+ getPrivateFiledValue(closeableHttpClient, "connManager",
+ PoolingHttpClientConnectionManager.class);
+ final DefaultHttpClientConnectionOperator connectionOperator = getPrivateFiledValue(connManager,
+ "connectionOperator", DefaultHttpClientConnectionOperator.class);
+ final Registry socketFactoryRegistry = getPrivateFiledValue(connectionOperator, "socketFactoryRegistry",
+ Registry.class);
+ final SSLConnectionSocketFactory sslConnectionSocketFactory = (SSLConnectionSocketFactory)
+ socketFactoryRegistry.lookup("https");
+ final HostnameVerifier hostnameVerifier = getPrivateFiledValue(sslConnectionSocketFactory,
+ "hostnameVerifier", HostnameVerifier.class);
+ return hostnameVerifier;
+ }
+}
diff --git a/dcae-analytics-aai/src/test/resources/logback-test.xml b/dcae-analytics-aai/src/test/resources/logback-test.xml
new file mode 100644
index 0000000..f4ba1aa
--- /dev/null
+++ b/dcae-analytics-aai/src/test/resources/logback-test.xml
@@ -0,0 +1,57 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+ ~ ===============================LICENSE_START======================================
+ ~ dcae-analytics
+ ~ ================================================================================
+ ~ Copyright © 2017 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.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ 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.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License.
+ ~ ============================LICENSE_END===========================================
+ -->
+<configuration debug="false">
+
+ <!--
+ Disabling some chatty loggers.
+ -->
+ <logger name="org.apache.commons.beanutils" level="ERROR"/>
+ <logger name="org.apache.zookeeper.server" level="ERROR"/>
+ <logger name="org.apache.zookeeper" level="ERROR"/>
+ <logger name="com.ning" level="WARN"/>
+ <logger name="org.apache.spark" level="WARN"/>
+ <logger name="org.spark-project" level="WARN"/>
+ <logger name="org.apache.hadoop" level="WARN"/>
+ <logger name="org.apache.hive" level="WARN"/>
+ <logger name="org.quartz.core" level="WARN"/>
+ <logger name="org.eclipse.jetty" level="WARN"/>
+ <logger name="io.netty.util.internal" level="WARN"/>
+
+ <logger name="org.apache.http" level="DEBUG"/>
+
+ <logger name="org.apache.twill" level="WARN"/>
+ <logger name="co.cask.cdap" level="INFO"/>
+ <logger name="org.openecomp.dcae.apod.analytics" level="DEBUG"/>
+
+ <appender name="Console" class="ch.qos.logback.core.ConsoleAppender">
+ <encoder>
+ <pattern>%d{ISO8601} - %-5p [%t:%C{1}@%L] - %m%n</pattern>
+ </encoder>
+ </appender>
+
+ <root level="ERROR">
+ <appender-ref ref="Console"/>
+ </root>
+
+
+</configuration>
+