2 * ============LICENSE_START=======================================================
4 * ================================================================================
5 * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
6 * ================================================================================
7 * Modifications Copyright (C) 2020 Nokia
8 * ================================================================================
9 * Licensed under the Apache License, Version 2.0 (the "License");
10 * you may not use this file except in compliance with the License.
11 * You may obtain a copy of the License at
13 * http://www.apache.org/licenses/LICENSE-2.0
15 * Unless required by applicable law or agreed to in writing, software
16 * distributed under the License is distributed on an "AS IS" BASIS,
17 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18 * See the License for the specific language governing permissions and
19 * limitations under the License.
20 * ============LICENSE_END=========================================================
23 package org.onap.so.bpmn.servicedecomposition.tasks;
25 import static com.shazam.shazamcrest.MatcherAssert.assertThat;
26 import static com.shazam.shazamcrest.matcher.Matchers.sameBeanAs;
27 import static org.hamcrest.CoreMatchers.containsString;
28 import static org.junit.Assert.assertEquals;
29 import static org.junit.Assert.assertNull;
30 import static org.junit.Assert.assertTrue;
31 import static org.mockito.ArgumentMatchers.any;
32 import static org.mockito.ArgumentMatchers.anyString;
33 import static org.mockito.ArgumentMatchers.eq;
34 import static org.mockito.ArgumentMatchers.isA;
35 import static org.mockito.Mockito.doReturn;
36 import static org.mockito.Mockito.times;
37 import static org.mockito.Mockito.verify;
39 import java.io.IOException;
40 import java.nio.charset.StandardCharsets;
41 import java.nio.file.Files;
42 import java.nio.file.Paths;
43 import java.util.Arrays;
44 import java.util.List;
45 import java.util.Optional;
46 import org.junit.Before;
47 import org.junit.Rule;
48 import org.junit.Test;
49 import org.junit.rules.ExpectedException;
50 import org.junit.runner.RunWith;
51 import org.mockito.InjectMocks;
52 import org.mockito.Mock;
53 import org.mockito.Mockito;
54 import org.mockito.junit.MockitoJUnitRunner;
55 import org.onap.aai.domain.yang.CloudRegion;
56 import org.onap.aai.domain.yang.Configuration;
57 import org.onap.aai.domain.yang.Configurations;
58 import org.onap.aai.domain.yang.GenericVnf;
59 import org.onap.aai.domain.yang.GenericVnfs;
60 import org.onap.aai.domain.yang.InstanceGroup;
61 import org.onap.aai.domain.yang.L3Network;
62 import org.onap.aai.domain.yang.L3Networks;
63 import org.onap.aai.domain.yang.ServiceInstance;
64 import org.onap.aai.domain.yang.ServiceInstances;
65 import org.onap.aai.domain.yang.VolumeGroup;
66 import org.onap.aai.domain.yang.VolumeGroups;
67 import org.onap.aai.domain.yang.VpnBinding;
68 import org.onap.so.bpmn.common.InjectionHelper;
69 import org.onap.so.bpmn.servicedecomposition.bbobjects.Customer;
70 import org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceSubscription;
71 import org.onap.so.bpmn.servicedecomposition.entities.ExecuteBuildingBlock;
72 import org.onap.so.bpmn.servicedecomposition.tasks.exceptions.MultipleObjectsFoundException;
73 import org.onap.so.bpmn.servicedecomposition.tasks.exceptions.NoServiceInstanceFoundException;
74 import org.onap.so.client.aai.AAIObjectPlurals;
75 import org.onap.so.client.aai.AAIObjectType;
76 import org.onap.so.client.aai.AAIResourcesClient;
77 import org.onap.so.client.aai.entities.uri.AAIResourceUri;
78 import org.onap.so.client.aai.entities.uri.AAIUriFactory;
79 import org.onap.so.client.graphinventory.entities.uri.Depth;
80 import org.onap.so.db.catalog.beans.VnfcInstanceGroupCustomization;
81 import org.onap.so.db.catalog.beans.CollectionResourceInstanceGroupCustomization;
82 import org.onap.so.db.catalog.beans.Service;
83 import org.onap.so.db.catalog.client.CatalogDbClient;
84 import org.onap.so.db.request.beans.InfraActiveRequests;
85 import org.onap.so.db.request.beans.RequestProcessingData;
86 import org.onap.so.db.request.client.RequestsDbClient;
87 import org.onap.so.serviceinstancebeans.CloudConfiguration;
88 import org.onap.so.serviceinstancebeans.RequestDetails;
89 import com.fasterxml.jackson.databind.ObjectMapper;
91 @RunWith(MockitoJUnitRunner.class)
92 public class BBInputSetupUtilsTest {
93 protected ObjectMapper mapper = new ObjectMapper();
94 private static final String RESOURCE_PATH = "src/test/resources/__files/ExecuteBuildingBlock/";
97 BBInputSetupUtils bbInputSetupUtils = new BBInputSetupUtils();
100 protected CatalogDbClient MOCK_catalogDbClient;
103 protected RequestsDbClient MOCK_requestsDbClient;
106 protected AAIResourcesClient MOCK_aaiResourcesClient;
109 protected InjectionHelper MOCK_injectionHelper;
112 public ExpectedException expectedException = ExpectedException.none();
115 public void setup() {
116 doReturn(MOCK_aaiResourcesClient).when(MOCK_injectionHelper).getAaiClient();
120 public void getCatalogServiceByModelUUIDTest() throws IOException {
121 Service expected = mapper.readValue(new File(RESOURCE_PATH + "CatalogServiceExpected.json"), Service.class);
122 final String modelUUID = "modelUUIDTest";
124 doReturn(expected).when(MOCK_catalogDbClient).getServiceByID(modelUUID);
126 assertThat(bbInputSetupUtils.getCatalogServiceByModelUUID(modelUUID), sameBeanAs(expected));
130 public void getCatalogServiceByModelVersionAndModelInvariantUUIDTest() throws IOException {
131 final String modelVersion = "modelVersionTest";
132 final String modelInvariantUUID = "modelInvariantUUIDTest";
133 Service expectedService =
134 mapper.readValue(new File(RESOURCE_PATH + "CatalogServiceExpected.json"), Service.class);
136 doReturn(expectedService).when(MOCK_catalogDbClient).getServiceByModelVersionAndModelInvariantUUID(modelVersion,
139 assertThat(bbInputSetupUtils.getCatalogServiceByModelVersionAndModelInvariantUUID(modelVersion,
140 modelInvariantUUID), sameBeanAs(expectedService));
144 public void getVnfcInstanceGroupsTest() throws IOException {
145 final String modelCustomizationUUID = "modelCustomizationUUIDTest";
146 VnfcInstanceGroupCustomization vnfc = mapper.readValue(
147 new File(RESOURCE_PATH + "VnfcInstanceGroupCustomization.json"), VnfcInstanceGroupCustomization.class);
149 doReturn(Arrays.asList(vnfc)).when(MOCK_catalogDbClient)
150 .getVnfcInstanceGroupsByVnfResourceCust(modelCustomizationUUID);
152 assertThat(bbInputSetupUtils.getVnfcInstanceGroups(modelCustomizationUUID), sameBeanAs(Arrays.asList(vnfc)));
156 public void getRequestDetailsTest() throws IOException {
157 final String requestId = "requestId";
158 InfraActiveRequests infraActiveRequest = mapper
159 .readValue(new File(RESOURCE_PATH + "InfraActiveRequestExpected.json"), InfraActiveRequests.class);
160 RequestDetails expected =
161 mapper.readValue(new File(RESOURCE_PATH + "RequestDetailsExpected.json"), RequestDetails.class);
163 doReturn(infraActiveRequest).when(MOCK_requestsDbClient).getInfraActiveRequestbyRequestId(requestId);
165 assertThat(bbInputSetupUtils.getRequestDetails(requestId), sameBeanAs(expected));
169 public void getRequestDetailsNullTest() throws IOException {
170 assertNull(bbInputSetupUtils.getRequestDetails(""));
174 public void getCloudRegionTest() {
175 CloudConfiguration cloudConfig = new CloudConfiguration();
176 cloudConfig.setLcpCloudRegionId("lcpCloudRegionId");
177 Optional<CloudRegion> expected = Optional.of(new CloudRegion());
179 doReturn(expected).when(MOCK_aaiResourcesClient).get(CloudRegion.class,
180 AAIUriFactory.createResourceUri(AAIObjectType.CLOUD_REGION, cloudConfig.getCloudOwner(),
181 cloudConfig.getLcpCloudRegionId()).depth(Depth.TWO));
183 assertThat(bbInputSetupUtils.getCloudRegion(cloudConfig), sameBeanAs(expected.get()));
187 public void getCloudRegionNullTest() {
188 CloudConfiguration cloudConfig = new CloudConfiguration();
189 cloudConfig.setLcpCloudRegionId("lcpCloudRegionId");
191 assertNull(bbInputSetupUtils.getCloudRegion(cloudConfig));
195 public void getCloudRegionEmptyIdTest() {
196 CloudConfiguration cloudConfig = new CloudConfiguration();
197 cloudConfig.setLcpCloudRegionId("");
199 assertNull(bbInputSetupUtils.getCloudRegion(cloudConfig));
203 public void getAAIInstanceGroupTest() {
204 final String instanceGroupId = "instanceGroupId";
205 Optional<InstanceGroup> expected = Optional.of(new InstanceGroup());
206 expected.get().setId(instanceGroupId);
208 doReturn(expected).when(MOCK_aaiResourcesClient).get(InstanceGroup.class,
209 AAIUriFactory.createResourceUri(AAIObjectType.INSTANCE_GROUP, instanceGroupId));
211 assertThat(bbInputSetupUtils.getAAIInstanceGroup(instanceGroupId), sameBeanAs(expected.get()));
215 public void getAAIInstanceGroupNullTest() {
216 assertNull(bbInputSetupUtils.getAAIInstanceGroup(""));
220 public void getAAICustomerTest() {
221 final String globalSubscriberId = "globalSubscriberId";
222 Optional<org.onap.aai.domain.yang.Customer> expected = Optional.of(new org.onap.aai.domain.yang.Customer());
223 expected.get().setGlobalCustomerId(globalSubscriberId);
225 doReturn(expected).when(MOCK_aaiResourcesClient).get(org.onap.aai.domain.yang.Customer.class,
226 AAIUriFactory.createResourceUri(AAIObjectType.CUSTOMER, globalSubscriberId));
228 assertThat(bbInputSetupUtils.getAAICustomer(globalSubscriberId), sameBeanAs(expected.get()));
232 public void getAAICustomerNullTest() {
233 assertNull(bbInputSetupUtils.getAAICustomer(""));
237 public void getAAIServiceSubscriptionTest() {
238 final String globalSubscriberId = "globalSubscriberId";
239 final String subscriptionServiceType = "subscriptionServiceType";
240 Optional<org.onap.aai.domain.yang.ServiceSubscription> expected =
241 Optional.of(new org.onap.aai.domain.yang.ServiceSubscription());
243 expected.get().setServiceType(subscriptionServiceType);
244 doReturn(expected).when(MOCK_aaiResourcesClient).get(org.onap.aai.domain.yang.ServiceSubscription.class,
245 AAIUriFactory.createResourceUri(AAIObjectType.SERVICE_SUBSCRIPTION, globalSubscriberId,
246 subscriptionServiceType));
248 assertThat(bbInputSetupUtils.getAAIServiceSubscription(globalSubscriberId, subscriptionServiceType),
249 sameBeanAs(expected.get()));
253 public void getAAIServiceSubscriptionErrorsTest() {
254 assertNull(bbInputSetupUtils.getAAIServiceSubscription(null, null));
255 assertNull(bbInputSetupUtils.getAAIServiceSubscription("", ""));
256 assertNull(bbInputSetupUtils.getAAIServiceSubscription("", null));
257 assertNull(bbInputSetupUtils.getAAIServiceSubscription(null, ""));
261 public void getAAIServiceInstanceByIdTest() {
262 final String serviceInstanceId = "serviceInstanceId";
263 ServiceInstance expectedServiceInstance = new ServiceInstance();
265 doReturn(Optional.of(expectedServiceInstance)).when(MOCK_aaiResourcesClient).get(isA(Class.class),
266 isA(AAIResourceUri.class));
268 assertThat(bbInputSetupUtils.getAAIServiceInstanceById(serviceInstanceId), sameBeanAs(expectedServiceInstance));
272 public void getAAIServiceInstanceById_ifEmptyReturnNull() {
273 doReturn(Optional.empty()).when(MOCK_aaiResourcesClient).get(eq(ServiceInstance.class),
274 any(AAIResourceUri.class));
276 assertNull(bbInputSetupUtils.getAAIServiceInstanceById("any"));
280 public void getAAIServiceInstanceByIdAndCustomerTest() {
281 final String globalCustomerId = "globalCustomerId";
282 final String serviceType = "serviceType";
283 final String serviceInstanceId = "serviceInstanceId";
284 ServiceInstance expected = new ServiceInstance();
285 expected.setServiceInstanceId(serviceInstanceId);
287 doReturn(Optional.of(expected)).when(MOCK_aaiResourcesClient).get(ServiceInstance.class, AAIUriFactory
288 .createResourceUri(AAIObjectType.SERVICE_INSTANCE, globalCustomerId, serviceType, serviceInstanceId)
291 assertThat(bbInputSetupUtils.getAAIServiceInstanceByIdAndCustomer(globalCustomerId, serviceType,
292 serviceInstanceId), sameBeanAs(expected));
296 public void getAAIServiceInstanceByIdAndCustomerNullTest() {
297 doReturn(Optional.empty()).when(MOCK_aaiResourcesClient).get(eq(ServiceInstance.class),
298 any(AAIResourceUri.class));
300 assertNull(bbInputSetupUtils.getAAIServiceInstanceByIdAndCustomer("", "", ""));
304 public void getAAIServiceInstanceByNameTest() throws Exception {
305 final String serviceInstanceName = "serviceInstanceName";
307 ServiceInstance expectedServiceInstance = new ServiceInstance();
308 expectedServiceInstance.setServiceInstanceId("serviceInstanceId");
310 ServiceSubscription serviceSubscription = new ServiceSubscription();
311 serviceSubscription.setServiceType("serviceType");
313 Customer customer = new Customer();
314 customer.setGlobalCustomerId("globalCustomerId");
315 customer.setServiceSubscription(serviceSubscription);
317 ServiceInstances serviceInstances = new ServiceInstances();
318 serviceInstances.getServiceInstance().add(expectedServiceInstance);
320 doReturn(Optional.of(serviceInstances)).when(MOCK_aaiResourcesClient).get(isA(Class.class),
321 isA(AAIResourceUri.class));
323 assertThat(bbInputSetupUtils.getAAIServiceInstanceByName(serviceInstanceName, customer),
324 sameBeanAs(serviceInstances.getServiceInstance().get(0)));
328 public void getAAIServiceInstanceByNameExceptionTest() throws Exception {
329 final String serviceInstanceName = "serviceInstanceName";
331 expectedException.expect(Exception.class);
332 expectedException.expectMessage("Multiple Service Instances Returned");
334 ServiceInstance serviceInstance = new ServiceInstance();
335 serviceInstance.setServiceInstanceId("serviceInstanceId");
337 ServiceSubscription serviceSubscription = new ServiceSubscription();
338 serviceSubscription.setServiceType("serviceType");
340 Customer customer = new Customer();
341 customer.setGlobalCustomerId("globalCustomerId");
342 customer.setServiceSubscription(serviceSubscription);
344 ServiceInstances serviceInstances = new ServiceInstances();
345 serviceInstances.getServiceInstance().add(serviceInstance);
346 serviceInstances.getServiceInstance().add(serviceInstance);
348 doReturn(Optional.of(serviceInstances)).when(MOCK_aaiResourcesClient).get(isA(Class.class),
349 isA(AAIResourceUri.class));
351 bbInputSetupUtils.getAAIServiceInstanceByName(serviceInstanceName, customer);
355 public void getAAIServiceInstanceByNameNullTest() throws Exception {
356 Customer customer = new Customer();
357 customer.setServiceSubscription(new ServiceSubscription());
359 assertNull(bbInputSetupUtils.getAAIServiceInstanceByName("", customer));
363 public void getOptionalAAIServiceInstanceByNameExceptionTest() throws Exception {
364 expectedException.expect(MultipleObjectsFoundException.class);
365 expectedException.expectMessage(containsString(
366 "Multiple service instances found for customer-id: globalCustomerId, service-type: serviceType and service-instance-name: serviceInstanceId."));
368 final String globalCustomerId = "globalCustomerId";
369 final String serviceType = "serviceType";
370 final String serviceInstanceId = "serviceInstanceId";
372 ServiceInstance serviceInstance = new ServiceInstance();
373 serviceInstance.setServiceInstanceId(serviceInstanceId);
374 serviceInstance.setServiceType(serviceType);
376 ServiceInstances serviceInstances = new ServiceInstances();
377 serviceInstances.getServiceInstance().add(serviceInstance);
378 serviceInstances.getServiceInstance().add(serviceInstance);
380 doReturn(Optional.of(serviceInstances)).when(MOCK_aaiResourcesClient).get(isA(Class.class),
381 isA(AAIResourceUri.class));
383 bbInputSetupUtils.getAAIServiceInstanceByName(globalCustomerId, serviceType, serviceInstanceId);
387 public void getOptionalAAIServiceInstanceByNameNullTest() throws Exception {
388 Optional<ServiceInstance> actual = bbInputSetupUtils.getAAIServiceInstanceByName("", "", "");
390 assertThat(actual, sameBeanAs(Optional.empty()));
394 public void getCatalogInstanceGroupNullTest() {
395 assertNull(bbInputSetupUtils.getCatalogInstanceGroup(""));
399 public void getCatalogInstanceGroupTest() throws IOException {
400 final String modelUUID = "modelUUIDTest";
401 org.onap.so.db.catalog.beans.InstanceGroup expectedInstanceGroup = mapper.readValue(
402 new File(RESOURCE_PATH + "InstanceGroup.json"), org.onap.so.db.catalog.beans.InstanceGroup.class);
404 doReturn(expectedInstanceGroup).when(MOCK_catalogDbClient).getInstanceGroupByModelUUID(modelUUID);
406 assertThat(bbInputSetupUtils.getCatalogInstanceGroup(modelUUID), sameBeanAs(expectedInstanceGroup));
410 public void getCollectionResourceInstanceGroupCustomizationTest() {
411 final String modelCustomizationUUID = "modelCustomizationUUID";
412 CollectionResourceInstanceGroupCustomization expectedCollection =
413 new CollectionResourceInstanceGroupCustomization();
415 doReturn(Arrays.asList(expectedCollection)).when(MOCK_catalogDbClient)
416 .getCollectionResourceInstanceGroupCustomizationByModelCustUUID(modelCustomizationUUID);
418 assertThat(bbInputSetupUtils.getCollectionResourceInstanceGroupCustomization(modelCustomizationUUID),
419 sameBeanAs(Arrays.asList(expectedCollection)));
423 public void getAAIConfigurationNullTest() {
424 assertNull(bbInputSetupUtils.getAAIConfiguration(""));
428 public void getAAIConfigurationTest() throws IOException {
429 final String configurationId = "configurationId";
430 Configuration expectedAaiConfiguration =
431 mapper.readValue(new File(RESOURCE_PATH + "ConfigurationInput.json"), Configuration.class);
433 doReturn(Optional.of(expectedAaiConfiguration)).when(MOCK_aaiResourcesClient).get(isA(Class.class),
434 isA(AAIResourceUri.class));
436 assertThat(bbInputSetupUtils.getAAIConfiguration(configurationId), sameBeanAs(expectedAaiConfiguration));
440 public void getAAIGenericVnfNullTest() {
441 assertNull(bbInputSetupUtils.getAAIGenericVnf(""));
445 public void getAAIGenericVnfTest() throws IOException {
446 final String vnfId = "vnfId";
447 GenericVnf expectedAaiVnf =
448 mapper.readValue(new File(RESOURCE_PATH + "aaiGenericVnfInput.json"), GenericVnf.class);
450 doReturn(Optional.of(expectedAaiVnf)).when(MOCK_aaiResourcesClient).get(isA(Class.class),
451 eq(AAIUriFactory.createResourceUri(AAIObjectType.GENERIC_VNF, vnfId).depth(Depth.ONE)));
453 assertThat(bbInputSetupUtils.getAAIGenericVnf(vnfId), sameBeanAs(expectedAaiVnf));
457 public void getAAIResourceDepthOneTest() {
458 AAIResourceUri aaiResourceUri = AAIUriFactory.createResourceUri(AAIObjectType.GENERIC_VNF, "anyVnfId");
459 AAIResourceUri expectedUri = aaiResourceUri.clone().depth(Depth.ONE);
460 AAIResourceUri aaiResourceUriClone = aaiResourceUri.clone();
462 bbInputSetupUtils.getAAIResourceDepthOne(aaiResourceUri);
464 verify(MOCK_aaiResourcesClient, times(1)).get(expectedUri);
465 assertEquals("Uri should not have changed", aaiResourceUriClone.build(), aaiResourceUri.build());
469 public void getAAIResourceDepthTwoTest() {
470 AAIResourceUri aaiResourceUri = AAIUriFactory.createResourceUri(AAIObjectType.GENERIC_VNF, "anyVnfId");
471 AAIResourceUri expectedUri = aaiResourceUri.clone().depth(Depth.TWO);
472 AAIResourceUri aaiResourceUriClone = aaiResourceUri.clone();
474 bbInputSetupUtils.getAAIResourceDepthTwo(aaiResourceUri);
476 verify(MOCK_aaiResourcesClient, times(1)).get(expectedUri);
477 assertEquals("Uri should not have changed", aaiResourceUriClone.build(), aaiResourceUri.build());
481 public void getRelatedNetworkByNameFromServiceInstanceTest() throws Exception {
482 final String networkId = "id123";
483 final String networkName = "name123";
485 Optional<L3Networks> expected = Optional.of(new L3Networks());
486 L3Network network = new L3Network();
487 network.setNetworkId(networkId);
488 network.setNetworkName(networkName);
489 expected.get().getL3Network().add(network);
491 doReturn(expected).when(MOCK_aaiResourcesClient).get(eq(L3Networks.class), any(AAIResourceUri.class));
492 Optional<L3Network> actual =
493 bbInputSetupUtils.getRelatedNetworkByNameFromServiceInstance(networkId, networkName);
495 assertTrue(actual.isPresent());
496 assertEquals(networkId, actual.get().getNetworkId());
497 assertEquals(networkName, actual.get().getNetworkName());
498 assertEquals(expected.get().getL3Network().get(0).getNetworkId(), actual.get().getNetworkId());
502 public void getRelatedNetworkByNameFromServiceInstanceMultipleNetworksExceptionTest() throws Exception {
503 final String serviceInstanceId = "serviceInstanceId";
504 final String networkName = "networkName";
505 expectedException.expect(MultipleObjectsFoundException.class);
506 expectedException.expectMessage(
507 String.format("Multiple networks found for service-instance-id: %s and network-name: %s.",
508 serviceInstanceId, networkName));
510 L3Network network = new L3Network();
511 network.setNetworkId("id123");
512 network.setNetworkName("name123");
514 L3Networks l3Networks = new L3Networks();
515 l3Networks.getL3Network().add(network);
516 l3Networks.getL3Network().add(network);
517 Optional<L3Networks> optNetworks = Optional.of(l3Networks);
519 doReturn(optNetworks).when(MOCK_aaiResourcesClient).get(eq(L3Networks.class), any(AAIResourceUri.class));
521 bbInputSetupUtils.getRelatedNetworkByNameFromServiceInstance(serviceInstanceId, networkName);
525 public void getRelatedNetworkByNameFromServiceInstanceNotFoundTest() throws Exception {
526 assertEquals(Optional.empty(), bbInputSetupUtils.getRelatedNetworkByNameFromServiceInstance("", ""));
530 public void getRelatedServiceInstanceFromInstanceGroupTest() throws Exception {
531 Optional<ServiceInstances> expected = Optional.of(new ServiceInstances());
532 ServiceInstance serviceInstance = new ServiceInstance();
533 serviceInstance.setServiceInstanceId("serviceInstanceId");
534 serviceInstance.setServiceInstanceName("serviceInstanceName");
535 expected.get().getServiceInstance().add(serviceInstance);
537 doReturn(expected).when(MOCK_aaiResourcesClient).get(eq(ServiceInstances.class), any(AAIResourceUri.class));
538 Optional<ServiceInstance> actual = this.bbInputSetupUtils.getRelatedServiceInstanceFromInstanceGroup("ig-001");
540 assertTrue(actual.isPresent());
541 assertEquals(expected.get().getServiceInstance().get(0).getServiceInstanceId(),
542 actual.get().getServiceInstanceId());
546 public void getRelatedServiceInstanceFromInstanceGroupMultipleExceptionTest() throws Exception {
547 final String instanceGroupId = "ig-001";
548 expectedException.expect(MultipleObjectsFoundException.class);
549 expectedException.expectMessage(
550 String.format("Mulitple service instances were found for instance-group-id: %s.", instanceGroupId));
552 Optional<ServiceInstances> serviceInstances = Optional.of(new ServiceInstances());
553 ServiceInstance si1 = Mockito.mock(ServiceInstance.class);
554 ServiceInstance si2 = Mockito.mock(ServiceInstance.class);
555 serviceInstances.get().getServiceInstance().add(si1);
556 serviceInstances.get().getServiceInstance().add(si2);
558 doReturn(serviceInstances).when(MOCK_aaiResourcesClient).get(eq(ServiceInstances.class),
559 any(AAIResourceUri.class));
560 bbInputSetupUtils.getRelatedServiceInstanceFromInstanceGroup(instanceGroupId);
564 public void getRelatedServiceInstanceFromInstanceGroupNotFoundExceptionTest() throws Exception {
565 expectedException.expect(NoServiceInstanceFoundException.class);
566 expectedException.expectMessage("No ServiceInstances Returned");
568 Optional<ServiceInstances> serviceInstances = Optional.of(new ServiceInstances());
570 doReturn(serviceInstances).when(MOCK_aaiResourcesClient).get(eq(ServiceInstances.class),
571 any(AAIResourceUri.class));
572 bbInputSetupUtils.getRelatedServiceInstanceFromInstanceGroup("ig-001");
576 public void getRelatedVnfByNameFromServiceInstanceTest() throws Exception {
577 final String vnfId = "id123";
578 final String vnfName = "name123";
580 Optional<GenericVnfs> expected = Optional.of(new GenericVnfs());
581 GenericVnf vnf = new GenericVnf();
583 vnf.setVnfName(vnfName);
584 expected.get().getGenericVnf().add(vnf);
586 doReturn(expected).when(MOCK_aaiResourcesClient).get(eq(GenericVnfs.class), any(AAIResourceUri.class));
587 Optional<GenericVnf> actual = this.bbInputSetupUtils.getRelatedVnfByNameFromServiceInstance(vnfId, vnfName);
589 assertTrue(actual.isPresent());
590 assertEquals(expected.get().getGenericVnf().get(0).getVnfId(), actual.get().getVnfId());
594 public void getRelatedVnfByNameFromServiceInstanceMultipleVnfsExceptionTest() throws Exception {
595 final String serviceInstanceId = "serviceInstanceId";
596 final String vnfName = "vnfName";
597 expectedException.expect(MultipleObjectsFoundException.class);
598 expectedException.expectMessage(String.format(
599 "Multiple vnfs found for service-instance-id: %s and vnf-name: %s.", serviceInstanceId, vnfName));
601 GenericVnf vnf = new GenericVnf();
602 vnf.setVnfId("id123");
603 vnf.setVnfName("name123");
605 GenericVnfs vnfs = new GenericVnfs();
606 vnfs.getGenericVnf().add(vnf);
607 vnfs.getGenericVnf().add(vnf);
609 Optional<GenericVnfs> optVnfs = Optional.of(vnfs);
610 doReturn(optVnfs).when(MOCK_aaiResourcesClient).get(eq(GenericVnfs.class), any(AAIResourceUri.class));
612 bbInputSetupUtils.getRelatedVnfByNameFromServiceInstance(serviceInstanceId, vnfName);
616 public void getRelatedVnfByNameFromServiceInstanceNotFoundTest() throws Exception {
617 final String serviceInstanceId = "serviceInstanceId";
618 final String vnfName = "vnfName";
620 assertEquals(Optional.empty(),
621 bbInputSetupUtils.getRelatedVnfByNameFromServiceInstance(serviceInstanceId, vnfName));
625 public void getRelatedVolumeGroupByNameFromVnfTest() throws Exception {
626 final String vnfId = "id123";
627 final String vnfName = "name123";
629 Optional<VolumeGroups> expected = Optional.of(new VolumeGroups());
630 VolumeGroup volumeGroup = new VolumeGroup();
631 volumeGroup.setVolumeGroupId(vnfId);
632 volumeGroup.setVolumeGroupName(vnfName);
633 expected.get().getVolumeGroup().add(volumeGroup);
635 doReturn(expected).when(MOCK_aaiResourcesClient).get(eq(VolumeGroups.class), any(AAIResourceUri.class));
636 Optional<VolumeGroup> actual = this.bbInputSetupUtils.getRelatedVolumeGroupByNameFromVnf(vnfId, vnfName);
638 assertTrue(actual.isPresent());
639 assertEquals(expected.get().getVolumeGroup().get(0).getVolumeGroupId(), actual.get().getVolumeGroupId());
643 public void getRelatedVolumeGroupByNameFromVnfMultipleVolumeGroupsExceptionTest() throws Exception {
644 final String vnfId = "vnfId";
645 final String volumeGroupName = "volumeGroupName";
646 expectedException.expect(MultipleObjectsFoundException.class);
647 expectedException.expectMessage(String.format(
648 "Multiple volume-groups found for vnf-id: %s and volume-group-name: %s.", vnfId, volumeGroupName));
650 VolumeGroup volumeGroup = new VolumeGroup();
651 volumeGroup.setVolumeGroupId("id123");
652 volumeGroup.setVolumeGroupName("name123");
654 VolumeGroups volumeGroups = new VolumeGroups();
655 volumeGroups.getVolumeGroup().add(volumeGroup);
656 volumeGroups.getVolumeGroup().add(volumeGroup);
657 Optional<VolumeGroups> optVolumeGroups = Optional.of(volumeGroups);
659 doReturn(optVolumeGroups).when(MOCK_aaiResourcesClient).get(eq(VolumeGroups.class), any(AAIResourceUri.class));
661 bbInputSetupUtils.getRelatedVolumeGroupByNameFromVnf(vnfId, volumeGroupName);
665 public void getRelatedVolumeGroupByNameFromVnfNotFoundTest() throws Exception {
666 assertEquals(Optional.empty(), bbInputSetupUtils.getRelatedVolumeGroupByNameFromVnf("", ""));
670 public void getRelatedVolumeGroupByNameFromVfModuleTest() throws Exception {
671 Optional<VolumeGroups> expected = Optional.of(new VolumeGroups());
672 VolumeGroup volumeGroup = new VolumeGroup();
673 volumeGroup.setVolumeGroupId("id123");
674 volumeGroup.setVolumeGroupName("name123");
675 expected.get().getVolumeGroup().add(volumeGroup);
677 doReturn(expected).when(MOCK_aaiResourcesClient).get(eq(VolumeGroups.class), any(AAIResourceUri.class));
678 Optional<VolumeGroup> actual =
679 this.bbInputSetupUtils.getRelatedVolumeGroupByNameFromVfModule("id123", "id123", "name123");
681 assertTrue(actual.isPresent());
682 assertEquals(expected.get().getVolumeGroup().get(0).getVolumeGroupId(), actual.get().getVolumeGroupId());
686 public void getRelatedVolumeGroupFromVfModuleMultipleVolumeGroupsExceptionTest() throws Exception {
687 expectedException.expect(Exception.class);
688 final String vnfId = "vnfId";
689 final String volumeGroupId = "volumeGroupId";
691 VolumeGroup volumeGroup = new VolumeGroup();
692 volumeGroup.setVolumeGroupId("id123");
693 volumeGroup.setVolumeGroupName("name123");
695 VolumeGroups expectedVolumeGroup = new VolumeGroups();
696 expectedVolumeGroup.getVolumeGroup().add(volumeGroup);
697 expectedVolumeGroup.getVolumeGroup().add(volumeGroup);
699 doReturn(expectedVolumeGroup).when(MOCK_aaiResourcesClient).get(eq(VolumeGroups.class),
700 any(AAIResourceUri.class));
702 bbInputSetupUtils.getRelatedVolumeGroupFromVfModule(vnfId, volumeGroupId);
706 public void getRelatedVolumeGroupFromVfModuleNotFoundTest() throws Exception {
707 final String vnfId = "vnfId";
708 final String volumeGroupId = "volumeGroupId";
710 assertEquals(Optional.empty(), bbInputSetupUtils.getRelatedVolumeGroupFromVfModule(vnfId, volumeGroupId));
714 public void getRelatedVolumeGroupFromVfModuleTest() throws Exception {
715 Optional<VolumeGroups> expected = Optional.of(new VolumeGroups());
716 VolumeGroup volumeGroup = new VolumeGroup();
717 volumeGroup.setVolumeGroupId("id123");
718 expected.get().getVolumeGroup().add(volumeGroup);
720 doReturn(expected).when(MOCK_aaiResourcesClient).get(eq(VolumeGroups.class), any(AAIResourceUri.class));
721 Optional<VolumeGroup> actual = bbInputSetupUtils.getRelatedVolumeGroupFromVfModule("id123", "id123");
723 assertTrue(actual.isPresent());
724 assertEquals(expected.get().getVolumeGroup().get(0).getVolumeGroupId(), actual.get().getVolumeGroupId());
728 public void getRelatedVolumeGroupByNameFromVfModuleMultipleVolumeGroupsExceptionTest() throws Exception {
729 final String vnfId = "vnfId";
730 final String vfModuleId = "vfModuleId";
731 final String volumeGroupName = "volumeGroupName";
733 expectedException.expect(MultipleObjectsFoundException.class);
734 expectedException.expectMessage(String.format(
735 "Multiple voulme-groups found for vnf-id: %s, vf-module-id: %s and volume-group-name: %s.", vnfId,
736 vfModuleId, volumeGroupName));
738 VolumeGroup volumeGroup = new VolumeGroup();
739 volumeGroup.setVolumeGroupId("id123");
740 volumeGroup.setVolumeGroupName("name123");
742 VolumeGroups volumeGroups = new VolumeGroups();
743 volumeGroups.getVolumeGroup().add(volumeGroup);
744 volumeGroups.getVolumeGroup().add(volumeGroup);
746 Optional<VolumeGroups> optVolumeGroups = Optional.of(volumeGroups);
747 doReturn(optVolumeGroups).when(MOCK_aaiResourcesClient).get(eq(VolumeGroups.class), any(AAIResourceUri.class));
749 bbInputSetupUtils.getRelatedVolumeGroupByNameFromVfModule(vnfId, vfModuleId, volumeGroupName);
753 public void getRelatedVolumeGroupByNameFromVfModuleNotFoundTest() throws Exception {
754 assertEquals(Optional.empty(), bbInputSetupUtils.getRelatedVolumeGroupByNameFromVfModule("", "", ""));
758 public void loadOriginalFlowExecutionPathTest() throws IOException {
759 final String requestId = "123";
760 final String originalRequestId = "originalRequestId";
761 final String flowsToExecuteString = new String(
762 Files.readAllBytes(Paths.get(RESOURCE_PATH + "FlowsToExecute.json")), StandardCharsets.UTF_8);
764 InfraActiveRequests request = new InfraActiveRequests();
765 ExecuteBuildingBlock[] expectedFlowsToExecute =
766 mapper.readValue(flowsToExecuteString, ExecuteBuildingBlock[].class);
768 request.setRequestId(requestId);
769 request.setOriginalRequestId(originalRequestId);
770 doReturn(request).when(MOCK_requestsDbClient).getInfraActiveRequestbyRequestId(requestId);
772 RequestProcessingData requestProcessingData = new RequestProcessingData();
773 requestProcessingData.setValue(flowsToExecuteString);
774 doReturn(requestProcessingData).when(MOCK_requestsDbClient)
775 .getRequestProcessingDataBySoRequestIdAndName(anyString(), anyString());
777 List<ExecuteBuildingBlock> flowsToExecute = bbInputSetupUtils.loadOriginalFlowExecutionPath(requestId);
779 assertEquals(mapper.writeValueAsString(expectedFlowsToExecute), mapper.writeValueAsString(flowsToExecute));
783 public void getRelatedConfigurationByNameFromServiceInstanceExceptionTest() throws Exception {
784 Configuration configuration = new Configuration();
785 configuration.setConfigurationId("id123");
787 Configurations configurations = new Configurations();
788 configurations.getConfiguration().add(configuration);
789 configurations.getConfiguration().add(configuration);
791 Optional<Configurations> optConfigurations = Optional.of(configurations);
793 doReturn(optConfigurations).when(MOCK_aaiResourcesClient).get(eq(Configurations.class),
794 any(AAIResourceUri.class));
796 expectedException.expect(MultipleObjectsFoundException.class);
797 this.bbInputSetupUtils.getRelatedConfigurationByNameFromServiceInstance("id123", "name123");
801 public void getRelatedConfigurationByNameFromServiceInstanceNotFoundTest() throws Exception {
802 assertEquals(Optional.empty(), bbInputSetupUtils.getRelatedConfigurationByNameFromServiceInstance("", ""));
806 public void getRelatedConfigurationByNameFromServiceInstanceTest() throws Exception {
807 Optional<Configurations> expected = Optional.of(new Configurations());
808 Configuration configuration = new Configuration();
809 configuration.setConfigurationId("id123");
810 expected.get().getConfiguration().add(configuration);
812 doReturn(expected).when(MOCK_aaiResourcesClient).get(eq(Configurations.class), any(AAIResourceUri.class));
813 Optional<Configuration> actual =
814 this.bbInputSetupUtils.getRelatedConfigurationByNameFromServiceInstance("id123", "name123");
816 assertTrue(actual.isPresent());
817 assertEquals(expected.get().getConfiguration().get(0).getConfigurationId(), actual.get().getConfigurationId());
821 public void existsAAIVfModuleGloballyByNameTest() {
822 AAIResourceUri expectedUri =
823 AAIUriFactory.createNodesUri(AAIObjectPlurals.VF_MODULE).queryParam("vf-module-name", "testVfModule");
824 bbInputSetupUtils.existsAAIVfModuleGloballyByName("testVfModule");
826 verify(MOCK_aaiResourcesClient, times(1)).exists(expectedUri);
830 public void existsAAIConfigurationGloballyByNameTest() {
831 AAIResourceUri expectedUri = AAIUriFactory.createResourceUri(AAIObjectPlurals.CONFIGURATION)
832 .queryParam("configuration-name", "testConfig");
833 bbInputSetupUtils.existsAAIConfigurationGloballyByName("testConfig");
835 verify(MOCK_aaiResourcesClient, times(1)).exists(expectedUri);
839 public void existsAAINetworksGloballyByNameTest() {
840 AAIResourceUri expectedUri =
841 AAIUriFactory.createResourceUri(AAIObjectPlurals.L3_NETWORK).queryParam("network-name", "testNetwork");
842 bbInputSetupUtils.existsAAINetworksGloballyByName("testNetwork");
844 verify(MOCK_aaiResourcesClient, times(1)).exists(expectedUri);
848 public void existsAAIVolumeGroupGloballyByNameTest() {
849 AAIResourceUri expectedUri = AAIUriFactory.createNodesUri(AAIObjectPlurals.VOLUME_GROUP)
850 .queryParam("volume-group-name", "testVoumeGroup");
852 bbInputSetupUtils.existsAAIVolumeGroupGloballyByName("testVoumeGroup");
853 verify(MOCK_aaiResourcesClient, times(1)).exists(expectedUri);
857 public void shouldChangeInfraActiveRequestVnfId() throws IOException {
858 final String vnfId = "vnfId";
859 InfraActiveRequests infraActiveRequests = loadExpectedInfraActiveRequest();
861 bbInputSetupUtils.updateInfraActiveRequestVnfId(infraActiveRequests, vnfId);
863 assertEquals(infraActiveRequests.getVnfId(), vnfId);
867 public void shouldChangeInfraActiveRequestVfModuleId() throws IOException {
868 final String vfModuleId = "vfModuleId";
869 InfraActiveRequests infraActiveRequests = loadExpectedInfraActiveRequest();
871 bbInputSetupUtils.updateInfraActiveRequestVfModuleId(infraActiveRequests, vfModuleId);
873 assertEquals(infraActiveRequests.getVfModuleId(), vfModuleId);
877 public void shouldChangeInfraActiveRequestVolumeGroupId() throws IOException {
878 final String volumeGroupId = "volumeGroupId";
879 InfraActiveRequests infraActiveRequests = loadExpectedInfraActiveRequest();
881 bbInputSetupUtils.updateInfraActiveRequestVolumeGroupId(infraActiveRequests, volumeGroupId);
883 assertEquals(infraActiveRequests.getVolumeGroupId(), volumeGroupId);
887 public void shouldChangeInfraActiveRequestNetworkId() throws IOException {
888 final String networkId = "activeRequestNetworkId";
889 InfraActiveRequests infraActiveRequests = loadExpectedInfraActiveRequest();
891 bbInputSetupUtils.updateInfraActiveRequestNetworkId(infraActiveRequests, networkId);
893 assertEquals(infraActiveRequests.getNetworkId(), networkId);
897 public void getAAIVpnBindingNullTest() {
898 assertNull(bbInputSetupUtils.getAAIVpnBinding("vpnBindingId"));
902 public void getAAIVolumeGroupNullTest() {
903 VolumeGroup actualAaiVnf =
904 bbInputSetupUtils.getAAIVolumeGroup("cloudOwnerId", "cloudRegionId", "volumeGroupId");
905 assertNull(actualAaiVnf);
909 public void getAAIVfModuleNullTest() {
910 assertNull(bbInputSetupUtils.getAAIVfModule("vnfId", "vfModuleId"));
914 public void getAAIL3NetworkNullTest() {
915 assertNull(bbInputSetupUtils.getAAIL3Network("networkId"));
919 public void getAICVpnBindingFromNetwork_noVpnBindingTest() throws IOException {
920 L3Network l3Network =
921 mapper.readValue(new File(RESOURCE_PATH + "aaiL3NetworkInputWithSubnets.json"), L3Network.class);
923 Optional<VpnBinding> actual = bbInputSetupUtils.getAICVpnBindingFromNetwork(l3Network);
924 assertEquals(actual, Optional.empty());
928 public void getAAIServiceInstancesGloballyByName_noAAIResourceTest() {
929 final String serviceInstanceName = "serviceInstanceName";
931 doReturn(Optional.empty()).when(MOCK_aaiResourcesClient).get(isA(Class.class), isA(AAIResourceUri.class));
932 ServiceInstances actualServiceInstances =
933 bbInputSetupUtils.getAAIServiceInstancesGloballyByName(serviceInstanceName);
935 assertNull(actualServiceInstances);
939 public void getAAIVnfsGloballyByName_noAAIResourceTest() {
940 final String vnfName = "vnfName";
942 doReturn(Optional.empty()).when(MOCK_aaiResourcesClient).get(isA(Class.class), isA(AAIResourceUri.class));
943 GenericVnfs actualGenericVnfs = bbInputSetupUtils.getAAIVnfsGloballyByName(vnfName);
945 assertNull(actualGenericVnfs);
948 private InfraActiveRequests loadExpectedInfraActiveRequest() throws IOException {
949 return mapper.readValue(new File(RESOURCE_PATH + "InfraActiveRequestExpected.json"), InfraActiveRequests.class);