2 * ============LICENSE_START=======================================================
4 * ================================================================================
5 * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
6 * ================================================================================
7 * Licensed under the Apache License, Version 2.0 (the "License");
8 * you may not use this file except in compliance with the License.
9 * You may obtain a copy of the License at
11 * http://www.apache.org/licenses/LICENSE-2.0
13 * Unless required by applicable law or agreed to in writing, software
14 * distributed under the License is distributed on an "AS IS" BASIS,
15 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 * See the License for the specific language governing permissions and
17 * limitations under the License.
18 * ============LICENSE_END=========================================================
21 package org.onap.so.bpmn.servicedecomposition.tasks;
23 import static com.shazam.shazamcrest.MatcherAssert.assertThat;
24 import static com.shazam.shazamcrest.matcher.Matchers.sameBeanAs;
25 import static org.hamcrest.CoreMatchers.containsString;
26 import static org.junit.Assert.assertEquals;
27 import static org.junit.Assert.assertNull;
28 import static org.mockito.ArgumentMatchers.any;
29 import static org.mockito.ArgumentMatchers.anyString;
30 import static org.mockito.ArgumentMatchers.eq;
31 import static org.mockito.ArgumentMatchers.isA;
32 import static org.mockito.Mockito.doReturn;
33 import static org.mockito.Mockito.times;
34 import static org.mockito.Mockito.verify;
36 import java.io.IOException;
37 import java.util.Arrays;
38 import java.util.List;
39 import java.util.Optional;
40 import org.junit.Before;
41 import org.junit.Rule;
42 import org.junit.Test;
43 import org.junit.rules.ExpectedException;
44 import org.junit.runner.RunWith;
45 import org.mockito.InjectMocks;
46 import org.mockito.Mock;
47 import org.mockito.Mockito;
48 import org.mockito.junit.MockitoJUnitRunner;
49 import org.onap.aai.domain.yang.CloudRegion;
50 import org.onap.aai.domain.yang.Configuration;
51 import org.onap.aai.domain.yang.Configurations;
52 import org.onap.aai.domain.yang.GenericVnf;
53 import org.onap.aai.domain.yang.GenericVnfs;
54 import org.onap.aai.domain.yang.L3Network;
55 import org.onap.aai.domain.yang.L3Networks;
56 import org.onap.aai.domain.yang.ServiceInstance;
57 import org.onap.aai.domain.yang.ServiceInstances;
58 import org.onap.aai.domain.yang.VolumeGroup;
59 import org.onap.aai.domain.yang.VolumeGroups;
60 import org.onap.so.bpmn.common.InjectionHelper;
61 import org.onap.so.bpmn.servicedecomposition.bbobjects.Customer;
62 import org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceSubscription;
63 import org.onap.so.bpmn.servicedecomposition.entities.ExecuteBuildingBlock;
64 import org.onap.so.bpmn.servicedecomposition.tasks.exceptions.MultipleObjectsFoundException;
65 import org.onap.so.bpmn.servicedecomposition.tasks.exceptions.NoServiceInstanceFoundException;
66 import org.onap.so.client.aai.AAIObjectPlurals;
67 import org.onap.so.client.aai.AAIObjectType;
68 import org.onap.so.client.aai.AAIResourcesClient;
69 import org.onap.so.client.aai.entities.uri.AAIResourceUri;
70 import org.onap.so.client.aai.entities.uri.AAIUriFactory;
71 import org.onap.so.client.graphinventory.entities.uri.Depth;
72 import org.onap.so.db.catalog.beans.CollectionResourceInstanceGroupCustomization;
73 import org.onap.so.db.catalog.beans.Service;
74 import org.onap.so.db.catalog.beans.VnfcInstanceGroupCustomization;
75 import org.onap.so.db.catalog.client.CatalogDbClient;
76 import org.onap.so.db.request.beans.InfraActiveRequests;
77 import org.onap.so.db.request.beans.RequestProcessingData;
78 import org.onap.so.db.request.client.RequestsDbClient;
79 import org.onap.so.serviceinstancebeans.CloudConfiguration;
80 import org.onap.so.serviceinstancebeans.ModelInfo;
81 import org.onap.so.serviceinstancebeans.RequestDetails;
82 import com.fasterxml.jackson.core.JsonParseException;
83 import com.fasterxml.jackson.databind.JsonMappingException;
84 import com.fasterxml.jackson.databind.ObjectMapper;
86 @RunWith(MockitoJUnitRunner.class)
87 public class BBInputSetupUtilsTest {
88 protected ObjectMapper mapper = new ObjectMapper();
89 private static final String RESOURCE_PATH = "src/test/resources/__files/ExecuteBuildingBlock/";
92 BBInputSetupUtils bbInputSetupUtils = new BBInputSetupUtils();
95 protected CatalogDbClient MOCK_catalogDbClient;
98 protected RequestsDbClient MOCK_requestsDbClient;
101 protected AAIResourcesClient MOCK_aaiResourcesClient;
104 protected InjectionHelper MOCK_injectionHelper;
107 public ExpectedException expectedException = ExpectedException.none();
110 public void setup() {
111 doReturn(MOCK_aaiResourcesClient).when(MOCK_injectionHelper).getAaiClient();
115 public void testGetCatalogServiceByModelUUID() throws JsonParseException, JsonMappingException, IOException {
116 Service expected = mapper.readValue(new File(RESOURCE_PATH + "CatalogServiceExpected.json"), Service.class);
118 RequestDetails requestDetails = new RequestDetails();
119 ModelInfo modelInfo = new ModelInfo();
120 modelInfo.setModelVersionId("modelUUID");
121 requestDetails.setModelInfo(modelInfo);
122 doReturn(expected).when(MOCK_catalogDbClient).getServiceByID("modelUUID");
123 Service actual = bbInputSetupUtils.getCatalogServiceByModelUUID(modelInfo.getModelVersionId());
125 assertThat(actual, sameBeanAs(expected));
129 public void testGetCatalogServiceByModelVersionAndModelInvariantUUID()
130 throws JsonParseException, JsonMappingException, IOException {
131 String modelVersion = "modelVersion";
132 String modelInvariantUUID = "modelInvariantUUID";
133 Service expectedService =
134 mapper.readValue(new File(RESOURCE_PATH + "CatalogServiceExpected.json"), Service.class);
136 doReturn(expectedService).when(MOCK_catalogDbClient)
137 .getServiceByModelVersionAndModelInvariantUUID(isA(String.class), isA(String.class));
139 Service actualService = bbInputSetupUtils.getCatalogServiceByModelVersionAndModelInvariantUUID(modelVersion,
142 assertThat(actualService, sameBeanAs(expectedService));
146 public void testGetVnfcInstanceGroups() throws JsonParseException, JsonMappingException, IOException {
147 VnfcInstanceGroupCustomization vnfc = mapper.readValue(
148 new File(RESOURCE_PATH + "VnfcInstanceGroupCustomization.json"), VnfcInstanceGroupCustomization.class);
149 String modelCustomizationUUID = "modelCustomizationUUID";
151 doReturn(Arrays.asList(vnfc)).when(MOCK_catalogDbClient)
152 .getVnfcInstanceGroupsByVnfResourceCust(isA(String.class));
154 List<VnfcInstanceGroupCustomization> actualVnfcList =
155 bbInputSetupUtils.getVnfcInstanceGroups(modelCustomizationUUID);
157 assertThat(actualVnfcList, sameBeanAs(Arrays.asList(vnfc)));
161 public void testGetRequestDetails() throws JsonParseException, JsonMappingException, IOException {
162 InfraActiveRequests infraActiveRequest = mapper
163 .readValue(new File(RESOURCE_PATH + "InfraActiveRequestExpected.json"), InfraActiveRequests.class);
165 RequestDetails expected =
166 mapper.readValue(new File(RESOURCE_PATH + "RequestDetailsExpected.json"), RequestDetails.class);
167 String requestId = "requestId";
168 doReturn(infraActiveRequest).when(MOCK_requestsDbClient).getInfraActiveRequestbyRequestId(requestId);
169 RequestDetails actual = bbInputSetupUtils.getRequestDetails(requestId);
171 assertThat(actual, sameBeanAs(expected));
175 public void getRequestDetailsNullTest() throws IOException {
176 RequestDetails requestDetails = bbInputSetupUtils.getRequestDetails("");
178 assertNull(requestDetails);
182 public void testGetCloudRegion() {
183 CloudConfiguration cloudConfig = new CloudConfiguration();
184 cloudConfig.setLcpCloudRegionId("lcpCloudRegionId");
185 Optional<org.onap.aai.domain.yang.CloudRegion> expected =
186 Optional.of(new org.onap.aai.domain.yang.CloudRegion());
187 expected.get().setCloudOwner("cloudOwner");
188 expected.get().setCloudRegionId("lcpCloudRegionId");
189 doReturn(expected).when(MOCK_aaiResourcesClient).get(org.onap.aai.domain.yang.CloudRegion.class,
190 AAIUriFactory.createResourceUri(AAIObjectType.CLOUD_REGION, cloudConfig.getCloudOwner(),
191 cloudConfig.getLcpCloudRegionId()).depth(Depth.TWO));
193 AAIResourceUri expectedUri = AAIUriFactory.createResourceUri(AAIObjectType.CLOUD_REGION,
194 cloudConfig.getCloudOwner(), cloudConfig.getLcpCloudRegionId()).depth(Depth.TWO);
195 bbInputSetupUtils.getCloudRegion(cloudConfig);
197 verify(MOCK_aaiResourcesClient, times(1)).get(CloudRegion.class, expectedUri);
201 public void testGetCloudRegionExceptionTest() {
203 CloudConfiguration cloudConfig = new CloudConfiguration();
204 cloudConfig.setLcpCloudRegionId("lcpCloudRegionId");
206 RequestDetails requestDetails = new RequestDetails();
207 requestDetails.setCloudConfiguration(cloudConfig);
209 doReturn(Optional.empty()).when(MOCK_aaiResourcesClient).get(isA(Class.class), isA(AAIResourceUri.class));
211 CloudRegion cloudRegion = bbInputSetupUtils.getCloudRegion(cloudConfig);
213 assertNull(cloudRegion);
217 public void testGetCloudRegionEmptyId() {
218 CloudConfiguration cloudConfig = new CloudConfiguration();
219 cloudConfig.setLcpCloudRegionId("");
221 RequestDetails requestDetails = new RequestDetails();
222 requestDetails.setCloudConfiguration(cloudConfig);
224 CloudRegion cloudRegion = bbInputSetupUtils.getCloudRegion(cloudConfig);
226 assertNull(cloudRegion);
230 public void testGetCloudRegionEmptyConfiguration() {
231 RequestDetails requestDetails = new RequestDetails();
233 CloudRegion cloudRegion = bbInputSetupUtils.getCloudRegion(requestDetails.getCloudConfiguration());
235 assertNull(cloudRegion);
239 public void testGetAAIInstanceGroup() {
240 Optional<org.onap.aai.domain.yang.InstanceGroup> expected =
241 Optional.of(new org.onap.aai.domain.yang.InstanceGroup());
242 String instanceGroupId = "instanceGroupId";
243 expected.get().setId(instanceGroupId);
244 doReturn(expected).when(MOCK_aaiResourcesClient).get(org.onap.aai.domain.yang.InstanceGroup.class,
245 AAIUriFactory.createResourceUri(AAIObjectType.INSTANCE_GROUP, instanceGroupId));
246 AAIResourceUri expectedUri = AAIUriFactory.createResourceUri(AAIObjectType.INSTANCE_GROUP, instanceGroupId);
248 bbInputSetupUtils.getAAIInstanceGroup(instanceGroupId);
249 verify(MOCK_aaiResourcesClient, times(1)).get(org.onap.aai.domain.yang.InstanceGroup.class, expectedUri);
253 public void testGetAAIInstanceGroupThrowNotFound() {
254 String instanceGroupId = "instanceGroupId";
255 doReturn(MOCK_aaiResourcesClient).when(MOCK_injectionHelper).getAaiClient();
256 doReturn(Optional.empty()).when(MOCK_aaiResourcesClient).get(org.onap.aai.domain.yang.InstanceGroup.class,
257 AAIUriFactory.createResourceUri(AAIObjectType.INSTANCE_GROUP, instanceGroupId));
259 org.onap.aai.domain.yang.InstanceGroup actual = bbInputSetupUtils.getAAIInstanceGroup(instanceGroupId);
265 public void testGetAAICustomer() {
266 Optional<org.onap.aai.domain.yang.Customer> expected = Optional.of(new org.onap.aai.domain.yang.Customer());
267 String globalSubscriberId = "globalSubscriberId";
268 expected.get().setGlobalCustomerId(globalSubscriberId);
269 doReturn(expected).when(MOCK_aaiResourcesClient).get(org.onap.aai.domain.yang.Customer.class,
270 AAIUriFactory.createResourceUri(AAIObjectType.CUSTOMER, globalSubscriberId));
271 AAIResourceUri expectedUri = AAIUriFactory.createResourceUri(AAIObjectType.CUSTOMER, globalSubscriberId);
273 bbInputSetupUtils.getAAICustomer(globalSubscriberId);
274 verify(MOCK_aaiResourcesClient, times(1)).get(org.onap.aai.domain.yang.Customer.class, expectedUri);
278 public void testGetAAICustomerThrowNotFound() {
279 String globalSubscriberId = "globalSubscriberId";
280 doReturn(MOCK_aaiResourcesClient).when(MOCK_injectionHelper).getAaiClient();
281 doReturn(Optional.empty()).when(MOCK_aaiResourcesClient).get(org.onap.aai.domain.yang.Customer.class,
282 AAIUriFactory.createResourceUri(AAIObjectType.CUSTOMER, globalSubscriberId));
284 org.onap.aai.domain.yang.Customer actual = bbInputSetupUtils.getAAICustomer(globalSubscriberId);
290 public void testGetAAIServiceSubscription() {
291 Optional<org.onap.aai.domain.yang.ServiceSubscription> expected =
292 Optional.of(new org.onap.aai.domain.yang.ServiceSubscription());
293 String globalSubscriberId = "globalSubscriberId";
294 String subscriptionServiceType = "subscriptionServiceType";
295 expected.get().setServiceType(subscriptionServiceType);
296 doReturn(expected).when(MOCK_aaiResourcesClient).get(org.onap.aai.domain.yang.ServiceSubscription.class,
297 AAIUriFactory.createResourceUri(AAIObjectType.SERVICE_SUBSCRIPTION, globalSubscriberId,
298 subscriptionServiceType));
299 AAIResourceUri expectedUri = AAIUriFactory.createResourceUri(AAIObjectType.SERVICE_SUBSCRIPTION,
300 globalSubscriberId, subscriptionServiceType);
302 bbInputSetupUtils.getAAIServiceSubscription(globalSubscriberId, subscriptionServiceType);
303 verify(MOCK_aaiResourcesClient, times(1)).get(org.onap.aai.domain.yang.ServiceSubscription.class, expectedUri);
307 public void testGetAAIServiceSubscriptionErrors() {
308 String globalSubId = null;
309 String subServiceType = null;
310 org.onap.aai.domain.yang.ServiceSubscription actual =
311 bbInputSetupUtils.getAAIServiceSubscription(globalSubId, subServiceType);
314 String globalSubId2 = "";
315 String subServiceType2 = "";
316 org.onap.aai.domain.yang.ServiceSubscription actual2 =
317 bbInputSetupUtils.getAAIServiceSubscription(globalSubId2, subServiceType2);
320 String globalSubId3 = "";
321 String subServiceType3 = null;
322 org.onap.aai.domain.yang.ServiceSubscription actual3 =
323 bbInputSetupUtils.getAAIServiceSubscription(globalSubId3, subServiceType3);
326 String globalSubId4 = null;
327 String subServiceType4 = "";
328 org.onap.aai.domain.yang.ServiceSubscription actual4 =
329 bbInputSetupUtils.getAAIServiceSubscription(globalSubId4, subServiceType4);
334 public void testGetAAIServiceSubscriptionThrowNotFound() {
335 String globalSubscriberId = "globalSubscriberId";
336 String subscriptionServiceType = "subscriptionServiceType";
337 doReturn(MOCK_aaiResourcesClient).when(MOCK_injectionHelper).getAaiClient();
338 doReturn(Optional.empty()).when(MOCK_aaiResourcesClient).get(org.onap.aai.domain.yang.ServiceSubscription.class,
339 AAIUriFactory.createResourceUri(AAIObjectType.SERVICE_SUBSCRIPTION, globalSubscriberId,
340 subscriptionServiceType));
341 org.onap.aai.domain.yang.ServiceSubscription actual =
342 bbInputSetupUtils.getAAIServiceSubscription(globalSubscriberId, subscriptionServiceType);
347 public void testGetAAIServiceInstanceById() {
348 String serviceInstanceId = "serviceInstanceId";
350 ServiceInstance expectedServiceInstance = new ServiceInstance();
352 doReturn(Optional.of(expectedServiceInstance)).when(MOCK_aaiResourcesClient).get(isA(Class.class),
353 isA(AAIResourceUri.class));
355 ServiceInstance actualServiceInstance = bbInputSetupUtils.getAAIServiceInstanceById(serviceInstanceId);
357 assertThat(actualServiceInstance, sameBeanAs(expectedServiceInstance));
361 public void testGetAAIServiceInstanceByIdThrowNotFound() {
362 String serviceInstanceId = "serviceInstanceId";
364 doReturn(Optional.empty()).when(MOCK_aaiResourcesClient).get(isA(Class.class), isA(AAIResourceUri.class));
366 ServiceInstance actualServiceInstance = bbInputSetupUtils.getAAIServiceInstanceById(serviceInstanceId);
368 assertNull(actualServiceInstance);
372 public void testGetAAIServiceInstanceByIdAndCustomer() {
373 String globalCustomerId = "globalCustomerId";
374 String serviceType = "serviceType";
375 String serviceInstanceId = "serviceInstanceId";
376 ServiceInstance expected = new ServiceInstance();
377 expected.setServiceInstanceId(serviceInstanceId);
378 doReturn(Optional.of(expected)).when(MOCK_aaiResourcesClient).get(isA(Class.class), isA(AAIResourceUri.class));
379 AAIResourceUri expectedUri = AAIUriFactory
380 .createResourceUri(AAIObjectType.SERVICE_INSTANCE, globalCustomerId, serviceType, serviceInstanceId)
382 this.bbInputSetupUtils.getAAIServiceInstanceByIdAndCustomer(globalCustomerId, serviceType, serviceInstanceId);
384 verify(MOCK_aaiResourcesClient, times(1)).get(org.onap.aai.domain.yang.ServiceInstance.class, expectedUri);
389 public void testGetAAIServiceInstanceByIdAndCustomerThrowNotFound() {
390 String globalCustomerId = "globalCustomerId";
391 String serviceType = "serviceType";
392 String serviceInstanceId = "serviceInstanceId";
394 doReturn(MOCK_aaiResourcesClient).when(MOCK_injectionHelper).getAaiClient();
395 doReturn(Optional.empty()).when(MOCK_aaiResourcesClient).get(isA(Class.class), isA(AAIResourceUri.class));
396 ServiceInstance actual = this.bbInputSetupUtils.getAAIServiceInstanceByIdAndCustomer(globalCustomerId,
397 serviceType, serviceInstanceId);
403 public void testGetAAIServiceInstanceByName() throws Exception {
404 String serviceInstanceName = "serviceInstanceName";
406 ServiceInstance expectedServiceInstance = new ServiceInstance();
407 expectedServiceInstance.setServiceInstanceId("serviceInstanceId");
409 ServiceSubscription serviceSubscription = new ServiceSubscription();
410 serviceSubscription.setServiceType("serviceType");
412 Customer customer = new Customer();
413 customer.setGlobalCustomerId("globalCustomerId");
414 customer.setServiceSubscription(serviceSubscription);
416 ServiceInstances serviceInstances = new ServiceInstances();
417 serviceInstances.getServiceInstance().add(expectedServiceInstance);
419 doReturn(Optional.of(serviceInstances)).when(MOCK_aaiResourcesClient).get(isA(Class.class),
420 isA(AAIResourceUri.class));
421 AAIResourceUri expectedUri = AAIUriFactory
422 .createResourceUri(AAIObjectPlurals.SERVICE_INSTANCE, customer.getGlobalCustomerId(),
423 customer.getServiceSubscription().getServiceType())
424 .queryParam("service-instance-name", serviceInstanceName).depth(Depth.TWO);
425 bbInputSetupUtils.getAAIServiceInstanceByName(serviceInstanceName, customer);
427 verify(MOCK_aaiResourcesClient, times(1)).get(org.onap.aai.domain.yang.ServiceInstances.class, expectedUri);
431 public void testGetAAIServiceInstanceByNameException() throws Exception {
432 expectedException.expect(Exception.class);
434 String serviceInstanceName = "serviceInstanceName";
436 ServiceInstance serviceInstance = new ServiceInstance();
437 serviceInstance.setServiceInstanceId("serviceInstanceId");
439 ServiceSubscription serviceSubscription = new ServiceSubscription();
440 serviceSubscription.setServiceType("serviceType");
442 Customer customer = new Customer();
443 customer.setGlobalCustomerId("globalCustomerId");
444 customer.setServiceSubscription(serviceSubscription);
446 ServiceInstances serviceInstances = new ServiceInstances();
447 serviceInstances.getServiceInstance().add(serviceInstance);
448 serviceInstances.getServiceInstance().add(serviceInstance);
450 doReturn(Optional.of(serviceInstances)).when(MOCK_aaiResourcesClient).get(isA(Class.class),
451 isA(AAIResourceUri.class));
453 bbInputSetupUtils.getAAIServiceInstanceByName(serviceInstanceName, customer);
457 public void testGetAAIServiceInstanceByNameNull() throws Exception {
458 String serviceInstanceName = "serviceInstanceName";
460 ServiceInstance serviceInstance = new ServiceInstance();
461 serviceInstance.setServiceInstanceId("serviceInstanceId");
463 ServiceSubscription serviceSubscription = new ServiceSubscription();
464 serviceSubscription.setServiceType("serviceType");
466 Customer customer = new Customer();
467 customer.setGlobalCustomerId("globalCustomerId");
468 customer.setServiceSubscription(serviceSubscription);
470 ServiceInstances serviceInstances = new ServiceInstances();
471 serviceInstances.getServiceInstance().add(serviceInstance);
472 serviceInstances.getServiceInstance().add(serviceInstance);
474 doReturn(Optional.empty()).when(MOCK_aaiResourcesClient).get(isA(Class.class), isA(AAIResourceUri.class));
476 ServiceInstance actualServiceInstance =
477 bbInputSetupUtils.getAAIServiceInstanceByName(serviceInstanceName, customer);
479 assertNull(actualServiceInstance);
483 public void testGetOptionalAAIServiceInstanceByNameException() throws Exception {
484 expectedException.expect(MultipleObjectsFoundException.class);
485 expectedException.expectMessage(containsString(
486 "Multiple service instances found for customer-id: globalCustomerId, service-type: serviceType and service-instance-name: serviceInstanceId."));
488 String globalCustomerId = "globalCustomerId";
489 String serviceType = "serviceType";
490 String serviceInstanceId = "serviceInstanceId";
492 ServiceInstance serviceInstance = new ServiceInstance();
493 serviceInstance.setServiceInstanceId("serviceInstanceId");
494 serviceInstance.setServiceType(serviceType);
495 serviceInstance.setServiceInstanceName("serviceInstanceName");
497 ServiceInstances serviceInstances = new ServiceInstances();
498 serviceInstances.getServiceInstance().add(serviceInstance);
499 serviceInstances.getServiceInstance().add(serviceInstance);
501 doReturn(Optional.of(serviceInstances)).when(MOCK_aaiResourcesClient).get(isA(Class.class),
502 isA(AAIResourceUri.class));
504 bbInputSetupUtils.getAAIServiceInstanceByName(globalCustomerId, serviceType, serviceInstanceId);
508 public void testGetOptionalAAIServiceInstanceByNameNull() throws Exception {
509 String globalCustomerId = "globalCustomerId";
510 String serviceType = "serviceType";
511 String serviceInstanceId = "serviceInstanceId";
513 doReturn(Optional.empty()).when(MOCK_aaiResourcesClient).get(isA(Class.class), isA(AAIResourceUri.class));
514 Optional<ServiceInstance> actual =
515 this.bbInputSetupUtils.getAAIServiceInstanceByName(globalCustomerId, serviceType, serviceInstanceId);
517 assertThat(actual, sameBeanAs(Optional.empty()));
521 public void testGetCatalogInstanceGroup() throws JsonParseException, JsonMappingException, IOException {
522 String modelUUID = "modelUUID";
524 org.onap.so.db.catalog.beans.InstanceGroup expectedInstanceGroup = mapper.readValue(
525 new File(RESOURCE_PATH + "InstanceGroup.json"), org.onap.so.db.catalog.beans.InstanceGroup.class);
527 doReturn(expectedInstanceGroup).when(MOCK_catalogDbClient).getInstanceGroupByModelUUID(isA(String.class));
529 org.onap.so.db.catalog.beans.InstanceGroup actualInstanceGroup =
530 bbInputSetupUtils.getCatalogInstanceGroup(modelUUID);
532 assertThat(actualInstanceGroup, sameBeanAs(expectedInstanceGroup));
536 public void testGetCollectionResourceInstanceGroupCustomization() {
537 String modelCustomizationUUID = "modelCustomizationUUID";
539 CollectionResourceInstanceGroupCustomization expectedCollection =
540 new CollectionResourceInstanceGroupCustomization();
542 doReturn(Arrays.asList(expectedCollection)).when(MOCK_catalogDbClient)
543 .getCollectionResourceInstanceGroupCustomizationByModelCustUUID(modelCustomizationUUID);
545 List<CollectionResourceInstanceGroupCustomization> actualCollection =
546 bbInputSetupUtils.getCollectionResourceInstanceGroupCustomization(modelCustomizationUUID);
548 assertThat(actualCollection, sameBeanAs(Arrays.asList(expectedCollection)));
552 public void testGetAAIGenericVnf() throws JsonParseException, JsonMappingException, IOException {
553 String vnfId = "vnfId";
555 GenericVnf expectedAaiVnf =
556 mapper.readValue(new File(RESOURCE_PATH + "aaiGenericVnfInput.json"), GenericVnf.class);
558 doReturn(Optional.of(expectedAaiVnf)).when(MOCK_aaiResourcesClient).get(isA(Class.class),
559 isA(AAIResourceUri.class));
560 AAIResourceUri expectedUri = AAIUriFactory.createResourceUri(AAIObjectType.GENERIC_VNF, vnfId).depth(Depth.ONE);
561 GenericVnf actualAaiVnf = bbInputSetupUtils.getAAIGenericVnf(vnfId);
563 assertThat(actualAaiVnf, sameBeanAs(expectedAaiVnf));
565 verify(MOCK_aaiResourcesClient, times(1)).get(org.onap.aai.domain.yang.GenericVnf.class, expectedUri);
569 public void testGetAAIConfiguration() throws JsonParseException, JsonMappingException, IOException {
570 String configurationId = "configurationId";
572 Configuration expectedAaiConfiguration =
573 mapper.readValue(new File(RESOURCE_PATH + "ConfigurationInput.json"), Configuration.class);
575 doReturn(Optional.of(expectedAaiConfiguration)).when(MOCK_aaiResourcesClient).get(isA(Class.class),
576 isA(AAIResourceUri.class));
577 AAIResourceUri expectedUri =
578 AAIUriFactory.createResourceUri(AAIObjectType.CONFIGURATION, configurationId).depth(Depth.ONE);
579 bbInputSetupUtils.getAAIConfiguration(configurationId);
581 verify(MOCK_aaiResourcesClient, times(1)).get(org.onap.aai.domain.yang.Configuration.class, expectedUri);
585 public void testGetAAIGenericVnfThrowNotFound() throws JsonParseException, JsonMappingException, IOException {
586 String vnfId = "vnfId";
588 doReturn(Optional.empty()).when(MOCK_aaiResourcesClient).get(isA(Class.class), isA(AAIResourceUri.class));
590 GenericVnf actualAaiVnf = bbInputSetupUtils.getAAIGenericVnf(vnfId);
592 assertNull(actualAaiVnf);
596 public void testGetAAIResourceDepthOne() {
597 String vnfId = "vnfId";
598 AAIResourceUri aaiResourceUri = AAIUriFactory.createResourceUri(AAIObjectType.GENERIC_VNF, vnfId);
599 AAIResourceUri expectedUri = aaiResourceUri.clone().depth(Depth.ONE);
600 AAIResourceUri aaiResourceUriClone = aaiResourceUri.clone();
601 bbInputSetupUtils.getAAIResourceDepthOne(aaiResourceUri);
603 verify(MOCK_aaiResourcesClient, times(1)).get(expectedUri);
604 assertEquals("Uri should not have changed", aaiResourceUriClone.build(), aaiResourceUri.build());
608 public void testGetAAIResourceDepthTwo() {
609 String vnfId = "vnfId";
610 AAIResourceUri aaiResourceUri = AAIUriFactory.createResourceUri(AAIObjectType.GENERIC_VNF, vnfId);
611 AAIResourceUri expectedUri = aaiResourceUri.clone().depth(Depth.TWO);
612 AAIResourceUri aaiResourceUriClone = aaiResourceUri.clone();
613 bbInputSetupUtils.getAAIResourceDepthTwo(aaiResourceUri);
615 verify(MOCK_aaiResourcesClient, times(1)).get(expectedUri);
616 assertEquals("Uri should not have changed", aaiResourceUriClone.build(), aaiResourceUri.build());
620 public void getRelatedNetworkByNameFromServiceInstanceTest() throws Exception {
621 Optional<L3Networks> expected = Optional.of(new L3Networks());
622 L3Network network = new L3Network();
623 network.setNetworkId("id123");
624 network.setNetworkName("name123");
625 expected.get().getL3Network().add(network);
626 doReturn(expected).when(MOCK_aaiResourcesClient).get(eq(L3Networks.class), any(AAIResourceUri.class));
627 Optional<L3Network> actual =
628 this.bbInputSetupUtils.getRelatedNetworkByNameFromServiceInstance("id123", "name123");
629 assertEquals(actual.get().getNetworkId(), expected.get().getL3Network().get(0).getNetworkId());
633 public void getRelatedNetworkByNameFromServiceInstanceMultipleNetworksExceptionTest() throws Exception {
634 expectedException.expect(MultipleObjectsFoundException.class);
635 expectedException.expectMessage(containsString(
636 "Multiple networks found for service-instance-id: serviceInstanceId and network-name: networkName."));
638 String serviceInstanceId = "serviceInstanceId";
639 String networkName = "networkName";
641 L3Network network = new L3Network();
642 network.setNetworkId("id123");
643 network.setNetworkName("name123");
645 L3Networks l3Networks = new L3Networks();
646 l3Networks.getL3Network().add(network);
647 l3Networks.getL3Network().add(network);
648 Optional<L3Networks> optNetworks = Optional.of(l3Networks);
650 doReturn(optNetworks).when(MOCK_aaiResourcesClient).get(eq(L3Networks.class), any(AAIResourceUri.class));
652 bbInputSetupUtils.getRelatedNetworkByNameFromServiceInstance(serviceInstanceId, networkName);
656 public void getRelatedNetworkByNameFromServiceInstanceNotFoundTest() throws Exception {
657 String serviceInstanceId = "serviceInstanceId";
658 String networkName = "networkName";
660 doReturn(Optional.empty()).when(MOCK_aaiResourcesClient).get(eq(L3Networks.class), any(AAIResourceUri.class));
662 Optional<L3Network> actualNetwork =
663 bbInputSetupUtils.getRelatedNetworkByNameFromServiceInstance(serviceInstanceId, networkName);
665 assertEquals(Optional.empty(), actualNetwork);
669 public void getRelatedServiceInstanceFromInstanceGroupTest() throws Exception {
670 Optional<ServiceInstances> expected = Optional.of(new ServiceInstances());
671 ServiceInstance serviceInstance = new ServiceInstance();
672 serviceInstance.setServiceInstanceId("serviceInstanceId");
673 serviceInstance.setServiceInstanceName("serviceInstanceName");
674 expected.get().getServiceInstance().add(serviceInstance);
676 doReturn(expected).when(MOCK_aaiResourcesClient).get(eq(ServiceInstances.class), any(AAIResourceUri.class));
677 Optional<ServiceInstance> actual = this.bbInputSetupUtils.getRelatedServiceInstanceFromInstanceGroup("ig-001");
678 assertEquals(actual.get().getServiceInstanceId(),
679 expected.get().getServiceInstance().get(0).getServiceInstanceId());
683 public void getRelatedServiceInstanceFromInstanceGroupMultipleTest() throws Exception {
684 expectedException.expect(MultipleObjectsFoundException.class);
685 Optional<ServiceInstances> serviceInstances = Optional.of(new ServiceInstances());
686 ServiceInstance si1 = Mockito.mock(ServiceInstance.class);
687 ServiceInstance si2 = Mockito.mock(ServiceInstance.class);
688 serviceInstances.get().getServiceInstance().add(si1);
689 serviceInstances.get().getServiceInstance().add(si2);
691 doReturn(serviceInstances).when(MOCK_aaiResourcesClient).get(eq(ServiceInstances.class),
692 any(AAIResourceUri.class));
693 this.bbInputSetupUtils.getRelatedServiceInstanceFromInstanceGroup("ig-001");
697 public void getRelatedServiceInstanceFromInstanceGroupNotFoundTest() throws Exception {
698 expectedException.expect(NoServiceInstanceFoundException.class);
699 Optional<ServiceInstances> serviceInstances = Optional.of(new ServiceInstances());
701 doReturn(serviceInstances).when(MOCK_aaiResourcesClient).get(eq(ServiceInstances.class),
702 any(AAIResourceUri.class));
703 this.bbInputSetupUtils.getRelatedServiceInstanceFromInstanceGroup("ig-001");
707 public void getRelatedVnfByNameFromServiceInstanceTest() throws Exception {
708 Optional<GenericVnfs> expected = Optional.of(new GenericVnfs());
709 GenericVnf vnf = new GenericVnf();
710 vnf.setVnfId("id123");
711 vnf.setVnfName("name123");
712 expected.get().getGenericVnf().add(vnf);
713 doReturn(expected).when(MOCK_aaiResourcesClient).get(eq(GenericVnfs.class), any(AAIResourceUri.class));
714 Optional<GenericVnf> actual = this.bbInputSetupUtils.getRelatedVnfByNameFromServiceInstance("id123", "name123");
715 assertEquals(actual.get().getVnfId(), expected.get().getGenericVnf().get(0).getVnfId());
719 public void getRelatedVnfByNameFromServiceInstanceMultipleVnfsExceptionTest() throws Exception {
720 expectedException.expect(MultipleObjectsFoundException.class);
721 expectedException.expectMessage(containsString(
722 "Multiple vnfs found for service-instance-id: serviceInstanceId and vnf-name: vnfName."));
724 String serviceInstanceId = "serviceInstanceId";
725 String vnfName = "vnfName";
727 GenericVnf vnf = new GenericVnf();
728 vnf.setVnfId("id123");
729 vnf.setVnfName("name123");
731 GenericVnfs vnfs = new GenericVnfs();
732 vnfs.getGenericVnf().add(vnf);
733 vnfs.getGenericVnf().add(vnf);
735 Optional<GenericVnfs> optVnfs = Optional.of(vnfs);
737 doReturn(optVnfs).when(MOCK_aaiResourcesClient).get(eq(GenericVnfs.class), any(AAIResourceUri.class));
739 bbInputSetupUtils.getRelatedVnfByNameFromServiceInstance(serviceInstanceId, vnfName);
743 public void getRelatedVnfByNameFromServiceInstanceNotFoundTest() throws Exception {
744 String serviceInstanceId = "serviceInstanceId";
745 String vnfName = "vnfName";
747 doReturn(Optional.empty()).when(MOCK_aaiResourcesClient).get(eq(GenericVnfs.class), any(AAIResourceUri.class));
749 Optional<GenericVnf> actualVnf =
750 this.bbInputSetupUtils.getRelatedVnfByNameFromServiceInstance(serviceInstanceId, vnfName);
752 assertEquals(actualVnf, Optional.empty());
756 public void getRelatedVolumeGroupByNameFromVnfTest() throws Exception {
757 Optional<VolumeGroups> expected = Optional.of(new VolumeGroups());
758 VolumeGroup volumeGroup = new VolumeGroup();
759 volumeGroup.setVolumeGroupId("id123");
760 volumeGroup.setVolumeGroupName("name123");
761 expected.get().getVolumeGroup().add(volumeGroup);
762 doReturn(expected).when(MOCK_aaiResourcesClient).get(eq(VolumeGroups.class), any(AAIResourceUri.class));
763 Optional<VolumeGroup> actual = this.bbInputSetupUtils.getRelatedVolumeGroupByNameFromVnf("id123", "name123");
764 assertEquals(actual.get().getVolumeGroupId(), expected.get().getVolumeGroup().get(0).getVolumeGroupId());
768 public void getRelatedVolumeGroupByNameFromVnfMultipleVolumeGroupsExceptionTest() throws Exception {
769 expectedException.expect(MultipleObjectsFoundException.class);
770 expectedException.expectMessage(containsString(
771 "Multiple volume-groups found for vnf-id: vnfId and volume-group-name: volumeGroupName."));
774 String vnfId = "vnfId";
775 String volumeGroupName = "volumeGroupName";
777 VolumeGroup volumeGroup = new VolumeGroup();
778 volumeGroup.setVolumeGroupId("id123");
779 volumeGroup.setVolumeGroupName("name123");
781 VolumeGroups volumeGroups = new VolumeGroups();
782 volumeGroups.getVolumeGroup().add(volumeGroup);
783 volumeGroups.getVolumeGroup().add(volumeGroup);
784 Optional<VolumeGroups> optVolumeGroups = Optional.of(volumeGroups);
786 doReturn(optVolumeGroups).when(MOCK_aaiResourcesClient).get(eq(VolumeGroups.class), any(AAIResourceUri.class));
788 bbInputSetupUtils.getRelatedVolumeGroupByNameFromVnf(vnfId, volumeGroupName);
792 public void getRelatedVolumeGroupByNameFromVnfNotFoundTest() throws Exception {
793 String vnfId = "vnfId";
794 String volumeGroupName = "volumeGroupName";
796 doReturn(Optional.empty()).when(MOCK_aaiResourcesClient).get(eq(VolumeGroups.class), any(AAIResourceUri.class));
798 Optional<VolumeGroup> actualVolumeGroup =
799 bbInputSetupUtils.getRelatedVolumeGroupByNameFromVnf(vnfId, volumeGroupName);
801 assertEquals(actualVolumeGroup, Optional.empty());
805 public void getRelatedVolumeGroupByNameFromVfModuleTest() throws Exception {
806 Optional<VolumeGroups> expected = Optional.of(new VolumeGroups());
807 VolumeGroup volumeGroup = new VolumeGroup();
808 volumeGroup.setVolumeGroupId("id123");
809 volumeGroup.setVolumeGroupName("name123");
810 expected.get().getVolumeGroup().add(volumeGroup);
811 doReturn(expected).when(MOCK_aaiResourcesClient).get(eq(VolumeGroups.class), any(AAIResourceUri.class));
812 Optional<VolumeGroup> actual =
813 this.bbInputSetupUtils.getRelatedVolumeGroupByNameFromVfModule("id123", "id123", "name123");
814 assertEquals(actual.get().getVolumeGroupId(), expected.get().getVolumeGroup().get(0).getVolumeGroupId());
818 public void getRelatedVolumeGroupByNameFromVfModuleMultipleVolumeGroupsExceptionTest() throws Exception {
819 expectedException.expect(MultipleObjectsFoundException.class);
820 expectedException.expectMessage(containsString(
821 "Multiple voulme-groups found for vnf-id: vnfId, vf-module-id: volumeGroupId and volume-group-name: volumeGroupName."));
822 String vnfId = "vnfId";
823 String volumeGroupId = "volumeGroupId";
824 String volumeGroupName = "volumeGroupName";
826 VolumeGroup volumeGroup = new VolumeGroup();
827 volumeGroup.setVolumeGroupId("id123");
828 volumeGroup.setVolumeGroupName("name123");
830 VolumeGroups volumeGroups = new VolumeGroups();
831 volumeGroups.getVolumeGroup().add(volumeGroup);
832 volumeGroups.getVolumeGroup().add(volumeGroup);
834 Optional<VolumeGroups> optVolumeGroups = Optional.of(volumeGroups);
836 doReturn(optVolumeGroups).when(MOCK_aaiResourcesClient).get(eq(VolumeGroups.class), any(AAIResourceUri.class));
838 bbInputSetupUtils.getRelatedVolumeGroupByNameFromVfModule(vnfId, volumeGroupId, volumeGroupName);
842 public void getRelatedVolumeGroupByNameFromVfModuleNotFoundTest() throws Exception {
843 String vnfId = "vnfId";
844 String volumeGroupId = "volumeGroupId";
845 String volumeGroupName = "volumeGroupName";
847 doReturn(Optional.empty()).when(MOCK_aaiResourcesClient).get(eq(VolumeGroups.class), any(AAIResourceUri.class));
849 Optional<VolumeGroup> actualVolumeGroup =
850 bbInputSetupUtils.getRelatedVolumeGroupByNameFromVfModule(vnfId, volumeGroupId, volumeGroupName);
852 assertEquals(actualVolumeGroup, Optional.empty());
856 public void loadOriginalFlowExecutionPathTest() throws Exception {
858 String requestId = "123";
859 String flowsToExecuteString =
860 "[{\"buildingBlock\":{\"mso-id\":\"2f9ddc4b-4dcf-4129-a35f-be1625ae0176\",\"bpmn-flow-name\":\"DeactivateFabricConfigurationBB\",\"key\":\"7adc7c29-21a3-40a2-b8b6-5d4ad08b68e9\",\"is-virtual-link\":false,\"virtual-link-key\":null},\"requestId\":\"9c944122-d161-4280-8594-48c06a9d96d5\",\"apiVersion\":\"7\",\"resourceId\":\"d1d35800-783d-42d3-82f6-d654c5054a6e\",\"requestAction\":\"deleteInstance\",\"vnfType\":\"\",\"aLaCarte\":true,\"homing\":false,\"workflowResourceIds\":{\"serviceInstanceId\":\"ff9dae72-05bb-4277-ad2b-1b082467c138\",\"vnfId\":\"84a29830-e533-4f20-a838-910c740bf24c\",\"networkId\":\"\",\"volumeGroupId\":\"\",\"vfModuleId\":\"d1d35800-783d-42d3-82f6-d654c5054a6e\",\"networkCollectionId\":null,\"configurationId\":\"10f8a3a3-91bf-4821-9515-c01b2864dff0\",\"instanceGroupId\":\"\"},\"requestDetails\":{\"modelInfo\":{\"modelCustomizationName\":\"McmrNcUpVnf20191..cr_mccm_fc_base..module-0\",\"modelInvariantId\":\"8028fcc0-96dc-427d-a4de-4536245943da\",\"modelType\":\"vfModule\",\"modelId\":\"00d15ebb-c80e-43c1-80f0-90c40dde70b0\",\"modelName\":\"McmrNcUpVnf20191..cr_mccm_fc_base..module-0\",\"modelVersion\":\"1\",\"modelCustomizationUuid\":\"7adc7c29-21a3-40a2-b8b6-5d4ad08b68e9\",\"modelVersionId\":\"00d15ebb-c80e-43c1-80f0-90c40dde70b0\",\"modelCustomizationId\":\"7adc7c29-21a3-40a2-b8b6-5d4ad08b68e9\",\"modelUuid\":\"00d15ebb-c80e-43c1-80f0-90c40dde70b0\",\"modelInvariantUuid\":\"8028fcc0-96dc-427d-a4de-4536245943da\",\"modelInstanceName\":\"McmrNcUpVnf20191..cr_mccm_fc_base..module-0\"},\"requestInfo\":{\"source\":\"VID\",\"suppressRollback\":false,\"requestorId\":\"pj8646\"},\"cloudConfiguration\":{\"tenantId\":\"e2a6af59d1cb43b2874e943bbbf8470a\",\"cloudOwner\":\"att-nc\",\"lcpCloudRegionId\":\"auk51b\"},\"requestParameters\":{\"testApi\":\"GR_API\"}},\"configurationResourceKeys\":{\"vfModuleCustomizationUUID\":\"7adc7c29-21a3-40a2-b8b6-5d4ad08b68e9\",\"vnfResourceCustomizationUUID\":\"a80f05b8-d651-44af-b999-8ed78fb4582f\",\"cvnfcCustomizationUUID\":\"69cce457-9ffd-4359-962b-0596a1e83ad1\",\"vnfcName\":\"zauk51bmcmr01mcm001\"}},{\"buildingBlock\":{\"mso-id\":\"1ca5584e-38a9-4c3f-a4b4-99b0d42089ba\",\"bpmn-flow-name\":\"UnassignFabricConfigurationBB\",\"key\":\"7adc7c29-21a3-40a2-b8b6-5d4ad08b68e9\",\"is-virtual-link\":false,\"virtual-link-key\":null},\"requestId\":\"9c944122-d161-4280-8594-48c06a9d96d5\",\"apiVersion\":\"7\",\"resourceId\":\"d1d35800-783d-42d3-82f6-d654c5054a6e\",\"requestAction\":\"deleteInstance\",\"vnfType\":\"\",\"aLaCarte\":true,\"homing\":false,\"workflowResourceIds\":{\"serviceInstanceId\":\"ff9dae72-05bb-4277-ad2b-1b082467c138\",\"vnfId\":\"84a29830-e533-4f20-a838-910c740bf24c\",\"networkId\":\"\",\"volumeGroupId\":\"\",\"vfModuleId\":\"d1d35800-783d-42d3-82f6-d654c5054a6e\",\"networkCollectionId\":null,\"configurationId\":\"10f8a3a3-91bf-4821-9515-c01b2864dff0\",\"instanceGroupId\":\"\"},\"requestDetails\":{\"modelInfo\":{\"modelCustomizationName\":\"McmrNcUpVnf20191..cr_mccm_fc_base..module-0\",\"modelInvariantId\":\"8028fcc0-96dc-427d-a4de-4536245943da\",\"modelType\":\"vfModule\",\"modelId\":\"00d15ebb-c80e-43c1-80f0-90c40dde70b0\",\"modelName\":\"McmrNcUpVnf20191..cr_mccm_fc_base..module-0\",\"modelVersion\":\"1\",\"modelCustomizationUuid\":\"7adc7c29-21a3-40a2-b8b6-5d4ad08b68e9\",\"modelVersionId\":\"00d15ebb-c80e-43c1-80f0-90c40dde70b0\",\"modelCustomizationId\":\"7adc7c29-21a3-40a2-b8b6-5d4ad08b68e9\",\"modelUuid\":\"00d15ebb-c80e-43c1-80f0-90c40dde70b0\",\"modelInvariantUuid\":\"8028fcc0-96dc-427d-a4de-4536245943da\",\"modelInstanceName\":\"McmrNcUpVnf20191..cr_mccm_fc_base..module-0\"},\"requestInfo\":{\"source\":\"VID\",\"suppressRollback\":false,\"requestorId\":\"pj8646\"},\"cloudConfiguration\":{\"tenantId\":\"e2a6af59d1cb43b2874e943bbbf8470a\",\"cloudOwner\":\"att-nc\",\"lcpCloudRegionId\":\"auk51b\"},\"requestParameters\":{\"testApi\":\"GR_API\"}},\"configurationResourceKeys\":{\"vfModuleCustomizationUUID\":\"7adc7c29-21a3-40a2-b8b6-5d4ad08b68e9\",\"vnfResourceCustomizationUUID\":\"a80f05b8-d651-44af-b999-8ed78fb4582f\",\"cvnfcCustomizationUUID\":\"69cce457-9ffd-4359-962b-0596a1e83ad1\",\"vnfcName\":\"zauk51bmcmr01mcm001\"}},{\"buildingBlock\":{\"mso-id\":\"68d16097-4810-477d-803b-8322106106ef\",\"bpmn-flow-name\":\"DeactivateVfModuleBB\",\"key\":\"7adc7c29-21a3-40a2-b8b6-5d4ad08b68e9\",\"is-virtual-link\":false,\"virtual-link-key\":null},\"requestId\":\"9c944122-d161-4280-8594-48c06a9d96d5\",\"apiVersion\":\"7\",\"resourceId\":\"d1d35800-783d-42d3-82f6-d654c5054a6e\",\"requestAction\":\"deleteInstance\",\"vnfType\":\"\",\"aLaCarte\":true,\"homing\":false,\"workflowResourceIds\":{\"serviceInstanceId\":\"ff9dae72-05bb-4277-ad2b-1b082467c138\",\"vnfId\":\"84a29830-e533-4f20-a838-910c740bf24c\",\"networkId\":\"\",\"volumeGroupId\":\"\",\"vfModuleId\":\"d1d35800-783d-42d3-82f6-d654c5054a6e\",\"networkCollectionId\":null,\"configurationId\":\"10f8a3a3-91bf-4821-9515-c01b2864dff0\",\"instanceGroupId\":\"\"},\"requestDetails\":{\"modelInfo\":{\"modelCustomizationName\":\"McmrNcUpVnf20191..cr_mccm_fc_base..module-0\",\"modelInvariantId\":\"8028fcc0-96dc-427d-a4de-4536245943da\",\"modelType\":\"vfModule\",\"modelId\":\"00d15ebb-c80e-43c1-80f0-90c40dde70b0\",\"modelName\":\"McmrNcUpVnf20191..cr_mccm_fc_base..module-0\",\"modelVersion\":\"1\",\"modelCustomizationUuid\":\"7adc7c29-21a3-40a2-b8b6-5d4ad08b68e9\",\"modelVersionId\":\"00d15ebb-c80e-43c1-80f0-90c40dde70b0\",\"modelCustomizationId\":\"7adc7c29-21a3-40a2-b8b6-5d4ad08b68e9\",\"modelUuid\":\"00d15ebb-c80e-43c1-80f0-90c40dde70b0\",\"modelInvariantUuid\":\"8028fcc0-96dc-427d-a4de-4536245943da\",\"modelInstanceName\":\"McmrNcUpVnf20191..cr_mccm_fc_base..module-0\"},\"requestInfo\":{\"source\":\"VID\",\"suppressRollback\":false,\"requestorId\":\"pj8646\"},\"cloudConfiguration\":{\"tenantId\":\"e2a6af59d1cb43b2874e943bbbf8470a\",\"cloudOwner\":\"att-nc\",\"lcpCloudRegionId\":\"auk51b\"},\"requestParameters\":{\"testApi\":\"GR_API\"}},\"configurationResourceKeys\":null},{\"buildingBlock\":{\"mso-id\":\"0b02eb09-bc23-4329-b19e-716dcca4e4a6\",\"bpmn-flow-name\":\"DeleteVfModuleBB\",\"key\":\"7adc7c29-21a3-40a2-b8b6-5d4ad08b68e9\",\"is-virtual-link\":false,\"virtual-link-key\":null},\"requestId\":\"9c944122-d161-4280-8594-48c06a9d96d5\",\"apiVersion\":\"7\",\"resourceId\":\"d1d35800-783d-42d3-82f6-d654c5054a6e\",\"requestAction\":\"deleteInstance\",\"vnfType\":\"\",\"aLaCarte\":true,\"homing\":false,\"workflowResourceIds\":{\"serviceInstanceId\":\"ff9dae72-05bb-4277-ad2b-1b082467c138\",\"vnfId\":\"84a29830-e533-4f20-a838-910c740bf24c\",\"networkId\":\"\",\"volumeGroupId\":\"\",\"vfModuleId\":\"d1d35800-783d-42d3-82f6-d654c5054a6e\",\"networkCollectionId\":null,\"configurationId\":\"10f8a3a3-91bf-4821-9515-c01b2864dff0\",\"instanceGroupId\":\"\"},\"requestDetails\":{\"modelInfo\":{\"modelCustomizationName\":\"McmrNcUpVnf20191..cr_mccm_fc_base..module-0\",\"modelInvariantId\":\"8028fcc0-96dc-427d-a4de-4536245943da\",\"modelType\":\"vfModule\",\"modelId\":\"00d15ebb-c80e-43c1-80f0-90c40dde70b0\",\"modelName\":\"McmrNcUpVnf20191..cr_mccm_fc_base..module-0\",\"modelVersion\":\"1\",\"modelCustomizationUuid\":\"7adc7c29-21a3-40a2-b8b6-5d4ad08b68e9\",\"modelVersionId\":\"00d15ebb-c80e-43c1-80f0-90c40dde70b0\",\"modelCustomizationId\":\"7adc7c29-21a3-40a2-b8b6-5d4ad08b68e9\",\"modelUuid\":\"00d15ebb-c80e-43c1-80f0-90c40dde70b0\",\"modelInvariantUuid\":\"8028fcc0-96dc-427d-a4de-4536245943da\",\"modelInstanceName\":\"McmrNcUpVnf20191..cr_mccm_fc_base..module-0\"},\"requestInfo\":{\"source\":\"VID\",\"suppressRollback\":false,\"requestorId\":\"pj8646\"},\"cloudConfiguration\":{\"tenantId\":\"e2a6af59d1cb43b2874e943bbbf8470a\",\"cloudOwner\":\"att-nc\",\"lcpCloudRegionId\":\"auk51b\"},\"requestParameters\":{\"testApi\":\"GR_API\"}},\"configurationResourceKeys\":null},{\"buildingBlock\":{\"mso-id\":\"bcf95d05-0782-44ff-920d-d5100525c275\",\"bpmn-flow-name\":\"UnassignVfModuleBB\",\"key\":\"7adc7c29-21a3-40a2-b8b6-5d4ad08b68e9\",\"is-virtual-link\":false,\"virtual-link-key\":null},\"requestId\":\"9c944122-d161-4280-8594-48c06a9d96d5\",\"apiVersion\":\"7\",\"resourceId\":\"d1d35800-783d-42d3-82f6-d654c5054a6e\",\"requestAction\":\"deleteInstance\",\"vnfType\":\"\",\"aLaCarte\":true,\"homing\":false,\"workflowResourceIds\":{\"serviceInstanceId\":\"ff9dae72-05bb-4277-ad2b-1b082467c138\",\"vnfId\":\"84a29830-e533-4f20-a838-910c740bf24c\",\"networkId\":\"\",\"volumeGroupId\":\"\",\"vfModuleId\":\"d1d35800-783d-42d3-82f6-d654c5054a6e\",\"networkCollectionId\":null,\"configurationId\":\"10f8a3a3-91bf-4821-9515-c01b2864dff0\",\"instanceGroupId\":\"\"},\"requestDetails\":{\"modelInfo\":{\"modelCustomizationName\":\"McmrNcUpVnf20191..cr_mccm_fc_base..module-0\",\"modelInvariantId\":\"8028fcc0-96dc-427d-a4de-4536245943da\",\"modelType\":\"vfModule\",\"modelId\":\"00d15ebb-c80e-43c1-80f0-90c40dde70b0\",\"modelName\":\"McmrNcUpVnf20191..cr_mccm_fc_base..module-0\",\"modelVersion\":\"1\",\"modelCustomizationUuid\":\"7adc7c29-21a3-40a2-b8b6-5d4ad08b68e9\",\"modelVersionId\":\"00d15ebb-c80e-43c1-80f0-90c40dde70b0\",\"modelCustomizationId\":\"7adc7c29-21a3-40a2-b8b6-5d4ad08b68e9\",\"modelUuid\":\"00d15ebb-c80e-43c1-80f0-90c40dde70b0\",\"modelInvariantUuid\":\"8028fcc0-96dc-427d-a4de-4536245943da\",\"modelInstanceName\":\"McmrNcUpVnf20191..cr_mccm_fc_base..module-0\"},\"requestInfo\":{\"source\":\"VID\",\"suppressRollback\":false,\"requestorId\":\"pj8646\"},\"cloudConfiguration\":{\"tenantId\":\"e2a6af59d1cb43b2874e943bbbf8470a\",\"cloudOwner\":\"att-nc\",\"lcpCloudRegionId\":\"auk51b\"},\"requestParameters\":{\"testApi\":\"GR_API\"}},\"configurationResourceKeys\":null}]";
861 ObjectMapper om = new ObjectMapper();
862 List<ExecuteBuildingBlock> expectedFlowsToExecute = null;
864 ExecuteBuildingBlock[] asArray = om.readValue(flowsToExecuteString, ExecuteBuildingBlock[].class);
865 expectedFlowsToExecute = Arrays.asList(asArray);
866 } catch (Exception e) {
867 // TODO Auto-generated catch block
871 InfraActiveRequests request = new InfraActiveRequests();
872 request.setRequestId("requestId");
873 request.setOriginalRequestId("originalRequestId");
874 doReturn(request).when(MOCK_requestsDbClient).getInfraActiveRequestbyRequestId(anyString());
875 RequestProcessingData rpd = new RequestProcessingData();
876 rpd.setValue(flowsToExecuteString);
877 doReturn(rpd).when(MOCK_requestsDbClient).getRequestProcessingDataBySoRequestIdAndName(anyString(),
880 List<ExecuteBuildingBlock> flowsToExecute = bbInputSetupUtils.loadOriginalFlowExecutionPath(requestId);
881 assertEquals(expectedFlowsToExecute.size(), flowsToExecute.size());
885 public void getRelatedConfigurationByNameFromServiceInstanceExceptionTest() throws Exception {
886 Configuration configuration = new Configuration();
887 configuration.setConfigurationId("id123");
889 Configurations configurations = new Configurations();
890 configurations.getConfiguration().add(configuration);
891 configurations.getConfiguration().add(configuration);
893 Optional<Configurations> optConfigurations = Optional.of(configurations);
895 doReturn(optConfigurations).when(MOCK_aaiResourcesClient).get(eq(Configurations.class),
896 any(AAIResourceUri.class));
898 expectedException.expect(MultipleObjectsFoundException.class);
899 this.bbInputSetupUtils.getRelatedConfigurationByNameFromServiceInstance("id123", "name123");
903 public void getRelatedConfigurationByNameFromServiceInstanceNotFoundTest() throws Exception {
904 doReturn(Optional.empty()).when(MOCK_aaiResourcesClient).get(eq(Configurations.class),
905 any(AAIResourceUri.class));
906 Optional<Configuration> actualConfiguration =
907 bbInputSetupUtils.getRelatedConfigurationByNameFromServiceInstance("id123", "name123");
908 assertEquals(actualConfiguration, Optional.empty());
912 public void getRelatedConfigurationByNameFromServiceInstanceTest() throws Exception {
913 Optional<Configurations> expected = Optional.of(new Configurations());
914 Configuration configuration = new Configuration();
915 configuration.setConfigurationId("id123");
916 expected.get().getConfiguration().add(configuration);
917 doReturn(expected).when(MOCK_aaiResourcesClient).get(eq(Configurations.class), any(AAIResourceUri.class));
918 Optional<Configuration> actual =
919 this.bbInputSetupUtils.getRelatedConfigurationByNameFromServiceInstance("id123", "name123");
920 assertEquals(actual.get().getConfigurationId(), expected.get().getConfiguration().get(0).getConfigurationId());
924 public void existsAAIVfModuleGloballyByNameTest() throws Exception {
925 AAIResourceUri expectedUri =
926 AAIUriFactory.createNodesUri(AAIObjectPlurals.VF_MODULE).queryParam("vf-module-name", "testVfModule");
927 bbInputSetupUtils.existsAAIVfModuleGloballyByName("testVfModule");
928 verify(MOCK_aaiResourcesClient, times(1)).exists(expectedUri);
932 public void existsAAIConfigurationGloballyByNameTest() throws Exception {
933 AAIResourceUri expectedUri = AAIUriFactory.createResourceUri(AAIObjectPlurals.CONFIGURATION)
934 .queryParam("configuration-name", "testConfig");
935 bbInputSetupUtils.existsAAIConfigurationGloballyByName("testConfig");
936 verify(MOCK_aaiResourcesClient, times(1)).exists(expectedUri);
940 public void existsAAINetworksGloballyByNameTest() throws Exception {
941 AAIResourceUri expectedUri =
942 AAIUriFactory.createResourceUri(AAIObjectPlurals.L3_NETWORK).queryParam("network-name", "testNetwork");
943 bbInputSetupUtils.existsAAINetworksGloballyByName("testNetwork");
944 verify(MOCK_aaiResourcesClient, times(1)).exists(expectedUri);
948 public void existsAAIVolumeGroupGloballyByNameTest() throws Exception {
949 AAIResourceUri expectedUri = AAIUriFactory.createNodesUri(AAIObjectPlurals.VOLUME_GROUP)
950 .queryParam("volume-group-name", "testVoumeGroup");
951 bbInputSetupUtils.existsAAIVolumeGroupGloballyByName("testVoumeGroup");
952 verify(MOCK_aaiResourcesClient, times(1)).exists(expectedUri);