From cc8ae79f1986f67b113aef27878d7f958d9e2d49 Mon Sep 17 00:00:00 2001 From: Joss Armstrong Date: Tue, 12 Feb 2019 10:36:25 +0000 Subject: Test coverage in ServiceCatalogv2 Increased coverage from 57% to 91% Issue-ID: APPC-1418 Change-Id: I0f2b77bdb451d973d631f4c785b65de3bb84f02f Signed-off-by: Joss Armstrong --- .../appc/adapter/iaas/impl/ServiceCatalogV2.java | 8 ++++- .../adapter/iaas/impl/TestServiceCatalogV2.java | 42 ++++++++++++++++++++++ 2 files changed, 49 insertions(+), 1 deletion(-) (limited to 'appc-adapters/appc-iaas-adapter/appc-iaas-adapter-bundle/src') diff --git a/appc-adapters/appc-iaas-adapter/appc-iaas-adapter-bundle/src/main/java/org/onap/appc/adapter/iaas/impl/ServiceCatalogV2.java b/appc-adapters/appc-iaas-adapter/appc-iaas-adapter-bundle/src/main/java/org/onap/appc/adapter/iaas/impl/ServiceCatalogV2.java index 4fe0c2e33..382de36ef 100644 --- a/appc-adapters/appc-iaas-adapter/appc-iaas-adapter-bundle/src/main/java/org/onap/appc/adapter/iaas/impl/ServiceCatalogV2.java +++ b/appc-adapters/appc-iaas-adapter/appc-iaas-adapter-bundle/src/main/java/org/onap/appc/adapter/iaas/impl/ServiceCatalogV2.java @@ -5,6 +5,8 @@ * Copyright (C) 2017-2018 AT&T Intellectual Property. All rights reserved. * ================================================================================ * Copyright (C) 2017 Amdocs + * ================================================================================ + * Modifications Copyright (C) 2019 Ericsson * ============================================================================= * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -128,7 +130,7 @@ public class ServiceCatalogV2 extends ServiceCatalog { loggerV2.error(e.getMessage()); return; } - Keystone keystone = new Keystone(identityURL, connector); + Keystone keystone = getKeystone(identityURL, connector); String proxyHost = properties.getProperty(ContextFactory.PROPERTY_PROXY_HOST); String proxyPort = properties.getProperty(ContextFactory.PROPERTY_PROXY_PORT); @@ -384,4 +386,8 @@ public class ServiceCatalogV2 extends ServiceCatalog { } return now.getTime(); } + + protected Keystone getKeystone(String identityUrl, OpenStackClientConnector connector) { + return new Keystone(identityURL, connector); + } } diff --git a/appc-adapters/appc-iaas-adapter/appc-iaas-adapter-bundle/src/test/java/org/onap/appc/adapter/iaas/impl/TestServiceCatalogV2.java b/appc-adapters/appc-iaas-adapter/appc-iaas-adapter-bundle/src/test/java/org/onap/appc/adapter/iaas/impl/TestServiceCatalogV2.java index e0684f135..d7267183b 100644 --- a/appc-adapters/appc-iaas-adapter/appc-iaas-adapter-bundle/src/test/java/org/onap/appc/adapter/iaas/impl/TestServiceCatalogV2.java +++ b/appc-adapters/appc-iaas-adapter/appc-iaas-adapter-bundle/src/test/java/org/onap/appc/adapter/iaas/impl/TestServiceCatalogV2.java @@ -29,6 +29,7 @@ import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNull; import static org.junit.Assert.assertTrue; import static org.mockito.Mockito.when; +import java.util.ArrayList; import java.util.Arrays; import java.util.HashSet; import java.util.List; @@ -41,13 +42,23 @@ import org.junit.Ignore; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.Mock; +import org.mockito.Mockito; import org.mockito.runners.MockitoJUnitRunner; import org.onap.appc.configuration.ConfigurationFactory; +import org.powermock.reflect.Whitebox; import com.att.cdp.exceptions.ZoneException; +import com.att.cdp.zones.ContextFactory; import com.google.common.collect.ImmutableMap; +import com.woorea.openstack.keystone.model.Access; import com.woorea.openstack.keystone.model.Access.Service; import com.woorea.openstack.keystone.model.Access.Service.Endpoint; +import com.woorea.openstack.base.client.OpenStackClientConnector; +import com.woorea.openstack.base.client.OpenStackConnectException; +import com.woorea.openstack.base.client.OpenStackResponseException; +import com.woorea.openstack.keystone.Keystone; +import com.woorea.openstack.keystone.api.TokensResource; import com.woorea.openstack.keystone.model.Tenant; +import com.woorea.openstack.keystone.model.Token; /** * This class tests the service catalog against a known provider. @@ -119,6 +130,8 @@ public class TestServiceCatalogV2 { public void setup() { URL = String.format("http://%s:%s/v2/%s/servers/%s", IP, PORT, TENANTID, VMID); properties = new Properties(); + properties.setProperty(ContextFactory.PROPERTY_PROXY_HOST, "PROXY_HOST"); + properties.setProperty(ContextFactory.PROPERTY_PROXY_PORT, "PROXY_PORT"); catalog = new ServiceCatalogV2(IDENTITY_URL, TENANT_NAME, PRINCIPAL, CREDENTIAL, properties); final Service service = new Service(); serviceTypes = ImmutableMap.builder().put(ServiceCatalog.COMPUTE_SERVICE, service) @@ -245,4 +258,33 @@ public class TestServiceCatalogV2 { String out = catalog.toString(); System.out.println(out); } + + @Test + public void testInit() throws ZoneException, ClassNotFoundException, InstantiationException, IllegalAccessException, OpenStackConnectException, OpenStackResponseException { + ServiceCatalogV2 catalogSpy = Mockito.spy(catalog); + Class connectorClass = Class.forName(ServiceCatalogV2.CLIENT_CONNECTOR_CLASS); + OpenStackClientConnector connector = (OpenStackClientConnector) connectorClass.newInstance(); + Keystone keystone = Mockito.spy(new Keystone(IDENTITY_URL, connector)); + TokensResource tokens = Mockito.mock(TokensResource.class); + TokensResource.Authenticate authenticate = Mockito.mock(TokensResource.Authenticate.class); + Mockito.when(keystone.tokens()).thenReturn(tokens); + Mockito.when(tokens.authenticate(Mockito.any())).thenReturn(authenticate); + Access access = Mockito.mock(Access.class); + + Token token = new Token(); + Mockito.when(access.getToken()).thenReturn(token); + Mockito.when(authenticate.execute()).thenReturn(access); + Mockito.when(authenticate.withTenantName(Mockito.anyString())).thenReturn(authenticate); + Mockito.when(catalogSpy.getKeystone(Mockito.anyString(), Mockito.any())).thenReturn(keystone); + Access.Service service = new Access.Service(); + Endpoint endpoint = new Endpoint(); + List endpointList = new ArrayList<>(); + endpointList.add(endpoint); + Whitebox.setInternalState(service, "endpoints", endpointList); + List serviceList = new ArrayList<>(); + serviceList.add(service); + Mockito.when(access.getServiceCatalog()).thenReturn(serviceList); + catalogSpy.init(); + Mockito.verify(access).getServiceCatalog(); + } } -- cgit 1.2.3-korg