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.aaiclient.client.aai.AAIObjectPlurals;
75 import org.onap.aaiclient.client.aai.AAIObjectType;
76 import org.onap.aaiclient.client.aai.AAIResourcesClient;
77 import org.onap.aaiclient.client.aai.entities.uri.AAIPluralResourceUri;
78 import org.onap.aaiclient.client.aai.entities.uri.AAIResourceUri;
79 import org.onap.aaiclient.client.aai.entities.uri.AAIUriFactory;
80 import org.onap.aaiclient.client.graphinventory.entities.uri.Depth;
81 import org.onap.so.db.catalog.beans.VnfcInstanceGroupCustomization;
82 import org.onap.so.db.catalog.beans.CollectionResourceInstanceGroupCustomization;
83 import org.onap.so.db.catalog.beans.Service;
84 import org.onap.so.db.catalog.client.CatalogDbClient;
85 import org.onap.so.db.request.beans.InfraActiveRequests;
86 import org.onap.so.db.request.beans.RequestProcessingData;
87 import org.onap.so.db.request.client.RequestsDbClient;
88 import org.onap.so.serviceinstancebeans.CloudConfiguration;
89 import org.onap.so.serviceinstancebeans.RequestDetails;
90 import com.fasterxml.jackson.databind.ObjectMapper;
92 @RunWith(MockitoJUnitRunner.class)
93 public class BBInputSetupUtilsTest {
94 protected ObjectMapper mapper = new ObjectMapper();
95 private static final String RESOURCE_PATH = "src/test/resources/__files/ExecuteBuildingBlock/";
98 BBInputSetupUtils bbInputSetupUtils = new BBInputSetupUtils();
101 protected CatalogDbClient MOCK_catalogDbClient;
104 protected RequestsDbClient MOCK_requestsDbClient;
107 protected AAIResourcesClient MOCK_aaiResourcesClient;
110 protected InjectionHelper MOCK_injectionHelper;
113 public ExpectedException expectedException = ExpectedException.none();
116 public void setup() {
117 doReturn(MOCK_aaiResourcesClient).when(MOCK_injectionHelper).getAaiClient();
121 public void getCatalogServiceByModelUUIDTest() throws IOException {
122 Service expected = mapper.readValue(new File(RESOURCE_PATH + "CatalogServiceExpected.json"), Service.class);
123 final String modelUUID = "modelUUIDTest";
125 doReturn(expected).when(MOCK_catalogDbClient).getServiceByID(modelUUID);
127 assertThat(bbInputSetupUtils.getCatalogServiceByModelUUID(modelUUID), sameBeanAs(expected));
131 public void getCatalogServiceByModelVersionAndModelInvariantUUIDTest() throws IOException {
132 final String modelVersion = "modelVersionTest";
133 final String modelInvariantUUID = "modelInvariantUUIDTest";
134 Service expectedService =
135 mapper.readValue(new File(RESOURCE_PATH + "CatalogServiceExpected.json"), Service.class);
137 doReturn(expectedService).when(MOCK_catalogDbClient).getServiceByModelVersionAndModelInvariantUUID(modelVersion,
140 assertThat(bbInputSetupUtils.getCatalogServiceByModelVersionAndModelInvariantUUID(modelVersion,
141 modelInvariantUUID), sameBeanAs(expectedService));
145 public void getVnfcInstanceGroupsTest() throws IOException {
146 final String modelCustomizationUUID = "modelCustomizationUUIDTest";
147 VnfcInstanceGroupCustomization vnfc = mapper.readValue(
148 new File(RESOURCE_PATH + "VnfcInstanceGroupCustomization.json"), VnfcInstanceGroupCustomization.class);
150 doReturn(Arrays.asList(vnfc)).when(MOCK_catalogDbClient)
151 .getVnfcInstanceGroupsByVnfResourceCust(modelCustomizationUUID);
153 assertThat(bbInputSetupUtils.getVnfcInstanceGroups(modelCustomizationUUID), sameBeanAs(Arrays.asList(vnfc)));
157 public void getRequestDetailsTest() throws IOException {
158 final String requestId = "requestId";
159 InfraActiveRequests infraActiveRequest = mapper
160 .readValue(new File(RESOURCE_PATH + "InfraActiveRequestExpected.json"), InfraActiveRequests.class);
161 RequestDetails expected =
162 mapper.readValue(new File(RESOURCE_PATH + "RequestDetailsExpected.json"), RequestDetails.class);
164 doReturn(infraActiveRequest).when(MOCK_requestsDbClient).getInfraActiveRequestbyRequestId(requestId);
166 assertThat(bbInputSetupUtils.getRequestDetails(requestId), sameBeanAs(expected));
170 public void getRequestDetailsNullTest() throws IOException {
171 assertNull(bbInputSetupUtils.getRequestDetails(""));
175 public void getCloudRegionTest() {
176 CloudConfiguration cloudConfig = new CloudConfiguration();
177 cloudConfig.setLcpCloudRegionId("lcpCloudRegionId");
178 Optional<CloudRegion> expected = Optional.of(new CloudRegion());
180 doReturn(expected).when(MOCK_aaiResourcesClient).get(CloudRegion.class,
181 AAIUriFactory.createResourceUri(AAIObjectType.CLOUD_REGION, cloudConfig.getCloudOwner(),
182 cloudConfig.getLcpCloudRegionId()).depth(Depth.TWO));
184 assertThat(bbInputSetupUtils.getCloudRegion(cloudConfig), sameBeanAs(expected.get()));
188 public void getCloudRegionNullTest() {
189 CloudConfiguration cloudConfig = new CloudConfiguration();
190 cloudConfig.setLcpCloudRegionId("lcpCloudRegionId");
192 assertNull(bbInputSetupUtils.getCloudRegion(cloudConfig));
196 public void getCloudRegionEmptyIdTest() {
197 CloudConfiguration cloudConfig = new CloudConfiguration();
198 cloudConfig.setLcpCloudRegionId("");
200 assertNull(bbInputSetupUtils.getCloudRegion(cloudConfig));
204 public void getAAIInstanceGroupTest() {
205 final String instanceGroupId = "instanceGroupId";
206 Optional<InstanceGroup> expected = Optional.of(new InstanceGroup());
207 expected.get().setId(instanceGroupId);
209 doReturn(expected).when(MOCK_aaiResourcesClient).get(InstanceGroup.class,
210 AAIUriFactory.createResourceUri(AAIObjectType.INSTANCE_GROUP, instanceGroupId));
212 assertThat(bbInputSetupUtils.getAAIInstanceGroup(instanceGroupId), sameBeanAs(expected.get()));
216 public void getAAIInstanceGroupNullTest() {
217 assertNull(bbInputSetupUtils.getAAIInstanceGroup(""));
221 public void getAAICustomerTest() {
222 final String globalSubscriberId = "globalSubscriberId";
223 Optional<org.onap.aai.domain.yang.Customer> expected = Optional.of(new org.onap.aai.domain.yang.Customer());
224 expected.get().setGlobalCustomerId(globalSubscriberId);
226 doReturn(expected).when(MOCK_aaiResourcesClient).get(org.onap.aai.domain.yang.Customer.class,
227 AAIUriFactory.createResourceUri(AAIObjectType.CUSTOMER, globalSubscriberId));
229 assertThat(bbInputSetupUtils.getAAICustomer(globalSubscriberId), sameBeanAs(expected.get()));
233 public void getAAICustomerNullTest() {
234 assertNull(bbInputSetupUtils.getAAICustomer(""));
238 public void getAAIServiceSubscriptionTest() {
239 final String globalSubscriberId = "globalSubscriberId";
240 final String subscriptionServiceType = "subscriptionServiceType";
241 Optional<org.onap.aai.domain.yang.ServiceSubscription> expected =
242 Optional.of(new org.onap.aai.domain.yang.ServiceSubscription());
244 expected.get().setServiceType(subscriptionServiceType);
245 doReturn(expected).when(MOCK_aaiResourcesClient).get(org.onap.aai.domain.yang.ServiceSubscription.class,
246 AAIUriFactory.createResourceUri(AAIObjectType.SERVICE_SUBSCRIPTION, globalSubscriberId,
247 subscriptionServiceType));
249 assertThat(bbInputSetupUtils.getAAIServiceSubscription(globalSubscriberId, subscriptionServiceType),
250 sameBeanAs(expected.get()));
254 public void getAAIServiceSubscriptionErrorsTest() {
255 assertNull(bbInputSetupUtils.getAAIServiceSubscription(null, null));
256 assertNull(bbInputSetupUtils.getAAIServiceSubscription("", ""));
257 assertNull(bbInputSetupUtils.getAAIServiceSubscription("", null));
258 assertNull(bbInputSetupUtils.getAAIServiceSubscription(null, ""));
262 public void getAAIServiceInstanceByIdTest() {
263 final String serviceInstanceId = "serviceInstanceId";
264 ServiceInstance expectedServiceInstance = new ServiceInstance();
266 doReturn(Optional.of(expectedServiceInstance)).when(MOCK_aaiResourcesClient).get(isA(Class.class),
267 isA(AAIResourceUri.class));
269 assertThat(bbInputSetupUtils.getAAIServiceInstanceById(serviceInstanceId), sameBeanAs(expectedServiceInstance));
273 public void getAAIServiceInstanceById_ifEmptyReturnNull() {
274 doReturn(Optional.empty()).when(MOCK_aaiResourcesClient).get(eq(ServiceInstance.class),
275 any(AAIResourceUri.class));
277 assertNull(bbInputSetupUtils.getAAIServiceInstanceById("any"));
281 public void getAAIServiceInstanceByIdAndCustomerTest() {
282 final String globalCustomerId = "globalCustomerId";
283 final String serviceType = "serviceType";
284 final String serviceInstanceId = "serviceInstanceId";
285 ServiceInstance expected = new ServiceInstance();
286 expected.setServiceInstanceId(serviceInstanceId);
288 doReturn(Optional.of(expected)).when(MOCK_aaiResourcesClient).get(ServiceInstance.class, AAIUriFactory
289 .createResourceUri(AAIObjectType.SERVICE_INSTANCE, globalCustomerId, serviceType, serviceInstanceId)
292 assertThat(bbInputSetupUtils.getAAIServiceInstanceByIdAndCustomer(globalCustomerId, serviceType,
293 serviceInstanceId), sameBeanAs(expected));
297 public void getAAIServiceInstanceByIdAndCustomerNullTest() {
298 doReturn(Optional.empty()).when(MOCK_aaiResourcesClient).get(eq(ServiceInstance.class),
299 any(AAIResourceUri.class));
301 assertNull(bbInputSetupUtils.getAAIServiceInstanceByIdAndCustomer("", "", ""));
305 public void getAAIServiceInstanceByNameTest() throws Exception {
306 final String serviceInstanceName = "serviceInstanceName";
308 ServiceInstance expectedServiceInstance = new ServiceInstance();
309 expectedServiceInstance.setServiceInstanceId("serviceInstanceId");
311 ServiceSubscription serviceSubscription = new ServiceSubscription();
312 serviceSubscription.setServiceType("serviceType");
314 Customer customer = new Customer();
315 customer.setGlobalCustomerId("globalCustomerId");
316 customer.setServiceSubscription(serviceSubscription);
318 ServiceInstances serviceInstances = new ServiceInstances();
319 serviceInstances.getServiceInstance().add(expectedServiceInstance);
321 AAIPluralResourceUri expectedUri = AAIUriFactory
322 .createResourceUri(AAIObjectPlurals.SERVICE_INSTANCE, customer.getGlobalCustomerId(),
323 customer.getServiceSubscription().getServiceType())
324 .queryParam("service-instance-name", serviceInstanceName).depth(Depth.TWO);
325 bbInputSetupUtils.getAAIServiceInstanceByName(serviceInstanceName, customer);
327 verify(MOCK_aaiResourcesClient, times(1)).getOne(org.onap.aai.domain.yang.ServiceInstances.class,
328 org.onap.aai.domain.yang.ServiceInstance.class, expectedUri);
332 public void getAAIServiceInstanceByNameNullTest() throws Exception {
333 Customer customer = new Customer();
334 customer.setServiceSubscription(new ServiceSubscription());
336 assertNull(bbInputSetupUtils.getAAIServiceInstanceByName("", customer));
340 public void getOptionalAAIServiceInstanceByNameNullTest() throws Exception {
341 Optional<ServiceInstance> actual = bbInputSetupUtils.getAAIServiceInstanceByName("", "", "");
343 assertThat(actual, sameBeanAs(Optional.empty()));
347 public void getCatalogInstanceGroupNullTest() {
348 assertNull(bbInputSetupUtils.getCatalogInstanceGroup(""));
352 public void getCatalogInstanceGroupTest() throws IOException {
353 final String modelUUID = "modelUUIDTest";
354 org.onap.so.db.catalog.beans.InstanceGroup expectedInstanceGroup = mapper.readValue(
355 new File(RESOURCE_PATH + "InstanceGroup.json"), org.onap.so.db.catalog.beans.InstanceGroup.class);
357 doReturn(expectedInstanceGroup).when(MOCK_catalogDbClient).getInstanceGroupByModelUUID(modelUUID);
359 assertThat(bbInputSetupUtils.getCatalogInstanceGroup(modelUUID), sameBeanAs(expectedInstanceGroup));
363 public void getCollectionResourceInstanceGroupCustomizationTest() {
364 final String modelCustomizationUUID = "modelCustomizationUUID";
365 CollectionResourceInstanceGroupCustomization expectedCollection =
366 new CollectionResourceInstanceGroupCustomization();
368 doReturn(Arrays.asList(expectedCollection)).when(MOCK_catalogDbClient)
369 .getCollectionResourceInstanceGroupCustomizationByModelCustUUID(modelCustomizationUUID);
371 assertThat(bbInputSetupUtils.getCollectionResourceInstanceGroupCustomization(modelCustomizationUUID),
372 sameBeanAs(Arrays.asList(expectedCollection)));
376 public void getAAIConfigurationNullTest() {
377 assertNull(bbInputSetupUtils.getAAIConfiguration(""));
381 public void getAAIConfigurationTest() throws IOException {
382 final String configurationId = "configurationId";
383 Configuration expectedAaiConfiguration =
384 mapper.readValue(new File(RESOURCE_PATH + "ConfigurationInput.json"), Configuration.class);
386 doReturn(Optional.of(expectedAaiConfiguration)).when(MOCK_aaiResourcesClient).get(isA(Class.class),
387 isA(AAIResourceUri.class));
389 assertThat(bbInputSetupUtils.getAAIConfiguration(configurationId), sameBeanAs(expectedAaiConfiguration));
393 public void getAAIGenericVnfNullTest() {
394 assertNull(bbInputSetupUtils.getAAIGenericVnf(""));
398 public void getAAIGenericVnfTest() throws IOException {
399 final String vnfId = "vnfId";
400 GenericVnf expectedAaiVnf =
401 mapper.readValue(new File(RESOURCE_PATH + "aaiGenericVnfInput.json"), GenericVnf.class);
403 doReturn(Optional.of(expectedAaiVnf)).when(MOCK_aaiResourcesClient).get(isA(Class.class),
404 eq(AAIUriFactory.createResourceUri(AAIObjectType.GENERIC_VNF, vnfId).depth(Depth.ONE)));
406 assertThat(bbInputSetupUtils.getAAIGenericVnf(vnfId), sameBeanAs(expectedAaiVnf));
410 public void getAAIResourceDepthOneTest() {
411 AAIResourceUri aaiResourceUri = AAIUriFactory.createResourceUri(AAIObjectType.GENERIC_VNF, "anyVnfId");
412 AAIResourceUri expectedUri = aaiResourceUri.clone().depth(Depth.ONE);
413 AAIResourceUri aaiResourceUriClone = aaiResourceUri.clone();
415 bbInputSetupUtils.getAAIResourceDepthOne(aaiResourceUri);
417 verify(MOCK_aaiResourcesClient, times(1)).get(expectedUri);
418 assertEquals("Uri should not have changed", aaiResourceUriClone.build(), aaiResourceUri.build());
422 public void getAAIResourceDepthTwoTest() {
423 AAIResourceUri aaiResourceUri = AAIUriFactory.createResourceUri(AAIObjectType.GENERIC_VNF, "anyVnfId");
424 AAIResourceUri expectedUri = aaiResourceUri.clone().depth(Depth.TWO);
425 AAIResourceUri aaiResourceUriClone = aaiResourceUri.clone();
427 bbInputSetupUtils.getAAIResourceDepthTwo(aaiResourceUri);
429 verify(MOCK_aaiResourcesClient, times(1)).get(expectedUri);
430 assertEquals("Uri should not have changed", aaiResourceUriClone.build(), aaiResourceUri.build());
434 public void getRelatedNetworkByNameFromServiceInstanceTest() throws Exception {
435 final String networkId = "id123";
436 final String networkName = "name123";
438 Optional<L3Networks> expected = Optional.of(new L3Networks());
439 L3Network network = new L3Network();
440 network.setNetworkId(networkId);
441 network.setNetworkName(networkName);
442 expected.get().getL3Network().add(network);
443 doReturn(expected).when(MOCK_aaiResourcesClient).get(eq(L3Networks.class), any(AAIPluralResourceUri.class));
444 Optional<L3Network> actual =
445 bbInputSetupUtils.getRelatedNetworkByNameFromServiceInstance(networkId, networkName);
447 assertTrue(actual.isPresent());
448 assertEquals(networkId, actual.get().getNetworkId());
449 assertEquals(networkName, actual.get().getNetworkName());
450 assertEquals(expected.get().getL3Network().get(0).getNetworkId(), actual.get().getNetworkId());
454 public void getRelatedNetworkByNameFromServiceInstanceNotFoundTest() throws Exception {
455 String serviceInstanceId = "serviceInstanceId";
456 String networkName = "networkName";
458 doReturn(Optional.empty()).when(MOCK_aaiResourcesClient).get(eq(L3Networks.class),
459 any(AAIPluralResourceUri.class));
461 Optional<L3Network> actualNetwork =
462 bbInputSetupUtils.getRelatedNetworkByNameFromServiceInstance(serviceInstanceId, networkName);
464 assertEquals(Optional.empty(), actualNetwork);
468 public void getRelatedServiceInstanceFromInstanceGroupTest() throws Exception {
469 Optional<ServiceInstances> expected = Optional.of(new ServiceInstances());
470 ServiceInstance serviceInstance = new ServiceInstance();
471 serviceInstance.setServiceInstanceId("serviceInstanceId");
472 serviceInstance.setServiceInstanceName("serviceInstanceName");
473 expected.get().getServiceInstance().add(serviceInstance);
475 doReturn(expected).when(MOCK_aaiResourcesClient).get(eq(ServiceInstances.class),
476 any(AAIPluralResourceUri.class));
477 Optional<ServiceInstance> actual = this.bbInputSetupUtils.getRelatedServiceInstanceFromInstanceGroup("ig-001");
479 assertTrue(actual.isPresent());
480 assertEquals(expected.get().getServiceInstance().get(0).getServiceInstanceId(),
481 actual.get().getServiceInstanceId());
485 public void getRelatedServiceInstanceFromInstanceGroupMultipleExceptionTest() throws Exception {
486 final String instanceGroupId = "ig-001";
487 expectedException.expect(MultipleObjectsFoundException.class);
488 Optional<ServiceInstances> serviceInstances = Optional.of(new ServiceInstances());
489 ServiceInstance si1 = Mockito.mock(ServiceInstance.class);
490 ServiceInstance si2 = Mockito.mock(ServiceInstance.class);
491 serviceInstances.get().getServiceInstance().add(si1);
492 serviceInstances.get().getServiceInstance().add(si2);
494 doReturn(serviceInstances).when(MOCK_aaiResourcesClient).get(eq(ServiceInstances.class),
495 any(AAIPluralResourceUri.class));
496 this.bbInputSetupUtils.getRelatedServiceInstanceFromInstanceGroup(instanceGroupId);
500 public void getRelatedServiceInstanceFromInstanceGroupNotFoundExceptionTest() throws Exception {
501 expectedException.expect(NoServiceInstanceFoundException.class);
502 Optional<ServiceInstances> serviceInstances = Optional.of(new ServiceInstances());
504 doReturn(serviceInstances).when(MOCK_aaiResourcesClient).get(eq(ServiceInstances.class),
505 any(AAIPluralResourceUri.class));
506 this.bbInputSetupUtils.getRelatedServiceInstanceFromInstanceGroup("ig-001");
510 public void getRelatedVnfByNameFromServiceInstanceTest() throws Exception {
511 final String vnfId = "id123";
512 final String vnfName = "name123";
513 final String serviceInstanceId = "service-instance-id123";
514 GenericVnf vnf = new GenericVnf();
516 vnf.setVnfName(vnfName);
517 doReturn(Optional.of(vnf)).when(MOCK_aaiResourcesClient).getOne(GenericVnfs.class, GenericVnf.class,
518 AAIUriFactory.createResourceUri(AAIObjectType.SERVICE_INSTANCE, serviceInstanceId)
519 .relatedTo(AAIObjectPlurals.GENERIC_VNF).queryParam("vnf-name", vnfName));
520 Optional<GenericVnf> actual =
521 this.bbInputSetupUtils.getRelatedVnfByNameFromServiceInstance(serviceInstanceId, vnfName);
522 assertTrue(actual.isPresent());
523 assertEquals(vnf.getVnfId(), actual.get().getVnfId());
527 public void getRelatedVnfByNameFromServiceInstanceNotFoundTest() throws Exception {
528 final String serviceInstanceId = "serviceInstanceId";
529 final String vnfName = "vnfName";
531 doReturn(Optional.empty()).when(MOCK_aaiResourcesClient).getOne(eq(GenericVnfs.class), eq(GenericVnf.class),
532 any(AAIPluralResourceUri.class));
534 assertEquals(Optional.empty(),
535 bbInputSetupUtils.getRelatedVnfByNameFromServiceInstance(serviceInstanceId, vnfName));
539 public void getRelatedVolumeGroupByNameFromVnfTest() throws Exception {
540 final String vnfId = "vnf-id123";
541 final String volumeGroupId = "id123";
542 final String volumeGroupName = "volume-group-name123";
543 VolumeGroup volumeGroup = new VolumeGroup();
544 volumeGroup.setVolumeGroupId(volumeGroupId);
545 volumeGroup.setVolumeGroupName(volumeGroupName);
546 doReturn(Optional.of(volumeGroup)).when(MOCK_aaiResourcesClient).getOne(VolumeGroups.class, VolumeGroup.class,
547 AAIUriFactory.createResourceUri(AAIObjectType.GENERIC_VNF, vnfId)
548 .relatedTo(AAIObjectPlurals.VOLUME_GROUP).queryParam("volume-group-name", volumeGroupName));
549 Optional<VolumeGroup> actual =
550 this.bbInputSetupUtils.getRelatedVolumeGroupByNameFromVnf(vnfId, volumeGroupName);
551 assertEquals(volumeGroup.getVolumeGroupId(), actual.get().getVolumeGroupId());
555 public void getRelatedVolumeGroupByNameFromVnfNotFoundTest() throws Exception {
556 String vnfId = "vnfId";
557 String volumeGroupName = "volumeGroupName";
559 doReturn(Optional.empty()).when(MOCK_aaiResourcesClient).getOne(eq(VolumeGroups.class), eq(VolumeGroup.class),
560 any(AAIPluralResourceUri.class));
562 Optional<VolumeGroup> actualVolumeGroup =
563 bbInputSetupUtils.getRelatedVolumeGroupByNameFromVnf(vnfId, volumeGroupName);
565 assertEquals(Optional.empty(), actualVolumeGroup);
569 public void getRelatedVolumeGroupByNameFromVfModuleTest() throws Exception {
570 VolumeGroup volumeGroup = new VolumeGroup();
571 volumeGroup.setVolumeGroupId("id123");
572 volumeGroup.setVolumeGroupName("name123");
573 doReturn(Optional.of(volumeGroup)).when(MOCK_aaiResourcesClient).getOne(VolumeGroups.class, VolumeGroup.class,
574 AAIUriFactory.createResourceUri(AAIObjectType.VF_MODULE, "vnf-id123", "vf-module-id123")
575 .relatedTo(AAIObjectPlurals.VOLUME_GROUP)
576 .queryParam("volume-group-name", "volume-group-name123"));
577 Optional<VolumeGroup> actual = this.bbInputSetupUtils.getRelatedVolumeGroupByNameFromVfModule("vnf-id123",
578 "vf-module-id123", "volume-group-name123");
579 assertTrue(actual.isPresent());
580 assertEquals(volumeGroup.getVolumeGroupId(), actual.get().getVolumeGroupId());
584 public void getRelatedVolumeGroupFromVfModuleMultipleVolumeGroupsExceptionTest() throws Exception {
585 expectedException.expect(Exception.class);
586 final String vnfId = "vnfId";
587 final String volumeGroupId = "volumeGroupId";
589 VolumeGroup volumeGroup = new VolumeGroup();
590 volumeGroup.setVolumeGroupId("id123");
591 volumeGroup.setVolumeGroupName("name123");
593 VolumeGroups expectedVolumeGroup = new VolumeGroups();
594 expectedVolumeGroup.getVolumeGroup().add(volumeGroup);
595 expectedVolumeGroup.getVolumeGroup().add(volumeGroup);
597 doReturn(expectedVolumeGroup).when(MOCK_aaiResourcesClient).get(eq(VolumeGroups.class),
598 any(AAIResourceUri.class));
600 bbInputSetupUtils.getRelatedVolumeGroupFromVfModule(vnfId, volumeGroupId);
604 public void getRelatedVolumeGroupFromVfModuleNotFoundTest() throws Exception {
605 final String vnfId = "vnfId";
606 final String volumeGroupId = "volumeGroupId";
608 doReturn(Optional.empty()).when(MOCK_aaiResourcesClient).getOne(eq(VolumeGroups.class), eq(VolumeGroup.class),
609 any(AAIPluralResourceUri.class));
611 Optional<VolumeGroup> actualVolumeGroup =
612 bbInputSetupUtils.getRelatedVolumeGroupFromVfModule(vnfId, volumeGroupId);
614 assertEquals(Optional.empty(), actualVolumeGroup);
618 public void getRelatedVolumeGroupFromVfModuleTest() throws Exception {
619 VolumeGroup volumeGroup = new VolumeGroup();
620 volumeGroup.setVolumeGroupId("id123");
621 doReturn(Optional.of(volumeGroup)).when(MOCK_aaiResourcesClient).getOne(VolumeGroups.class, VolumeGroup.class,
622 AAIUriFactory.createResourceUri(AAIObjectType.VF_MODULE, "vnf-id123", "vf-module-id123")
623 .relatedTo(AAIObjectPlurals.VOLUME_GROUP));
624 Optional<VolumeGroup> actual =
625 this.bbInputSetupUtils.getRelatedVolumeGroupFromVfModule("vnf-id123", "vf-module-id123");
626 assertTrue(actual.isPresent());
627 assertEquals(volumeGroup.getVolumeGroupId(), actual.get().getVolumeGroupId());
631 public void getRelatedVolumeGroupByNameFromVfModuleNotFoundTest() throws Exception {
632 String vnfId = "vnfId";
633 String volumeGroupId = "volumeGroupId";
634 String volumeGroupName = "volumeGroupName";
636 doReturn(Optional.empty()).when(MOCK_aaiResourcesClient).getOne(eq(VolumeGroups.class), eq(VolumeGroup.class),
637 any(AAIPluralResourceUri.class));
639 Optional<VolumeGroup> actualVolumeGroup =
640 bbInputSetupUtils.getRelatedVolumeGroupByNameFromVfModule(vnfId, volumeGroupId, volumeGroupName);
642 assertEquals(Optional.empty(), actualVolumeGroup);
646 public void loadOriginalFlowExecutionPathTest() throws IOException {
647 final String requestId = "123";
648 final String originalRequestId = "originalRequestId";
649 final String flowsToExecuteString = new String(
650 Files.readAllBytes(Paths.get(RESOURCE_PATH + "FlowsToExecute.json")), StandardCharsets.UTF_8);
652 InfraActiveRequests request = new InfraActiveRequests();
653 ExecuteBuildingBlock[] expectedFlowsToExecute =
654 mapper.readValue(flowsToExecuteString, ExecuteBuildingBlock[].class);
656 request.setRequestId(requestId);
657 request.setOriginalRequestId(originalRequestId);
658 doReturn(request).when(MOCK_requestsDbClient).getInfraActiveRequestbyRequestId(requestId);
660 RequestProcessingData requestProcessingData = new RequestProcessingData();
661 requestProcessingData.setValue(flowsToExecuteString);
662 doReturn(requestProcessingData).when(MOCK_requestsDbClient)
663 .getRequestProcessingDataBySoRequestIdAndName(anyString(), anyString());
665 List<ExecuteBuildingBlock> flowsToExecute = bbInputSetupUtils.loadOriginalFlowExecutionPath(requestId);
667 assertEquals(mapper.writeValueAsString(expectedFlowsToExecute), mapper.writeValueAsString(flowsToExecute));
671 public void getRelatedConfigurationByNameFromServiceInstanceNotFoundTest() throws Exception {
672 assertEquals(Optional.empty(), bbInputSetupUtils.getRelatedConfigurationByNameFromServiceInstance("", ""));
676 public void getRelatedConfigurationByNameFromServiceInstanceTest() throws Exception {
677 Configuration configuration = new Configuration();
678 configuration.setConfigurationId("id123");
679 doReturn(Optional.of(configuration)).when(MOCK_aaiResourcesClient).getOne(Configurations.class,
681 AAIUriFactory.createResourceUri(AAIObjectType.SERVICE_INSTANCE, "service-instance-id123")
682 .relatedTo(AAIObjectPlurals.CONFIGURATION)
683 .queryParam("configuration-name", "configuration-name123"));
684 Optional<Configuration> actual = this.bbInputSetupUtils
685 .getRelatedConfigurationByNameFromServiceInstance("service-instance-id123", "configuration-name123");
686 assertTrue(actual.isPresent());
687 assertEquals(configuration.getConfigurationId(), actual.get().getConfigurationId());
691 public void existsAAIVfModuleGloballyByNameTest() {
692 AAIPluralResourceUri expectedUri =
693 AAIUriFactory.createNodesUri(AAIObjectPlurals.VF_MODULE).queryParam("vf-module-name", "testVfModule");
694 bbInputSetupUtils.existsAAIVfModuleGloballyByName("testVfModule");
696 verify(MOCK_aaiResourcesClient, times(1)).exists(expectedUri);
700 public void existsAAIConfigurationGloballyByNameTest() {
701 AAIPluralResourceUri expectedUri = AAIUriFactory.createResourceUri(AAIObjectPlurals.CONFIGURATION)
702 .queryParam("configuration-name", "testConfig");
703 bbInputSetupUtils.existsAAIConfigurationGloballyByName("testConfig");
705 verify(MOCK_aaiResourcesClient, times(1)).exists(expectedUri);
709 public void existsAAINetworksGloballyByNameTest() {
710 AAIPluralResourceUri expectedUri =
711 AAIUriFactory.createResourceUri(AAIObjectPlurals.L3_NETWORK).queryParam("network-name", "testNetwork");
712 bbInputSetupUtils.existsAAINetworksGloballyByName("testNetwork");
714 verify(MOCK_aaiResourcesClient, times(1)).exists(expectedUri);
718 public void existsAAIVolumeGroupGloballyByNameTest() {
719 AAIPluralResourceUri expectedUri = AAIUriFactory.createNodesUri(AAIObjectPlurals.VOLUME_GROUP)
720 .queryParam("volume-group-name", "testVoumeGroup");
722 bbInputSetupUtils.existsAAIVolumeGroupGloballyByName("testVoumeGroup");
723 verify(MOCK_aaiResourcesClient, times(1)).exists(expectedUri);
727 public void shouldChangeInfraActiveRequestVnfId() throws IOException {
728 final String vnfId = "vnfId";
729 InfraActiveRequests infraActiveRequests = loadExpectedInfraActiveRequest();
731 bbInputSetupUtils.updateInfraActiveRequestVnfId(infraActiveRequests, vnfId);
733 assertEquals(vnfId, infraActiveRequests.getVnfId());
737 public void shouldChangeInfraActiveRequestVfModuleId() throws IOException {
738 final String vfModuleId = "vfModuleId";
739 InfraActiveRequests infraActiveRequests = loadExpectedInfraActiveRequest();
741 bbInputSetupUtils.updateInfraActiveRequestVfModuleId(infraActiveRequests, vfModuleId);
743 assertEquals(vfModuleId, infraActiveRequests.getVfModuleId());
747 public void shouldChangeInfraActiveRequestVolumeGroupId() throws IOException {
748 final String volumeGroupId = "volumeGroupId";
749 InfraActiveRequests infraActiveRequests = loadExpectedInfraActiveRequest();
751 bbInputSetupUtils.updateInfraActiveRequestVolumeGroupId(infraActiveRequests, volumeGroupId);
753 assertEquals(volumeGroupId, infraActiveRequests.getVolumeGroupId());
757 public void shouldChangeInfraActiveRequestNetworkId() throws IOException {
758 final String networkId = "activeRequestNetworkId";
759 InfraActiveRequests infraActiveRequests = loadExpectedInfraActiveRequest();
761 bbInputSetupUtils.updateInfraActiveRequestNetworkId(infraActiveRequests, networkId);
763 assertEquals(networkId, infraActiveRequests.getNetworkId());
767 public void getAAIVpnBindingNullTest() {
768 assertNull(bbInputSetupUtils.getAAIVpnBinding("vpnBindingId"));
772 public void getAAIVolumeGroupNullTest() {
773 VolumeGroup actualAaiVnf =
774 bbInputSetupUtils.getAAIVolumeGroup("cloudOwnerId", "cloudRegionId", "volumeGroupId");
775 assertNull(actualAaiVnf);
779 public void getAAIVfModuleNullTest() {
780 assertNull(bbInputSetupUtils.getAAIVfModule("vnfId", "vfModuleId"));
784 public void getAAIL3NetworkNullTest() {
785 assertNull(bbInputSetupUtils.getAAIL3Network("networkId"));
789 public void getAICVpnBindingFromNetwork_noVpnBindingTest() throws IOException {
790 L3Network l3Network =
791 mapper.readValue(new File(RESOURCE_PATH + "aaiL3NetworkInputWithSubnets.json"), L3Network.class);
793 Optional<VpnBinding> actual = bbInputSetupUtils.getAICVpnBindingFromNetwork(l3Network);
794 assertEquals(Optional.empty(), actual);
798 public void getAAIServiceInstancesGloballyByName_noAAIResourceTest() {
799 final String serviceInstanceName = "serviceInstanceName";
801 doReturn(Optional.empty()).when(MOCK_aaiResourcesClient).get(isA(Class.class), isA(AAIPluralResourceUri.class));
802 ServiceInstances actualServiceInstances =
803 bbInputSetupUtils.getAAIServiceInstancesGloballyByName(serviceInstanceName);
805 assertNull(actualServiceInstances);
809 public void getAAIVnfsGloballyByName_noAAIResourceTest() {
810 final String vnfName = "vnfName";
812 doReturn(Optional.empty()).when(MOCK_aaiResourcesClient).get(isA(Class.class), isA(AAIPluralResourceUri.class));
813 GenericVnfs actualGenericVnfs = bbInputSetupUtils.getAAIVnfsGloballyByName(vnfName);
815 assertNull(actualGenericVnfs);
818 private InfraActiveRequests loadExpectedInfraActiveRequest() throws IOException {
819 return mapper.readValue(new File(RESOURCE_PATH + "InfraActiveRequestExpected.json"), InfraActiveRequests.class);