From 3899593de4f545a8900f148586ba367eeb465126 Mon Sep 17 00:00:00 2001 From: kurczews Date: Tue, 12 Feb 2019 14:55:53 +0100 Subject: Add tests for AaiServiceImpl Issue-ID: VID-386 Change-Id: I8959a30b8cbd38663dd410b23d167c405ed2592e Signed-off-by: kurczews --- .../java/org/onap/vid/controller/WebConfig.java | 5 +- .../java/org/onap/vid/services/AaiServiceImpl.java | 30 +- .../org/onap/vid/controller/LocalWebConfig.java | 8 +- .../org/onap/vid/services/AaiServiceImplTest.java | 437 ++++++--------------- 4 files changed, 152 insertions(+), 328 deletions(-) diff --git a/vid-app-common/src/main/java/org/onap/vid/controller/WebConfig.java b/vid-app-common/src/main/java/org/onap/vid/controller/WebConfig.java index 68d5b71d0..8fe7c1fa1 100644 --- a/vid-app-common/src/main/java/org/onap/vid/controller/WebConfig.java +++ b/vid-app-common/src/main/java/org/onap/vid/controller/WebConfig.java @@ -70,8 +70,9 @@ public class WebConfig { } @Bean - public AaiService getAaiService() { - return new AaiServiceImpl(); + public AaiService getAaiService(AaiClientInterface aaiClient, AaiOverTLSClientInterface aaiOverTLSClient, + AaiResponseTranslator aaiResponseTranslator, AAITreeNodeBuilder aaiTreeNode, AAIServiceTree aaiServiceTree) { + return new AaiServiceImpl(aaiClient, aaiOverTLSClient, aaiResponseTranslator, aaiTreeNode, aaiServiceTree); } @Bean diff --git a/vid-app-common/src/main/java/org/onap/vid/services/AaiServiceImpl.java b/vid-app-common/src/main/java/org/onap/vid/services/AaiServiceImpl.java index fe4a66185..63da27828 100644 --- a/vid-app-common/src/main/java/org/onap/vid/services/AaiServiceImpl.java +++ b/vid-app-common/src/main/java/org/onap/vid/services/AaiServiceImpl.java @@ -63,23 +63,29 @@ public class AaiServiceImpl implements AaiService { private static final String CLOUD_REGION_NODE_TYPE = "cloud-region"; private int indexOfSubscriberName = 6; - @Autowired private AaiClientInterface aaiClient; - - @Autowired private AaiOverTLSClientInterface aaiOverTLSClient; - - @Autowired private AaiResponseTranslator aaiResponseTranslator; - - @Autowired private AAITreeNodeBuilder aaiTreeNode; - - @Autowired private AAIServiceTree aaiServiceTree; private static final EELFLoggerDelegate LOGGER = EELFLoggerDelegate.getLogger(AaiServiceImpl.class); + @Autowired + public AaiServiceImpl( + AaiClientInterface aaiClient, + AaiOverTLSClientInterface aaiOverTLSClient, + AaiResponseTranslator aaiResponseTranslator, + AAITreeNodeBuilder aaiTreeNode, + AAIServiceTree aaiServiceTree) + { + this.aaiClient = aaiClient; + this.aaiOverTLSClient = aaiOverTLSClient; + this.aaiResponseTranslator = aaiResponseTranslator; + this.aaiTreeNode = aaiTreeNode; + this.aaiServiceTree = aaiServiceTree; + } + private List convertModelToService(Model model) { List services = new ArrayList<>(); String category = ""; @@ -332,13 +338,11 @@ public class AaiServiceImpl implements AaiService { AaiResponse aaiGetTenantsResponse = aaiClient.getTenants(globalCustomerId, serviceType); GetTenantsResponse[] tenants = aaiGetTenantsResponse.getT(); if (tenants != null) { - for (int i = 0; i < tenants.length; i++) { - tenants[i].isPermitted = roleValidator.isTenantPermitted(globalCustomerId, serviceType, tenants[i].tenantName); + for (GetTenantsResponse tenant : tenants) { + tenant.isPermitted = roleValidator.isTenantPermitted(globalCustomerId, serviceType, tenant.tenantName); } } return aaiGetTenantsResponse; - - } @Override diff --git a/vid-app-common/src/test/java/org/onap/vid/controller/LocalWebConfig.java b/vid-app-common/src/test/java/org/onap/vid/controller/LocalWebConfig.java index e0ab34cd1..c66b74d1f 100644 --- a/vid-app-common/src/test/java/org/onap/vid/controller/LocalWebConfig.java +++ b/vid-app-common/src/test/java/org/onap/vid/controller/LocalWebConfig.java @@ -24,12 +24,15 @@ package org.onap.vid.controller; import com.fasterxml.jackson.databind.ObjectMapper; import org.onap.vid.aai.AaiClient; import org.onap.vid.aai.AaiClientInterface; +import org.onap.vid.aai.AaiOverTLSClientInterface; import org.onap.vid.aai.AaiResponseTranslator; import org.onap.vid.aai.model.PortDetailsTranslator; import org.onap.vid.aai.util.*; import org.onap.vid.asdc.AsdcClient; import org.onap.vid.asdc.parser.ToscaParserImpl2; import org.onap.vid.asdc.parser.VidNotionsBuilder; +import org.onap.vid.services.AAIServiceTree; +import org.onap.vid.services.AAITreeNodeBuilder; import org.onap.vid.services.AaiService; import org.onap.vid.services.AaiServiceImpl; import org.onap.vid.services.VidService; @@ -62,8 +65,9 @@ public class LocalWebConfig { } @Bean - public AaiService getAaiService() { - return new AaiServiceImpl(); + public AaiService getAaiService(AaiClientInterface aaiClient, AaiOverTLSClientInterface aaiOverTLSClient, + AaiResponseTranslator aaiResponseTranslator, AAITreeNodeBuilder aaiTreeNode, AAIServiceTree aaiServiceTree) { + return new AaiServiceImpl(aaiClient, aaiOverTLSClient, aaiResponseTranslator, aaiTreeNode, aaiServiceTree); } @Bean diff --git a/vid-app-common/src/test/java/org/onap/vid/services/AaiServiceImplTest.java b/vid-app-common/src/test/java/org/onap/vid/services/AaiServiceImplTest.java index efa12f2c0..04f47d47e 100644 --- a/vid-app-common/src/test/java/org/onap/vid/services/AaiServiceImplTest.java +++ b/vid-app-common/src/test/java/org/onap/vid/services/AaiServiceImplTest.java @@ -21,353 +21,168 @@ package org.onap.vid.services; -import com.google.common.collect.ImmutableList; -import io.joshworks.restclient.http.HttpResponse; -import org.junit.Assert; +import static org.assertj.core.api.Assertions.assertThat; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.when; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import javax.ws.rs.core.Response; import org.junit.Test; +import org.onap.vid.aai.AaiClientInterface; +import org.onap.vid.aai.AaiGetVnfResponse; +import org.onap.vid.aai.AaiOverTLSClientInterface; import org.onap.vid.aai.AaiResponse; -import org.onap.vid.aai.SubscriberFilteredResults; -import org.onap.vid.aai.model.AaiGetOperationalEnvironments.OperationalEnvironmentList; -import org.onap.vid.aai.model.AaiGetPnfs.Pnf; +import org.onap.vid.aai.AaiResponseTranslator; import org.onap.vid.aai.model.AaiGetTenatns.GetTenantsResponse; -import org.onap.vid.model.SubscriberList; +import org.onap.vid.aai.model.VnfResult; import org.onap.vid.roles.RoleValidator; -import java.util.List; - public class AaiServiceImplTest { - private AaiServiceImpl createTestSubject() { - return new AaiServiceImpl(); - } + private AaiClientInterface aaiClient = mock(AaiClientInterface.class); + private AaiOverTLSClientInterface aaiSslClient = mock(AaiOverTLSClientInterface.class); + private AaiResponseTranslator aaiResponseTranslator = mock(AaiResponseTranslator.class); + private AAITreeNodeBuilder aaiTreeNode = mock(AAITreeNodeBuilder.class); + private AAIServiceTree aaiServiceTree = mock(AAIServiceTree.class); - @Test - public void testGetFullSubscriberList() throws Exception { - AaiServiceImpl testSubject; - RoleValidator roleValidator = null; - SubscriberFilteredResults result; - - // default test - try { - testSubject = createTestSubject(); - result = testSubject.getFullSubscriberList(roleValidator); - } catch ( - - Exception e) { - } - } + private AaiServiceImpl aaiService = new AaiServiceImpl( + aaiClient, aaiSslClient, aaiResponseTranslator, aaiTreeNode, aaiServiceTree + ); @Test - public void testGetOperationalEnvironments() throws Exception { - AaiServiceImpl testSubject; - String operationalEnvironmentType = ""; - String operationalEnvironmentStatus = ""; - AaiResponse result; - - // default test - try { - testSubject = createTestSubject(); - result = testSubject.getOperationalEnvironments(operationalEnvironmentType, operationalEnvironmentStatus); - } catch ( - - Exception e) { - } - } + public void shouldRetrievePnf() { + // given + String globalCustomerId = "global_customer"; + String serviceType = "service_type"; + String modelVersionId = "model_version"; + String modelInvariantId = "model_invariant_id"; + String cloudRegion = "cloud_region"; + String equipVendor = "equip_vendor"; + String equipModel = "equip_model"; - @Test - public void testGetFullSubscriberList_1() throws Exception { - AaiServiceImpl testSubject; - HttpResponse result; - - // default test - try { - testSubject = createTestSubject(); - result = testSubject.getFullSubscriberList(); - } catch ( - - Exception e) { - } - } + AaiResponse response = mock(AaiResponse.class); + when(aaiClient.getPNFData( + globalCustomerId, serviceType, modelVersionId, modelInvariantId, cloudRegion, equipVendor, equipModel + )).thenReturn(response); - @Test - public void testGetSubscriberData() throws Exception { - AaiServiceImpl testSubject; - String subscriberId = ""; - RoleValidator roleValidator = null; - AaiResponse result; - - // default test - try { - testSubject = createTestSubject(); - result = testSubject.getSubscriberData(subscriberId, roleValidator); - } catch ( - - Exception e) { - } - } + // when + AaiResponse actual = aaiService.getPNFData( + globalCustomerId, serviceType, modelVersionId, modelInvariantId, cloudRegion, equipVendor, equipModel + ); - @Test - public void testGetServiceInstanceSearchResults() throws Exception { - AaiServiceImpl testSubject; - String subscriberId = ""; - String instanceIdentifier = ""; - RoleValidator roleValidator = null; - List owningEntities = null; - List projects = null; - AaiResponse result; - - // test 1 - testSubject = createTestSubject(); - subscriberId = null; - instanceIdentifier = null; - result = testSubject.getServiceInstanceSearchResults(subscriberId, instanceIdentifier, roleValidator, - owningEntities, projects); - Assert.assertNotEquals(null, result); - - /*/ test 2 - testSubject = createTestSubject(); - subscriberId = ""; - instanceIdentifier = null; - result = testSubject.getServiceInstanceSearchResults(subscriberId, instanceIdentifier, roleValidator, - owningEntities, projects); - Assert.assertNotEquals(null, result); - - // test 3 - testSubject = createTestSubject(); - instanceIdentifier = null; - subscriberId = null; - result = testSubject.getServiceInstanceSearchResults(subscriberId, instanceIdentifier, roleValidator, - owningEntities, projects); - Assert.assertEquals(null, result); - - // test 4 - testSubject = createTestSubject(); - instanceIdentifier = ""; - subscriberId = null; - result = testSubject.getServiceInstanceSearchResults(subscriberId, instanceIdentifier, roleValidator, - owningEntities, projects); - Assert.assertEquals(null, result); - - // test 5 - testSubject = createTestSubject(); - owningEntities = null; - result = testSubject.getServiceInstanceSearchResults(subscriberId, instanceIdentifier, roleValidator, - owningEntities, projects); - Assert.assertEquals(null, result); - - // test 6 - testSubject = createTestSubject(); - projects = null; - result = testSubject.getServiceInstanceSearchResults(subscriberId, instanceIdentifier, roleValidator, - owningEntities, projects); - Assert.assertEquals(null, result);*/ + // then + assertThat(response).isEqualTo(actual); } @Test - public void testGetVersionByInvariantId() throws Exception { - AaiServiceImpl testSubject; - List modelInvariantId = ImmutableList.of("some invariant id"); - - // default test - try { - testSubject = createTestSubject(); - testSubject.getVersionByInvariantId(modelInvariantId); - } catch ( - - Exception e) { - } - } + @SuppressWarnings("unchecked") + public void shouldRetrieveSpecificPnf() { + // given + String pnfId = "some_pnf_id"; - @Test - public void testGetSpecificPnf() throws Exception { - AaiServiceImpl testSubject; - String pnfId = ""; - AaiResponse result; - - // default test - try { - testSubject = createTestSubject(); - result = testSubject.getSpecificPnf(pnfId); - } catch ( - - Exception e) { - } - } + AaiResponse response = mock(AaiResponse.class); + when(aaiClient.getSpecificPnf(pnfId)).thenReturn(response); - @Test - public void testGetPNFData() throws Exception { - AaiServiceImpl testSubject; - String globalCustomerId = ""; - String serviceType = ""; - String modelVersionId = ""; - String modelInvariantId = ""; - String cloudRegion = ""; - String equipVendor = ""; - String equipModel = ""; - AaiResponse result; - - // default test - try { - testSubject = createTestSubject(); - result = testSubject.getPNFData(globalCustomerId, serviceType, modelVersionId, modelInvariantId, - cloudRegion, equipVendor, equipModel); - } catch ( - - Exception e) { - } - } + // when + AaiResponse actual = aaiService.getSpecificPnf(pnfId); - @Test - public void testGetServices() throws Exception { - AaiServiceImpl testSubject; - RoleValidator roleValidator = null; - AaiResponse result; - - // default test - try { - testSubject = createTestSubject(); - result = testSubject.getServices(roleValidator); - } catch ( - - Exception e) { - } + // then + assertThat(response).isEqualTo(actual); } @Test - public void testGetTenants() throws Exception { - AaiServiceImpl testSubject; - String globalCustomerId = ""; - String serviceType = ""; - RoleValidator roleValidator = null; - AaiResponse result; - - // default test - try { - testSubject = createTestSubject(); - result = testSubject.getTenants(globalCustomerId, serviceType, roleValidator); - } catch ( - - Exception e) { - } - } + public void shouldRetrieveTenantsByInvariantId() { + // given + List modelInvariantId = new ArrayList<>(); - @Test - public void testGetVNFData() throws Exception { - AaiServiceImpl testSubject; - String globalSubscriberId = ""; - String serviceType = ""; - String serviceInstanceId = ""; - AaiResponse result; - - // default test - try { - testSubject = createTestSubject(); - result = testSubject.getVNFData(globalSubscriberId, serviceType, serviceInstanceId); - } catch ( - - Exception e) { - } - } + Response response = mock(Response.class); + when(aaiClient.getVersionByInvariantId(modelInvariantId)).thenReturn(response); - @Test - public void testGetVNFData_1() throws Exception { - AaiServiceImpl testSubject; - String globalSubscriberId = ""; - String serviceType = ""; - - // default test - try { - testSubject = createTestSubject(); - testSubject.getVNFData(globalSubscriberId, serviceType); - } catch ( - - Exception e) { - } - } + // when + Response actual = aaiService.getVersionByInvariantId(modelInvariantId); - @Test - public void testGetAaiZones() throws Exception { - AaiServiceImpl testSubject; - AaiResponse result; - - // default test - try { - testSubject = createTestSubject(); - result = testSubject.getAaiZones(); - } catch ( - - Exception e) { - } + // then + assertThat(response).isEqualTo(actual); } @Test - public void testGetAicZoneForPnf() throws Exception { - AaiServiceImpl testSubject; - String globalCustomerId = ""; - String serviceType = ""; - String serviceId = ""; - AaiResponse result; - - // default test - try { - testSubject = createTestSubject(); - result = testSubject.getAicZoneForPnf(globalCustomerId, serviceType, serviceId); - } catch ( - - Exception e) { - } - } + @SuppressWarnings("unchecked") + public void shouldRetrieveTenants() { + // given + String globalCustomerId = "global_customer"; + String serviceType = "service_type"; - @Test - public void testGetNodeTemplateInstances() throws Exception { - AaiServiceImpl testSubject; - String globalCustomerId = ""; - String serviceType = ""; - String modelVersionId = ""; - String modelInvariantId = ""; - String cloudRegion = ""; - AaiResponse result; - - // default test - try { - testSubject = createTestSubject(); - result = testSubject.getNodeTemplateInstances(globalCustomerId, serviceType, modelVersionId, - modelInvariantId, cloudRegion); - } catch ( - - Exception e) { - } + GetTenantsResponse permittedTenant = new GetTenantsResponse( + "cloud_region", "cloud_owner", "permitted_tenant", "tenant_id", false + ); + GetTenantsResponse unpermittedTenant = new GetTenantsResponse( + "cloud_region", "cloud_owner", "unpermitted_tenant", "tenant_id", false + ); + + AaiResponse response = mock(AaiResponse.class); + when(response.getT()).thenReturn(new GetTenantsResponse[]{ permittedTenant, unpermittedTenant }); + when(aaiClient.getTenants(globalCustomerId, serviceType)).thenReturn(response); + + RoleValidator roleValidator = mock(RoleValidator.class); + when(roleValidator.isTenantPermitted(globalCustomerId, serviceType, "permitted_tenant")).thenReturn(true); + when(roleValidator.isTenantPermitted(globalCustomerId, serviceType, "unpermitted_tenant")).thenReturn(false); + + // when + AaiResponse actual = aaiService.getTenants(globalCustomerId, serviceType, roleValidator); + + // then + assertThat(response).isEqualTo(actual); + assertThat(permittedTenant.isPermitted).isTrue(); + assertThat(unpermittedTenant.isPermitted).isFalse(); } @Test - public void testGetServicesByDistributionStatus() throws Exception { - AaiServiceImpl testSubject; + public void shouldRetrieveVNFs() { + // given + String globalSubscriber = "global_subscriber"; + String serviceType = "service_type"; + String serviceInstanceId = "service_instance"; + + AaiResponse response = mock(AaiResponse.class); + when(aaiClient.getVNFData(globalSubscriber, serviceType, serviceInstanceId)).thenReturn(response); - // default test - try { - testSubject = createTestSubject(); - testSubject.getServicesByDistributionStatus(); - } catch ( + // when + AaiResponse actual = aaiService.getVNFData(globalSubscriber, serviceType, serviceInstanceId); - Exception e) { - } + // then + assertThat(response).isEqualTo(actual); } @Test - public void testGetServiceInstanceAssociatedPnfs() throws Exception { - AaiServiceImpl testSubject; - String globalCustomerId = ""; - String serviceType = ""; - String serviceInstanceId = ""; - List result; - - // default test - try { - testSubject = createTestSubject(); - result = testSubject.getServiceInstanceAssociatedPnfs(globalCustomerId, serviceType, serviceInstanceId); - } catch ( - - Exception e) { - } + @SuppressWarnings("unchecked") + public void shouldRetrieveAndFilterVNFsBySubscriberAndServiceType() { + // given + String globalSubscriber = "global_subscriber"; + String serviceType = "service_type"; + + VnfResult genericVnf = new VnfResult(); + genericVnf.nodeType = "generic-vnf"; + + VnfResult serviceInstance = new VnfResult(); + serviceInstance.nodeType = "service-instance"; + + VnfResult someVnf = new VnfResult(); + someVnf.nodeType = "some-vnf"; + + AaiResponse response = mock(AaiResponse.class); + AaiGetVnfResponse vnfs = new AaiGetVnfResponse(); + vnfs.results = Arrays.asList(genericVnf, serviceInstance, someVnf); + when(response.getT()).thenReturn(vnfs); + + when(aaiClient.getVNFData(globalSubscriber, serviceType)).thenReturn(response); + + // when + AaiResponse actual = aaiService.getVNFData(globalSubscriber, serviceType); + + // then + assertThat(response).isEqualTo(actual); + assertThat(response.getT().results).containsOnly(genericVnf, serviceInstance); } } \ No newline at end of file -- cgit 1.2.3-korg