diff options
Diffstat (limited to 'vid-app-common/src/test')
4 files changed, 243 insertions, 313 deletions
diff --git a/vid-app-common/src/test/java/org/onap/vid/aai/PombaClientImplTest.java b/vid-app-common/src/test/java/org/onap/vid/aai/PombaClientImplTest.java new file mode 100644 index 000000000..b1c4139b7 --- /dev/null +++ b/vid-app-common/src/test/java/org/onap/vid/aai/PombaClientImplTest.java @@ -0,0 +1,93 @@ +/*- + * ============LICENSE_START======================================================= + * VID + * ================================================================================ + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * ================================================================================ + * Modifications Copyright 2019 Nokia + * ================================================================================ + * 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.onap.vid.aai; + +import static org.mockito.BDDMockito.given; +import static org.mockito.BDDMockito.then; + +import com.fasterxml.jackson.databind.ObjectMapper; +import com.google.common.collect.Lists; +import java.io.IOException; +import java.net.URL; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.InjectMocks; +import org.mockito.Mock; +import org.mockito.junit.MockitoJUnitRunner; +import org.onap.vid.model.PombaInstance.PombaRequest; +import org.onap.vid.model.PombaInstance.ServiceInstance; +import org.onap.vid.utils.SystemPropertiesWrapper; + +@RunWith(MockitoJUnitRunner.class) +public class PombaClientImplTest { + + @Mock + private SystemPropertiesWrapper systemPropertiesWrapper; + @Mock + private PombaRestInterface pombaRestInterface; + @InjectMocks + private PombaClientImpl pombaClient; + + @Test + public void should_doHttpPost_withGivenPombaRequest() throws IOException { + //Given + String expectedUrl = "http://localhost/dummyUrl"; + given(systemPropertiesWrapper.getProperty("pomba.server.url")).willReturn(expectedUrl); + String expectedPayload = readExpectedPombaJsonRequest(); + PombaRequest pombaRequest = createPombaRequest(); + + //When + pombaClient.verify(pombaRequest); + + //Then + then(pombaRestInterface).should().RestPost("VidAaiController", expectedUrl, expectedPayload); + } + + private String readExpectedPombaJsonRequest() throws IOException { + URL url = PombaClientImplTest.class.getClassLoader().getResource("pomba_request.json"); + PombaRequest expectedPombaRequest = new ObjectMapper().readValue(url, PombaRequest.class); + return new ObjectMapper().writeValueAsString(expectedPombaRequest); + } + + private PombaRequest createPombaRequest() { + ServiceInstance serviceInstance1 = createServiceInstance("serviceType1", "serviceInstanceId1", "customerId1", + "modelVersion1", "modelInvariantId1"); + ServiceInstance serviceInstance2 = createServiceInstance("serviceType2", "serviceInstanceId2", "customerId2", + "modelVersion2", "modelInvariantId2"); + + PombaRequest pombaRequest = new PombaRequest(); + pombaRequest.serviceInstanceList = Lists.newArrayList(serviceInstance1, serviceInstance2); + return pombaRequest; + } + + private ServiceInstance createServiceInstance(String serviceType, String serviceInstanceId, String customerId, + String modelVersionId, String modelInvariantId) { + ServiceInstance serviceInstance = new ServiceInstance(); + serviceInstance.serviceType = serviceType; + serviceInstance.serviceInstanceId = serviceInstanceId; + serviceInstance.customerId = customerId; + serviceInstance.modelInvariantId = modelInvariantId; + serviceInstance.modelVersionId = modelVersionId; + return serviceInstance; + } + +}
\ No newline at end of file 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<OperationalEnvironmentList> 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<SubscriberList> 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<String> owningEntities = null; - List<String> 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<String> 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<Pnf> 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<GetTenantsResponse[]> result; - - // default test - try { - testSubject = createTestSubject(); - result = testSubject.getTenants(globalCustomerId, serviceType, roleValidator); - } catch ( - - Exception e) { - } - } + public void shouldRetrieveTenantsByInvariantId() { + // given + List<String> 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<GetTenantsResponse[]> 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<String> 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<AaiGetVnfResponse> 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 diff --git a/vid-app-common/src/test/resources/pomba_request.json b/vid-app-common/src/test/resources/pomba_request.json new file mode 100644 index 000000000..3d873bff8 --- /dev/null +++ b/vid-app-common/src/test/resources/pomba_request.json @@ -0,0 +1,18 @@ +{ + "serviceInstanceList": [ + { + "serviceInstanceId": "serviceInstanceId1", + "modelVersionId": "modelVersion1", + "modelInvariantId": "modelInvariantId1", + "customerId": "customerId1", + "serviceType": "serviceType1" + }, + { + "serviceInstanceId": "serviceInstanceId2", + "modelVersionId": "modelVersion2", + "modelInvariantId": "modelInvariantId2", + "customerId": "customerId2", + "serviceType": "serviceType2" + } + ] +}
\ No newline at end of file |