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.junit.Assert.assertEquals;
28 import static org.junit.Assert.assertNull;
29 import static org.junit.Assert.assertTrue;
30 import static org.mockito.ArgumentMatchers.any;
31 import static org.mockito.ArgumentMatchers.anyString;
32 import static org.mockito.ArgumentMatchers.eq;
33 import static org.mockito.ArgumentMatchers.isA;
34 import static org.mockito.Mockito.doReturn;
35 import static org.mockito.Mockito.times;
36 import static org.mockito.Mockito.verify;
38 import java.io.IOException;
39 import java.nio.charset.StandardCharsets;
40 import java.nio.file.Files;
41 import java.nio.file.Paths;
42 import java.util.Arrays;
43 import java.util.List;
44 import java.util.Optional;
45 import org.junit.Before;
46 import org.junit.Rule;
47 import org.junit.Test;
48 import org.junit.rules.ExpectedException;
49 import org.junit.runner.RunWith;
50 import org.mockito.InjectMocks;
51 import org.mockito.Mock;
52 import org.mockito.Mockito;
53 import org.mockito.junit.MockitoJUnitRunner;
54 import org.onap.aai.domain.yang.CloudRegion;
55 import org.onap.aai.domain.yang.Configuration;
56 import org.onap.aai.domain.yang.Configurations;
57 import org.onap.aai.domain.yang.GenericVnf;
58 import org.onap.aai.domain.yang.GenericVnfs;
59 import org.onap.aai.domain.yang.InstanceGroup;
60 import org.onap.aai.domain.yang.L3Network;
61 import org.onap.aai.domain.yang.L3Networks;
62 import org.onap.aai.domain.yang.ServiceInstance;
63 import org.onap.aai.domain.yang.ServiceInstances;
64 import org.onap.aai.domain.yang.VolumeGroup;
65 import org.onap.aai.domain.yang.VolumeGroups;
66 import org.onap.aai.domain.yang.VpnBinding;
67 import org.onap.aaiclient.client.aai.AAIObjectPlurals;
68 import org.onap.aaiclient.client.aai.AAIObjectType;
69 import org.onap.aaiclient.client.aai.AAIResourcesClient;
70 import org.onap.aaiclient.client.aai.entities.uri.AAIPluralResourceUri;
71 import org.onap.aaiclient.client.aai.entities.uri.AAIResourceUri;
72 import org.onap.aaiclient.client.aai.entities.uri.AAIUriFactory;
73 import org.onap.aaiclient.client.graphinventory.entities.uri.Depth;
74 import org.onap.so.bpmn.common.InjectionHelper;
75 import org.onap.so.bpmn.servicedecomposition.bbobjects.Customer;
76 import org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceSubscription;
77 import org.onap.so.bpmn.servicedecomposition.entities.ExecuteBuildingBlock;
78 import org.onap.so.bpmn.servicedecomposition.tasks.exceptions.MultipleObjectsFoundException;
79 import org.onap.so.bpmn.servicedecomposition.tasks.exceptions.NoServiceInstanceFoundException;
80 import org.onap.so.db.catalog.beans.CollectionResourceInstanceGroupCustomization;
81 import org.onap.so.db.catalog.beans.Service;
82 import org.onap.so.db.catalog.beans.VnfcInstanceGroupCustomization;
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.DeserializationFeature;
90 import com.fasterxml.jackson.databind.ObjectMapper;
92 @RunWith(MockitoJUnitRunner.class)
93 public class BBInputSetupUtilsTest {
94 protected ObjectMapper mapper =
95 new ObjectMapper().configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);;
96 private static final String RESOURCE_PATH = "src/test/resources/__files/ExecuteBuildingBlock/";
99 BBInputSetupUtils bbInputSetupUtils = new BBInputSetupUtils();
102 protected CatalogDbClient MOCK_catalogDbClient;
105 protected RequestsDbClient MOCK_requestsDbClient;
108 protected AAIResourcesClient MOCK_aaiResourcesClient;
111 protected InjectionHelper MOCK_injectionHelper;
114 public ExpectedException expectedException = ExpectedException.none();
117 public void setup() {
118 doReturn(MOCK_aaiResourcesClient).when(MOCK_injectionHelper).getAaiClient();
122 public void getCatalogServiceByModelUUIDTest() throws IOException {
123 Service expected = mapper.readValue(new File(RESOURCE_PATH + "CatalogServiceExpected.json"), Service.class);
124 final String modelUUID = "modelUUIDTest";
126 doReturn(expected).when(MOCK_catalogDbClient).getServiceByID(modelUUID);
128 assertThat(bbInputSetupUtils.getCatalogServiceByModelUUID(modelUUID), sameBeanAs(expected));
132 public void getCatalogServiceByModelVersionAndModelInvariantUUIDTest() throws IOException {
133 final String modelVersion = "modelVersionTest";
134 final String modelInvariantUUID = "modelInvariantUUIDTest";
135 Service expectedService =
136 mapper.readValue(new File(RESOURCE_PATH + "CatalogServiceExpected.json"), Service.class);
138 doReturn(expectedService).when(MOCK_catalogDbClient).getServiceByModelVersionAndModelInvariantUUID(modelVersion,
141 assertThat(bbInputSetupUtils.getCatalogServiceByModelVersionAndModelInvariantUUID(modelVersion,
142 modelInvariantUUID), sameBeanAs(expectedService));
146 public void getVnfcInstanceGroupsTest() throws IOException {
147 final String modelCustomizationUUID = "modelCustomizationUUIDTest";
148 VnfcInstanceGroupCustomization vnfc = mapper.readValue(
149 new File(RESOURCE_PATH + "VnfcInstanceGroupCustomization.json"), VnfcInstanceGroupCustomization.class);
151 doReturn(Arrays.asList(vnfc)).when(MOCK_catalogDbClient)
152 .getVnfcInstanceGroupsByVnfResourceCust(modelCustomizationUUID);
154 assertThat(bbInputSetupUtils.getVnfcInstanceGroups(modelCustomizationUUID), sameBeanAs(Arrays.asList(vnfc)));
158 public void getRequestDetailsTest() throws IOException {
159 final String requestId = "requestId";
160 InfraActiveRequests infraActiveRequest = mapper
161 .readValue(new File(RESOURCE_PATH + "InfraActiveRequestExpected.json"), InfraActiveRequests.class);
162 RequestDetails expected =
163 mapper.readValue(new File(RESOURCE_PATH + "RequestDetailsExpected.json"), RequestDetails.class);
165 doReturn(infraActiveRequest).when(MOCK_requestsDbClient).getInfraActiveRequestbyRequestId(requestId);
167 assertThat(bbInputSetupUtils.getRequestDetails(requestId), sameBeanAs(expected));
171 public void getRequestDetailsNullTest() throws IOException {
172 assertNull(bbInputSetupUtils.getRequestDetails(""));
176 public void getCloudRegionTest() {
177 CloudConfiguration cloudConfig = new CloudConfiguration();
178 cloudConfig.setLcpCloudRegionId("lcpCloudRegionId");
179 Optional<CloudRegion> expected = Optional.of(new CloudRegion());
181 doReturn(expected).when(MOCK_aaiResourcesClient).get(CloudRegion.class,
182 AAIUriFactory.createResourceUri(AAIObjectType.CLOUD_REGION, cloudConfig.getCloudOwner(),
183 cloudConfig.getLcpCloudRegionId()).depth(Depth.TWO));
185 assertThat(bbInputSetupUtils.getCloudRegion(cloudConfig), sameBeanAs(expected.get()));
189 public void getCloudRegionNullTest() {
190 CloudConfiguration cloudConfig = new CloudConfiguration();
191 cloudConfig.setLcpCloudRegionId("lcpCloudRegionId");
193 assertNull(bbInputSetupUtils.getCloudRegion(cloudConfig));
197 public void getCloudRegionEmptyIdTest() {
198 CloudConfiguration cloudConfig = new CloudConfiguration();
199 cloudConfig.setLcpCloudRegionId("");
201 assertNull(bbInputSetupUtils.getCloudRegion(cloudConfig));
205 public void getAAIInstanceGroupTest() {
206 final String instanceGroupId = "instanceGroupId";
207 Optional<InstanceGroup> expected = Optional.of(new InstanceGroup());
208 expected.get().setId(instanceGroupId);
210 doReturn(expected).when(MOCK_aaiResourcesClient).get(InstanceGroup.class,
211 AAIUriFactory.createResourceUri(AAIObjectType.INSTANCE_GROUP, instanceGroupId));
213 assertThat(bbInputSetupUtils.getAAIInstanceGroup(instanceGroupId), sameBeanAs(expected.get()));
217 public void getAAIInstanceGroupNullTest() {
218 assertNull(bbInputSetupUtils.getAAIInstanceGroup(""));
222 public void getAAICustomerTest() {
223 final String globalSubscriberId = "globalSubscriberId";
224 Optional<org.onap.aai.domain.yang.Customer> expected = Optional.of(new org.onap.aai.domain.yang.Customer());
225 expected.get().setGlobalCustomerId(globalSubscriberId);
227 doReturn(expected).when(MOCK_aaiResourcesClient).get(org.onap.aai.domain.yang.Customer.class,
228 AAIUriFactory.createResourceUri(AAIObjectType.CUSTOMER, globalSubscriberId));
230 assertThat(bbInputSetupUtils.getAAICustomer(globalSubscriberId), sameBeanAs(expected.get()));
234 public void getAAICustomerNullTest() {
235 assertNull(bbInputSetupUtils.getAAICustomer(""));
239 public void getAAIServiceSubscriptionTest() {
240 final String globalSubscriberId = "globalSubscriberId";
241 final String subscriptionServiceType = "subscriptionServiceType";
242 Optional<org.onap.aai.domain.yang.ServiceSubscription> expected =
243 Optional.of(new org.onap.aai.domain.yang.ServiceSubscription());
245 expected.get().setServiceType(subscriptionServiceType);
246 doReturn(expected).when(MOCK_aaiResourcesClient).get(org.onap.aai.domain.yang.ServiceSubscription.class,
247 AAIUriFactory.createResourceUri(AAIObjectType.SERVICE_SUBSCRIPTION, globalSubscriberId,
248 subscriptionServiceType));
250 assertThat(bbInputSetupUtils.getAAIServiceSubscription(globalSubscriberId, subscriptionServiceType),
251 sameBeanAs(expected.get()));
255 public void getAAIServiceSubscriptionErrorsTest() {
256 assertNull(bbInputSetupUtils.getAAIServiceSubscription(null, null));
257 assertNull(bbInputSetupUtils.getAAIServiceSubscription("", ""));
258 assertNull(bbInputSetupUtils.getAAIServiceSubscription("", null));
259 assertNull(bbInputSetupUtils.getAAIServiceSubscription(null, ""));
263 public void getAAIServiceInstanceByIdTest() {
264 final String serviceInstanceId = "serviceInstanceId";
265 ServiceInstance expectedServiceInstance = new ServiceInstance();
267 doReturn(Optional.of(expectedServiceInstance)).when(MOCK_aaiResourcesClient).get(isA(Class.class),
268 isA(AAIResourceUri.class));
270 assertThat(bbInputSetupUtils.getAAIServiceInstanceById(serviceInstanceId), sameBeanAs(expectedServiceInstance));
274 public void getAAIServiceInstanceById_ifEmptyReturnNull() {
275 doReturn(Optional.empty()).when(MOCK_aaiResourcesClient).get(eq(ServiceInstance.class),
276 any(AAIResourceUri.class));
278 assertNull(bbInputSetupUtils.getAAIServiceInstanceById("any"));
282 public void getAAIServiceInstanceByIdAndCustomerTest() {
283 final String globalCustomerId = "globalCustomerId";
284 final String serviceType = "serviceType";
285 final String serviceInstanceId = "serviceInstanceId";
286 ServiceInstance expected = new ServiceInstance();
287 expected.setServiceInstanceId(serviceInstanceId);
289 doReturn(Optional.of(expected)).when(MOCK_aaiResourcesClient).get(ServiceInstance.class, AAIUriFactory
290 .createResourceUri(AAIObjectType.SERVICE_INSTANCE, globalCustomerId, serviceType, serviceInstanceId)
293 assertThat(bbInputSetupUtils.getAAIServiceInstanceByIdAndCustomer(globalCustomerId, serviceType,
294 serviceInstanceId), sameBeanAs(expected));
298 public void getAAIServiceInstanceByIdAndCustomerNullTest() {
299 doReturn(Optional.empty()).when(MOCK_aaiResourcesClient).get(eq(ServiceInstance.class),
300 any(AAIResourceUri.class));
302 assertNull(bbInputSetupUtils.getAAIServiceInstanceByIdAndCustomer("", "", ""));
306 public void getAAIServiceInstanceByNameTest() throws Exception {
307 final String serviceInstanceName = "serviceInstanceName";
309 ServiceInstance expectedServiceInstance = new ServiceInstance();
310 expectedServiceInstance.setServiceInstanceId("serviceInstanceId");
312 ServiceSubscription serviceSubscription = new ServiceSubscription();
313 serviceSubscription.setServiceType("serviceType");
315 Customer customer = new Customer();
316 customer.setGlobalCustomerId("globalCustomerId");
317 customer.setServiceSubscription(serviceSubscription);
319 ServiceInstances serviceInstances = new ServiceInstances();
320 serviceInstances.getServiceInstance().add(expectedServiceInstance);
322 AAIPluralResourceUri expectedUri = AAIUriFactory
323 .createResourceUri(AAIObjectPlurals.SERVICE_INSTANCE, customer.getGlobalCustomerId(),
324 customer.getServiceSubscription().getServiceType())
325 .queryParam("service-instance-name", serviceInstanceName).depth(Depth.TWO);
326 bbInputSetupUtils.getAAIServiceInstanceByName(serviceInstanceName, customer);
328 verify(MOCK_aaiResourcesClient, times(1)).getOne(org.onap.aai.domain.yang.ServiceInstances.class,
329 org.onap.aai.domain.yang.ServiceInstance.class, expectedUri);
333 public void getAAIServiceInstanceByNameNullTest() throws Exception {
334 Customer customer = new Customer();
335 customer.setServiceSubscription(new ServiceSubscription());
337 assertNull(bbInputSetupUtils.getAAIServiceInstanceByName("", customer));
341 public void getOptionalAAIServiceInstanceByNameNullTest() throws Exception {
342 Optional<ServiceInstance> actual = bbInputSetupUtils.getAAIServiceInstanceByName("", "", "");
344 assertThat(actual, sameBeanAs(Optional.empty()));
348 public void getCatalogInstanceGroupNullTest() {
349 assertNull(bbInputSetupUtils.getCatalogInstanceGroup(""));
353 public void getCatalogInstanceGroupTest() throws IOException {
354 final String modelUUID = "modelUUIDTest";
355 org.onap.so.db.catalog.beans.InstanceGroup expectedInstanceGroup = mapper.readValue(
356 new File(RESOURCE_PATH + "InstanceGroup.json"), org.onap.so.db.catalog.beans.InstanceGroup.class);
358 doReturn(expectedInstanceGroup).when(MOCK_catalogDbClient).getInstanceGroupByModelUUID(modelUUID);
360 assertThat(bbInputSetupUtils.getCatalogInstanceGroup(modelUUID), sameBeanAs(expectedInstanceGroup));
364 public void getCollectionResourceInstanceGroupCustomizationTest() {
365 final String modelCustomizationUUID = "modelCustomizationUUID";
366 CollectionResourceInstanceGroupCustomization expectedCollection =
367 new CollectionResourceInstanceGroupCustomization();
369 doReturn(Arrays.asList(expectedCollection)).when(MOCK_catalogDbClient)
370 .getCollectionResourceInstanceGroupCustomizationByModelCustUUID(modelCustomizationUUID);
372 assertThat(bbInputSetupUtils.getCollectionResourceInstanceGroupCustomization(modelCustomizationUUID),
373 sameBeanAs(Arrays.asList(expectedCollection)));
377 public void getAAIConfigurationNullTest() {
378 assertNull(bbInputSetupUtils.getAAIConfiguration(""));
382 public void getAAIConfigurationTest() throws IOException {
383 final String configurationId = "configurationId";
384 Configuration expectedAaiConfiguration =
385 mapper.readValue(new File(RESOURCE_PATH + "ConfigurationInput.json"), Configuration.class);
387 doReturn(Optional.of(expectedAaiConfiguration)).when(MOCK_aaiResourcesClient).get(isA(Class.class),
388 isA(AAIResourceUri.class));
390 assertThat(bbInputSetupUtils.getAAIConfiguration(configurationId), sameBeanAs(expectedAaiConfiguration));
394 public void getAAIGenericVnfNullTest() {
395 assertNull(bbInputSetupUtils.getAAIGenericVnf(""));
399 public void getAAIGenericVnfTest() throws IOException {
400 final String vnfId = "vnfId";
401 GenericVnf expectedAaiVnf =
402 mapper.readValue(new File(RESOURCE_PATH + "aaiGenericVnfInput.json"), GenericVnf.class);
404 doReturn(Optional.of(expectedAaiVnf)).when(MOCK_aaiResourcesClient).get(isA(Class.class),
405 eq(AAIUriFactory.createResourceUri(AAIObjectType.GENERIC_VNF, vnfId).depth(Depth.ONE)));
407 assertThat(bbInputSetupUtils.getAAIGenericVnf(vnfId), sameBeanAs(expectedAaiVnf));
411 public void getAAIResourceDepthOneTest() {
412 AAIResourceUri aaiResourceUri = AAIUriFactory.createResourceUri(AAIObjectType.GENERIC_VNF, "anyVnfId");
413 AAIResourceUri expectedUri = aaiResourceUri.clone().depth(Depth.ONE);
414 AAIResourceUri aaiResourceUriClone = aaiResourceUri.clone();
416 bbInputSetupUtils.getAAIResourceDepthOne(aaiResourceUri);
418 verify(MOCK_aaiResourcesClient, times(1)).get(expectedUri);
419 assertEquals("Uri should not have changed", aaiResourceUriClone.build(), aaiResourceUri.build());
423 public void getAAIResourceDepthTwoTest() {
424 AAIResourceUri aaiResourceUri = AAIUriFactory.createResourceUri(AAIObjectType.GENERIC_VNF, "anyVnfId");
425 AAIResourceUri expectedUri = aaiResourceUri.clone().depth(Depth.TWO);
426 AAIResourceUri aaiResourceUriClone = aaiResourceUri.clone();
428 bbInputSetupUtils.getAAIResourceDepthTwo(aaiResourceUri);
430 verify(MOCK_aaiResourcesClient, times(1)).get(expectedUri);
431 assertEquals("Uri should not have changed", aaiResourceUriClone.build(), aaiResourceUri.build());
435 public void getRelatedNetworkByNameFromServiceInstanceTest() throws Exception {
436 final String networkId = "id123";
437 final String networkName = "name123";
439 Optional<L3Networks> expected = Optional.of(new L3Networks());
440 L3Network network = new L3Network();
441 network.setNetworkId(networkId);
442 network.setNetworkName(networkName);
443 expected.get().getL3Network().add(network);
444 doReturn(expected).when(MOCK_aaiResourcesClient).get(eq(L3Networks.class), any(AAIPluralResourceUri.class));
445 Optional<L3Network> actual =
446 bbInputSetupUtils.getRelatedNetworkByNameFromServiceInstance(networkId, networkName);
448 assertTrue(actual.isPresent());
449 assertEquals(networkId, actual.get().getNetworkId());
450 assertEquals(networkName, actual.get().getNetworkName());
451 assertEquals(expected.get().getL3Network().get(0).getNetworkId(), actual.get().getNetworkId());
455 public void getRelatedNetworkByNameFromServiceInstanceNotFoundTest() throws Exception {
456 String serviceInstanceId = "serviceInstanceId";
457 String networkName = "networkName";
459 doReturn(Optional.empty()).when(MOCK_aaiResourcesClient).get(eq(L3Networks.class),
460 any(AAIPluralResourceUri.class));
462 Optional<L3Network> actualNetwork =
463 bbInputSetupUtils.getRelatedNetworkByNameFromServiceInstance(serviceInstanceId, networkName);
465 assertEquals(Optional.empty(), actualNetwork);
469 public void getRelatedServiceInstanceFromInstanceGroupTest() throws Exception {
470 Optional<ServiceInstances> expected = Optional.of(new ServiceInstances());
471 ServiceInstance serviceInstance = new ServiceInstance();
472 serviceInstance.setServiceInstanceId("serviceInstanceId");
473 serviceInstance.setServiceInstanceName("serviceInstanceName");
474 expected.get().getServiceInstance().add(serviceInstance);
476 doReturn(expected).when(MOCK_aaiResourcesClient).get(eq(ServiceInstances.class),
477 any(AAIPluralResourceUri.class));
478 Optional<ServiceInstance> actual = this.bbInputSetupUtils.getRelatedServiceInstanceFromInstanceGroup("ig-001");
480 assertTrue(actual.isPresent());
481 assertEquals(expected.get().getServiceInstance().get(0).getServiceInstanceId(),
482 actual.get().getServiceInstanceId());
486 public void getRelatedServiceInstanceFromInstanceGroupMultipleExceptionTest() throws Exception {
487 final String instanceGroupId = "ig-001";
488 expectedException.expect(MultipleObjectsFoundException.class);
489 Optional<ServiceInstances> serviceInstances = Optional.of(new ServiceInstances());
490 ServiceInstance si1 = Mockito.mock(ServiceInstance.class);
491 ServiceInstance si2 = Mockito.mock(ServiceInstance.class);
492 serviceInstances.get().getServiceInstance().add(si1);
493 serviceInstances.get().getServiceInstance().add(si2);
495 doReturn(serviceInstances).when(MOCK_aaiResourcesClient).get(eq(ServiceInstances.class),
496 any(AAIPluralResourceUri.class));
497 this.bbInputSetupUtils.getRelatedServiceInstanceFromInstanceGroup(instanceGroupId);
501 public void getRelatedServiceInstanceFromInstanceGroupNotFoundExceptionTest() throws Exception {
502 expectedException.expect(NoServiceInstanceFoundException.class);
503 Optional<ServiceInstances> serviceInstances = Optional.of(new ServiceInstances());
505 doReturn(serviceInstances).when(MOCK_aaiResourcesClient).get(eq(ServiceInstances.class),
506 any(AAIPluralResourceUri.class));
507 this.bbInputSetupUtils.getRelatedServiceInstanceFromInstanceGroup("ig-001");
511 public void getRelatedVnfByNameFromServiceInstanceTest() throws Exception {
512 final String vnfId = "id123";
513 final String vnfName = "name123";
514 final String serviceInstanceId = "service-instance-id123";
515 GenericVnf vnf = new GenericVnf();
517 vnf.setVnfName(vnfName);
518 doReturn(Optional.of(vnf)).when(MOCK_aaiResourcesClient).getOne(GenericVnfs.class, GenericVnf.class,
519 AAIUriFactory.createResourceUri(AAIObjectType.SERVICE_INSTANCE, serviceInstanceId)
520 .relatedTo(AAIObjectPlurals.GENERIC_VNF).queryParam("vnf-name", vnfName));
521 Optional<GenericVnf> actual =
522 this.bbInputSetupUtils.getRelatedVnfByNameFromServiceInstance(serviceInstanceId, vnfName);
523 assertTrue(actual.isPresent());
524 assertEquals(vnf.getVnfId(), actual.get().getVnfId());
528 public void getRelatedVnfByNameFromServiceInstanceNotFoundTest() throws Exception {
529 final String serviceInstanceId = "serviceInstanceId";
530 final String vnfName = "vnfName";
532 doReturn(Optional.empty()).when(MOCK_aaiResourcesClient).getOne(eq(GenericVnfs.class), eq(GenericVnf.class),
533 any(AAIPluralResourceUri.class));
535 assertEquals(Optional.empty(),
536 bbInputSetupUtils.getRelatedVnfByNameFromServiceInstance(serviceInstanceId, vnfName));
540 public void getRelatedVolumeGroupByNameFromVnfTest() throws Exception {
541 final String vnfId = "vnf-id123";
542 final String volumeGroupId = "id123";
543 final String volumeGroupName = "volume-group-name123";
544 VolumeGroup volumeGroup = new VolumeGroup();
545 volumeGroup.setVolumeGroupId(volumeGroupId);
546 volumeGroup.setVolumeGroupName(volumeGroupName);
547 doReturn(Optional.of(volumeGroup)).when(MOCK_aaiResourcesClient).getOne(VolumeGroups.class, VolumeGroup.class,
548 AAIUriFactory.createResourceUri(AAIObjectType.GENERIC_VNF, vnfId)
549 .relatedTo(AAIObjectPlurals.VOLUME_GROUP).queryParam("volume-group-name", volumeGroupName));
550 Optional<VolumeGroup> actual =
551 this.bbInputSetupUtils.getRelatedVolumeGroupByNameFromVnf(vnfId, volumeGroupName);
552 assertEquals(volumeGroup.getVolumeGroupId(), actual.get().getVolumeGroupId());
556 public void getRelatedVolumeGroupByNameFromVnfNotFoundTest() throws Exception {
557 String vnfId = "vnfId";
558 String volumeGroupName = "volumeGroupName";
560 doReturn(Optional.empty()).when(MOCK_aaiResourcesClient).getOne(eq(VolumeGroups.class), eq(VolumeGroup.class),
561 any(AAIPluralResourceUri.class));
563 Optional<VolumeGroup> actualVolumeGroup =
564 bbInputSetupUtils.getRelatedVolumeGroupByNameFromVnf(vnfId, volumeGroupName);
566 assertEquals(Optional.empty(), actualVolumeGroup);
570 public void getRelatedVolumeGroupByNameFromVfModuleTest() throws Exception {
571 VolumeGroup volumeGroup = new VolumeGroup();
572 volumeGroup.setVolumeGroupId("id123");
573 volumeGroup.setVolumeGroupName("name123");
574 doReturn(Optional.of(volumeGroup)).when(MOCK_aaiResourcesClient).getOne(VolumeGroups.class, VolumeGroup.class,
575 AAIUriFactory.createResourceUri(AAIObjectType.VF_MODULE, "vnf-id123", "vf-module-id123")
576 .relatedTo(AAIObjectPlurals.VOLUME_GROUP)
577 .queryParam("volume-group-name", "volume-group-name123"));
578 Optional<VolumeGroup> actual = this.bbInputSetupUtils.getRelatedVolumeGroupByNameFromVfModule("vnf-id123",
579 "vf-module-id123", "volume-group-name123");
580 assertTrue(actual.isPresent());
581 assertEquals(volumeGroup.getVolumeGroupId(), actual.get().getVolumeGroupId());
585 public void getRelatedVolumeGroupFromVfModuleMultipleVolumeGroupsExceptionTest() throws Exception {
586 expectedException.expect(Exception.class);
587 final String vnfId = "vnfId";
588 final String volumeGroupId = "volumeGroupId";
590 VolumeGroup volumeGroup = new VolumeGroup();
591 volumeGroup.setVolumeGroupId("id123");
592 volumeGroup.setVolumeGroupName("name123");
594 VolumeGroups expectedVolumeGroup = new VolumeGroups();
595 expectedVolumeGroup.getVolumeGroup().add(volumeGroup);
596 expectedVolumeGroup.getVolumeGroup().add(volumeGroup);
598 doReturn(expectedVolumeGroup).when(MOCK_aaiResourcesClient).get(eq(VolumeGroups.class),
599 any(AAIResourceUri.class));
601 bbInputSetupUtils.getRelatedVolumeGroupFromVfModule(vnfId, volumeGroupId);
605 public void getRelatedVolumeGroupFromVfModuleNotFoundTest() throws Exception {
606 final String vnfId = "vnfId";
607 final String volumeGroupId = "volumeGroupId";
609 doReturn(Optional.empty()).when(MOCK_aaiResourcesClient).getOne(eq(VolumeGroups.class), eq(VolumeGroup.class),
610 any(AAIPluralResourceUri.class));
612 Optional<VolumeGroup> actualVolumeGroup =
613 bbInputSetupUtils.getRelatedVolumeGroupFromVfModule(vnfId, volumeGroupId);
615 assertEquals(Optional.empty(), actualVolumeGroup);
619 public void getRelatedVolumeGroupFromVfModuleTest() throws Exception {
620 VolumeGroup volumeGroup = new VolumeGroup();
621 volumeGroup.setVolumeGroupId("id123");
622 doReturn(Optional.of(volumeGroup)).when(MOCK_aaiResourcesClient).getOne(VolumeGroups.class, VolumeGroup.class,
623 AAIUriFactory.createResourceUri(AAIObjectType.VF_MODULE, "vnf-id123", "vf-module-id123")
624 .relatedTo(AAIObjectPlurals.VOLUME_GROUP));
625 Optional<VolumeGroup> actual =
626 this.bbInputSetupUtils.getRelatedVolumeGroupFromVfModule("vnf-id123", "vf-module-id123");
627 assertTrue(actual.isPresent());
628 assertEquals(volumeGroup.getVolumeGroupId(), actual.get().getVolumeGroupId());
632 public void getRelatedVolumeGroupByNameFromVfModuleNotFoundTest() throws Exception {
633 String vnfId = "vnfId";
634 String volumeGroupId = "volumeGroupId";
635 String volumeGroupName = "volumeGroupName";
637 doReturn(Optional.empty()).when(MOCK_aaiResourcesClient).getOne(eq(VolumeGroups.class), eq(VolumeGroup.class),
638 any(AAIPluralResourceUri.class));
640 Optional<VolumeGroup> actualVolumeGroup =
641 bbInputSetupUtils.getRelatedVolumeGroupByNameFromVfModule(vnfId, volumeGroupId, volumeGroupName);
643 assertEquals(Optional.empty(), actualVolumeGroup);
647 public void loadOriginalFlowExecutionPathTest() throws IOException {
648 final String requestId = "123";
649 final String originalRequestId = "originalRequestId";
650 final String flowsToExecuteString = new String(
651 Files.readAllBytes(Paths.get(RESOURCE_PATH + "FlowsToExecute.json")), StandardCharsets.UTF_8);
653 InfraActiveRequests request = new InfraActiveRequests();
654 ExecuteBuildingBlock[] expectedFlowsToExecute =
655 mapper.readValue(flowsToExecuteString, ExecuteBuildingBlock[].class);
657 request.setRequestId(requestId);
658 request.setOriginalRequestId(originalRequestId);
659 doReturn(request).when(MOCK_requestsDbClient).getInfraActiveRequestbyRequestId(requestId);
661 RequestProcessingData requestProcessingData = new RequestProcessingData();
662 requestProcessingData.setValue(flowsToExecuteString);
663 doReturn(requestProcessingData).when(MOCK_requestsDbClient)
664 .getRequestProcessingDataBySoRequestIdAndName(anyString(), anyString());
666 List<ExecuteBuildingBlock> flowsToExecute = bbInputSetupUtils.loadOriginalFlowExecutionPath(requestId);
668 assertEquals(mapper.writeValueAsString(expectedFlowsToExecute), mapper.writeValueAsString(flowsToExecute));
672 public void getRelatedConfigurationByNameFromServiceInstanceNotFoundTest() throws Exception {
673 assertEquals(Optional.empty(), bbInputSetupUtils.getRelatedConfigurationByNameFromServiceInstance("", ""));
677 public void getRelatedConfigurationByNameFromServiceInstanceTest() throws Exception {
678 Configuration configuration = new Configuration();
679 configuration.setConfigurationId("id123");
680 doReturn(Optional.of(configuration)).when(MOCK_aaiResourcesClient).getOne(Configurations.class,
682 AAIUriFactory.createResourceUri(AAIObjectType.SERVICE_INSTANCE, "service-instance-id123")
683 .relatedTo(AAIObjectPlurals.CONFIGURATION)
684 .queryParam("configuration-name", "configuration-name123"));
685 Optional<Configuration> actual = this.bbInputSetupUtils
686 .getRelatedConfigurationByNameFromServiceInstance("service-instance-id123", "configuration-name123");
687 assertTrue(actual.isPresent());
688 assertEquals(configuration.getConfigurationId(), actual.get().getConfigurationId());
692 public void existsAAIVfModuleGloballyByNameTest() {
693 AAIPluralResourceUri expectedUri =
694 AAIUriFactory.createNodesUri(AAIObjectPlurals.VF_MODULE).queryParam("vf-module-name", "testVfModule");
695 bbInputSetupUtils.existsAAIVfModuleGloballyByName("testVfModule");
697 verify(MOCK_aaiResourcesClient, times(1)).exists(expectedUri);
701 public void existsAAIConfigurationGloballyByNameTest() {
702 AAIPluralResourceUri expectedUri = AAIUriFactory.createResourceUri(AAIObjectPlurals.CONFIGURATION)
703 .queryParam("configuration-name", "testConfig");
704 bbInputSetupUtils.existsAAIConfigurationGloballyByName("testConfig");
706 verify(MOCK_aaiResourcesClient, times(1)).exists(expectedUri);
710 public void existsAAINetworksGloballyByNameTest() {
711 AAIPluralResourceUri expectedUri =
712 AAIUriFactory.createResourceUri(AAIObjectPlurals.L3_NETWORK).queryParam("network-name", "testNetwork");
713 bbInputSetupUtils.existsAAINetworksGloballyByName("testNetwork");
715 verify(MOCK_aaiResourcesClient, times(1)).exists(expectedUri);
719 public void existsAAIVolumeGroupGloballyByNameTest() {
720 AAIPluralResourceUri expectedUri = AAIUriFactory.createNodesUri(AAIObjectPlurals.VOLUME_GROUP)
721 .queryParam("volume-group-name", "testVoumeGroup");
723 bbInputSetupUtils.existsAAIVolumeGroupGloballyByName("testVoumeGroup");
724 verify(MOCK_aaiResourcesClient, times(1)).exists(expectedUri);
728 public void shouldChangeInfraActiveRequestVnfId() throws IOException {
729 final String vnfId = "vnfId";
730 InfraActiveRequests infraActiveRequests = loadExpectedInfraActiveRequest();
732 bbInputSetupUtils.updateInfraActiveRequestVnfId(infraActiveRequests, vnfId);
734 assertEquals(vnfId, infraActiveRequests.getVnfId());
738 public void shouldChangeInfraActiveRequestVfModuleId() throws IOException {
739 final String vfModuleId = "vfModuleId";
740 InfraActiveRequests infraActiveRequests = loadExpectedInfraActiveRequest();
742 bbInputSetupUtils.updateInfraActiveRequestVfModuleId(infraActiveRequests, vfModuleId);
744 assertEquals(vfModuleId, infraActiveRequests.getVfModuleId());
748 public void shouldChangeInfraActiveRequestVolumeGroupId() throws IOException {
749 final String volumeGroupId = "volumeGroupId";
750 InfraActiveRequests infraActiveRequests = loadExpectedInfraActiveRequest();
752 bbInputSetupUtils.updateInfraActiveRequestVolumeGroupId(infraActiveRequests, volumeGroupId);
754 assertEquals(volumeGroupId, infraActiveRequests.getVolumeGroupId());
758 public void shouldChangeInfraActiveRequestNetworkId() throws IOException {
759 final String networkId = "activeRequestNetworkId";
760 InfraActiveRequests infraActiveRequests = loadExpectedInfraActiveRequest();
762 bbInputSetupUtils.updateInfraActiveRequestNetworkId(infraActiveRequests, networkId);
764 assertEquals(networkId, infraActiveRequests.getNetworkId());
768 public void getAAIVpnBindingNullTest() {
769 assertNull(bbInputSetupUtils.getAAIVpnBinding("vpnBindingId"));
773 public void getAAIVolumeGroupNullTest() {
774 VolumeGroup actualAaiVnf =
775 bbInputSetupUtils.getAAIVolumeGroup("cloudOwnerId", "cloudRegionId", "volumeGroupId");
776 assertNull(actualAaiVnf);
780 public void getAAIVfModuleNullTest() {
781 assertNull(bbInputSetupUtils.getAAIVfModule("vnfId", "vfModuleId"));
785 public void getAAIL3NetworkNullTest() {
786 assertNull(bbInputSetupUtils.getAAIL3Network("networkId"));
790 public void getAICVpnBindingFromNetwork_noVpnBindingTest() throws IOException {
791 L3Network l3Network =
792 mapper.readValue(new File(RESOURCE_PATH + "aaiL3NetworkInputWithSubnets.json"), L3Network.class);
794 Optional<VpnBinding> actual = bbInputSetupUtils.getAICVpnBindingFromNetwork(l3Network);
795 assertEquals(Optional.empty(), actual);
799 public void getAAIServiceInstancesGloballyByName_noAAIResourceTest() {
800 final String serviceInstanceName = "serviceInstanceName";
802 doReturn(Optional.empty()).when(MOCK_aaiResourcesClient).get(isA(Class.class), isA(AAIPluralResourceUri.class));
803 ServiceInstances actualServiceInstances =
804 bbInputSetupUtils.getAAIServiceInstancesGloballyByName(serviceInstanceName);
806 assertNull(actualServiceInstances);
810 public void getAAIVnfsGloballyByName_noAAIResourceTest() {
811 final String vnfName = "vnfName";
813 doReturn(Optional.empty()).when(MOCK_aaiResourcesClient).get(isA(Class.class), isA(AAIPluralResourceUri.class));
814 GenericVnfs actualGenericVnfs = bbInputSetupUtils.getAAIVnfsGloballyByName(vnfName);
816 assertNull(actualGenericVnfs);
819 private InfraActiveRequests loadExpectedInfraActiveRequest() throws IOException {
820 return mapper.readValue(new File(RESOURCE_PATH + "InfraActiveRequestExpected.json"), InfraActiveRequests.class);