7780837714647f839afdd9a437df68edd8902489
[so.git] /
1 /*-
2  * ============LICENSE_START=======================================================
3  * ONAP - SO
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
10  * 
11  *      http://www.apache.org/licenses/LICENSE-2.0
12  * 
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=========================================================
19  */
20
21 package org.onap.so.bpmn.servicedecomposition.tasks;
22
23 import static com.shazam.shazamcrest.MatcherAssert.assertThat;
24 import static com.shazam.shazamcrest.matcher.Matchers.sameBeanAs;
25 import static org.junit.Assert.assertEquals;
26 import static org.junit.Assert.assertNull;
27 import static org.mockito.ArgumentMatchers.any;
28 import static org.mockito.ArgumentMatchers.anyString;
29 import static org.mockito.ArgumentMatchers.eq;
30 import static org.mockito.ArgumentMatchers.isA;
31 import static org.mockito.Mockito.doReturn;
32 import static org.mockito.Mockito.times;
33 import static org.mockito.Mockito.verify;
34 import java.io.File;
35 import java.io.IOException;
36 import java.util.Arrays;
37 import java.util.List;
38 import java.util.Optional;
39 import org.junit.Before;
40 import org.junit.Rule;
41 import org.junit.Test;
42 import org.junit.rules.ExpectedException;
43 import org.junit.runner.RunWith;
44 import org.mockito.InjectMocks;
45 import org.mockito.Mock;
46 import org.mockito.Mockito;
47 import org.mockito.junit.MockitoJUnitRunner;
48 import org.onap.aai.domain.yang.CloudRegion;
49 import org.onap.aai.domain.yang.Configuration;
50 import org.onap.aai.domain.yang.Configurations;
51 import org.onap.aai.domain.yang.GenericVnf;
52 import org.onap.aai.domain.yang.GenericVnfs;
53 import org.onap.aai.domain.yang.L3Network;
54 import org.onap.aai.domain.yang.L3Networks;
55 import org.onap.aai.domain.yang.ServiceInstance;
56 import org.onap.aai.domain.yang.ServiceInstances;
57 import org.onap.aai.domain.yang.VolumeGroup;
58 import org.onap.aai.domain.yang.VolumeGroups;
59 import org.onap.so.bpmn.common.InjectionHelper;
60 import org.onap.so.bpmn.servicedecomposition.bbobjects.Customer;
61 import org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceSubscription;
62 import org.onap.so.bpmn.servicedecomposition.entities.ExecuteBuildingBlock;
63 import org.onap.so.bpmn.servicedecomposition.tasks.exceptions.MultipleObjectsFoundException;
64 import org.onap.so.bpmn.servicedecomposition.tasks.exceptions.NoServiceInstanceFoundException;
65 import org.onap.so.client.aai.AAIObjectPlurals;
66 import org.onap.so.client.aai.AAIObjectType;
67 import org.onap.so.client.aai.AAIResourcesClient;
68 import org.onap.so.client.aai.entities.uri.AAIResourceUri;
69 import org.onap.so.client.aai.entities.uri.AAIUriFactory;
70 import org.onap.so.client.graphinventory.entities.uri.Depth;
71 import org.onap.so.db.catalog.beans.CollectionResourceInstanceGroupCustomization;
72 import org.onap.so.db.catalog.beans.Service;
73 import org.onap.so.db.catalog.beans.VnfcInstanceGroupCustomization;
74 import org.onap.so.db.catalog.client.CatalogDbClient;
75 import org.onap.so.db.request.beans.InfraActiveRequests;
76 import org.onap.so.db.request.beans.RequestProcessingData;
77 import org.onap.so.db.request.client.RequestsDbClient;
78 import org.onap.so.serviceinstancebeans.CloudConfiguration;
79 import org.onap.so.serviceinstancebeans.ModelInfo;
80 import org.onap.so.serviceinstancebeans.RequestDetails;
81 import com.fasterxml.jackson.core.JsonParseException;
82 import com.fasterxml.jackson.databind.JsonMappingException;
83 import com.fasterxml.jackson.databind.ObjectMapper;
84
85 @RunWith(MockitoJUnitRunner.class)
86 public class BBInputSetupUtilsTest {
87     protected ObjectMapper mapper = new ObjectMapper();
88     private static final String RESOURCE_PATH = "src/test/resources/__files/ExecuteBuildingBlock/";
89
90     @InjectMocks
91     BBInputSetupUtils bbInputSetupUtils = new BBInputSetupUtils();
92
93     @Mock
94     protected CatalogDbClient MOCK_catalogDbClient;
95
96     @Mock
97     protected RequestsDbClient MOCK_requestsDbClient;
98
99     @Mock
100     protected AAIResourcesClient MOCK_aaiResourcesClient;
101
102     @Mock
103     protected InjectionHelper MOCK_injectionHelper;
104
105     @Rule
106     public ExpectedException expectedException = ExpectedException.none();
107
108     @Before
109     public void setup() {
110         doReturn(MOCK_aaiResourcesClient).when(MOCK_injectionHelper).getAaiClient();
111     }
112
113     @Test
114     public void testGetCatalogServiceByModelUUID() throws JsonParseException, JsonMappingException, IOException {
115         Service expected = mapper.readValue(new File(RESOURCE_PATH + "CatalogServiceExpected.json"), Service.class);
116
117         RequestDetails requestDetails = new RequestDetails();
118         ModelInfo modelInfo = new ModelInfo();
119         modelInfo.setModelVersionId("modelUUID");
120         requestDetails.setModelInfo(modelInfo);
121         doReturn(expected).when(MOCK_catalogDbClient).getServiceByID("modelUUID");
122         Service actual = bbInputSetupUtils.getCatalogServiceByModelUUID(modelInfo.getModelVersionId());
123
124         assertThat(actual, sameBeanAs(expected));
125     }
126
127     @Test
128     public void testGetCatalogServiceByModelVersionAndModelInvariantUUID()
129             throws JsonParseException, JsonMappingException, IOException {
130         String modelVersion = "modelVersion";
131         String modelInvariantUUID = "modelInvariantUUID";
132         Service expectedService =
133                 mapper.readValue(new File(RESOURCE_PATH + "CatalogServiceExpected.json"), Service.class);
134
135         doReturn(expectedService).when(MOCK_catalogDbClient)
136                 .getServiceByModelVersionAndModelInvariantUUID(isA(String.class), isA(String.class));
137
138         Service actualService = bbInputSetupUtils.getCatalogServiceByModelVersionAndModelInvariantUUID(modelVersion,
139                 modelInvariantUUID);
140
141         assertThat(actualService, sameBeanAs(expectedService));
142     }
143
144     @Test
145     public void testGetVnfcInstanceGroups() throws JsonParseException, JsonMappingException, IOException {
146         VnfcInstanceGroupCustomization vnfc = mapper.readValue(
147                 new File(RESOURCE_PATH + "VnfcInstanceGroupCustomization.json"), VnfcInstanceGroupCustomization.class);
148         String modelCustomizationUUID = "modelCustomizationUUID";
149
150         doReturn(Arrays.asList(vnfc)).when(MOCK_catalogDbClient)
151                 .getVnfcInstanceGroupsByVnfResourceCust(isA(String.class));
152
153         List<VnfcInstanceGroupCustomization> actualVnfcList =
154                 bbInputSetupUtils.getVnfcInstanceGroups(modelCustomizationUUID);
155
156         assertThat(actualVnfcList, sameBeanAs(Arrays.asList(vnfc)));
157     }
158
159     @Test
160     public void testGetRequestDetails() throws JsonParseException, JsonMappingException, IOException {
161         InfraActiveRequests infraActiveRequest = mapper
162                 .readValue(new File(RESOURCE_PATH + "InfraActiveRequestExpected.json"), InfraActiveRequests.class);
163
164         RequestDetails expected =
165                 mapper.readValue(new File(RESOURCE_PATH + "RequestDetailsExpected.json"), RequestDetails.class);
166         String requestId = "requestId";
167         doReturn(infraActiveRequest).when(MOCK_requestsDbClient).getInfraActiveRequestbyRequestId(requestId);
168         RequestDetails actual = bbInputSetupUtils.getRequestDetails(requestId);
169
170         assertThat(actual, sameBeanAs(expected));
171     }
172
173     @Test
174     public void getRequestDetailsNullTest() throws IOException {
175         RequestDetails requestDetails = bbInputSetupUtils.getRequestDetails("");
176
177         assertNull(requestDetails);
178     }
179
180     @Test
181     public void testGetCloudRegion() {
182         CloudConfiguration cloudConfig = new CloudConfiguration();
183         cloudConfig.setLcpCloudRegionId("lcpCloudRegionId");
184         Optional<org.onap.aai.domain.yang.CloudRegion> expected =
185                 Optional.of(new org.onap.aai.domain.yang.CloudRegion());
186         expected.get().setCloudOwner("cloudOwner");
187         expected.get().setCloudRegionId("lcpCloudRegionId");
188         doReturn(expected).when(MOCK_aaiResourcesClient).get(org.onap.aai.domain.yang.CloudRegion.class,
189                 AAIUriFactory.createResourceUri(AAIObjectType.CLOUD_REGION, cloudConfig.getCloudOwner(),
190                         cloudConfig.getLcpCloudRegionId()).depth(Depth.TWO));
191
192         AAIResourceUri expectedUri = AAIUriFactory.createResourceUri(AAIObjectType.CLOUD_REGION,
193                 cloudConfig.getCloudOwner(), cloudConfig.getLcpCloudRegionId()).depth(Depth.TWO);
194         bbInputSetupUtils.getCloudRegion(cloudConfig);
195
196         verify(MOCK_aaiResourcesClient, times(1)).get(CloudRegion.class, expectedUri);
197     }
198
199     @Test
200     public void testGetCloudRegionExceptionTest() {
201
202         CloudConfiguration cloudConfig = new CloudConfiguration();
203         cloudConfig.setLcpCloudRegionId("lcpCloudRegionId");
204
205         RequestDetails requestDetails = new RequestDetails();
206         requestDetails.setCloudConfiguration(cloudConfig);
207
208         doReturn(Optional.empty()).when(MOCK_aaiResourcesClient).get(isA(Class.class), isA(AAIResourceUri.class));
209
210         CloudRegion cloudRegion = bbInputSetupUtils.getCloudRegion(cloudConfig);
211
212         assertNull(cloudRegion);
213     }
214
215     @Test
216     public void testGetCloudRegionEmptyId() {
217         CloudConfiguration cloudConfig = new CloudConfiguration();
218         cloudConfig.setLcpCloudRegionId("");
219
220         RequestDetails requestDetails = new RequestDetails();
221         requestDetails.setCloudConfiguration(cloudConfig);
222
223         CloudRegion cloudRegion = bbInputSetupUtils.getCloudRegion(cloudConfig);
224
225         assertNull(cloudRegion);
226     }
227
228     @Test
229     public void testGetCloudRegionEmptyConfiguration() {
230         RequestDetails requestDetails = new RequestDetails();
231
232         CloudRegion cloudRegion = bbInputSetupUtils.getCloudRegion(requestDetails.getCloudConfiguration());
233
234         assertNull(cloudRegion);
235     }
236
237     @Test
238     public void testGetAAIInstanceGroup() {
239         Optional<org.onap.aai.domain.yang.InstanceGroup> expected =
240                 Optional.of(new org.onap.aai.domain.yang.InstanceGroup());
241         String instanceGroupId = "instanceGroupId";
242         expected.get().setId(instanceGroupId);
243         doReturn(expected).when(MOCK_aaiResourcesClient).get(org.onap.aai.domain.yang.InstanceGroup.class,
244                 AAIUriFactory.createResourceUri(AAIObjectType.INSTANCE_GROUP, instanceGroupId));
245         AAIResourceUri expectedUri = AAIUriFactory.createResourceUri(AAIObjectType.INSTANCE_GROUP, instanceGroupId);
246
247         bbInputSetupUtils.getAAIInstanceGroup(instanceGroupId);
248         verify(MOCK_aaiResourcesClient, times(1)).get(org.onap.aai.domain.yang.InstanceGroup.class, expectedUri);
249     }
250
251     @Test
252     public void testGetAAIInstanceGroupThrowNotFound() {
253         String instanceGroupId = "instanceGroupId";
254         doReturn(MOCK_aaiResourcesClient).when(MOCK_injectionHelper).getAaiClient();
255         doReturn(Optional.empty()).when(MOCK_aaiResourcesClient).get(org.onap.aai.domain.yang.InstanceGroup.class,
256                 AAIUriFactory.createResourceUri(AAIObjectType.INSTANCE_GROUP, instanceGroupId));
257
258         org.onap.aai.domain.yang.InstanceGroup actual = bbInputSetupUtils.getAAIInstanceGroup(instanceGroupId);
259
260         assertNull(actual);
261     }
262
263     @Test
264     public void testGetAAICustomer() {
265         Optional<org.onap.aai.domain.yang.Customer> expected = Optional.of(new org.onap.aai.domain.yang.Customer());
266         String globalSubscriberId = "globalSubscriberId";
267         expected.get().setGlobalCustomerId(globalSubscriberId);
268         doReturn(expected).when(MOCK_aaiResourcesClient).get(org.onap.aai.domain.yang.Customer.class,
269                 AAIUriFactory.createResourceUri(AAIObjectType.CUSTOMER, globalSubscriberId));
270         AAIResourceUri expectedUri = AAIUriFactory.createResourceUri(AAIObjectType.CUSTOMER, globalSubscriberId);
271
272         bbInputSetupUtils.getAAICustomer(globalSubscriberId);
273         verify(MOCK_aaiResourcesClient, times(1)).get(org.onap.aai.domain.yang.Customer.class, expectedUri);
274     }
275
276     @Test
277     public void testGetAAICustomerThrowNotFound() {
278         String globalSubscriberId = "globalSubscriberId";
279         doReturn(MOCK_aaiResourcesClient).when(MOCK_injectionHelper).getAaiClient();
280         doReturn(Optional.empty()).when(MOCK_aaiResourcesClient).get(org.onap.aai.domain.yang.Customer.class,
281                 AAIUriFactory.createResourceUri(AAIObjectType.CUSTOMER, globalSubscriberId));
282
283         org.onap.aai.domain.yang.Customer actual = bbInputSetupUtils.getAAICustomer(globalSubscriberId);
284
285         assertNull(actual);
286     }
287
288     @Test
289     public void testGetAAIServiceSubscription() {
290         Optional<org.onap.aai.domain.yang.ServiceSubscription> expected =
291                 Optional.of(new org.onap.aai.domain.yang.ServiceSubscription());
292         String globalSubscriberId = "globalSubscriberId";
293         String subscriptionServiceType = "subscriptionServiceType";
294         expected.get().setServiceType(subscriptionServiceType);
295         doReturn(expected).when(MOCK_aaiResourcesClient).get(org.onap.aai.domain.yang.ServiceSubscription.class,
296                 AAIUriFactory.createResourceUri(AAIObjectType.SERVICE_SUBSCRIPTION, globalSubscriberId,
297                         subscriptionServiceType));
298         AAIResourceUri expectedUri = AAIUriFactory.createResourceUri(AAIObjectType.SERVICE_SUBSCRIPTION,
299                 globalSubscriberId, subscriptionServiceType);
300
301         bbInputSetupUtils.getAAIServiceSubscription(globalSubscriberId, subscriptionServiceType);
302         verify(MOCK_aaiResourcesClient, times(1)).get(org.onap.aai.domain.yang.ServiceSubscription.class, expectedUri);
303     }
304
305     @Test
306     public void testGetAAIServiceSubscriptionErrors() {
307         String globalSubId = null;
308         String subServiceType = null;
309         org.onap.aai.domain.yang.ServiceSubscription actual =
310                 bbInputSetupUtils.getAAIServiceSubscription(globalSubId, subServiceType);
311         assertNull(actual);
312
313         String globalSubId2 = "";
314         String subServiceType2 = "";
315         org.onap.aai.domain.yang.ServiceSubscription actual2 =
316                 bbInputSetupUtils.getAAIServiceSubscription(globalSubId2, subServiceType2);
317         assertNull(actual2);
318
319         String globalSubId3 = "";
320         String subServiceType3 = null;
321         org.onap.aai.domain.yang.ServiceSubscription actual3 =
322                 bbInputSetupUtils.getAAIServiceSubscription(globalSubId3, subServiceType3);
323         assertNull(actual3);
324
325         String globalSubId4 = null;
326         String subServiceType4 = "";
327         org.onap.aai.domain.yang.ServiceSubscription actual4 =
328                 bbInputSetupUtils.getAAIServiceSubscription(globalSubId4, subServiceType4);
329         assertNull(actual4);
330     }
331
332     @Test
333     public void testGetAAIServiceSubscriptionThrowNotFound() {
334         String globalSubscriberId = "globalSubscriberId";
335         String subscriptionServiceType = "subscriptionServiceType";
336         doReturn(MOCK_aaiResourcesClient).when(MOCK_injectionHelper).getAaiClient();
337         doReturn(Optional.empty()).when(MOCK_aaiResourcesClient).get(org.onap.aai.domain.yang.ServiceSubscription.class,
338                 AAIUriFactory.createResourceUri(AAIObjectType.SERVICE_SUBSCRIPTION, globalSubscriberId,
339                         subscriptionServiceType));
340         org.onap.aai.domain.yang.ServiceSubscription actual =
341                 bbInputSetupUtils.getAAIServiceSubscription(globalSubscriberId, subscriptionServiceType);
342         assertNull(actual);
343     }
344
345     @Test
346     public void testGetAAIServiceInstanceById() {
347         String serviceInstanceId = "serviceInstanceId";
348
349         ServiceInstance expectedServiceInstance = new ServiceInstance();
350
351         doReturn(Optional.of(expectedServiceInstance)).when(MOCK_aaiResourcesClient).get(isA(Class.class),
352                 isA(AAIResourceUri.class));
353
354         ServiceInstance actualServiceInstance = bbInputSetupUtils.getAAIServiceInstanceById(serviceInstanceId);
355
356         assertThat(actualServiceInstance, sameBeanAs(expectedServiceInstance));
357     }
358
359     @Test
360     public void testGetAAIServiceInstanceByIdThrowNotFound() {
361         String serviceInstanceId = "serviceInstanceId";
362
363         doReturn(Optional.empty()).when(MOCK_aaiResourcesClient).get(isA(Class.class), isA(AAIResourceUri.class));
364
365         ServiceInstance actualServiceInstance = bbInputSetupUtils.getAAIServiceInstanceById(serviceInstanceId);
366
367         assertNull(actualServiceInstance);
368     }
369
370     @Test
371     public void testGetAAIServiceInstanceByIdAndCustomer() {
372         String globalCustomerId = "globalCustomerId";
373         String serviceType = "serviceType";
374         String serviceInstanceId = "serviceInstanceId";
375         ServiceInstance expected = new ServiceInstance();
376         expected.setServiceInstanceId(serviceInstanceId);
377         doReturn(Optional.of(expected)).when(MOCK_aaiResourcesClient).get(isA(Class.class), isA(AAIResourceUri.class));
378         AAIResourceUri expectedUri = AAIUriFactory
379                 .createResourceUri(AAIObjectType.SERVICE_INSTANCE, globalCustomerId, serviceType, serviceInstanceId)
380                 .depth(Depth.TWO);
381         this.bbInputSetupUtils.getAAIServiceInstanceByIdAndCustomer(globalCustomerId, serviceType, serviceInstanceId);
382
383         verify(MOCK_aaiResourcesClient, times(1)).get(org.onap.aai.domain.yang.ServiceInstance.class, expectedUri);
384
385     }
386
387     @Test
388     public void testGetAAIServiceInstanceByIdAndCustomerThrowNotFound() {
389         String globalCustomerId = "globalCustomerId";
390         String serviceType = "serviceType";
391         String serviceInstanceId = "serviceInstanceId";
392
393         doReturn(MOCK_aaiResourcesClient).when(MOCK_injectionHelper).getAaiClient();
394         doReturn(Optional.empty()).when(MOCK_aaiResourcesClient).get(isA(Class.class), isA(AAIResourceUri.class));
395         ServiceInstance actual = this.bbInputSetupUtils.getAAIServiceInstanceByIdAndCustomer(globalCustomerId,
396                 serviceType, serviceInstanceId);
397
398         assertNull(actual);
399     }
400
401     @Test
402     public void testGetAAIServiceInstanceByName() throws Exception {
403         String serviceInstanceName = "serviceInstanceName";
404
405         ServiceInstance expectedServiceInstance = new ServiceInstance();
406         expectedServiceInstance.setServiceInstanceId("serviceInstanceId");
407
408         ServiceSubscription serviceSubscription = new ServiceSubscription();
409         serviceSubscription.setServiceType("serviceType");
410
411         Customer customer = new Customer();
412         customer.setGlobalCustomerId("globalCustomerId");
413         customer.setServiceSubscription(serviceSubscription);
414
415         ServiceInstances serviceInstances = new ServiceInstances();
416         serviceInstances.getServiceInstance().add(expectedServiceInstance);
417
418         doReturn(Optional.of(serviceInstances)).when(MOCK_aaiResourcesClient).get(isA(Class.class),
419                 isA(AAIResourceUri.class));
420         AAIResourceUri expectedUri = AAIUriFactory
421                 .createResourceUri(AAIObjectPlurals.SERVICE_INSTANCE, customer.getGlobalCustomerId(),
422                         customer.getServiceSubscription().getServiceType())
423                 .queryParam("service-instance-name", serviceInstanceName).depth(Depth.TWO);
424         bbInputSetupUtils.getAAIServiceInstanceByName(serviceInstanceName, customer);
425
426         verify(MOCK_aaiResourcesClient, times(1)).get(org.onap.aai.domain.yang.ServiceInstances.class, expectedUri);
427     }
428
429     @Test
430     public void testGetAAIServiceInstanceByNameException() throws Exception {
431         expectedException.expect(Exception.class);
432
433         String serviceInstanceName = "serviceInstanceName";
434
435         ServiceInstance serviceInstance = new ServiceInstance();
436         serviceInstance.setServiceInstanceId("serviceInstanceId");
437
438         ServiceSubscription serviceSubscription = new ServiceSubscription();
439         serviceSubscription.setServiceType("serviceType");
440
441         Customer customer = new Customer();
442         customer.setGlobalCustomerId("globalCustomerId");
443         customer.setServiceSubscription(serviceSubscription);
444
445         ServiceInstances serviceInstances = new ServiceInstances();
446         serviceInstances.getServiceInstance().add(serviceInstance);
447         serviceInstances.getServiceInstance().add(serviceInstance);
448
449         doReturn(Optional.of(serviceInstances)).when(MOCK_aaiResourcesClient).get(isA(Class.class),
450                 isA(AAIResourceUri.class));
451
452         bbInputSetupUtils.getAAIServiceInstanceByName(serviceInstanceName, customer);
453     }
454
455     @Test
456     public void testGetAAIServiceInstanceByNameNull() throws Exception {
457         String serviceInstanceName = "serviceInstanceName";
458
459         ServiceInstance serviceInstance = new ServiceInstance();
460         serviceInstance.setServiceInstanceId("serviceInstanceId");
461
462         ServiceSubscription serviceSubscription = new ServiceSubscription();
463         serviceSubscription.setServiceType("serviceType");
464
465         Customer customer = new Customer();
466         customer.setGlobalCustomerId("globalCustomerId");
467         customer.setServiceSubscription(serviceSubscription);
468
469         ServiceInstances serviceInstances = new ServiceInstances();
470         serviceInstances.getServiceInstance().add(serviceInstance);
471         serviceInstances.getServiceInstance().add(serviceInstance);
472
473         doReturn(Optional.empty()).when(MOCK_aaiResourcesClient).get(isA(Class.class), isA(AAIResourceUri.class));
474
475         ServiceInstance actualServiceInstance =
476                 bbInputSetupUtils.getAAIServiceInstanceByName(serviceInstanceName, customer);
477
478         assertNull(actualServiceInstance);
479     }
480
481     @Test
482     public void testGetOptionalAAIServiceInstanceByNameException() throws Exception {
483         expectedException.expect(Exception.class);
484
485         String globalCustomerId = "globalCustomerId";
486         String serviceType = "serviceType";
487         String serviceInstanceId = "serviceInstanceId";
488
489         ServiceInstance serviceInstance = new ServiceInstance();
490         serviceInstance.setServiceInstanceId("serviceInstanceId");
491         serviceInstance.setServiceType(serviceType);
492         serviceInstance.setServiceInstanceName("serviceInstanceName");
493
494         ServiceInstances serviceInstances = new ServiceInstances();
495         serviceInstances.getServiceInstance().add(serviceInstance);
496         serviceInstances.getServiceInstance().add(serviceInstance);
497
498         doReturn(Optional.of(serviceInstances)).when(MOCK_aaiResourcesClient).get(isA(Class.class),
499                 isA(AAIResourceUri.class));
500
501         bbInputSetupUtils.getAAIServiceInstanceByName(globalCustomerId, serviceType, serviceInstanceId);
502     }
503
504     @Test
505     public void testGetOptionalAAIServiceInstanceByNameNull() throws Exception {
506         String globalCustomerId = "globalCustomerId";
507         String serviceType = "serviceType";
508         String serviceInstanceId = "serviceInstanceId";
509
510         doReturn(Optional.empty()).when(MOCK_aaiResourcesClient).get(isA(Class.class), isA(AAIResourceUri.class));
511         Optional<ServiceInstance> actual =
512                 this.bbInputSetupUtils.getAAIServiceInstanceByName(globalCustomerId, serviceType, serviceInstanceId);
513
514         assertThat(actual, sameBeanAs(Optional.empty()));
515     }
516
517     @Test
518     public void testGetCatalogInstanceGroup() throws JsonParseException, JsonMappingException, IOException {
519         String modelUUID = "modelUUID";
520
521         org.onap.so.db.catalog.beans.InstanceGroup expectedInstanceGroup = mapper.readValue(
522                 new File(RESOURCE_PATH + "InstanceGroup.json"), org.onap.so.db.catalog.beans.InstanceGroup.class);
523
524         doReturn(expectedInstanceGroup).when(MOCK_catalogDbClient).getInstanceGroupByModelUUID(isA(String.class));
525
526         org.onap.so.db.catalog.beans.InstanceGroup actualInstanceGroup =
527                 bbInputSetupUtils.getCatalogInstanceGroup(modelUUID);
528
529         assertThat(actualInstanceGroup, sameBeanAs(expectedInstanceGroup));
530     }
531
532     @Test
533     public void testGetCollectionResourceInstanceGroupCustomization() {
534         String modelCustomizationUUID = "modelCustomizationUUID";
535
536         CollectionResourceInstanceGroupCustomization expectedCollection =
537                 new CollectionResourceInstanceGroupCustomization();
538
539         doReturn(Arrays.asList(expectedCollection)).when(MOCK_catalogDbClient)
540                 .getCollectionResourceInstanceGroupCustomizationByModelCustUUID(modelCustomizationUUID);
541
542         List<CollectionResourceInstanceGroupCustomization> actualCollection =
543                 bbInputSetupUtils.getCollectionResourceInstanceGroupCustomization(modelCustomizationUUID);
544
545         assertThat(actualCollection, sameBeanAs(Arrays.asList(expectedCollection)));
546     }
547
548     @Test
549     public void testGetAAIGenericVnf() throws JsonParseException, JsonMappingException, IOException {
550         String vnfId = "vnfId";
551
552         GenericVnf expectedAaiVnf =
553                 mapper.readValue(new File(RESOURCE_PATH + "aaiGenericVnfInput.json"), GenericVnf.class);
554
555         doReturn(Optional.of(expectedAaiVnf)).when(MOCK_aaiResourcesClient).get(isA(Class.class),
556                 isA(AAIResourceUri.class));
557         AAIResourceUri expectedUri = AAIUriFactory.createResourceUri(AAIObjectType.GENERIC_VNF, vnfId).depth(Depth.ONE);
558         GenericVnf actualAaiVnf = bbInputSetupUtils.getAAIGenericVnf(vnfId);
559
560         assertThat(actualAaiVnf, sameBeanAs(expectedAaiVnf));
561
562         verify(MOCK_aaiResourcesClient, times(1)).get(org.onap.aai.domain.yang.GenericVnf.class, expectedUri);
563     }
564
565     @Test
566     public void testGetAAIConfiguration() throws JsonParseException, JsonMappingException, IOException {
567         String configurationId = "configurationId";
568
569         Configuration expectedAaiConfiguration =
570                 mapper.readValue(new File(RESOURCE_PATH + "ConfigurationInput.json"), Configuration.class);
571
572         doReturn(Optional.of(expectedAaiConfiguration)).when(MOCK_aaiResourcesClient).get(isA(Class.class),
573                 isA(AAIResourceUri.class));
574         AAIResourceUri expectedUri =
575                 AAIUriFactory.createResourceUri(AAIObjectType.CONFIGURATION, configurationId).depth(Depth.ONE);
576         bbInputSetupUtils.getAAIConfiguration(configurationId);
577
578         verify(MOCK_aaiResourcesClient, times(1)).get(org.onap.aai.domain.yang.Configuration.class, expectedUri);
579     }
580
581     @Test
582     public void testGetAAIGenericVnfThrowNotFound() throws JsonParseException, JsonMappingException, IOException {
583         String vnfId = "vnfId";
584
585         doReturn(Optional.empty()).when(MOCK_aaiResourcesClient).get(isA(Class.class), isA(AAIResourceUri.class));
586
587         GenericVnf actualAaiVnf = bbInputSetupUtils.getAAIGenericVnf(vnfId);
588
589         assertNull(actualAaiVnf);
590     }
591
592     @Test
593     public void testGetAAIResourceDepthOne() {
594         String vnfId = "vnfId";
595         AAIResourceUri aaiResourceUri = AAIUriFactory.createResourceUri(AAIObjectType.GENERIC_VNF, vnfId);
596         AAIResourceUri expectedUri = aaiResourceUri.clone().depth(Depth.ONE);
597         AAIResourceUri aaiResourceUriClone = aaiResourceUri.clone();
598         bbInputSetupUtils.getAAIResourceDepthOne(aaiResourceUri);
599
600         verify(MOCK_aaiResourcesClient, times(1)).get(expectedUri);
601         assertEquals("Uri should not have changed", aaiResourceUriClone.build(), aaiResourceUri.build());
602     }
603
604     @Test
605     public void testGetAAIResourceDepthTwo() {
606         String vnfId = "vnfId";
607         AAIResourceUri aaiResourceUri = AAIUriFactory.createResourceUri(AAIObjectType.GENERIC_VNF, vnfId);
608         AAIResourceUri expectedUri = aaiResourceUri.clone().depth(Depth.TWO);
609         AAIResourceUri aaiResourceUriClone = aaiResourceUri.clone();
610         bbInputSetupUtils.getAAIResourceDepthTwo(aaiResourceUri);
611
612         verify(MOCK_aaiResourcesClient, times(1)).get(expectedUri);
613         assertEquals("Uri should not have changed", aaiResourceUriClone.build(), aaiResourceUri.build());
614     }
615
616     @Test
617     public void getRelatedNetworkByNameFromServiceInstanceTest() throws Exception {
618         Optional<L3Networks> expected = Optional.of(new L3Networks());
619         L3Network network = new L3Network();
620         network.setNetworkId("id123");
621         network.setNetworkName("name123");
622         expected.get().getL3Network().add(network);
623         doReturn(expected).when(MOCK_aaiResourcesClient).get(eq(L3Networks.class), any(AAIResourceUri.class));
624         Optional<L3Network> actual =
625                 this.bbInputSetupUtils.getRelatedNetworkByNameFromServiceInstance("id123", "name123");
626         assertEquals(actual.get().getNetworkId(), expected.get().getL3Network().get(0).getNetworkId());
627     }
628
629     @Test
630     public void getRelatedNetworkByNameFromServiceInstanceMultipleNetworksExceptionTest() throws Exception {
631         expectedException.expect(Exception.class);
632
633         String serviceInstanceId = "serviceInstanceId";
634         String networkName = "networkName";
635
636         L3Network network = new L3Network();
637         network.setNetworkId("id123");
638         network.setNetworkName("name123");
639
640         L3Networks expected = new L3Networks();
641         expected.getL3Network().add(network);
642         expected.getL3Network().add(network);
643
644         doReturn(expected).when(MOCK_aaiResourcesClient).get(eq(L3Networks.class), any(AAIResourceUri.class));
645
646         bbInputSetupUtils.getRelatedNetworkByNameFromServiceInstance(serviceInstanceId, networkName);
647     }
648
649     @Test
650     public void getRelatedNetworkByNameFromServiceInstanceNotFoundTest() throws Exception {
651         String serviceInstanceId = "serviceInstanceId";
652         String networkName = "networkName";
653
654         doReturn(Optional.empty()).when(MOCK_aaiResourcesClient).get(eq(L3Networks.class), any(AAIResourceUri.class));
655
656         Optional<L3Network> actualNetwork =
657                 bbInputSetupUtils.getRelatedNetworkByNameFromServiceInstance(serviceInstanceId, networkName);
658
659         assertEquals(Optional.empty(), actualNetwork);
660     }
661
662     @Test
663     public void getRelatedServiceInstanceFromInstanceGroupTest() throws Exception {
664         Optional<ServiceInstances> expected = Optional.of(new ServiceInstances());
665         ServiceInstance serviceInstance = new ServiceInstance();
666         serviceInstance.setServiceInstanceId("serviceInstanceId");
667         serviceInstance.setServiceInstanceName("serviceInstanceName");
668         expected.get().getServiceInstance().add(serviceInstance);
669
670         doReturn(expected).when(MOCK_aaiResourcesClient).get(eq(ServiceInstances.class), any(AAIResourceUri.class));
671         Optional<ServiceInstance> actual = this.bbInputSetupUtils.getRelatedServiceInstanceFromInstanceGroup("ig-001");
672         assertEquals(actual.get().getServiceInstanceId(),
673                 expected.get().getServiceInstance().get(0).getServiceInstanceId());
674     }
675
676     @Test
677     public void getRelatedServiceInstanceFromInstanceGroupMultipleTest() throws Exception {
678         expectedException.expect(MultipleObjectsFoundException.class);
679         Optional<ServiceInstances> serviceInstances = Optional.of(new ServiceInstances());
680         ServiceInstance si1 = Mockito.mock(ServiceInstance.class);
681         ServiceInstance si2 = Mockito.mock(ServiceInstance.class);
682         serviceInstances.get().getServiceInstance().add(si1);
683         serviceInstances.get().getServiceInstance().add(si2);
684
685         doReturn(serviceInstances).when(MOCK_aaiResourcesClient).get(eq(ServiceInstances.class),
686                 any(AAIResourceUri.class));
687         this.bbInputSetupUtils.getRelatedServiceInstanceFromInstanceGroup("ig-001");
688     }
689
690     @Test
691     public void getRelatedServiceInstanceFromInstanceGroupNotFoundTest() throws Exception {
692         expectedException.expect(NoServiceInstanceFoundException.class);
693         Optional<ServiceInstances> serviceInstances = Optional.of(new ServiceInstances());
694
695         doReturn(serviceInstances).when(MOCK_aaiResourcesClient).get(eq(ServiceInstances.class),
696                 any(AAIResourceUri.class));
697         this.bbInputSetupUtils.getRelatedServiceInstanceFromInstanceGroup("ig-001");
698     }
699
700     @Test
701     public void getRelatedVnfByNameFromServiceInstanceTest() throws Exception {
702         Optional<GenericVnfs> expected = Optional.of(new GenericVnfs());
703         GenericVnf vnf = new GenericVnf();
704         vnf.setVnfId("id123");
705         vnf.setVnfName("name123");
706         expected.get().getGenericVnf().add(vnf);
707         doReturn(expected).when(MOCK_aaiResourcesClient).get(eq(GenericVnfs.class), any(AAIResourceUri.class));
708         Optional<GenericVnf> actual = this.bbInputSetupUtils.getRelatedVnfByNameFromServiceInstance("id123", "name123");
709         assertEquals(actual.get().getVnfId(), expected.get().getGenericVnf().get(0).getVnfId());
710     }
711
712     @Test
713     public void getRelatedVnfByNameFromServiceInstanceMultipleVnfsExceptionTest() throws Exception {
714         expectedException.expect(Exception.class);
715
716         String serviceInstanceId = "serviceInstanceId";
717         String vnfName = "vnfName";
718
719         GenericVnf vnf = new GenericVnf();
720         vnf.setVnfId("id123");
721         vnf.setVnfName("name123");
722
723         GenericVnfs expectedVnf = new GenericVnfs();
724         expectedVnf.getGenericVnf().add(vnf);
725         expectedVnf.getGenericVnf().add(vnf);
726
727         doReturn(expectedVnf).when(MOCK_aaiResourcesClient).get(eq(GenericVnfs.class), any(AAIResourceUri.class));
728
729         bbInputSetupUtils.getRelatedVnfByNameFromServiceInstance(serviceInstanceId, vnfName);
730     }
731
732     @Test
733     public void getRelatedVnfByNameFromServiceInstanceNotFoundTest() throws Exception {
734         String serviceInstanceId = "serviceInstanceId";
735         String vnfName = "vnfName";
736
737         doReturn(Optional.empty()).when(MOCK_aaiResourcesClient).get(eq(GenericVnfs.class), any(AAIResourceUri.class));
738
739         Optional<GenericVnf> actualVnf =
740                 this.bbInputSetupUtils.getRelatedVnfByNameFromServiceInstance(serviceInstanceId, vnfName);
741
742         assertEquals(actualVnf, Optional.empty());
743     }
744
745     @Test
746     public void getRelatedVolumeGroupByNameFromVnfTest() throws Exception {
747         Optional<VolumeGroups> expected = Optional.of(new VolumeGroups());
748         VolumeGroup volumeGroup = new VolumeGroup();
749         volumeGroup.setVolumeGroupId("id123");
750         volumeGroup.setVolumeGroupName("name123");
751         expected.get().getVolumeGroup().add(volumeGroup);
752         doReturn(expected).when(MOCK_aaiResourcesClient).get(eq(VolumeGroups.class), any(AAIResourceUri.class));
753         Optional<VolumeGroup> actual = this.bbInputSetupUtils.getRelatedVolumeGroupByNameFromVnf("id123", "name123");
754         assertEquals(actual.get().getVolumeGroupId(), expected.get().getVolumeGroup().get(0).getVolumeGroupId());
755     }
756
757     @Test
758     public void getRelatedVolumeGroupByNameFromVnfMultipleVolumeGroupsExceptionTest() throws Exception {
759         expectedException.expect(Exception.class);
760
761         String vnfId = "vnfId";
762         String volumeGroupName = "volumeGroupName";
763
764         VolumeGroup volumeGroup = new VolumeGroup();
765         volumeGroup.setVolumeGroupId("id123");
766         volumeGroup.setVolumeGroupName("name123");
767
768         VolumeGroups expectedVolumeGroup = new VolumeGroups();
769         expectedVolumeGroup.getVolumeGroup().add(volumeGroup);
770         expectedVolumeGroup.getVolumeGroup().add(volumeGroup);
771
772         doReturn(expectedVolumeGroup).when(MOCK_aaiResourcesClient).get(eq(VolumeGroups.class),
773                 any(AAIResourceUri.class));
774
775         bbInputSetupUtils.getRelatedVolumeGroupByNameFromVnf(vnfId, volumeGroupName);
776     }
777
778     @Test
779     public void getRelatedVolumeGroupByNameFromVnfNotFoundTest() throws Exception {
780         String vnfId = "vnfId";
781         String volumeGroupName = "volumeGroupName";
782
783         doReturn(Optional.empty()).when(MOCK_aaiResourcesClient).get(eq(VolumeGroups.class), any(AAIResourceUri.class));
784
785         Optional<VolumeGroup> actualVolumeGroup =
786                 bbInputSetupUtils.getRelatedVolumeGroupByNameFromVnf(vnfId, volumeGroupName);
787
788         assertEquals(actualVolumeGroup, Optional.empty());
789     }
790
791     @Test
792     public void getRelatedVolumeGroupByNameFromVfModuleTest() throws Exception {
793         Optional<VolumeGroups> expected = Optional.of(new VolumeGroups());
794         VolumeGroup volumeGroup = new VolumeGroup();
795         volumeGroup.setVolumeGroupId("id123");
796         volumeGroup.setVolumeGroupName("name123");
797         expected.get().getVolumeGroup().add(volumeGroup);
798         doReturn(expected).when(MOCK_aaiResourcesClient).get(eq(VolumeGroups.class), any(AAIResourceUri.class));
799         Optional<VolumeGroup> actual =
800                 this.bbInputSetupUtils.getRelatedVolumeGroupByNameFromVfModule("id123", "id123", "name123");
801         assertEquals(actual.get().getVolumeGroupId(), expected.get().getVolumeGroup().get(0).getVolumeGroupId());
802     }
803
804     @Test
805     public void getRelatedVolumeGroupByNameFromVfModuleMultipleVolumeGroupsExceptionTest() throws Exception {
806         expectedException.expect(Exception.class);
807
808         String vnfId = "vnfId";
809         String volumeGroupId = "volumeGroupId";
810         String volumeGroupName = "volumeGroupName";
811
812         VolumeGroup volumeGroup = new VolumeGroup();
813         volumeGroup.setVolumeGroupId("id123");
814         volumeGroup.setVolumeGroupName("name123");
815
816         VolumeGroups expectedVolumeGroup = new VolumeGroups();
817         expectedVolumeGroup.getVolumeGroup().add(volumeGroup);
818         expectedVolumeGroup.getVolumeGroup().add(volumeGroup);
819
820         doReturn(expectedVolumeGroup).when(MOCK_aaiResourcesClient).get(eq(VolumeGroups.class),
821                 any(AAIResourceUri.class));
822
823         bbInputSetupUtils.getRelatedVolumeGroupByNameFromVfModule(vnfId, volumeGroupId, volumeGroupName);
824     }
825
826     @Test
827     public void getRelatedVolumeGroupByNameFromVfModuleNotFoundTest() throws Exception {
828         String vnfId = "vnfId";
829         String volumeGroupId = "volumeGroupId";
830         String volumeGroupName = "volumeGroupName";
831
832         doReturn(Optional.empty()).when(MOCK_aaiResourcesClient).get(eq(VolumeGroups.class), any(AAIResourceUri.class));
833
834         Optional<VolumeGroup> actualVolumeGroup =
835                 bbInputSetupUtils.getRelatedVolumeGroupByNameFromVfModule(vnfId, volumeGroupId, volumeGroupName);
836
837         assertEquals(actualVolumeGroup, Optional.empty());
838     }
839
840     @Test
841     public void loadOriginalFlowExecutionPathTest() throws Exception {
842
843         String requestId = "123";
844         String flowsToExecuteString =
845                 "[{\"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}]";
846         ObjectMapper om = new ObjectMapper();
847         List<ExecuteBuildingBlock> expectedFlowsToExecute = null;
848         try {
849             ExecuteBuildingBlock[] asArray = om.readValue(flowsToExecuteString, ExecuteBuildingBlock[].class);
850             expectedFlowsToExecute = Arrays.asList(asArray);
851         } catch (Exception e) {
852             // TODO Auto-generated catch block
853             e.printStackTrace();
854         }
855
856         InfraActiveRequests request = new InfraActiveRequests();
857         request.setRequestId("requestId");
858         request.setOriginalRequestId("originalRequestId");
859         doReturn(request).when(MOCK_requestsDbClient).getInfraActiveRequestbyRequestId(anyString());
860         RequestProcessingData rpd = new RequestProcessingData();
861         rpd.setValue(flowsToExecuteString);
862         doReturn(rpd).when(MOCK_requestsDbClient).getRequestProcessingDataBySoRequestIdAndName(anyString(),
863                 anyString());
864
865         List<ExecuteBuildingBlock> flowsToExecute = bbInputSetupUtils.loadOriginalFlowExecutionPath(requestId);
866         assertEquals(expectedFlowsToExecute.size(), flowsToExecute.size());
867     }
868
869     @Test
870     public void getRelatedConfigurationByNameFromServiceInstanceTest() throws Exception {
871         Optional<Configurations> expected = Optional.of(new Configurations());
872         Configuration configuration = new Configuration();
873         configuration.setConfigurationId("id123");
874         expected.get().getConfiguration().add(configuration);
875         doReturn(expected).when(MOCK_aaiResourcesClient).get(eq(Configurations.class), any(AAIResourceUri.class));
876         Optional<Configuration> actual =
877                 this.bbInputSetupUtils.getRelatedConfigurationByNameFromServiceInstance("id123", "name123");
878         assertEquals(actual.get().getConfigurationId(), expected.get().getConfiguration().get(0).getConfigurationId());
879     }
880
881 }