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.junit.Assert.assertEquals;
26 import static org.junit.Assert.assertNotNull;
27 import static org.junit.Assert.assertNull;
28 import static org.mockito.ArgumentMatchers.any;
29 import static org.mockito.Matchers.eq;
30 import static org.mockito.ArgumentMatchers.isA;
31 import static org.mockito.Mockito.doNothing;
32 import static org.mockito.Mockito.doReturn;
33 import static org.mockito.Mockito.times;
34 import static org.mockito.Mockito.verify;
37 import java.io.IOException;
38 import java.util.ArrayList;
39 import java.util.Arrays;
40 import java.util.HashMap;
41 import java.util.List;
43 import java.util.Optional;
45 import org.camunda.bpm.engine.delegate.DelegateExecution;
46 import org.junit.Before;
47 import org.junit.Test;
48 import org.junit.runner.RunWith;
49 import org.mockito.ArgumentMatchers;
50 import org.mockito.Matchers;
51 import org.mockito.Mock;
52 import org.mockito.Mockito;
53 import org.mockito.Spy;
54 import org.mockito.junit.MockitoJUnitRunner;
55 import org.onap.so.bpmn.servicedecomposition.bbobjects.CloudRegion;
56 import org.onap.so.bpmn.servicedecomposition.bbobjects.Collection;
57 import org.onap.so.bpmn.servicedecomposition.bbobjects.Configuration;
58 import org.onap.so.bpmn.servicedecomposition.bbobjects.Customer;
59 import org.onap.so.bpmn.servicedecomposition.bbobjects.GenericVnf;
60 import org.onap.so.bpmn.servicedecomposition.bbobjects.InstanceGroup;
61 import org.onap.so.bpmn.servicedecomposition.bbobjects.L3Network;
62 import org.onap.so.bpmn.servicedecomposition.bbobjects.LineOfBusiness;
63 import org.onap.so.bpmn.servicedecomposition.bbobjects.OwningEntity;
64 import org.onap.so.bpmn.servicedecomposition.bbobjects.Platform;
65 import org.onap.so.bpmn.servicedecomposition.bbobjects.Project;
66 import org.onap.so.bpmn.servicedecomposition.bbobjects.RouteTableReference;
67 import org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance;
68 import org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceSubscription;
69 import org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule;
70 import org.onap.so.bpmn.servicedecomposition.bbobjects.VolumeGroup;
71 import org.onap.so.bpmn.servicedecomposition.entities.BuildingBlock;
72 import org.onap.so.bpmn.servicedecomposition.entities.ConfigurationResourceKeys;
73 import org.onap.so.bpmn.servicedecomposition.entities.ExecuteBuildingBlock;
74 import org.onap.so.bpmn.servicedecomposition.entities.GeneralBuildingBlock;
75 import org.onap.so.bpmn.servicedecomposition.entities.ResourceKey;
76 import org.onap.so.bpmn.servicedecomposition.entities.WorkflowResourceIds;
77 import org.onap.so.bpmn.servicedecomposition.generalobjects.OrchestrationContext;
78 import org.onap.so.bpmn.servicedecomposition.generalobjects.RequestContext;
79 import org.onap.so.bpmn.servicedecomposition.modelinfo.ModelInfoCollection;
80 import org.onap.so.bpmn.servicedecomposition.modelinfo.ModelInfoGenericVnf;
81 import org.onap.so.bpmn.servicedecomposition.modelinfo.ModelInfoInstanceGroup;
82 import org.onap.so.bpmn.servicedecomposition.modelinfo.ModelInfoNetwork;
83 import org.onap.so.bpmn.servicedecomposition.modelinfo.ModelInfoServiceInstance;
84 import org.onap.so.bpmn.servicedecomposition.modelinfo.ModelInfoVfModule;
85 import org.onap.so.client.aai.AAICommonObjectMapperProvider;
86 import org.onap.so.client.aai.AAIObjectType;
87 import org.onap.so.client.aai.entities.AAIResultWrapper;
88 import org.onap.so.client.aai.entities.Relationships;
89 import org.onap.so.client.aai.entities.uri.AAIResourceUri;
90 import org.onap.so.client.aai.entities.uri.AAIUriFactory;
91 import org.onap.so.constants.Defaults;
92 import org.onap.so.db.catalog.beans.CollectionNetworkResourceCustomization;
93 import org.onap.so.db.catalog.beans.CollectionResource;
94 import org.onap.so.db.catalog.beans.CollectionResourceCustomization;
95 import org.onap.so.db.catalog.beans.CollectionResourceInstanceGroupCustomization;
96 import org.onap.so.db.catalog.beans.ConfigurationResourceCustomization;
97 import org.onap.so.db.catalog.beans.InstanceGroupType;
98 import org.onap.so.db.catalog.beans.NetworkCollectionResourceCustomization;
99 import org.onap.so.db.catalog.beans.NetworkResourceCustomization;
100 import org.onap.so.db.catalog.beans.OrchestrationStatus;
101 import org.onap.so.db.catalog.beans.Service;
102 import org.onap.so.db.catalog.beans.VfModuleCustomization;
103 import org.onap.so.db.catalog.beans.VnfResourceCustomization;
104 import org.onap.so.db.catalog.beans.VnfcInstanceGroupCustomization;
105 import org.onap.so.db.request.beans.InfraActiveRequests;
106 import org.onap.so.serviceinstancebeans.CloudConfiguration;
107 import org.onap.so.serviceinstancebeans.ModelInfo;
108 import org.onap.so.serviceinstancebeans.ModelType;
109 import org.onap.so.serviceinstancebeans.RelatedInstance;
110 import org.onap.so.serviceinstancebeans.RelatedInstanceList;
111 import org.onap.so.serviceinstancebeans.RequestDetails;
112 import org.onap.so.serviceinstancebeans.RequestInfo;
113 import org.onap.so.serviceinstancebeans.RequestParameters;
114 import org.onap.so.serviceinstancebeans.Resources;
115 import org.onap.so.serviceinstancebeans.SubscriberInfo;
117 import com.fasterxml.jackson.core.JsonParseException;
118 import com.fasterxml.jackson.core.JsonProcessingException;
119 import com.fasterxml.jackson.databind.JsonMappingException;
120 import com.fasterxml.jackson.databind.ObjectMapper;
121 @RunWith(MockitoJUnitRunner.class)
122 public class BBInputSetupTest {
123 private static final String RESOURCE_PATH = "src/test/resources/__files/ExecuteBuildingBlock/";
125 protected ObjectMapper mapper = new ObjectMapper();
126 private static final String CLOUD_OWNER = "CloudOwner";
129 private BBInputSetup SPY_bbInputSetup = new BBInputSetup();
132 private BBInputSetupUtils SPY_bbInputSetupUtils;
135 private BBInputSetupMapperLayer bbInputSetupMapperLayer;
139 SPY_bbInputSetup.setBbInputSetupUtils(SPY_bbInputSetupUtils);
140 SPY_bbInputSetup.setMapperLayer(bbInputSetupMapperLayer);
144 public void testGetVolumeGroupIdRelatedToVfModule() {
145 String expected = "volumeGroupId";
146 String modelCustomizationId = "modelCustomizationId";
147 ModelInfo modelInfo = new ModelInfo();
148 modelInfo.setModelCustomizationId(modelCustomizationId);
149 String cloudOwner = "cloudOwner";
150 String cloudRegionId = "cloudRegionId";
151 String volumeGroupId = "volumeGroupId";
152 GenericVnf vnf = new GenericVnf();
153 VolumeGroup volumeGroup = new VolumeGroup();
154 volumeGroup.setVolumeGroupId(expected);
155 vnf.getVolumeGroups().add(volumeGroup);
156 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
157 lookupKeyMap.put(ResourceKey.VOLUME_GROUP_ID, null);
158 org.onap.aai.domain.yang.VolumeGroup aaiVolumeGroup = new org.onap.aai.domain.yang.VolumeGroup();
159 aaiVolumeGroup.setModelCustomizationId(modelCustomizationId);
160 doReturn(aaiVolumeGroup).when(SPY_bbInputSetupUtils).getAAIVolumeGroup(cloudOwner, cloudRegionId, volumeGroupId);
162 Optional<String> actual = SPY_bbInputSetup.getVolumeGroupIdRelatedToVfModule(vnf, modelInfo, cloudOwner, cloudRegionId, lookupKeyMap);
164 assertEquals(expected, actual.get());
168 public void testGetAlaCarteServiceInstance() throws Exception {
169 ServiceInstance expected = mapper.readValue(
170 new File(RESOURCE_PATH + "ServiceInstance_getServiceInstanceNOAAIExpected.json"),
171 ServiceInstance.class);
172 RequestDetails requestDetails = new RequestDetails();
173 RequestInfo requestInfo = new RequestInfo();
174 requestInfo.setInstanceName("SharansInstanceName");
175 requestDetails.setRequestInfo(requestInfo);
176 Customer customer = new Customer();
177 String serviceInstanceId = "SharansInstanceId";
178 boolean aLaCarte = true;
179 Service service = new Service();
180 service.setModelUUID("modelUUID");
181 ModelInfoServiceInstance modelInfoServiceInstance = new ModelInfoServiceInstance();
182 modelInfoServiceInstance.setModelUuid("modelUUID");
183 expected.setModelInfoServiceInstance(modelInfoServiceInstance);
184 org.onap.aai.domain.yang.ServiceInstance serviceInstanceAAI = new org.onap.aai.domain.yang.ServiceInstance();
185 serviceInstanceAAI.setModelVersionId("modelUUIDDifferent");
186 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
187 String bbName = AssignFlows.SERVICE_INSTANCE.toString();
188 Service differentService = new Service();
189 differentService.setModelUUID("modelUUIDDifferent");
191 doReturn(expected).when(SPY_bbInputSetup).getServiceInstanceHelper(requestDetails, customer, null, null,
192 lookupKeyMap, serviceInstanceId, aLaCarte, service, bbName);
193 doReturn(serviceInstanceAAI).when(SPY_bbInputSetupUtils).getAAIServiceInstanceById(serviceInstanceId);
194 doReturn(differentService).when(SPY_bbInputSetupUtils)
195 .getCatalogServiceByModelUUID(serviceInstanceAAI.getModelVersionId());
196 doReturn(expected.getModelInfoServiceInstance()).when(bbInputSetupMapperLayer)
197 .mapCatalogServiceIntoServiceInstance(differentService);
199 ServiceInstance actual = SPY_bbInputSetup.getALaCarteServiceInstance(service, requestDetails, customer, null,
200 null, lookupKeyMap, serviceInstanceId, aLaCarte, bbName);
201 assertThat(actual, sameBeanAs(expected));
204 @Test(expected = Exception.class)
205 public void testGetAlaCarteServiceInstanceException() throws Exception {
206 ServiceInstance expected = mapper.readValue(
207 new File(RESOURCE_PATH + "ServiceInstance_getServiceInstanceNOAAIExpected.json"),
208 ServiceInstance.class);
209 RequestDetails requestDetails = new RequestDetails();
210 RequestInfo requestInfo = new RequestInfo();
211 requestInfo.setInstanceName("SharansInstanceName");
212 requestDetails.setRequestInfo(requestInfo);
213 Customer customer = new Customer();
214 String serviceInstanceId = "SharansInstanceId";
215 boolean aLaCarte = true;
216 Service service = new Service();
217 service.setModelUUID("modelUUID");
218 ModelInfoServiceInstance modelInfoServiceInstance = new ModelInfoServiceInstance();
219 modelInfoServiceInstance.setModelUuid("modelUUID");
220 expected.setModelInfoServiceInstance(modelInfoServiceInstance);
221 org.onap.aai.domain.yang.ServiceInstance serviceInstanceAAI = new org.onap.aai.domain.yang.ServiceInstance();
222 serviceInstanceAAI.setModelVersionId("modelUUIDDifferent");
223 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
224 String bbName = AssignFlows.SERVICE_INSTANCE.toString();
225 Service differentService = new Service();
226 differentService.setModelUUID("modelUUIDDifferent");
228 doReturn(expected).when(SPY_bbInputSetup).getServiceInstanceHelper(requestDetails, customer, null, null,
229 lookupKeyMap, serviceInstanceId, aLaCarte, service, bbName);
230 doReturn(serviceInstanceAAI).when(SPY_bbInputSetupUtils).getAAIServiceInstanceById(serviceInstanceId);
231 doReturn(null).when(SPY_bbInputSetupUtils)
232 .getCatalogServiceByModelUUID(serviceInstanceAAI.getModelVersionId());
234 ServiceInstance actual = SPY_bbInputSetup.getALaCarteServiceInstance(service, requestDetails, customer, null,
235 null, lookupKeyMap, serviceInstanceId, aLaCarte, bbName);
236 assertThat(actual, sameBeanAs(expected));
240 public void testGetCustomerAndServiceSubscription() throws JsonParseException, JsonMappingException, IOException {
241 RequestDetails requestDetails = mapper.readValue(
242 new File(RESOURCE_PATH + "RequestDetailsInput_withRelatedInstanceList.json"), RequestDetails.class);
243 SubscriberInfo subscriberInfo = new SubscriberInfo();
244 subscriberInfo.setGlobalSubscriberId("globalSubscriberId");
245 RequestParameters requestParams = new RequestParameters();
246 requestParams.setSubscriptionServiceType("subscriptionServiceType");
247 requestDetails.setRequestParameters(requestParams);
248 requestDetails.setSubscriberInfo(subscriberInfo);
249 String resourceId = "resourceId";
250 Customer expected = new Customer();
251 expected.setGlobalCustomerId("globalCustomerId");
252 ServiceSubscription serviceSubscription = new ServiceSubscription();
253 serviceSubscription.setServiceType("subscriptionServiceType");
255 doReturn(expected).when(this.SPY_bbInputSetup).getCustomerFromRequest(requestDetails);
256 doReturn(serviceSubscription).when(this.SPY_bbInputSetup).getServiceSubscription(requestDetails, expected);
258 Customer actual = this.SPY_bbInputSetup.getCustomerAndServiceSubscription(requestDetails, resourceId);
260 assertThat(actual, sameBeanAs(expected));
262 requestDetails.setSubscriberInfo(null);
265 assertThat(actual, sameBeanAs(expected));
270 public void testSetHomingFlag() throws JsonParseException, JsonMappingException, IOException {
271 GeneralBuildingBlock expected = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
272 GeneralBuildingBlock.class);
273 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
274 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "vnfId");
275 GenericVnf genericVnfExpected = new GenericVnf();
276 genericVnfExpected.setVnfId("vnfId");
277 genericVnfExpected.setCallHoming(true);
278 expected.getCustomer().getServiceSubscription().getServiceInstances().get(0).getVnfs().add(genericVnfExpected);
279 boolean homing = true;
280 GenericVnf genericVnfActual = new GenericVnf();
281 genericVnfActual.setVnfId("vnfId");
282 genericVnfActual.setCallHoming(false);
283 GeneralBuildingBlock actual = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
284 GeneralBuildingBlock.class);
285 actual.getCustomer().getServiceSubscription().getServiceInstances().get(0).getVnfs().add(genericVnfActual);
287 SPY_bbInputSetup.setHomingFlag(actual, homing, lookupKeyMap);
288 assertThat(actual, sameBeanAs(expected));
292 public void testGetExecuteBBFromExecution() throws IOException {
293 ExecuteBuildingBlock expected = new ExecuteBuildingBlock();
294 BuildingBlock bb = new BuildingBlock();
295 bb.setBpmnFlowName("AssignServiceInstanceBB");
296 expected.setBuildingBlock(bb);
297 expected.setRequestId("00032ab7-3fb3-42e5-965d-8ea592502017");
298 DelegateExecution execution = Mockito.mock(DelegateExecution.class);
299 doReturn(expected).when(execution).getVariable(any(String.class));
300 ExecuteBuildingBlock actual = SPY_bbInputSetup.getExecuteBBFromExecution(execution);
301 assertThat(actual, sameBeanAs(expected));
305 public void testGetGBB() throws Exception {
306 GeneralBuildingBlock expected = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
307 GeneralBuildingBlock.class);
309 ExecuteBuildingBlock executeBB = new ExecuteBuildingBlock();
310 executeBB.setRequestId("requestId");
311 RequestDetails requestDetails = new RequestDetails();
312 ModelInfo modelInfo = new ModelInfo();
313 modelInfo.setModelType(ModelType.service);
314 requestDetails.setModelInfo(modelInfo);
315 RequestParameters requestParams = new RequestParameters();
316 requestParams.setaLaCarte(true);
317 requestDetails.setRequestParameters(requestParams);
318 doReturn(requestDetails).when(SPY_bbInputSetupUtils).getRequestDetails(executeBB.getRequestId());
319 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
320 String resourceId = "123";
321 String requestAction = "createInstance";
322 doReturn(expected).when(SPY_bbInputSetup).getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
323 requestAction, resourceId);
324 doNothing().when(SPY_bbInputSetup).populateLookupKeyMapWithIds(executeBB.getWorkflowResourceIds(),lookupKeyMap);
325 boolean aLaCarte = true;
326 GeneralBuildingBlock actual = SPY_bbInputSetup.getGBB(executeBB, lookupKeyMap, requestAction, aLaCarte,
329 assertThat(actual, sameBeanAs(expected));
333 public void testGetGBBCM() throws Exception {
334 GeneralBuildingBlock expected = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockCMExpected.json"),
335 GeneralBuildingBlock.class);
337 ExecuteBuildingBlock executeBB = new ExecuteBuildingBlock();
338 executeBB.setRequestId("requestId");
339 RequestDetails requestDetails = new RequestDetails();
340 requestDetails.setModelInfo(null);
341 RequestParameters requestParams = new RequestParameters();
342 requestParams.setaLaCarte(true);
343 requestDetails.setRequestParameters(requestParams);
344 RequestInfo requestInfo = new RequestInfo();
345 requestInfo.setSuppressRollback(true);
346 requestInfo.setSource("VID");
347 requestDetails.setRequestInfo(requestInfo);
348 CloudConfiguration cloudConfiguration = new CloudConfiguration();
349 cloudConfiguration.setLcpCloudRegionId("myRegionId");
350 requestDetails.setCloudConfiguration(cloudConfiguration);
351 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
352 String resourceId = "123";
353 String requestAction = "createInstance";
355 doReturn(null).when(bbInputSetupMapperLayer).mapAAIGenericVnfIntoGenericVnf(ArgumentMatchers.isNull());
356 GeneralBuildingBlock actual = SPY_bbInputSetup.getGBBCM(executeBB, requestDetails, lookupKeyMap, requestAction,
359 assertThat(actual, sameBeanAs(expected));
363 public void testGetGBBALaCarteNonService() throws Exception {
364 GeneralBuildingBlock expected = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
365 GeneralBuildingBlock.class);
366 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
367 ExecuteBuildingBlock.class);
368 RequestDetails requestDetails = mapper.readValue(
369 new File(RESOURCE_PATH + "RequestDetailsInput_withRelatedInstanceList.json"), RequestDetails.class);
370 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
371 String requestAction = "createInstance";
372 Service service = Mockito.mock(Service.class);
373 ServiceInstance serviceInstance = Mockito.mock(ServiceInstance.class);
374 String resourceId = "123";
375 String vnfType = "vnfType";
376 org.onap.aai.domain.yang.ServiceInstance aaiServiceInstance = new org.onap.aai.domain.yang.ServiceInstance();
377 aaiServiceInstance.setModelVersionId("modelVersionId");
378 org.onap.aai.domain.yang.CloudRegion aaiCloudRegion = Mockito.mock(org.onap.aai.domain.yang.CloudRegion.class);
379 lookupKeyMap.put(ResourceKey.SERVICE_INSTANCE_ID, "instanceId");
380 doReturn(service).when(SPY_bbInputSetupUtils).getCatalogServiceByModelUUID(aaiServiceInstance.getModelVersionId());
381 doReturn(aaiServiceInstance).when(SPY_bbInputSetupUtils).getAAIServiceInstanceById("instanceId");
383 doNothing().when(SPY_bbInputSetup).populateObjectsOnAssignAndCreateFlows(requestDetails, service, "bbName",
384 serviceInstance, lookupKeyMap, resourceId, vnfType);
385 doReturn(serviceInstance).when(SPY_bbInputSetup).getExistingServiceInstance(aaiServiceInstance);
386 doReturn(expected).when(SPY_bbInputSetup).populateGBBWithSIAndAdditionalInfo(requestDetails, serviceInstance,
387 executeBB, requestAction, null);
389 GeneralBuildingBlock actual = SPY_bbInputSetup.getGBBALaCarteNonService(executeBB, requestDetails, lookupKeyMap,
390 requestAction, resourceId, vnfType);
392 assertThat(actual, sameBeanAs(expected));
395 @Test(expected = Exception.class)
396 public void testGetGBBALaCarteNonServiceWithoutServiceModelInfo() throws Exception {
397 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
398 ExecuteBuildingBlock.class);
399 RequestDetails requestDetails = mapper.readValue(
400 new File(RESOURCE_PATH + "RequestDetailsInput_withRelatedInstanceList.json"), RequestDetails.class);
401 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
402 String requestAction = "createInstance";
403 org.onap.aai.domain.yang.ServiceInstance aaiServiceInstance = new org.onap.aai.domain.yang.ServiceInstance();
404 aaiServiceInstance.setModelVersionId("modelVersionId");
405 String resourceId = "123";
406 String vnfType = "vnfType";
408 SPY_bbInputSetup.getGBBALaCarteNonService(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId,
413 public void testGetGBBALaCarteNonServiceWithoutRelatedInstances() throws Exception {
414 GeneralBuildingBlock expected = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
415 GeneralBuildingBlock.class);
416 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
417 ExecuteBuildingBlock.class);
418 RequestDetails requestDetails = mapper.readValue(
419 new File(RESOURCE_PATH + "RequestDetailsInput_withoutRelatedInstanceList.json"), RequestDetails.class);
420 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
421 String requestAction = "createInstance";
422 Service service = Mockito.mock(Service.class);
423 String resourceId = "123";
424 ServiceInstance serviceInstance = Mockito.mock(ServiceInstance.class);
425 org.onap.aai.domain.yang.ServiceInstance aaiServiceInstance = new org.onap.aai.domain.yang.ServiceInstance();
426 aaiServiceInstance.setModelVersionId("modelVersionId");
427 org.onap.aai.domain.yang.CloudRegion aaiCloudRegion = Mockito.mock(org.onap.aai.domain.yang.CloudRegion.class);
428 String vnfType = "vnfType";
429 lookupKeyMap.put(ResourceKey.SERVICE_INSTANCE_ID, "instanceId");
430 doReturn(service).when(SPY_bbInputSetupUtils).getCatalogServiceByModelUUID(aaiServiceInstance.getModelVersionId());
431 doReturn(aaiServiceInstance).when(SPY_bbInputSetupUtils).getAAIServiceInstanceById("instanceId");
433 doNothing().when(SPY_bbInputSetup).populateObjectsOnAssignAndCreateFlows(requestDetails, service, "bbName",
434 serviceInstance, lookupKeyMap, resourceId, vnfType);
436 doReturn(serviceInstance).when(SPY_bbInputSetup).getExistingServiceInstance(aaiServiceInstance);
437 doReturn(expected).when(SPY_bbInputSetup).populateGBBWithSIAndAdditionalInfo(requestDetails, serviceInstance,
438 executeBB, requestAction,null);
440 GeneralBuildingBlock actual = SPY_bbInputSetup.getGBBALaCarteNonService(executeBB, requestDetails, lookupKeyMap,
441 requestAction, resourceId, vnfType);
443 assertThat(actual, sameBeanAs(expected));
447 public void testGetGBBALaCarteService() throws Exception {
448 GeneralBuildingBlock expected = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
449 GeneralBuildingBlock.class);
450 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
451 ExecuteBuildingBlock.class);
452 RequestDetails requestDetails = mapper.readValue(
453 new File(RESOURCE_PATH + "RequestDetailsInput_withRelatedInstanceList.json"), RequestDetails.class);
454 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
456 org.onap.so.serviceinstancebeans.Project requestProject = new org.onap.so.serviceinstancebeans.Project();
457 org.onap.so.serviceinstancebeans.OwningEntity requestOwningEntity = new org.onap.so.serviceinstancebeans.OwningEntity();
458 requestDetails.setProject(requestProject);
459 requestDetails.setOwningEntity(requestOwningEntity);
461 Service service = Mockito.mock(Service.class);
462 Customer customer = Mockito.mock(Customer.class);
463 ServiceSubscription serviceSubscription = Mockito.mock(ServiceSubscription.class);
464 Project project = Mockito.mock(Project.class);
465 OwningEntity owningEntity = Mockito.mock(OwningEntity.class);
466 ServiceInstance serviceInstance = Mockito.mock(ServiceInstance.class);
467 String resourceId = "123";
468 String requestAction = "createInstance";
469 executeBB.setaLaCarte(true);
470 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.SERVICE_INSTANCE.toString());
471 org.onap.aai.domain.yang.CloudRegion aaiCloudRegion = Mockito.mock(org.onap.aai.domain.yang.CloudRegion.class);
473 doReturn(service).when(SPY_bbInputSetupUtils)
474 .getCatalogServiceByModelUUID(requestDetails.getModelInfo().getModelVersionId());
475 doReturn(project).when(bbInputSetupMapperLayer).mapRequestProject(requestDetails.getProject());
476 doReturn(owningEntity).when(bbInputSetupMapperLayer)
477 .mapRequestOwningEntity(requestDetails.getOwningEntity());
479 doReturn(customer).when(SPY_bbInputSetup).getCustomerAndServiceSubscription(requestDetails, resourceId);
480 doReturn(serviceInstance).when(SPY_bbInputSetup).getALaCarteServiceInstance(service, requestDetails, customer,
481 project, owningEntity, lookupKeyMap, resourceId, Boolean.TRUE.equals(executeBB.isaLaCarte()),
482 executeBB.getBuildingBlock().getBpmnFlowName());
483 doReturn(expected).when(SPY_bbInputSetup).populateGBBWithSIAndAdditionalInfo(requestDetails, serviceInstance,
484 executeBB, requestAction, customer);
486 GeneralBuildingBlock actual = SPY_bbInputSetup.getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
487 requestAction, resourceId);
489 assertThat(actual, sameBeanAs(expected));
493 public void testGetGBBALaCarteServiceFindServiceByModelVersionId() throws Exception {
494 GeneralBuildingBlock expected = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
495 GeneralBuildingBlock.class);
496 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
497 ExecuteBuildingBlock.class);
498 RequestDetails requestDetails = mapper.readValue(
499 new File(RESOURCE_PATH + "RequestDetailsInput_withRelatedInstanceList.json"), RequestDetails.class);
500 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
502 org.onap.so.serviceinstancebeans.Project requestProject = new org.onap.so.serviceinstancebeans.Project();
503 org.onap.so.serviceinstancebeans.OwningEntity requestOwningEntity = new org.onap.so.serviceinstancebeans.OwningEntity();
504 requestDetails.setProject(requestProject);
505 requestDetails.setOwningEntity(requestOwningEntity);
507 Service service = Mockito.mock(Service.class);
508 Customer customer = Mockito.mock(Customer.class);
509 ServiceSubscription serviceSubscription = Mockito.mock(ServiceSubscription.class);
510 Project project = Mockito.mock(Project.class);
511 OwningEntity owningEntity = Mockito.mock(OwningEntity.class);
512 ServiceInstance serviceInstance = Mockito.mock(ServiceInstance.class);
513 String resourceId = "123";
514 String requestAction = "createInstance";
515 executeBB.setaLaCarte(true);
516 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.SERVICE_INSTANCE.toString());
517 org.onap.aai.domain.yang.CloudRegion aaiCloudRegion = Mockito.mock(org.onap.aai.domain.yang.CloudRegion.class);
519 doReturn(null).when(SPY_bbInputSetupUtils)
520 .getCatalogServiceByModelUUID(requestDetails.getModelInfo().getModelVersionId());
521 doReturn(service).when(SPY_bbInputSetupUtils).getCatalogServiceByModelVersionAndModelInvariantUUID(
522 requestDetails.getModelInfo().getModelVersion(), requestDetails.getModelInfo().getModelInvariantId());
523 doReturn(project).when(bbInputSetupMapperLayer).mapRequestProject(requestDetails.getProject());
524 doReturn(owningEntity).when(bbInputSetupMapperLayer)
525 .mapRequestOwningEntity(requestDetails.getOwningEntity());
527 doReturn(customer).when(SPY_bbInputSetup).getCustomerAndServiceSubscription(requestDetails, resourceId);
528 doReturn(serviceInstance).when(SPY_bbInputSetup).getALaCarteServiceInstance(service, requestDetails, customer,
529 project, owningEntity, lookupKeyMap, resourceId, Boolean.TRUE.equals(executeBB.isaLaCarte()),
530 executeBB.getBuildingBlock().getBpmnFlowName());
531 doReturn(expected).when(SPY_bbInputSetup).populateGBBWithSIAndAdditionalInfo(requestDetails, serviceInstance,
532 executeBB, requestAction,customer);
534 GeneralBuildingBlock actual = SPY_bbInputSetup.getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
535 requestAction, resourceId);
537 assertThat(actual, sameBeanAs(expected));
541 public void testGetGBBALaCarteServiceNoProjectNoOE() throws Exception {
542 GeneralBuildingBlock expected = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
543 GeneralBuildingBlock.class);
544 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
545 ExecuteBuildingBlock.class);
546 RequestDetails requestDetails = mapper.readValue(
547 new File(RESOURCE_PATH + "RequestDetailsInput_withRelatedInstanceList.json"), RequestDetails.class);
548 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
550 Service service = Mockito.mock(Service.class);
551 Customer customer = Mockito.mock(Customer.class);
552 ServiceSubscription serviceSubscription = Mockito.mock(ServiceSubscription.class);
553 ServiceInstance serviceInstance = Mockito.mock(ServiceInstance.class);
554 String resourceId = "123";
555 String requestAction = "createInstance";
556 executeBB.setaLaCarte(true);
557 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.SERVICE_INSTANCE.toString());
558 org.onap.aai.domain.yang.CloudRegion aaiCloudRegion = Mockito.mock(org.onap.aai.domain.yang.CloudRegion.class);
560 Map<String, String> uriKeys = new HashMap<>();
561 uriKeys.put("global-customer-id", "globalCustomerId");
562 uriKeys.put("service-type", "serviceType");
564 doReturn(service).when(SPY_bbInputSetupUtils)
565 .getCatalogServiceByModelUUID(requestDetails.getModelInfo().getModelVersionId());
567 doReturn(customer).when(SPY_bbInputSetup).getCustomerAndServiceSubscription(requestDetails, resourceId);
569 doReturn(serviceInstance).when(SPY_bbInputSetup).getALaCarteServiceInstance(service, requestDetails, customer,
570 null, null, lookupKeyMap, resourceId, Boolean.TRUE.equals(executeBB.isaLaCarte()),
571 executeBB.getBuildingBlock().getBpmnFlowName());
572 doReturn(expected).when(SPY_bbInputSetup).populateGBBWithSIAndAdditionalInfo(requestDetails, serviceInstance,
573 executeBB, requestAction,customer);
575 GeneralBuildingBlock actual = SPY_bbInputSetup.getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
576 requestAction, resourceId);
578 assertThat(actual, sameBeanAs(expected));
582 public void testGetServiceInstanceHelperCreateScenario() throws Exception {
583 RequestDetails requestDetails = new RequestDetails();
584 RequestInfo requestInfo = new RequestInfo();
585 requestInfo.setInstanceName("SharansInstanceName");
586 requestDetails.setRequestInfo(requestInfo);
587 Customer customer = new Customer();
588 String serviceInstanceId = "SharansInstanceId";
589 boolean aLaCarte = true;
590 ServiceInstance expected = new ServiceInstance();
591 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
592 Service service = new Service();
593 service.setModelUUID("modelUUID");
594 String bbName = AssignFlows.SERVICE_INSTANCE.toString();
596 doReturn(null).when(SPY_bbInputSetupUtils).getAAIServiceInstanceByName(requestInfo.getInstanceName(), customer);
597 doReturn(null).when(SPY_bbInputSetupUtils).getAAIServiceInstanceById(serviceInstanceId);
600 doReturn(expected).when(SPY_bbInputSetup).createServiceInstance(requestDetails, null, null,
601 lookupKeyMap, serviceInstanceId);
603 ServiceInstance actual = SPY_bbInputSetup.getServiceInstanceHelper(requestDetails, customer, null, null,
604 lookupKeyMap, serviceInstanceId, aLaCarte, service, bbName);
605 assertThat(actual, sameBeanAs(expected));
609 public void testGetServiceInstanceHelperCreateScenarioExisting() throws Exception {
610 RequestDetails requestDetails = new RequestDetails();
611 RequestInfo requestInfo = new RequestInfo();
612 requestInfo.setInstanceName("SharansInstanceName");
613 requestDetails.setRequestInfo(requestInfo);
614 Customer customer = new Customer();
615 String serviceInstanceId = "SharansInstanceId";
616 boolean aLaCarte = true;
617 Service service = new Service();
618 service.setModelUUID("modelUUID");
619 ServiceInstance expected = new ServiceInstance();
620 org.onap.aai.domain.yang.ServiceInstance serviceInstanceAAI = new org.onap.aai.domain.yang.ServiceInstance();
621 serviceInstanceAAI.setModelVersionId("modelUUID");
622 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
623 String bbName = AssignFlows.SERVICE_INSTANCE.toString();
625 doReturn(serviceInstanceAAI).when(SPY_bbInputSetupUtils)
626 .getAAIServiceInstanceByName(requestInfo.getInstanceName(), customer);
627 doReturn(expected).when(SPY_bbInputSetup).getExistingServiceInstance(serviceInstanceAAI);
629 ServiceInstance actual = SPY_bbInputSetup.getServiceInstanceHelper(requestDetails, customer, null, null,
630 lookupKeyMap, serviceInstanceId, aLaCarte, service, bbName);
631 assertThat(actual, sameBeanAs(expected));
635 public void testGetServiceInstanceHelperCreateScenarioExistingNoNameButWithId() throws Exception {
636 RequestDetails requestDetails = new RequestDetails();
637 RequestInfo requestInfo = new RequestInfo();
638 requestInfo.setInstanceName("SharansInstanceName");
639 requestDetails.setRequestInfo(requestInfo);
640 Customer customer = new Customer();
641 String serviceInstanceId = "SharansInstanceId";
642 boolean aLaCarte = true;
643 Service service = new Service();
644 service.setModelUUID("modelUUID");
645 ServiceInstance expected = new ServiceInstance();
646 org.onap.aai.domain.yang.ServiceInstance serviceInstanceAAI = new org.onap.aai.domain.yang.ServiceInstance();
647 serviceInstanceAAI.setModelVersionId("modelUUID");
648 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
649 String bbName = "ActivateServiceInstanceBB";
651 doReturn(serviceInstanceAAI).when(SPY_bbInputSetupUtils).getAAIServiceInstanceById(serviceInstanceId);
652 doReturn(expected).when(SPY_bbInputSetup).getExistingServiceInstance(serviceInstanceAAI);
654 ServiceInstance actual = SPY_bbInputSetup.getServiceInstanceHelper(requestDetails, customer, null, null,
655 lookupKeyMap, serviceInstanceId, aLaCarte, service, bbName);
656 assertThat(actual, sameBeanAs(expected));
660 public void testGetServiceInstanceHelperCreateScenarioExistingNoNameButWithIdDifferentModel() throws Exception {
661 RequestDetails requestDetails = new RequestDetails();
662 RequestInfo requestInfo = new RequestInfo();
663 requestDetails.setRequestInfo(requestInfo);
664 Customer customer = new Customer();
665 String serviceInstanceId = "SharansInstanceId";
666 boolean aLaCarte = true;
667 Service service = new Service();
668 service.setModelUUID("modelUUID");
669 ServiceInstance expected = new ServiceInstance();
670 org.onap.aai.domain.yang.ServiceInstance serviceInstanceAAI = new org.onap.aai.domain.yang.ServiceInstance();
671 serviceInstanceAAI.setModelVersionId("modelUUIDDifferent");
672 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
673 String bbName = "ActivateServiceInstanceBB";
674 Service differentService = new Service();
675 differentService.setModelUUID("modelUUIDDifferent");
677 doReturn(serviceInstanceAAI).when(SPY_bbInputSetupUtils).getAAIServiceInstanceById(serviceInstanceId);
680 ServiceInstance actual = SPY_bbInputSetup.getServiceInstanceHelper(requestDetails, customer, null, null,
681 lookupKeyMap, serviceInstanceId, aLaCarte, service, bbName);
682 assertThat(actual, sameBeanAs(expected));
685 @Test(expected = Exception.class)
686 public void testGetServiceInstanceHelperCreateScenarioExistingNoNameButWithIdExceptionThrown() throws Exception {
687 RequestDetails requestDetails = new RequestDetails();
688 RequestInfo requestInfo = new RequestInfo();
689 requestDetails.setRequestInfo(requestInfo);
690 Customer customer = new Customer();
691 String serviceInstanceId = "SharansInstanceId";
692 boolean aLaCarte = true;
693 Service service = new Service();
694 service.setModelUUID("modelUUID");
695 org.onap.aai.domain.yang.ServiceInstance serviceInstanceAAI = new org.onap.aai.domain.yang.ServiceInstance();
696 serviceInstanceAAI.setModelVersionId("modelUUIDDifferent");
697 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
698 String bbName = AssignFlows.SERVICE_INSTANCE.toString();
700 ServiceInstance actual = SPY_bbInputSetup.getServiceInstanceHelper(requestDetails, customer, null, null,
701 lookupKeyMap, serviceInstanceId, aLaCarte, service, bbName);
705 public void testPopulateObjectsOnAssignAndCreateFlows() throws Exception {
706 String bbName = AssignFlows.SERVICE_INSTANCE.toString();
707 String instanceName = "instanceName";
708 String vnfType = "vnfType";
709 String resourceId = "networkId";
710 Service service = Mockito.mock(Service.class);
711 ServiceInstance serviceInstance = Mockito.mock(ServiceInstance.class);
712 RequestDetails requestDetails = Mockito.mock(RequestDetails.class);
713 ModelInfo modelInfo = Mockito.mock(ModelInfo.class);
714 RequestInfo requestInfo = Mockito.mock(RequestInfo.class);
715 RelatedInstanceList[] relatedInstanceList = new RelatedInstanceList[] {};
716 CloudConfiguration cloudConfiguration = new CloudConfiguration();
717 org.onap.so.serviceinstancebeans.Platform platform = Mockito
718 .mock(org.onap.so.serviceinstancebeans.Platform.class);
719 org.onap.so.serviceinstancebeans.LineOfBusiness lineOfBusiness = Mockito
720 .mock(org.onap.so.serviceinstancebeans.LineOfBusiness.class);
721 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
723 doNothing().when(SPY_bbInputSetup).populateL3Network(instanceName, modelInfo, service, bbName, serviceInstance,
724 lookupKeyMap, resourceId, null);
725 doReturn(modelInfo).when(requestDetails).getModelInfo();
726 doReturn(requestInfo).when(requestDetails).getRequestInfo();
727 doReturn(instanceName).when(requestInfo).getInstanceName();
728 doReturn(platform).when(requestDetails).getPlatform();
729 doReturn(lineOfBusiness).when(requestDetails).getLineOfBusiness();
730 doReturn(relatedInstanceList).when(requestDetails).getRelatedInstanceList();
731 doReturn(cloudConfiguration).when(requestDetails).getCloudConfiguration();
733 doReturn(ModelType.network).when(modelInfo).getModelType();
734 SPY_bbInputSetup.populateObjectsOnAssignAndCreateFlows(requestDetails, service, bbName, serviceInstance,
735 lookupKeyMap, resourceId, vnfType);
736 verify(SPY_bbInputSetup, times(1)).populateL3Network(instanceName, modelInfo, service, bbName, serviceInstance,
737 lookupKeyMap, resourceId, null);
738 assertEquals("NetworkId populated", true, lookupKeyMap.get(ResourceKey.NETWORK_ID).equalsIgnoreCase(resourceId));
740 doReturn(ModelType.vnf).when(modelInfo).getModelType();
741 resourceId = "vnfId";
742 doNothing().when(SPY_bbInputSetup).populateGenericVnf(modelInfo, instanceName, platform, lineOfBusiness,
743 service, bbName, serviceInstance, lookupKeyMap, relatedInstanceList, resourceId, vnfType, null);
744 SPY_bbInputSetup.populateObjectsOnAssignAndCreateFlows(requestDetails, service, bbName, serviceInstance,
745 lookupKeyMap, resourceId, vnfType);
746 verify(SPY_bbInputSetup, times(1)).populateGenericVnf(modelInfo, instanceName, platform, lineOfBusiness,
747 service, bbName, serviceInstance, lookupKeyMap, relatedInstanceList, resourceId, vnfType, null);
748 assertEquals("VnfId populated", true, lookupKeyMap.get(ResourceKey.GENERIC_VNF_ID).equalsIgnoreCase(resourceId));
750 doReturn(ModelType.volumeGroup).when(modelInfo).getModelType();
751 resourceId = "volumeGroupId";
752 doNothing().when(SPY_bbInputSetup).populateVolumeGroup(modelInfo, service, bbName, serviceInstance,
753 lookupKeyMap, resourceId, relatedInstanceList, instanceName, vnfType, null);
754 SPY_bbInputSetup.populateObjectsOnAssignAndCreateFlows(requestDetails, service, bbName, serviceInstance,
755 lookupKeyMap, resourceId, vnfType);
756 verify(SPY_bbInputSetup, times(1)).populateVolumeGroup(modelInfo, service, bbName, serviceInstance,
757 lookupKeyMap, resourceId, relatedInstanceList, instanceName, vnfType, null);
758 assertEquals("VolumeGroupId populated", true, lookupKeyMap.get(ResourceKey.VOLUME_GROUP_ID).equalsIgnoreCase(resourceId));
760 doReturn(ModelType.vfModule).when(modelInfo).getModelType();
761 resourceId = "vfModuleId";
762 doNothing().when(SPY_bbInputSetup).populateVfModule(modelInfo, service, bbName, serviceInstance, lookupKeyMap,
763 resourceId, relatedInstanceList, instanceName, null, cloudConfiguration);
764 SPY_bbInputSetup.populateObjectsOnAssignAndCreateFlows(requestDetails, service, bbName, serviceInstance,
765 lookupKeyMap, resourceId, vnfType);
766 verify(SPY_bbInputSetup, times(1)).populateVfModule(modelInfo, service, bbName, serviceInstance, lookupKeyMap,
767 resourceId, relatedInstanceList, instanceName, null, cloudConfiguration);
768 assertEquals("VfModuleId populated", true, lookupKeyMap.get(ResourceKey.VF_MODULE_ID).equalsIgnoreCase(resourceId));
772 public void testPopulateGBBWithSIAndAdditionalInfo() throws Exception {
773 GeneralBuildingBlock expected = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
774 GeneralBuildingBlock.class);
775 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
776 ExecuteBuildingBlock.class);
777 RequestDetails requestDetails = mapper.readValue(
778 new File(RESOURCE_PATH + "RequestDetailsInput_withRelatedInstanceList.json"), RequestDetails.class);
779 RequestContext requestContext = mapper.readValue(new File(RESOURCE_PATH + "RequestContextExpected.json"),
780 RequestContext.class);
781 ServiceInstance serviceInstance = mapper.readValue(
782 new File(RESOURCE_PATH + "ServiceInstance_getServiceInstanceNOAAIExpected.json"),
783 ServiceInstance.class);
785 OrchestrationContext orchestrationContext = new OrchestrationContext();
786 orchestrationContext.setIsRollbackEnabled(false);
788 CloudRegion cloudRegion = new CloudRegion();
789 cloudRegion.setCloudOwner("test-owner-name");
790 cloudRegion.setLcpCloudRegionId("lcpCloudRegionId");
791 cloudRegion.setComplex("complexName");
792 cloudRegion.setTenantId("tenantId");
794 Map<String, String> uriKeys = new HashMap<>();
795 uriKeys.put("global-customer-id","global-customer-id");
796 uriKeys.put("service-type","service-type");
798 Customer customer = new Customer();
799 ServiceSubscription serviceSubscription = new ServiceSubscription();
800 serviceSubscription.setServiceType("subscriptionServiceType");
801 customer.setGlobalCustomerId("globalCustomerId");
802 customer.setSubscriberName("subscriberName");
803 customer.setSubscriberType("subscriberType");
804 customer.setServiceSubscription(serviceSubscription);
806 org.onap.aai.domain.yang.CloudRegion aaiCloudRegion = Mockito.mock(org.onap.aai.domain.yang.CloudRegion.class);
808 String requestAction = "createInstance";
810 doReturn(uriKeys).when(SPY_bbInputSetupUtils).getURIKeysFromServiceInstance(serviceInstance.getServiceInstanceId());
811 doReturn(customer).when(SPY_bbInputSetup).mapCustomer(uriKeys.get("global-customer-id"),uriKeys.get("service-type"));
812 doReturn(aaiCloudRegion).when(SPY_bbInputSetupUtils).getCloudRegion(requestDetails.getCloudConfiguration());
813 doReturn(orchestrationContext).when(bbInputSetupMapperLayer).mapOrchestrationContext(requestDetails);
814 doReturn(requestContext).when(bbInputSetupMapperLayer).mapRequestContext(requestDetails);
815 doReturn(cloudRegion).when(bbInputSetupMapperLayer).mapCloudRegion(requestDetails.getCloudConfiguration(), aaiCloudRegion);
817 GeneralBuildingBlock actual = SPY_bbInputSetup.populateGBBWithSIAndAdditionalInfo(requestDetails,
818 serviceInstance, executeBB, requestAction, null);
820 assertThat(actual, sameBeanAs(expected));
824 public void testGetServiceInstanceNOAAI() throws Exception {
825 ServiceInstance expected = mapper.readValue(
826 new File(RESOURCE_PATH + "ServiceInstance_getServiceInstanceNOAAIExpected.json"),
827 ServiceInstance.class);
828 Service service = mapper.readValue(
829 new File(RESOURCE_PATH + "CatalogDBService_getServiceInstanceNOAAIInput.json"), Service.class);
830 Customer customer = mapper.readValue(new File(RESOURCE_PATH + "Customer.json"), Customer.class);
831 Project project = mapper.readValue(new File(RESOURCE_PATH + "Project.json"), Project.class);
832 OwningEntity owningEntity = mapper.readValue(new File(RESOURCE_PATH + "OwningEntity.json"), OwningEntity.class);
833 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
835 ExecuteBuildingBlock executeBB = new ExecuteBuildingBlock();
836 executeBB.setaLaCarte(true);
837 BuildingBlock buildingBlock = new BuildingBlock();
838 buildingBlock.setBpmnFlowName(AssignFlows.SERVICE_INSTANCE.toString());
839 executeBB.setBuildingBlock(buildingBlock);
840 RequestDetails requestDetails = new RequestDetails();
841 RequestInfo reqInfo = new RequestInfo();
842 reqInfo.setInstanceName("serviceInstanceName");
843 requestDetails.setRequestInfo(reqInfo);
844 ModelInfo modelInfo = new ModelInfo();
845 modelInfo.setModelType(ModelType.service);
846 requestDetails.setModelInfo(modelInfo);
847 doReturn(null).when(SPY_bbInputSetupUtils)
848 .getAAIServiceInstanceByName(requestDetails.getRequestInfo().getInstanceName(), customer);
849 doReturn(expected.getModelInfoServiceInstance()).when(bbInputSetupMapperLayer)
850 .mapCatalogServiceIntoServiceInstance(service);
851 doReturn(null).when(SPY_bbInputSetupUtils).getAAIServiceInstanceById(any(String.class));
852 String serviceInstanceId = "3655a595-05d1-433c-93c0-3afd6b572545";
853 boolean aLaCarte = true;
855 ServiceInstance actual = SPY_bbInputSetup.getALaCarteServiceInstance(service, requestDetails, customer, project,
856 owningEntity, lookupKeyMap, serviceInstanceId, aLaCarte,
857 executeBB.getBuildingBlock().getBpmnFlowName());
859 assertThat(actual, sameBeanAs(expected));
863 public void testGetServiceSubscription() throws IOException {
864 ServiceSubscription expected = new ServiceSubscription();
865 RequestDetails requestDetails = new RequestDetails();
866 RequestParameters params = new RequestParameters();
867 params.setSubscriptionServiceType("subscriptionServiceType");
868 requestDetails.setRequestParameters(params);
869 org.onap.aai.domain.yang.ServiceSubscription aaiServiceSubscription = new org.onap.aai.domain.yang.ServiceSubscription();
870 Customer customer = new Customer();
871 customer.setGlobalCustomerId("globalCustomerId");
872 doReturn(aaiServiceSubscription).when(SPY_bbInputSetupUtils).getAAIServiceSubscription(
873 customer.getGlobalCustomerId(), requestDetails.getRequestParameters().getSubscriptionServiceType());
874 doReturn(expected).when(bbInputSetupMapperLayer).mapAAIServiceSubscription(aaiServiceSubscription);
876 ServiceSubscription actual = SPY_bbInputSetup.getServiceSubscription(requestDetails, customer);
877 assertThat(actual, sameBeanAs(expected));
881 public void testGetCustomer() throws IOException {
882 Customer expected = new Customer();
883 RequestDetails requestDetails = new RequestDetails();
884 SubscriberInfo subscriberInfo = new SubscriberInfo();
885 subscriberInfo.setGlobalSubscriberId("globalSubscriberId");
886 requestDetails.setSubscriberInfo(subscriberInfo);
887 org.onap.aai.domain.yang.Customer aaiCustomer = new org.onap.aai.domain.yang.Customer();
888 doReturn(aaiCustomer).when(SPY_bbInputSetupUtils)
889 .getAAICustomer(requestDetails.getSubscriberInfo().getGlobalSubscriberId());
890 doReturn(expected).when(bbInputSetupMapperLayer).mapAAICustomer(aaiCustomer);
892 Customer actual = SPY_bbInputSetup.getCustomerFromRequest(requestDetails);
893 assertThat(actual, sameBeanAs(expected));
897 public void testGetExistingServiceInstance() throws Exception {
898 org.onap.aai.domain.yang.ServiceInstance serviceInstanceAAI = new org.onap.aai.domain.yang.ServiceInstance();
899 ServiceInstance expected = new ServiceInstance();
901 doReturn(expected).when(bbInputSetupMapperLayer)
902 .mapAAIServiceInstanceIntoServiceInstance(serviceInstanceAAI);
905 ServiceInstance actual = SPY_bbInputSetup.getExistingServiceInstance(serviceInstanceAAI);
906 assertThat(actual, sameBeanAs(expected));
910 public void testPopulateNetworkCollectionAndInstanceGroupAssign() throws Exception {
911 Service service = Mockito.mock(Service.class);
912 String key = "collectionCustId";
913 ServiceInstance serviceInstance = mapper.readValue(
914 new File(RESOURCE_PATH + "ServiceInstance_getServiceInstanceNOAAIExpected.json"),
915 ServiceInstance.class);
916 String resourceId = "123";
917 Collection collection = SPY_bbInputSetup.createCollection(resourceId);
918 InstanceGroup instanceGroup = SPY_bbInputSetup.createInstanceGroup();
919 assertNull(serviceInstance.getCollection());
920 doReturn(true).when(SPY_bbInputSetup).isVlanTagging(service, key);
921 doReturn(collection).when(SPY_bbInputSetup).createCollection(resourceId);
922 doReturn(instanceGroup).when(SPY_bbInputSetup).createInstanceGroup();
923 doNothing().when(SPY_bbInputSetup).mapCatalogCollection(service, collection, key);
925 NetworkCollectionResourceCustomization networkCollection = new NetworkCollectionResourceCustomization();
926 networkCollection.setModelCustomizationUUID(key);
927 networkCollection.setCollectionResource(new CollectionResource());
928 networkCollection.getCollectionResource().setInstanceGroup(new org.onap.so.db.catalog.beans.InstanceGroup());
929 networkCollection.getCollectionResource().getInstanceGroup().setToscaNodeType("NetworkCollectionResource");
930 networkCollection.getCollectionResource().getInstanceGroup().setType(InstanceGroupType.L3_NETWORK);
931 networkCollection.getCollectionResource().getInstanceGroup().setCollectionInstanceGroupCustomizations(new ArrayList<>());
932 List<CollectionResourceCustomization> customizations = new ArrayList<>();
933 customizations.add(networkCollection);
934 doReturn(customizations).when(service).getCollectionResourceCustomizations();
936 SPY_bbInputSetup.populateNetworkCollectionAndInstanceGroupAssign(service,
937 AssignFlows.NETWORK_COLLECTION.toString(), serviceInstance, resourceId, key);
939 assertNotNull(serviceInstance.getCollection());
940 assertNotNull(serviceInstance.getCollection().getInstanceGroup());
942 verify(SPY_bbInputSetup, times(1)).mapCatalogCollection(service, serviceInstance.getCollection(), key);
943 verify(SPY_bbInputSetup, times(1)).mapCatalogNetworkCollectionInstanceGroup(service,
944 serviceInstance.getCollection().getInstanceGroup(), key);
948 public void testIsVlanTagging() throws Exception {
949 boolean expected = true;
950 Service service = Mockito.mock(Service.class);
951 String key = "collectionCustId";
952 NetworkCollectionResourceCustomization networkCollection = new NetworkCollectionResourceCustomization();
953 networkCollection.setModelCustomizationUUID(key);
954 networkCollection.setCollectionResource(new CollectionResource());
955 networkCollection.getCollectionResource().setInstanceGroup(new org.onap.so.db.catalog.beans.InstanceGroup());
956 networkCollection.getCollectionResource().getInstanceGroup().setToscaNodeType("org.openecomp.resource.cr.NetworkCollectionResource1806");
957 List<CollectionResourceCustomization> customizations = new ArrayList<>();
958 customizations.add(networkCollection);
959 doReturn(customizations).when(service).getCollectionResourceCustomizations();
960 boolean actual = SPY_bbInputSetup.isVlanTagging(service, key);
961 assertEquals("Is Vlan Tagging check.", expected, actual);
965 public void testPopulateVolumeGroup() throws Exception {
966 RequestDetails requestDetails = new RequestDetails();
967 RelatedInstanceList ril = new RelatedInstanceList();
968 RelatedInstance ri = new RelatedInstance();
969 ModelInfo mi = new ModelInfo();
970 mi.setModelType(ModelType.vnf);
971 mi.setModelCustomizationUuid("vnfModelCustomizationUUID");
973 ril.setRelatedInstance(ri);
974 requestDetails.setRelatedInstanceList(new RelatedInstanceList[] { ril });
976 ModelInfo modelInfo = new ModelInfo();
977 modelInfo.setModelType(ModelType.volumeGroup);
979 RequestInfo reqInfo = new RequestInfo();
980 reqInfo.setInstanceName("volumeGroupName");
981 requestDetails.setModelInfo(modelInfo);
982 requestDetails.setRequestInfo(reqInfo);
984 ServiceInstance serviceInstance = new ServiceInstance();
985 GenericVnf vnf = new GenericVnf();
986 vnf.setVnfId("genericVnfId");
988 VolumeGroup vg = new VolumeGroup();
989 vg.setVolumeGroupName("volumeGroupName");
990 vg.setVolumeGroupId("volumeGroupId");
991 vnf.getVolumeGroups().add(vg);
992 serviceInstance.getVnfs().add(vnf);
994 Service service = mapper.readValue(
995 new File(RESOURCE_PATH + "CatalogDBService_getServiceInstanceNOAAIInput.json"), Service.class);
996 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
997 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "genericVnfId");
999 String bbName = AssignFlows.VOLUME_GROUP.toString();
1000 String resourceId = "123";
1001 doNothing().when(SPY_bbInputSetup).mapCatalogVolumeGroup(isA(VolumeGroup.class), eq(modelInfo),
1002 eq(service), eq("vnfModelCustomizationUUID"));
1003 org.onap.aai.domain.yang.GenericVnf aaiGenericVnf = new org.onap.aai.domain.yang.GenericVnf();
1004 aaiGenericVnf.setModelCustomizationId("vnfModelCustomizationUUID");
1005 doReturn(aaiGenericVnf).when(SPY_bbInputSetupUtils).getAAIGenericVnf(vnf.getVnfId());
1007 lookupKeyMap.put(ResourceKey.VOLUME_GROUP_ID, "volumeGroupId");
1008 SPY_bbInputSetup.populateVolumeGroup(modelInfo, service, bbName, serviceInstance, lookupKeyMap, resourceId,
1009 requestDetails.getRelatedInstanceList(), reqInfo.getInstanceName(), null, null);
1010 verify(SPY_bbInputSetup, times(1)).mapCatalogVolumeGroup(vg, modelInfo, service, "vnfModelCustomizationUUID");
1011 vnf.getVolumeGroups().clear();
1012 SPY_bbInputSetup.populateVolumeGroup(modelInfo, service, bbName, serviceInstance, lookupKeyMap, resourceId,
1013 requestDetails.getRelatedInstanceList(), reqInfo.getInstanceName(), null, null);
1014 verify(SPY_bbInputSetup, times(1)).mapCatalogVolumeGroup(vnf.getVolumeGroups().get(0), modelInfo, service,
1015 "vnfModelCustomizationUUID");
1019 public void testMapCatalogVolumeGroup() {
1020 VolumeGroup volumeGroup = new VolumeGroup();
1021 RequestDetails requestDetails = new RequestDetails();
1022 ModelInfo modelInfo = new ModelInfo();
1023 modelInfo.setModelCustomizationUuid("modelCustomizationUUID");
1024 requestDetails.setModelInfo(modelInfo);
1025 Service service = new Service();
1026 VnfResourceCustomization resourceCust = new VnfResourceCustomization();
1027 resourceCust.setModelCustomizationUUID("vnfModelCustomizationUUID");
1028 service.getVnfCustomizations().add(resourceCust);
1029 VfModuleCustomization vfResourceCust = new VfModuleCustomization();
1030 vfResourceCust.setModelCustomizationUUID("modelCustomizationUUID");
1031 ModelInfoVfModule modelInfoVfModule = new ModelInfoVfModule();
1032 resourceCust.getVfModuleCustomizations().add(vfResourceCust);
1034 doReturn(modelInfoVfModule).when(bbInputSetupMapperLayer).mapCatalogVfModuleToVfModule(vfResourceCust);
1036 SPY_bbInputSetup.mapCatalogVolumeGroup(volumeGroup, modelInfo, service, "vnfModelCustomizationUUID");
1038 assertEquals(modelInfoVfModule, volumeGroup.getModelInfoVfModule());
1042 public void testPopulateL3Network() throws JsonParseException, JsonMappingException, IOException {
1043 String instanceName = "networkName";
1044 ModelInfo modelInfo = new ModelInfo();
1045 modelInfo.setModelType(ModelType.network);
1047 ServiceInstance serviceInstance = new ServiceInstance();
1048 L3Network network = new L3Network();
1049 network.setNetworkId("networkId");
1050 network.setNetworkName("networkName");
1051 serviceInstance.getNetworks().add(network);
1052 String resourceId = "123";
1054 Service service = mapper.readValue(
1055 new File(RESOURCE_PATH + "CatalogDBService_getServiceInstanceNOAAIInput.json"), Service.class);
1056 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
1057 lookupKeyMap.put(ResourceKey.NETWORK_ID, "networkId");
1058 String bbName = AssignFlows.NETWORK_A_LA_CARTE.toString();
1060 doNothing().when(SPY_bbInputSetup).mapCatalogNetwork(network, modelInfo, service);
1062 SPY_bbInputSetup.populateL3Network(instanceName, modelInfo, service, bbName, serviceInstance, lookupKeyMap,
1065 lookupKeyMap.put(ResourceKey.NETWORK_ID, null);
1067 SPY_bbInputSetup.populateL3Network(instanceName, modelInfo, service, bbName, serviceInstance, lookupKeyMap,
1069 verify(SPY_bbInputSetup, times(1)).mapCatalogNetwork(network, modelInfo, service);
1071 instanceName = "networkName2";
1072 L3Network network2 = SPY_bbInputSetup.createNetwork(lookupKeyMap, instanceName, resourceId, null);
1073 SPY_bbInputSetup.populateL3Network(instanceName, modelInfo, service, bbName, serviceInstance, lookupKeyMap,
1075 verify(SPY_bbInputSetup, times(2)).mapCatalogNetwork(network2, modelInfo, service);
1079 public void testMapCatalogNetwork() {
1080 ModelInfoNetwork modelInfoNetwork = new ModelInfoNetwork();
1081 L3Network network = new L3Network();
1083 RequestDetails requestDetails = new RequestDetails();
1084 ModelInfo modelInfo = new ModelInfo();
1085 modelInfo.setModelCustomizationUuid("modelCustomizationUUID");
1086 requestDetails.setModelInfo(modelInfo);
1087 Service service = new Service();
1088 NetworkResourceCustomization resourceCust = new NetworkResourceCustomization();
1089 resourceCust.setModelCustomizationUUID("modelCustomizationUUID");
1090 service.setNetworkCustomizations(Arrays.asList(new NetworkResourceCustomization[] { resourceCust }));
1092 doReturn(modelInfoNetwork).when(bbInputSetupMapperLayer).mapCatalogNetworkToNetwork(resourceCust);
1094 SPY_bbInputSetup.mapCatalogNetwork(network, modelInfo, service);
1096 assertEquals(modelInfoNetwork, network.getModelInfoNetwork());
1100 public void testPopulateConfiguration() throws JsonParseException, JsonMappingException, IOException {
1101 String instanceName = "configurationName";
1102 ModelInfo modelInfo = new ModelInfo();
1103 modelInfo.setModelCustomizationUuid("72d9d1cd-f46d-447a-abdb-451d6fb05fa9");
1105 ServiceInstance serviceInstance = new ServiceInstance();
1106 Configuration configuration = new Configuration();
1107 configuration.setConfigurationId("configurationId");
1108 configuration.setConfigurationName("configurationName");
1109 serviceInstance.getConfigurations().add(configuration);
1110 String resourceId = "configurationId";
1112 Service service = mapper.readValue(
1113 new File(RESOURCE_PATH + "CatalogDBService_getServiceInstanceNOAAIInput.json"), Service.class);
1114 ConfigurationResourceCustomization configurationCust = new ConfigurationResourceCustomization();
1115 configurationCust.setModelCustomizationUUID("72d9d1cd-f46d-447a-abdb-451d6fb05fa9");
1116 service.getConfigurationCustomizations().add(configurationCust);
1117 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
1118 lookupKeyMap.put(ResourceKey.CONFIGURATION_ID, "configurationId");
1119 String bbName = AssignFlows.FABRIC_CONFIGURATION.toString();
1120 ConfigurationResourceKeys configResourceKeys = new ConfigurationResourceKeys();
1121 configResourceKeys.setCvnfcCustomizationUUID("cvnfcCustomizationUUID");
1122 configResourceKeys.setVfModuleCustomizationUUID("vfModuleCustomizationUUID");
1123 configResourceKeys.setVnfResourceCustomizationUUID("vnfResourceCustomizationUUID");
1125 doNothing().when(SPY_bbInputSetup).mapCatalogConfiguration(configuration, modelInfo, service, configResourceKeys);
1127 SPY_bbInputSetup.populateConfiguration(modelInfo, service, bbName, serviceInstance, lookupKeyMap, resourceId,
1128 instanceName, configResourceKeys);
1129 verify(SPY_bbInputSetup, times(1)).mapCatalogConfiguration(configuration, modelInfo, service, configResourceKeys);
1131 lookupKeyMap.put(ResourceKey.CONFIGURATION_ID, null);
1133 SPY_bbInputSetup.populateConfiguration(modelInfo, service, bbName, serviceInstance, lookupKeyMap, resourceId,
1134 instanceName, configResourceKeys);
1135 verify(SPY_bbInputSetup, times(2)).mapCatalogConfiguration(configuration, modelInfo, service, configResourceKeys);
1137 instanceName = "configurationName2";
1138 resourceId = "resourceId2";
1139 lookupKeyMap.put(ResourceKey.CONFIGURATION_ID, "configurationId2");
1140 Configuration configuration2 = SPY_bbInputSetup.createConfiguration(lookupKeyMap, instanceName, resourceId);
1141 doReturn(configuration2).when(SPY_bbInputSetup).createConfiguration(lookupKeyMap, instanceName, resourceId);
1142 doNothing().when(SPY_bbInputSetup).mapCatalogConfiguration(configuration2, modelInfo, service, configResourceKeys);
1143 SPY_bbInputSetup.populateConfiguration(modelInfo, service, bbName, serviceInstance, lookupKeyMap, resourceId,
1144 instanceName, configResourceKeys);
1145 verify(SPY_bbInputSetup, times(1)).mapCatalogConfiguration(configuration2, modelInfo, service, configResourceKeys);
1149 public void testMapCatalogConfiguration() {
1150 ModelInfoNetwork modelInfoNetwork = new ModelInfoNetwork();
1151 L3Network network = new L3Network();
1153 RequestDetails requestDetails = new RequestDetails();
1154 ModelInfo modelInfo = new ModelInfo();
1155 modelInfo.setModelCustomizationUuid("modelCustomizationUUID");
1156 requestDetails.setModelInfo(modelInfo);
1157 Service service = new Service();
1158 NetworkResourceCustomization resourceCust = new NetworkResourceCustomization();
1159 resourceCust.setModelCustomizationUUID("modelCustomizationUUID");
1160 service.setNetworkCustomizations(Arrays.asList(new NetworkResourceCustomization[] { resourceCust }));
1162 doReturn(modelInfoNetwork).when(bbInputSetupMapperLayer).mapCatalogNetworkToNetwork(resourceCust);
1164 SPY_bbInputSetup.mapCatalogNetwork(network, modelInfo, service);
1166 assertEquals(modelInfoNetwork, network.getModelInfoNetwork());
1170 public void testPopulateGenericVnf() throws JsonParseException, JsonMappingException, IOException {
1171 org.onap.so.serviceinstancebeans.Platform platform = new org.onap.so.serviceinstancebeans.Platform();
1172 org.onap.so.serviceinstancebeans.LineOfBusiness lineOfBusiness = new org.onap.so.serviceinstancebeans.LineOfBusiness();
1173 String instanceName = "vnfName";
1174 ModelInfo modelInfo = new ModelInfo();
1175 modelInfo.setModelType(ModelType.vnf);
1177 ServiceInstance serviceInstance = new ServiceInstance();
1178 GenericVnf vnf = new GenericVnf();
1179 vnf.setVnfId("genericVnfId");
1180 vnf.setVnfName("vnfName");
1181 serviceInstance.getVnfs().add(vnf);
1182 String vnfType = "vnfType";
1183 RequestDetails requestDetails = mapper.readValue(new File(RESOURCE_PATH + "RequestDetails_CreateVnf.json"),
1184 RequestDetails.class);
1186 Service service = mapper.readValue(
1187 new File(RESOURCE_PATH + "CatalogDBService_getServiceInstanceNOAAIInput.json"), Service.class);
1188 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
1189 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "genericVnfId");
1190 String bbName = AssignFlows.VNF.toString();
1192 Platform expectedPlatform = new Platform();
1193 LineOfBusiness expectedLineOfBusiness = new LineOfBusiness();
1194 String resourceId = "123";
1195 doReturn(expectedPlatform).when(bbInputSetupMapperLayer).mapRequestPlatform(platform);
1196 doReturn(expectedLineOfBusiness).when(bbInputSetupMapperLayer).mapRequestLineOfBusiness(lineOfBusiness);
1197 org.onap.aai.domain.yang.GenericVnf vnfAAI = new org.onap.aai.domain.yang.GenericVnf();
1198 vnfAAI.setModelCustomizationId("modelCustId");
1199 doReturn(vnfAAI).when(SPY_bbInputSetupUtils).getAAIGenericVnf(vnf.getVnfId());
1200 doNothing().when(SPY_bbInputSetup).mapCatalogVnf(vnf, modelInfo, service);
1201 org.onap.aai.domain.yang.InstanceGroup instanceGroupAAI = new org.onap.aai.domain.yang.InstanceGroup();
1202 doReturn(instanceGroupAAI).when(SPY_bbInputSetupUtils).getAAIInstanceGroup(any());
1203 org.onap.so.db.catalog.beans.InstanceGroup catalogInstanceGroup = new org.onap.so.db.catalog.beans.InstanceGroup();
1204 doReturn(catalogInstanceGroup).when(SPY_bbInputSetupUtils).getCatalogInstanceGroup(any());
1206 SPY_bbInputSetup.populateGenericVnf(modelInfo, instanceName, platform, lineOfBusiness, service, bbName,
1207 serviceInstance, lookupKeyMap, requestDetails.getRelatedInstanceList(), resourceId, vnfType, null);
1209 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, null);
1211 SPY_bbInputSetup.populateGenericVnf(modelInfo, instanceName, platform, lineOfBusiness, service, bbName,
1212 serviceInstance, lookupKeyMap, requestDetails.getRelatedInstanceList(), resourceId, vnfType, null);
1213 verify(SPY_bbInputSetup, times(1)).mapCatalogVnf(vnf, modelInfo, service);
1215 instanceName = "vnfName2";
1216 GenericVnf vnf2 = SPY_bbInputSetup.createGenericVnf(lookupKeyMap, instanceName, platform, lineOfBusiness,
1217 resourceId, vnfType, null);
1218 doReturn(vnf2).when(SPY_bbInputSetup).createGenericVnf(lookupKeyMap, instanceName, platform, lineOfBusiness,
1219 resourceId, vnfType, null);
1220 doNothing().when(SPY_bbInputSetup).mapNetworkCollectionInstanceGroup(vnf2, "{instanceGroupId}");
1221 doNothing().when(SPY_bbInputSetup).mapVnfcCollectionInstanceGroup(vnf2, modelInfo, service);
1223 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "genericVnfId2");
1225 SPY_bbInputSetup.populateGenericVnf(modelInfo, instanceName, platform, lineOfBusiness, service, bbName,
1226 serviceInstance, lookupKeyMap, requestDetails.getRelatedInstanceList(), resourceId, vnfType, null);
1227 verify(SPY_bbInputSetup, times(2)).mapCatalogVnf(vnf2, modelInfo, service);
1228 verify(SPY_bbInputSetup, times(2)).mapNetworkCollectionInstanceGroup(vnf2, "{instanceGroupId}");
1229 verify(SPY_bbInputSetup, times(2)).mapVnfcCollectionInstanceGroup(vnf2, modelInfo, service);
1233 public void testMapVnfcCollectionInstanceGroup() {
1234 VnfResourceCustomization vnfResourceCust = Mockito.mock(VnfResourceCustomization.class);
1235 GenericVnf genericVnf = new GenericVnf();
1236 ModelInfo modelInfo = Mockito.mock(ModelInfo.class);
1237 Service service = Mockito.mock(Service.class);
1238 List<VnfcInstanceGroupCustomization> vnfcInstanceGroups = new ArrayList<>();
1239 VnfcInstanceGroupCustomization vnfcInstanceGroupCust = new VnfcInstanceGroupCustomization();
1240 vnfcInstanceGroupCust.setModelUUID("modelUUID");
1241 vnfcInstanceGroupCust.setFunction("function");
1242 vnfcInstanceGroupCust.setDescription("description");
1243 vnfcInstanceGroups.add(vnfcInstanceGroupCust);
1244 org.onap.so.db.catalog.beans.InstanceGroup instanceGroup = new org.onap.so.db.catalog.beans.InstanceGroup();
1245 instanceGroup.setModelUUID("modelUUID");
1246 ModelInfoInstanceGroup modelInfoInstanceGroup = new ModelInfoInstanceGroup();
1247 modelInfoInstanceGroup.setModelUUID("modelUUID");
1248 doReturn(vnfResourceCust).when(SPY_bbInputSetup).getVnfResourceCustomizationFromService(modelInfo, service);
1249 doReturn(vnfcInstanceGroups).when(vnfResourceCust).getVnfcInstanceGroupCustomizations();
1250 doReturn(instanceGroup).when(SPY_bbInputSetupUtils).getCatalogInstanceGroup("modelUUID");
1251 doReturn(modelInfoInstanceGroup).when(bbInputSetupMapperLayer).mapCatalogInstanceGroupToInstanceGroup(null, instanceGroup);
1253 SPY_bbInputSetup.mapVnfcCollectionInstanceGroup(genericVnf, modelInfo, service);
1255 assertEquals("Instance Group was created", true, genericVnf.getInstanceGroups().size() == 1);
1258 public void testPopulateGenericVnfWhereVnfTypeIsNull()
1259 throws JsonParseException, JsonMappingException, IOException {
1260 org.onap.so.serviceinstancebeans.Platform platform = new org.onap.so.serviceinstancebeans.Platform();
1261 org.onap.so.serviceinstancebeans.LineOfBusiness lineOfBusiness = new org.onap.so.serviceinstancebeans.LineOfBusiness();
1262 String instanceName = "vnfName";
1263 ModelInfo modelInfo = new ModelInfo();
1264 modelInfo.setModelType(ModelType.vnf);
1266 ServiceInstance serviceInstance = new ServiceInstance();
1267 GenericVnf vnf = new GenericVnf();
1268 vnf.setVnfId("genericVnfId");
1269 vnf.setVnfName("vnfName");
1270 serviceInstance.getVnfs().add(vnf);
1271 String vnfType = null;
1272 RequestDetails requestDetails = mapper.readValue(new File(RESOURCE_PATH + "RequestDetails_CreateVnf.json"),
1273 RequestDetails.class);
1275 Service service = mapper.readValue(
1276 new File(RESOURCE_PATH + "CatalogDBService_getServiceInstanceNOAAIInput.json"), Service.class);
1277 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
1278 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "genericVnfId");
1279 String bbName = AssignFlows.VNF.toString();
1281 Platform expectedPlatform = new Platform();
1282 LineOfBusiness expectedLineOfBusiness = new LineOfBusiness();
1283 String resourceId = "123";
1284 doReturn(expectedPlatform).when(bbInputSetupMapperLayer).mapRequestPlatform(platform);
1285 doReturn(expectedLineOfBusiness).when(bbInputSetupMapperLayer).mapRequestLineOfBusiness(lineOfBusiness);
1286 org.onap.aai.domain.yang.GenericVnf vnfAAI = new org.onap.aai.domain.yang.GenericVnf();
1287 vnfAAI.setModelCustomizationId("modelCustId");
1288 doReturn(vnfAAI).when(SPY_bbInputSetupUtils).getAAIGenericVnf(vnf.getVnfId());
1289 doNothing().when(SPY_bbInputSetup).mapCatalogVnf(vnf, modelInfo, service);
1290 org.onap.aai.domain.yang.InstanceGroup instanceGroupAAI = new org.onap.aai.domain.yang.InstanceGroup();
1291 doReturn(instanceGroupAAI).when(SPY_bbInputSetupUtils).getAAIInstanceGroup(any());
1292 org.onap.so.db.catalog.beans.InstanceGroup catalogInstanceGroup = new org.onap.so.db.catalog.beans.InstanceGroup();
1293 doReturn(catalogInstanceGroup).when(SPY_bbInputSetupUtils).getCatalogInstanceGroup(any());
1295 SPY_bbInputSetup.populateGenericVnf(modelInfo, instanceName, platform, lineOfBusiness, service, bbName,
1296 serviceInstance, lookupKeyMap, requestDetails.getRelatedInstanceList(), resourceId, vnfType, null);
1298 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, null);
1300 SPY_bbInputSetup.populateGenericVnf(modelInfo, instanceName, platform, lineOfBusiness, service, bbName,
1301 serviceInstance, lookupKeyMap, requestDetails.getRelatedInstanceList(), resourceId, vnfType, null);
1302 verify(SPY_bbInputSetup, times(1)).mapCatalogVnf(vnf, modelInfo, service);
1304 instanceName = "vnfName2";
1305 GenericVnf vnf2 = SPY_bbInputSetup.createGenericVnf(lookupKeyMap, instanceName, platform, lineOfBusiness,
1306 resourceId, vnfType, null);
1308 org.onap.aai.domain.yang.GenericVnf vnf2AAI = new org.onap.aai.domain.yang.GenericVnf();
1309 vnfAAI.setModelCustomizationId("modelCustId2");
1310 doReturn(vnf2AAI).when(SPY_bbInputSetupUtils).getAAIGenericVnf(vnf2.getVnfId());
1311 doNothing().when(SPY_bbInputSetup).mapCatalogVnf(vnf2, modelInfo, service);
1312 doNothing().when(SPY_bbInputSetup).mapNetworkCollectionInstanceGroup(vnf2, "{instanceGroupId}");
1313 doNothing().when(SPY_bbInputSetup).mapVnfcCollectionInstanceGroup(vnf2, modelInfo, service);
1314 SPY_bbInputSetup.populateGenericVnf(modelInfo, instanceName, platform, lineOfBusiness, service, bbName,
1315 serviceInstance, lookupKeyMap, requestDetails.getRelatedInstanceList(), resourceId, vnfType, null);
1316 verify(SPY_bbInputSetup, times(2)).mapCatalogVnf(vnf2, modelInfo, service);
1317 verify(SPY_bbInputSetup, times(2)).mapNetworkCollectionInstanceGroup(vnf2, "{instanceGroupId}");
1318 verify(SPY_bbInputSetup, times(2)).mapVnfcCollectionInstanceGroup(vnf2, modelInfo, service);
1322 public void testMapCatalogVnf() {
1323 ModelInfoGenericVnf modelInfoGenericVnf = new ModelInfoGenericVnf();
1324 GenericVnf genericVnf = new GenericVnf();
1325 RequestDetails requestDetails = new RequestDetails();
1326 ModelInfo modelInfo = new ModelInfo();
1327 modelInfo.setModelCustomizationUuid("modelCustomizationUUID");
1328 requestDetails.setModelInfo(modelInfo);
1329 Service service = new Service();
1330 VnfResourceCustomization resourceCust = new VnfResourceCustomization();
1331 resourceCust.setModelCustomizationUUID("vnfModelCustomizationUUID");
1332 service.getVnfCustomizations().add(resourceCust);
1333 resourceCust.setModelCustomizationUUID("modelCustomizationUUID");
1335 doReturn(modelInfoGenericVnf).when(bbInputSetupMapperLayer).mapCatalogVnfToVnf(resourceCust);
1337 SPY_bbInputSetup.mapCatalogVnf(genericVnf, modelInfo, service);
1339 assertEquals(modelInfoGenericVnf, genericVnf.getModelInfoGenericVnf());
1343 public void testMapCatalogCollectionAndInstanceGroup() {
1344 ModelInfoCollection modelInfoCollection = new ModelInfoCollection();
1345 modelInfoCollection.setCollectionFunction("collectionFunction");
1346 modelInfoCollection.setCollectionRole("collectionRole");
1347 modelInfoCollection.setCollectionType("collectionType");
1348 modelInfoCollection.setDescription("description");
1349 modelInfoCollection.setModelInvariantUUID("modelInvariantUUID");
1350 modelInfoCollection.setQuantity(0);
1352 ModelInfoInstanceGroup modelInfoInstanceGroup = new ModelInfoInstanceGroup();
1353 modelInfoInstanceGroup.setFunction("function");
1354 modelInfoInstanceGroup.setInstanceGroupRole("instanceGroupRole");
1355 modelInfoInstanceGroup.setModelInvariantUUID("modelInvariantUUID");
1356 modelInfoInstanceGroup.setModelUUID("modelUUID");
1357 modelInfoInstanceGroup.setType("VNFC");
1358 modelInfoInstanceGroup.setDescription("description");
1360 InstanceGroup instanceGroup = new InstanceGroup();
1361 Collection collection = new Collection();
1362 collection.setInstanceGroup(instanceGroup);
1364 CollectionResource collectionResource = new CollectionResource();
1365 org.onap.so.db.catalog.beans.InstanceGroup catalogInstanceGroup = new org.onap.so.db.catalog.beans.InstanceGroup();
1366 collectionResource.setToscaNodeType("NetworkCollection");
1367 collectionResource.setInstanceGroup(catalogInstanceGroup);
1369 CollectionResourceCustomization collectionCust = new NetworkCollectionResourceCustomization();
1370 collectionCust.setModelCustomizationUUID("modelCustomizationUUID");
1371 collectionCust.setCollectionResource(collectionResource);
1373 Service service = new Service();
1374 service.getCollectionResourceCustomizations().add(collectionCust);
1375 ServiceInstance serviceInstance = new ServiceInstance();
1376 serviceInstance.setCollection(collection);
1378 List<CollectionResourceInstanceGroupCustomization> instanceGroupCustList = new ArrayList<>();
1379 CollectionResourceInstanceGroupCustomization instanceGroupCust = new CollectionResourceInstanceGroupCustomization();
1380 instanceGroupCust.setFunction("function");
1381 instanceGroupCust.setDescription("description");
1383 doReturn(modelInfoCollection).when(bbInputSetupMapperLayer).mapCatalogCollectionToCollection(collectionCust,
1384 collectionResource);
1386 doReturn(modelInfoInstanceGroup).when(bbInputSetupMapperLayer).mapCatalogInstanceGroupToInstanceGroup(collectionCust,
1387 catalogInstanceGroup);
1389 SPY_bbInputSetup.mapCatalogCollection(service, serviceInstance.getCollection(), "modelCustomizationUUID");
1390 SPY_bbInputSetup.mapCatalogNetworkCollectionInstanceGroup(service,
1391 serviceInstance.getCollection().getInstanceGroup(), collectionCust.getModelCustomizationUUID());
1393 assertThat(collection.getModelInfoCollection(), sameBeanAs(modelInfoCollection));
1394 assertThat(instanceGroup.getModelInfoInstanceGroup(), sameBeanAs(modelInfoInstanceGroup));
1398 public void testAddRelationshipsToSI() throws Exception {
1399 ServiceInstance serviceInstance = new ServiceInstance();
1400 org.onap.aai.domain.yang.ServiceInstance serviceInstanceAAI = new org.onap.aai.domain.yang.ServiceInstance();
1401 serviceInstanceAAI.setServiceInstanceId("serviceInstanceId");
1403 org.onap.aai.domain.yang.RelationshipList relationshipList = new org.onap.aai.domain.yang.RelationshipList();
1404 org.onap.aai.domain.yang.Relationship relationship = new org.onap.aai.domain.yang.Relationship();
1405 relationshipList.getRelationship().add(relationship);
1406 serviceInstanceAAI.setRelationshipList(relationshipList);
1408 Map<String, String> uriKeys = new HashMap<>();
1409 uriKeys.put("global-customer-id", "globalCustomerId");
1410 uriKeys.put("service-type", "serviceType");
1413 doNothing().when(SPY_bbInputSetup).mapProject(any(), eq(serviceInstance));
1414 doNothing().when(SPY_bbInputSetup).mapOwningEntity(any(), eq(serviceInstance));
1415 doNothing().when(SPY_bbInputSetup).mapL3Networks(any(), eq(serviceInstance.getNetworks()));
1416 doNothing().when(SPY_bbInputSetup).mapGenericVnfs(any(), eq(serviceInstance.getVnfs()));
1417 doNothing().when(SPY_bbInputSetup).mapCollection(any(), eq(serviceInstance));
1419 SPY_bbInputSetup.addRelationshipsToSI(serviceInstanceAAI, serviceInstance);
1421 verify(SPY_bbInputSetup, times(1)).mapProject(any(), eq(serviceInstance));
1422 verify(SPY_bbInputSetup, times(1)).mapOwningEntity(any(), eq(serviceInstance));
1423 verify(SPY_bbInputSetup, times(1)).mapL3Networks(any(), eq(serviceInstance.getNetworks()));
1424 verify(SPY_bbInputSetup, times(1)).mapGenericVnfs(any(), eq(serviceInstance.getVnfs()));
1425 verify(SPY_bbInputSetup, times(1)).mapCollection(any(), eq(serviceInstance));
1426 verify(SPY_bbInputSetup, times(1)).mapConfigurations(any(), eq(serviceInstance.getConfigurations()));
1430 public void testMapConfigurations() throws JsonProcessingException {
1431 org.onap.aai.domain.yang.Configuration expectedAAI = new org.onap.aai.domain.yang.Configuration();
1432 org.onap.aai.domain.yang.RelationshipList relationshipList = new org.onap.aai.domain.yang.RelationshipList();
1433 org.onap.aai.domain.yang.Relationship relationship = new org.onap.aai.domain.yang.Relationship();
1434 relationshipList.getRelationship().add(relationship);
1435 expectedAAI.setRelationshipList(relationshipList);
1437 Configuration expected = new Configuration();
1438 AAIResourceUri aaiResourceUri = AAIUriFactory.createResourceUri(AAIObjectType.CONFIGURATION, "configurationId");
1439 AAIResultWrapper configurationWrapper = new AAIResultWrapper(
1440 new AAICommonObjectMapperProvider().getMapper().writeValueAsString(expectedAAI));
1442 doReturn(configurationWrapper).when(SPY_bbInputSetupUtils).getAAIResourceDepthOne(aaiResourceUri);
1443 doReturn(expected).when(bbInputSetupMapperLayer)
1444 .mapAAIConfiguration(isA(org.onap.aai.domain.yang.Configuration.class));
1446 List<Configuration> configurations = new ArrayList<>();
1448 SPY_bbInputSetup.mapConfigurations(Arrays.asList(new AAIResourceUri[] { aaiResourceUri }), configurations);
1450 assertEquals(expected, configurations.get(0));
1454 public void testMapGenericVnfs() throws JsonProcessingException {
1455 org.onap.aai.domain.yang.GenericVnf expectedAAI = new org.onap.aai.domain.yang.GenericVnf();
1456 org.onap.aai.domain.yang.RelationshipList relationshipList = new org.onap.aai.domain.yang.RelationshipList();
1457 org.onap.aai.domain.yang.Relationship relationship = new org.onap.aai.domain.yang.Relationship();
1458 relationshipList.getRelationship().add(relationship);
1459 expectedAAI.setRelationshipList(relationshipList);
1461 GenericVnf expected = new GenericVnf();
1462 AAIResourceUri aaiResourceUri = AAIUriFactory.createResourceUri(AAIObjectType.GENERIC_VNF, "vnfId");
1463 AAIResultWrapper vnfWrapper = new AAIResultWrapper(
1464 new AAICommonObjectMapperProvider().getMapper().writeValueAsString(expectedAAI));
1466 doReturn(vnfWrapper).when(SPY_bbInputSetupUtils).getAAIResourceDepthOne(aaiResourceUri);
1467 doReturn(expected).when(bbInputSetupMapperLayer)
1468 .mapAAIGenericVnfIntoGenericVnf(isA(org.onap.aai.domain.yang.GenericVnf.class));
1469 doNothing().when(SPY_bbInputSetup).mapPlatform(any(), eq(expected));
1470 doNothing().when(SPY_bbInputSetup).mapLineOfBusiness(any(), eq(expected));
1471 doReturn(new ArrayList<>()).when(SPY_bbInputSetup).mapVolumeGroups(any());
1473 List<GenericVnf> genericVnfs = new ArrayList<>();
1475 SPY_bbInputSetup.mapGenericVnfs(Arrays.asList(new AAIResourceUri[] { aaiResourceUri }), genericVnfs);
1477 assertEquals(expected, genericVnfs.get(0));
1478 verify(SPY_bbInputSetup, times(1)).mapPlatform(any(), eq(expected));
1479 verify(SPY_bbInputSetup, times(1)).mapLineOfBusiness(any(), eq(expected));
1480 verify(SPY_bbInputSetup, times(1)).mapVolumeGroups(any());
1484 public void testMapVolumeGroups() throws JsonProcessingException {
1485 org.onap.aai.domain.yang.VolumeGroup expectedAAI = new org.onap.aai.domain.yang.VolumeGroup();
1487 VolumeGroup expected = new VolumeGroup();
1488 AAIResultWrapper vnfWrapper = new AAIResultWrapper(
1489 new AAICommonObjectMapperProvider().getMapper().writeValueAsString(expectedAAI));
1491 doReturn(expected).when(bbInputSetupMapperLayer)
1492 .mapAAIVolumeGroup(isA(org.onap.aai.domain.yang.VolumeGroup.class));
1494 List<VolumeGroup> volumeGroupsList =
1495 SPY_bbInputSetup.mapVolumeGroups(Arrays.asList(new AAIResultWrapper[] { vnfWrapper }));
1497 assertEquals(expected, volumeGroupsList.get(0));
1501 public void testMapLineOfBusiness() throws JsonProcessingException {
1502 org.onap.aai.domain.yang.LineOfBusiness expectedAAI = new org.onap.aai.domain.yang.LineOfBusiness();
1504 LineOfBusiness expected = new LineOfBusiness();
1505 AAIResultWrapper vnfWrapper = new AAIResultWrapper(
1506 new AAICommonObjectMapperProvider().getMapper().writeValueAsString(expectedAAI));
1508 doReturn(expected).when(bbInputSetupMapperLayer)
1509 .mapAAILineOfBusiness(isA(org.onap.aai.domain.yang.LineOfBusiness.class));
1511 GenericVnf vnf = new GenericVnf();
1513 SPY_bbInputSetup.mapLineOfBusiness(Arrays.asList(new AAIResultWrapper[] { vnfWrapper }), vnf);
1515 assertEquals(expected, vnf.getLineOfBusiness());
1519 public void testMapPlatform() throws JsonProcessingException {
1520 org.onap.aai.domain.yang.Platform expectedAAI = new org.onap.aai.domain.yang.Platform();
1522 Platform expected = new Platform();
1523 AAIResultWrapper vnfWrapper = new AAIResultWrapper(
1524 new AAICommonObjectMapperProvider().getMapper().writeValueAsString(expectedAAI));
1526 doReturn(expected).when(bbInputSetupMapperLayer)
1527 .mapAAIPlatform(isA(org.onap.aai.domain.yang.Platform.class));
1529 GenericVnf vnf = new GenericVnf();
1531 SPY_bbInputSetup.mapPlatform(Arrays.asList(new AAIResultWrapper[] { vnfWrapper }), vnf);
1533 assertEquals(expected, vnf.getPlatform());
1537 public void testMapCollection() throws JsonProcessingException {
1538 List<AAIResultWrapper> collections = new ArrayList<>();
1539 ServiceInstance serviceInstance = new ServiceInstance();
1541 org.onap.aai.domain.yang.Collection aaiCollection = new org.onap.aai.domain.yang.Collection();
1542 org.onap.aai.domain.yang.RelationshipList collectionRelationshipList = new org.onap.aai.domain.yang.RelationshipList();
1543 org.onap.aai.domain.yang.Relationship collectionInstanceGroupRelationship = new org.onap.aai.domain.yang.Relationship();
1544 collectionRelationshipList.getRelationship().add(collectionInstanceGroupRelationship);
1545 aaiCollection.setRelationshipList(collectionRelationshipList);
1547 collections.add(new AAIResultWrapper(
1548 new AAICommonObjectMapperProvider().getMapper().writeValueAsString(aaiCollection)));
1550 Collection collection = new Collection();
1551 ModelInfoCollection modelInfoCollection = new ModelInfoCollection();
1552 List<InstanceGroup> instanceGroupsList = new ArrayList<>();
1553 InstanceGroup instanceGroup = new InstanceGroup();
1554 instanceGroupsList.add(instanceGroup);
1555 NetworkCollectionResourceCustomization networkCollectionCust = Mockito.mock(NetworkCollectionResourceCustomization.class);
1556 CollectionResource collectionResource = new CollectionResource();
1557 doReturn(collection).when(bbInputSetupMapperLayer)
1558 .mapAAICollectionIntoCollection(isA(org.onap.aai.domain.yang.Collection.class));
1559 doReturn(instanceGroupsList).when(SPY_bbInputSetup).mapInstanceGroups(any());
1560 doReturn(networkCollectionCust).when(SPY_bbInputSetupUtils).getCatalogNetworkCollectionResourceCustByID(aaiCollection.getCollectionCustomizationId());
1561 doReturn(collectionResource).when(networkCollectionCust).getCollectionResource();
1562 doReturn(modelInfoCollection).when(bbInputSetupMapperLayer).mapCatalogCollectionToCollection(networkCollectionCust, collectionResource);
1564 SPY_bbInputSetup.mapCollection(collections, serviceInstance);
1566 assertEquals(collection, serviceInstance.getCollection());
1567 assertEquals(instanceGroup, collection.getInstanceGroup());
1569 instanceGroupsList.clear();
1570 collection = new Collection();
1572 SPY_bbInputSetup.mapCollection(collections, serviceInstance);
1573 assertEquals(collection, serviceInstance.getCollection());
1574 assertNull(collection.getInstanceGroup());
1578 public void testMapL3Networks() throws JsonProcessingException {
1579 org.onap.aai.domain.yang.L3Network expectedAAI = new org.onap.aai.domain.yang.L3Network();
1580 org.onap.aai.domain.yang.RelationshipList relationshipList = new org.onap.aai.domain.yang.RelationshipList();
1581 org.onap.aai.domain.yang.Relationship relationship = new org.onap.aai.domain.yang.Relationship();
1582 relationshipList.getRelationship().add(relationship);
1583 expectedAAI.setRelationshipList(relationshipList);
1585 L3Network expected = new L3Network();
1586 List<L3Network> l3Networks = new ArrayList<>();
1587 AAIResultWrapper l3NetworksWrapper = new AAIResultWrapper(
1588 new AAICommonObjectMapperProvider().getMapper().writeValueAsString(expectedAAI));
1589 AAIResourceUri aaiResourceUri = AAIUriFactory.createResourceUri(AAIObjectType.L3_NETWORK, "networkId");
1591 doReturn(l3NetworksWrapper).when(SPY_bbInputSetupUtils).getAAIResourceDepthTwo(aaiResourceUri);
1592 doReturn(expected).when(bbInputSetupMapperLayer)
1593 .mapAAIL3Network(isA(org.onap.aai.domain.yang.L3Network.class));
1594 doNothing().when(SPY_bbInputSetup).mapNetworkPolicies(any(), eq(expected.getNetworkPolicies()));
1595 doNothing().when(SPY_bbInputSetup).mapRouteTableReferences(any(),
1596 eq(expected.getContrailNetworkRouteTableReferences()));
1598 SPY_bbInputSetup.mapL3Networks(Arrays.asList(new AAIResourceUri[] { aaiResourceUri }), l3Networks);
1600 assertEquals(expected, l3Networks.get(0));
1601 verify(SPY_bbInputSetup, times(1)).mapNetworkPolicies(any(), eq(expected.getNetworkPolicies()));
1602 verify(SPY_bbInputSetup, times(1)).mapRouteTableReferences(any(),
1603 eq(expected.getContrailNetworkRouteTableReferences()));
1607 public void testMapRouteTableReferences() throws JsonProcessingException {
1608 org.onap.aai.domain.yang.RouteTableReference expectedAAI = new org.onap.aai.domain.yang.RouteTableReference();
1610 RouteTableReference expected = new RouteTableReference();
1611 List<RouteTableReference> contrailNetworkRouteTableReferences = new ArrayList<>();
1612 AAIResultWrapper vnfWrapper = new AAIResultWrapper(
1613 new AAICommonObjectMapperProvider().getMapper().writeValueAsString(expectedAAI));
1615 doReturn(expected).when(bbInputSetupMapperLayer).mapAAIRouteTableReferenceIntoRouteTableReference(
1616 isA(org.onap.aai.domain.yang.RouteTableReference.class));
1618 SPY_bbInputSetup.mapRouteTableReferences(Arrays.asList(new AAIResultWrapper[] { vnfWrapper }),
1619 contrailNetworkRouteTableReferences);
1621 assertEquals(expected, contrailNetworkRouteTableReferences.get(0));
1625 public void testMapOwningEntity() throws JsonProcessingException {
1626 org.onap.aai.domain.yang.OwningEntity expectedAAI = new org.onap.aai.domain.yang.OwningEntity();
1628 OwningEntity expected = new OwningEntity();
1629 AAIResultWrapper vnfWrapper = new AAIResultWrapper(
1630 new AAICommonObjectMapperProvider().getMapper().writeValueAsString(expectedAAI));
1632 doReturn(expected).when(bbInputSetupMapperLayer)
1633 .mapAAIOwningEntity(isA(org.onap.aai.domain.yang.OwningEntity.class));
1635 ServiceInstance serviceInstance = new ServiceInstance();
1637 SPY_bbInputSetup.mapOwningEntity(Arrays.asList(new AAIResultWrapper[] { vnfWrapper }), serviceInstance);
1639 assertEquals(expected, serviceInstance.getOwningEntity());
1643 public void testMapProject() throws JsonProcessingException {
1644 org.onap.aai.domain.yang.Project expectedAAI = new org.onap.aai.domain.yang.Project();
1646 Project expected = new Project();
1647 AAIResultWrapper vnfWrapper = new AAIResultWrapper(
1648 new AAICommonObjectMapperProvider().getMapper().writeValueAsString(expectedAAI));
1650 doReturn(expected).when(bbInputSetupMapperLayer).mapAAIProject(isA(org.onap.aai.domain.yang.Project.class));
1652 ServiceInstance serviceInstance = new ServiceInstance();
1654 SPY_bbInputSetup.mapProject(Arrays.asList(new AAIResultWrapper[] { vnfWrapper }), serviceInstance);
1656 assertEquals(expected, serviceInstance.getProject());
1660 public void testMapCustomer() throws Exception {
1661 org.onap.aai.domain.yang.Customer customerAAI = new org.onap.aai.domain.yang.Customer();
1662 org.onap.aai.domain.yang.ServiceSubscription serviceSubscriptionAAI = new org.onap.aai.domain.yang.ServiceSubscription();
1664 Customer expected = new Customer();
1665 ServiceSubscription serviceSubscription = new ServiceSubscription();
1667 String globalCustomerId = "globalCustomerId";
1668 String subscriptionServiceType = "subscriptionServiceType";
1670 doReturn(customerAAI).when(SPY_bbInputSetupUtils).getAAICustomer(globalCustomerId);
1671 doReturn(serviceSubscriptionAAI).when(SPY_bbInputSetupUtils).getAAIServiceSubscription(globalCustomerId,
1672 subscriptionServiceType);
1673 doReturn(expected).when(bbInputSetupMapperLayer)
1674 .mapAAICustomer(isA(org.onap.aai.domain.yang.Customer.class));
1675 doReturn(serviceSubscription).when(bbInputSetupMapperLayer)
1676 .mapAAIServiceSubscription(isA(org.onap.aai.domain.yang.ServiceSubscription.class));
1678 Customer actual = SPY_bbInputSetup.mapCustomer(globalCustomerId, subscriptionServiceType);
1680 assertEquals(expected, actual);
1681 assertEquals(serviceSubscription, expected.getServiceSubscription());
1685 public void testPopulateLookupKeyMapWithIds() {
1686 Map<ResourceKey, String> expected = new HashMap<>();
1687 Map<ResourceKey, String> actual = new HashMap<>();
1688 String serviceInstanceId = "serviceInstanceId";
1689 String networkId = "networkId";
1690 String vnfId = "vnfId";
1691 String vfModuleId = "vfModuleId";
1692 String volumeGroupId = "volumeGroupId";
1693 String configurationId = "configurationId";
1695 expected.put(ResourceKey.SERVICE_INSTANCE_ID, serviceInstanceId);
1696 expected.put(ResourceKey.NETWORK_ID, networkId);
1697 expected.put(ResourceKey.GENERIC_VNF_ID, vnfId);
1698 expected.put(ResourceKey.VF_MODULE_ID, vfModuleId);
1699 expected.put(ResourceKey.VOLUME_GROUP_ID, volumeGroupId);
1700 expected.put(ResourceKey.CONFIGURATION_ID, configurationId);
1702 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
1703 workflowResourceIds.setServiceInstanceId(serviceInstanceId);
1704 workflowResourceIds.setNetworkId(networkId);
1705 workflowResourceIds.setVnfId(vnfId);
1706 workflowResourceIds.setVfModuleId(vfModuleId);
1707 workflowResourceIds.setVolumeGroupId(volumeGroupId);
1708 workflowResourceIds.setConfigurationId(configurationId);
1710 SPY_bbInputSetup.populateLookupKeyMapWithIds(workflowResourceIds, actual);
1712 assertThat(actual, sameBeanAs(expected));
1716 public void testgetGBBMacro() throws Exception {
1717 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
1718 GeneralBuildingBlock.class);
1719 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
1720 ExecuteBuildingBlock.class);
1721 RequestDetails requestDetails = mapper
1722 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
1723 InfraActiveRequests request = Mockito.mock(InfraActiveRequests.class);
1724 org.onap.aai.domain.yang.GenericVnf aaiVnf = new org.onap.aai.domain.yang.GenericVnf();
1725 aaiVnf.setModelCustomizationId("modelCustId");
1726 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
1727 lookupKeyMap.put(ResourceKey.NETWORK_ID, "networkId");
1728 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "vnfId");
1729 lookupKeyMap.put(ResourceKey.VF_MODULE_ID, "vfModuleId");
1730 lookupKeyMap.put(ResourceKey.VOLUME_GROUP_ID, "volumeGroupId");
1731 lookupKeyMap.put(ResourceKey.SERVICE_INSTANCE_ID, "serviceInstanceId");
1732 lookupKeyMap.put(ResourceKey.CONFIGURATION_ID, "configurationId");
1733 String resourceId = "123";
1734 String vnfType = "vnfType";
1735 Service service = Mockito.mock(Service.class);
1736 String requestAction = "createInstance";
1738 ConfigurationResourceKeys configResourceKeys = new ConfigurationResourceKeys();
1739 configResourceKeys.setCvnfcCustomizationUUID("cvnfcCustomizationUUID");
1740 configResourceKeys.setVfModuleCustomizationUUID("vfModuleCustomizationUUID");
1741 configResourceKeys.setVnfResourceCustomizationUUID("vnfResourceCustomizationUUID");
1742 executeBB.setConfigurationResourceKeys(configResourceKeys);
1743 doReturn(gBB).when(SPY_bbInputSetup).getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
1744 requestAction, resourceId);
1745 doReturn(request).when(SPY_bbInputSetupUtils).getInfraActiveRequest(executeBB.getRequestId());
1746 doReturn(service).when(SPY_bbInputSetupUtils)
1747 .getCatalogServiceByModelUUID(gBB.getServiceInstance().getModelInfoServiceInstance().getModelUuid());
1748 doNothing().when(SPY_bbInputSetupUtils).updateInfraActiveRequestVnfId(request,
1749 lookupKeyMap.get(ResourceKey.GENERIC_VNF_ID));
1750 doReturn("vnfId").when(SPY_bbInputSetup).getVnfId(executeBB, lookupKeyMap);
1751 doReturn(aaiVnf).when(SPY_bbInputSetupUtils).getAAIGenericVnf(any(String.class));
1753 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.NETWORK_MACRO.toString());
1754 executeBB.getBuildingBlock().setKey("ab153b6e-c364-44c0-bef6-1f2982117f04");
1755 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
1756 verify(SPY_bbInputSetup, times(1)).populateL3Network(any(String.class), isA(ModelInfo.class),
1757 isA(Service.class), any(String.class), isA(ServiceInstance.class), any(), any(String.class), any());
1759 executeBB.getBuildingBlock().setKey("ab153b6e-c364-44c0-bef6-1f2982117f04");
1760 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.VNF.toString());
1761 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
1762 verify(SPY_bbInputSetup, times(1)).populateGenericVnf(isA(ModelInfo.class), any(String.class),
1763 isA(org.onap.so.serviceinstancebeans.Platform.class),
1764 isA(org.onap.so.serviceinstancebeans.LineOfBusiness.class), isA(Service.class), any(String.class),
1765 isA(ServiceInstance.class), any(), any(), any(String.class), any(String.class), any());
1767 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, null);
1768 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.VF_MODULE.toString());
1769 executeBB.getBuildingBlock().setKey("a25e8e8c-58b8-4eec-810c-97dcc1f5cb7f");
1770 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
1771 verify(SPY_bbInputSetup, times(1)).populateVfModule(isA(ModelInfo.class), isA(Service.class), any(String.class),
1772 isA(ServiceInstance.class), any(), any(String.class), any(), any(String.class), any(), isA(CloudConfiguration.class));
1774 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, null);
1775 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.VOLUME_GROUP.toString());
1776 executeBB.getBuildingBlock().setKey("72d9d1cd-f46d-447a-abdb-451d6fb05fa8");
1777 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
1778 verify(SPY_bbInputSetup, times(1)).populateVolumeGroup(isA(ModelInfo.class), isA(Service.class),
1779 any(String.class), isA(ServiceInstance.class), any(), any(String.class),ArgumentMatchers.isNull(),ArgumentMatchers.isNull(),
1780 any(String.class), any());
1782 Configuration configuration = new Configuration();
1783 configuration.setConfigurationId("configurationId");
1784 gBB.getServiceInstance().getConfigurations().add(configuration);
1785 List<ConfigurationResourceCustomization> configurationCustList = new ArrayList<>();
1786 ConfigurationResourceCustomization configurationCust = new ConfigurationResourceCustomization();
1787 configurationCust.setModelCustomizationUUID("72d9d1cd-f46d-447a-abdb-451d6fb05fa9");
1788 doReturn(configurationCustList).when(service).getConfigurationCustomizations();
1789 configurationCustList.add(configurationCust);
1790 doNothing().when(SPY_bbInputSetup).populateConfiguration(isA(ModelInfo.class), isA(Service.class),
1791 any(String.class), isA(ServiceInstance.class), any(), any(String.class), ArgumentMatchers.isNull(), isA(ConfigurationResourceKeys.class));
1793 executeBB.getBuildingBlock().setBpmnFlowName("AssignFabricConfigurationBB");
1794 executeBB.getBuildingBlock().setKey("72d9d1cd-f46d-447a-abdb-451d6fb05fa9");
1795 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
1796 verify(SPY_bbInputSetup, times(1)).populateConfiguration(isA(ModelInfo.class), isA(Service.class),
1797 any(String.class), isA(ServiceInstance.class), any(), any(String.class),ArgumentMatchers.isNull(), isA(ConfigurationResourceKeys.class));
1801 public void testgetGBBMacroCloudConfiguration() throws Exception {
1802 org.onap.so.serviceinstancebeans.Service serviceMacro = mapper.readValue(
1803 new File(RESOURCE_PATH + "ServiceMacroVfModules.json"), org.onap.so.serviceinstancebeans.Service.class);
1804 CloudConfiguration cloudConfig = null;
1805 org.onap.aai.domain.yang.CloudRegion aaiCloudRegion = new org.onap.aai.domain.yang.CloudRegion();
1806 aaiCloudRegion.setCloudOwner("test-owner-name");
1807 Resources resources = serviceMacro.getResources();
1808 doReturn(aaiCloudRegion).when(SPY_bbInputSetupUtils).getCloudRegion(any(CloudConfiguration.class));
1809 CloudRegion expected = new CloudRegion();
1810 expected.setLcpCloudRegionId("mdt1");
1811 expected.setCloudOwner("test-owner-name");
1812 expected.setTenantId("88a6ca3ee0394ade9403f075db23167e");
1814 CloudRegion actual = SPY_bbInputSetup.getCloudRegionFromMacroRequest(cloudConfig, resources);
1815 assertThat(actual, sameBeanAs(expected));
1817 serviceMacro = mapper.readValue(
1818 new File(RESOURCE_PATH + "ServiceMacroVnfs.json"), org.onap.so.serviceinstancebeans.Service.class);
1819 resources = serviceMacro.getResources();
1821 actual = SPY_bbInputSetup.getCloudRegionFromMacroRequest(cloudConfig, resources);
1822 assertThat(actual, sameBeanAs(expected));
1824 serviceMacro = mapper.readValue(
1825 new File(RESOURCE_PATH + "ServiceMacroNetworks.json"), org.onap.so.serviceinstancebeans.Service.class);
1826 resources = serviceMacro.getResources();
1828 actual = SPY_bbInputSetup.getCloudRegionFromMacroRequest(cloudConfig, resources);
1829 assertThat(actual, sameBeanAs(expected));
1831 serviceMacro = mapper.readValue(
1832 new File(RESOURCE_PATH + "ServiceMacroNoCloudConfig.json"), org.onap.so.serviceinstancebeans.Service.class);
1833 resources = serviceMacro.getResources();
1835 actual = SPY_bbInputSetup.getCloudRegionFromMacroRequest(cloudConfig, resources);
1840 public void testgetGBBMacroWithEmptyUserParams() throws Exception {
1841 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
1842 GeneralBuildingBlock.class);
1843 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
1844 ExecuteBuildingBlock.class);
1845 RequestDetails requestDetails = mapper
1846 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
1847 requestDetails.getRequestParameters().getUserParams().clear();
1848 InfraActiveRequests request = Mockito.mock(InfraActiveRequests.class);
1849 org.onap.aai.domain.yang.GenericVnf aaiVnf = new org.onap.aai.domain.yang.GenericVnf();
1850 aaiVnf.setModelCustomizationId("modelCustId");
1851 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
1852 lookupKeyMap.put(ResourceKey.NETWORK_ID, "networkId");
1853 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "vnfId");
1854 lookupKeyMap.put(ResourceKey.VF_MODULE_ID, "vfModuleId");
1855 lookupKeyMap.put(ResourceKey.VOLUME_GROUP_ID, "volumeGroupId");
1856 lookupKeyMap.put(ResourceKey.SERVICE_INSTANCE_ID, "serviceInstanceId");
1857 String resourceId = "123";
1858 String vnfType = "vnfType";
1859 Service service = Mockito.mock(Service.class);
1860 String requestAction = "createInstance";
1861 doReturn(gBB).when(SPY_bbInputSetup).getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
1862 requestAction, resourceId);
1863 doReturn(service).when(SPY_bbInputSetupUtils)
1864 .getCatalogServiceByModelUUID(gBB.getServiceInstance().getModelInfoServiceInstance().getModelUuid());
1866 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.NETWORK_MACRO.toString());
1867 executeBB.getBuildingBlock().setKey("ab153b6e-c364-44c0-bef6-1f2982117f04");
1868 executeBB.getBuildingBlock().setIsVirtualLink(Boolean.FALSE);
1869 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
1870 verify(SPY_bbInputSetup, times(1)).getGBBMacroNoUserParamsCreate(any(ExecuteBuildingBlock.class), any(),
1871 any(String.class), any(String.class), any(GeneralBuildingBlock.class), any(Service.class));
1874 @Test(expected = Exception.class)
1875 public void testgetGBBMacroException() throws Exception {
1876 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
1877 GeneralBuildingBlock.class);
1878 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
1879 ExecuteBuildingBlock.class);
1880 RequestDetails requestDetails = mapper
1881 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
1882 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
1883 String resourceId = "123";
1884 String vnfType = "vnfType";
1885 Service service = Mockito.mock(Service.class);
1886 String requestAction = "createInstance";
1887 doReturn(null).when(SPY_bbInputSetup).getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
1888 requestAction, resourceId);
1890 executeBB.getBuildingBlock().setBpmnFlowName("Network");
1891 executeBB.getBuildingBlock().setKey("ab153b6e-c364-44c0-bef6-1f2982117f04");
1892 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
1896 public void testgetGBBMacroWithVnfTypeNull() throws Exception {
1897 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
1898 GeneralBuildingBlock.class);
1899 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
1900 ExecuteBuildingBlock.class);
1901 RequestDetails requestDetails = mapper
1902 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
1903 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
1904 lookupKeyMap.put(ResourceKey.NETWORK_ID, "networkId");
1905 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "vnfId");
1906 lookupKeyMap.put(ResourceKey.VF_MODULE_ID, "vfModuleId");
1907 lookupKeyMap.put(ResourceKey.VOLUME_GROUP_ID, "volumeGroupId");
1908 lookupKeyMap.put(ResourceKey.SERVICE_INSTANCE_ID, "serviceInstanceId");
1909 org.onap.aai.domain.yang.GenericVnf aaiVnf = new org.onap.aai.domain.yang.GenericVnf();
1910 aaiVnf.setModelCustomizationId("modelCustId");
1911 InfraActiveRequests request = Mockito.mock(InfraActiveRequests.class);
1912 String resourceId = "123";
1913 String vnfType = null;
1914 Service service = Mockito.mock(Service.class);
1915 String requestAction = "createInstance";
1916 doReturn(gBB).when(SPY_bbInputSetup).getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
1917 requestAction, resourceId);
1918 doReturn(request).when(SPY_bbInputSetupUtils).getInfraActiveRequest(executeBB.getRequestId());
1919 doReturn(service).when(SPY_bbInputSetupUtils)
1920 .getCatalogServiceByModelUUID(gBB.getServiceInstance().getModelInfoServiceInstance().getModelUuid());
1921 doNothing().when(SPY_bbInputSetupUtils).updateInfraActiveRequestVnfId(request,
1922 lookupKeyMap.get(ResourceKey.GENERIC_VNF_ID));
1923 doReturn("vnfId").when(SPY_bbInputSetup).getVnfId(executeBB, lookupKeyMap);
1924 doReturn(aaiVnf).when(SPY_bbInputSetupUtils).getAAIGenericVnf(any(String.class));
1926 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.NETWORK_MACRO.toString());
1927 executeBB.getBuildingBlock().setKey("ab153b6e-c364-44c0-bef6-1f2982117f04");
1928 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
1929 verify(SPY_bbInputSetup, times(1)).populateL3Network(any(String.class), isA(ModelInfo.class),
1930 isA(Service.class), any(String.class), isA(ServiceInstance.class), any(), any(String.class), any());
1932 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.VNF.toString());
1933 executeBB.getBuildingBlock().setKey("ab153b6e-c364-44c0-bef6-1f2982117f04");
1934 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
1935 verify(SPY_bbInputSetup, times(1)).populateGenericVnf(isA(ModelInfo.class), any(String.class),
1936 isA(org.onap.so.serviceinstancebeans.Platform.class),
1937 isA(org.onap.so.serviceinstancebeans.LineOfBusiness.class), isA(Service.class), any(String.class),
1938 isA(ServiceInstance.class), any(),ArgumentMatchers.isNull(), any(String.class), ArgumentMatchers.isNull(), any());
1940 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, null);
1941 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.VF_MODULE.toString());
1942 executeBB.getBuildingBlock().setKey("a25e8e8c-58b8-4eec-810c-97dcc1f5cb7f");
1943 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
1944 verify(SPY_bbInputSetup, times(1)).populateVfModule(isA(ModelInfo.class), isA(Service.class), any(String.class),
1945 isA(ServiceInstance.class), any(), any(String.class), any(), any(String.class), any(), isA(CloudConfiguration.class));
1947 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, null);
1948 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.VOLUME_GROUP.toString());
1949 executeBB.getBuildingBlock().setKey("72d9d1cd-f46d-447a-abdb-451d6fb05fa8");
1950 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
1951 verify(SPY_bbInputSetup, times(1)).populateVolumeGroup(isA(ModelInfo.class), isA(Service.class),
1952 any(String.class), isA(ServiceInstance.class), any(), any(String.class), ArgumentMatchers.isNull(), ArgumentMatchers.isNull(),
1953 ArgumentMatchers.isNull(), any());
1957 public void testgetGBBMacroGetServiceWithInvariantId() throws Exception {
1958 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
1959 GeneralBuildingBlock.class);
1960 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
1961 ExecuteBuildingBlock.class);
1962 RequestDetails requestDetails = mapper
1963 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
1964 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
1965 lookupKeyMap.put(ResourceKey.NETWORK_ID, "networkId");
1966 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "vnfId");
1967 lookupKeyMap.put(ResourceKey.VF_MODULE_ID, "vfModuleId");
1968 lookupKeyMap.put(ResourceKey.VOLUME_GROUP_ID, "volumeGroupId");
1969 lookupKeyMap.put(ResourceKey.SERVICE_INSTANCE_ID, "serviceInstanceId");
1970 org.onap.aai.domain.yang.GenericVnf aaiVnf = new org.onap.aai.domain.yang.GenericVnf();
1971 aaiVnf.setModelCustomizationId("modelCustId");
1972 InfraActiveRequests request = Mockito.mock(InfraActiveRequests.class);
1973 String resourceId = "123";
1974 String vnfType = "vnfType";
1975 Service service = Mockito.mock(Service.class);
1976 String requestAction = "createInstance";
1977 doReturn(gBB).when(SPY_bbInputSetup).getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
1978 requestAction, resourceId);
1979 doReturn(request).when(SPY_bbInputSetupUtils).getInfraActiveRequest(executeBB.getRequestId());
1980 doReturn(service).when(SPY_bbInputSetupUtils)
1981 .getCatalogServiceByModelUUID(gBB.getServiceInstance().getModelInfoServiceInstance().getModelUuid());
1982 doNothing().when(SPY_bbInputSetupUtils).updateInfraActiveRequestVnfId(request,
1983 lookupKeyMap.get(ResourceKey.GENERIC_VNF_ID));
1984 doReturn("vnfId").when(SPY_bbInputSetup).getVnfId(executeBB, lookupKeyMap);
1985 doReturn(aaiVnf).when(SPY_bbInputSetupUtils).getAAIGenericVnf(any(String.class));
1987 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.NETWORK_MACRO.toString());
1988 executeBB.getBuildingBlock().setKey("ab153b6e-c364-44c0-bef6-1f2982117f04");
1989 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
1990 verify(SPY_bbInputSetup, times(1)).populateL3Network(any(String.class), isA(ModelInfo.class),
1991 isA(Service.class), any(String.class), isA(ServiceInstance.class), any(), any(String.class), any());
1993 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.VNF.toString());
1994 executeBB.getBuildingBlock().setKey("ab153b6e-c364-44c0-bef6-1f2982117f04");
1995 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
1996 verify(SPY_bbInputSetup, times(1)).populateGenericVnf(isA(ModelInfo.class), any(String.class),
1997 isA(org.onap.so.serviceinstancebeans.Platform.class),
1998 isA(org.onap.so.serviceinstancebeans.LineOfBusiness.class), isA(Service.class), any(String.class),
1999 isA(ServiceInstance.class), any(), any(), any(String.class), any(String.class), any());
2001 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, null);
2002 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.VF_MODULE.toString());
2003 executeBB.getBuildingBlock().setKey("a25e8e8c-58b8-4eec-810c-97dcc1f5cb7f");
2004 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
2005 verify(SPY_bbInputSetup, times(1)).populateVfModule(isA(ModelInfo.class), isA(Service.class), any(String.class),
2006 isA(ServiceInstance.class), any(), any(String.class), any(), any(String.class), any(), isA(CloudConfiguration.class));
2008 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, null);
2009 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.VOLUME_GROUP.toString());
2010 executeBB.getBuildingBlock().setKey("72d9d1cd-f46d-447a-abdb-451d6fb05fa8");
2011 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
2012 verify(SPY_bbInputSetup, times(1)).populateVolumeGroup(isA(ModelInfo.class), isA(Service.class),
2013 any(String.class), isA(ServiceInstance.class), any(), any(String.class), ArgumentMatchers.isNull(), ArgumentMatchers.isNull(),
2014 any(String.class), any());
2018 public void testgetGBBMacroNoUserParamsDeactivateInstnace() throws Exception {
2019 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
2020 GeneralBuildingBlock.class);
2021 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
2022 ExecuteBuildingBlock.class);
2023 RequestDetails requestDetails = mapper
2024 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
2025 requestDetails.getRequestParameters().setUserParams(null);
2026 org.onap.aai.domain.yang.GenericVnf aaiVnf = new org.onap.aai.domain.yang.GenericVnf();
2027 aaiVnf.setModelCustomizationId("modelCustId");
2028 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
2029 lookupKeyMap.put(ResourceKey.NETWORK_ID, "networkId");
2030 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "vnfId");
2031 lookupKeyMap.put(ResourceKey.VF_MODULE_ID, "vfModuleId");
2032 lookupKeyMap.put(ResourceKey.VOLUME_GROUP_ID, "volumeGroupId");
2033 lookupKeyMap.put(ResourceKey.SERVICE_INSTANCE_ID, "serviceInstanceId");
2034 String resourceId = "123";
2035 String vnfType = "vnfType";
2036 Service service = Mockito.mock(Service.class);
2037 String requestAction = "deactivateInstance";
2038 doReturn(gBB).when(SPY_bbInputSetup).getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
2039 requestAction, resourceId);
2040 doReturn(service).when(SPY_bbInputSetupUtils)
2041 .getCatalogServiceByModelUUID(gBB.getServiceInstance().getModelInfoServiceInstance().getModelUuid());
2042 String generatedId = "12131";
2044 executeBB.getBuildingBlock().setBpmnFlowName("DeactivateServiceInstanceBB");
2045 executeBB.getBuildingBlock().setKey("3c40d244-808e-42ca-b09a-256d83d19d0a");
2046 GeneralBuildingBlock actual = SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap,
2047 requestAction, resourceId, vnfType);
2048 assertThat(actual, sameBeanAs(gBB));
2052 public void testgetGBBMacroNoUserParamsCreateInstance() throws Exception {
2053 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
2054 GeneralBuildingBlock.class);
2055 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
2056 ExecuteBuildingBlock.class);
2057 RequestDetails requestDetails = mapper
2058 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
2059 InfraActiveRequests request = Mockito.mock(InfraActiveRequests.class);
2060 requestDetails.getRequestParameters().setUserParams(null);
2061 org.onap.aai.domain.yang.GenericVnf aaiVnf = new org.onap.aai.domain.yang.GenericVnf();
2062 aaiVnf.setModelCustomizationId("modelCustId");
2063 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
2064 lookupKeyMap.put(ResourceKey.NETWORK_ID, "networkId");
2065 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "vnfId");
2066 lookupKeyMap.put(ResourceKey.VF_MODULE_ID, "vfModuleId");
2067 lookupKeyMap.put(ResourceKey.VOLUME_GROUP_ID, "volumeGroupId");
2068 lookupKeyMap.put(ResourceKey.SERVICE_INSTANCE_ID, "serviceInstanceId");
2069 lookupKeyMap.put(ResourceKey.CONFIGURATION_ID, "configurationId");
2071 ConfigurationResourceKeys configResourceKeys = new ConfigurationResourceKeys();
2072 configResourceKeys.setCvnfcCustomizationUUID("cvnfcCustomizationUUID");
2073 configResourceKeys.setVfModuleCustomizationUUID("vfModuleCustomizationUUID");
2074 configResourceKeys.setVnfResourceCustomizationUUID("vnfResourceCustomizationUUID");
2075 executeBB.setConfigurationResourceKeys(configResourceKeys);
2077 String resourceId = "123";
2078 String vnfType = "vnfType";
2079 Service service = Mockito.mock(Service.class);
2080 String requestAction = "createInstance";
2081 doReturn(gBB).when(SPY_bbInputSetup).getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
2082 requestAction, resourceId);
2084 doReturn(service).when(SPY_bbInputSetupUtils)
2085 .getCatalogServiceByModelUUID(gBB.getServiceInstance().getModelInfoServiceInstance().getModelUuid());
2086 List<NetworkResourceCustomization> networkCustList = new ArrayList<>();
2087 NetworkResourceCustomization networkCust = Mockito.mock(NetworkResourceCustomization.class);
2088 doReturn("ab153b6e-c364-44c0-bef6-1f2982117f04").when(networkCust).getModelCustomizationUUID();
2089 networkCustList.add(networkCust);
2090 doReturn(networkCustList).when(service).getNetworkCustomizations();
2091 doNothing().when(SPY_bbInputSetup).populateL3Network(any(), isA(ModelInfo.class), isA(Service.class),
2092 any(String.class), isA(ServiceInstance.class), any(), any(String.class), any());
2094 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.NETWORK_MACRO.toString());
2095 executeBB.getBuildingBlock().setKey("ab153b6e-c364-44c0-bef6-1f2982117f04");
2096 executeBB.getBuildingBlock().setIsVirtualLink(false);
2097 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
2098 verify(SPY_bbInputSetup, times(1)).getGBBMacroNoUserParamsCreate(executeBB, lookupKeyMap,
2099 executeBB.getBuildingBlock().getBpmnFlowName(), "ab153b6e-c364-44c0-bef6-1f2982117f04", gBB, service);
2101 CollectionNetworkResourceCustomization collectionNetworkResourceCust = Mockito.mock(CollectionNetworkResourceCustomization.class);
2102 doReturn(collectionNetworkResourceCust).when(SPY_bbInputSetupUtils).getCatalogCollectionNetworkResourceCustByID(any(String.class));
2103 NetworkResourceCustomization networkResourceCustomization = Mockito.mock(NetworkResourceCustomization.class);
2104 doReturn(networkResourceCustomization).when(bbInputSetupMapperLayer).mapCollectionNetworkResourceCustToNetworkResourceCust(collectionNetworkResourceCust);
2105 ModelInfoNetwork modelInfoNetwork = Mockito.mock(ModelInfoNetwork.class);
2106 doReturn(modelInfoNetwork ).when(bbInputSetupMapperLayer).mapCatalogNetworkToNetwork(networkResourceCustomization);
2108 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.NETWORK_MACRO.toString());
2109 executeBB.getBuildingBlock().setKey("ab153b6e-c364-44c0-bef6-1f2982117f04");
2110 executeBB.getBuildingBlock().setIsVirtualLink(true);
2111 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
2112 verify(SPY_bbInputSetup, times(2)).getGBBMacroNoUserParamsCreate(executeBB, lookupKeyMap,
2113 executeBB.getBuildingBlock().getBpmnFlowName(), "ab153b6e-c364-44c0-bef6-1f2982117f04", gBB, service);
2115 executeBB.getBuildingBlock().setBpmnFlowName("CreateNetworkBB");
2116 executeBB.getBuildingBlock().setKey("ab153b6e-c364-44c0-bef6-1f2982117f04");
2117 executeBB.getBuildingBlock().setIsVirtualLink(true);
2118 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
2119 verify(SPY_bbInputSetup, times(1)).getGBBMacroNoUserParamsCreate(executeBB, lookupKeyMap,
2120 executeBB.getBuildingBlock().getBpmnFlowName(), "ab153b6e-c364-44c0-bef6-1f2982117f04", gBB, service);
2124 public void testgetGBBMacroNoUserParamsOther() throws Exception {
2125 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
2126 GeneralBuildingBlock.class);
2127 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
2128 ExecuteBuildingBlock.class);
2129 RequestDetails requestDetails = mapper
2130 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
2131 requestDetails.getRequestParameters().setUserParams(null);
2132 org.onap.aai.domain.yang.GenericVnf aaiVnf = new org.onap.aai.domain.yang.GenericVnf();
2133 aaiVnf.setModelCustomizationId("modelCustId");
2134 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
2135 lookupKeyMap.put(ResourceKey.NETWORK_ID, "networkId");
2136 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "vnfId");
2137 lookupKeyMap.put(ResourceKey.VF_MODULE_ID, "vfModuleId");
2138 lookupKeyMap.put(ResourceKey.VOLUME_GROUP_ID, "volumeGroupId");
2139 lookupKeyMap.put(ResourceKey.SERVICE_INSTANCE_ID, "serviceInstanceId");
2140 String resourceId = "123";
2141 String vnfType = "vnfType";
2142 Service service = Mockito.mock(Service.class);
2143 String requestAction = "deleteInstance";
2144 doReturn(gBB).when(SPY_bbInputSetup).getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
2145 requestAction, resourceId);
2146 doReturn(service).when(SPY_bbInputSetupUtils)
2147 .getCatalogServiceByModelUUID(gBB.getServiceInstance().getModelInfoServiceInstance().getModelUuid());
2148 //doReturn(aaiVnf).when(SPY_bbInputSetupUtils).getAAIGenericVnf(any(String.class));
2150 CloudConfiguration cloudConfig = new CloudConfiguration();
2151 cloudConfig.setLcpCloudRegionId("lcpCloudRegionId");
2152 requestDetails.setCloudConfiguration(cloudConfig);
2153 org.onap.aai.domain.yang.CloudRegion aaiCloudRegion = Mockito.mock(org.onap.aai.domain.yang.CloudRegion.class);
2154 doReturn(aaiCloudRegion).when(SPY_bbInputSetupUtils).getCloudRegion(requestDetails.getCloudConfiguration());
2155 executeBB.getBuildingBlock().setBpmnFlowName("DeleteNetworkBB");
2156 executeBB.getBuildingBlock().setKey("ab153b6e-c364-44c0-bef6-1f2982117f04");
2157 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
2158 verify(SPY_bbInputSetup, times(1)).getGBBMacroExistingService(isA(ExecuteBuildingBlock.class), any(),
2159 any(String.class), any(GeneralBuildingBlock.class), isA(Service.class), isA(String.class),
2160 isA(CloudConfiguration.class));
2162 requestAction = "activateInstance";
2163 doReturn(gBB).when(SPY_bbInputSetup).getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
2164 requestAction, resourceId);
2165 executeBB.getBuildingBlock().setBpmnFlowName("ActivateNetworkBB");
2166 executeBB.getBuildingBlock().setKey("ab153b6e-c364-44c0-bef6-1f2982117f04");
2167 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
2168 verify(SPY_bbInputSetup, times(2)).getGBBMacroExistingService(isA(ExecuteBuildingBlock.class), any(),
2169 any(String.class), any(GeneralBuildingBlock.class), isA(Service.class), isA(String.class),
2170 isA(CloudConfiguration.class));
2172 requestAction = "unassignInstance";
2173 doReturn(gBB).when(SPY_bbInputSetup).getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
2174 requestAction, resourceId);
2175 executeBB.getBuildingBlock().setBpmnFlowName("UnassignNetworkBB");
2176 executeBB.getBuildingBlock().setKey("ab153b6e-c364-44c0-bef6-1f2982117f04");
2177 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
2178 verify(SPY_bbInputSetup, times(3)).getGBBMacroExistingService(isA(ExecuteBuildingBlock.class), any(),
2179 any(String.class), any(GeneralBuildingBlock.class), isA(Service.class), isA(String.class),
2180 isA(CloudConfiguration.class));
2182 requestAction = "activateFabricConfiguration";
2183 doReturn(gBB).when(SPY_bbInputSetup).getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
2184 requestAction, resourceId);
2185 executeBB.getBuildingBlock().setBpmnFlowName("ActivateFabricConfigurationBB");
2186 executeBB.getBuildingBlock().setKey("ab153b6e-c364-44c0-bef6-134534656234");
2187 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
2188 verify(SPY_bbInputSetup, times(4)).getGBBMacroExistingService(isA(ExecuteBuildingBlock.class), any(),
2189 any(String.class), any(GeneralBuildingBlock.class), isA(Service.class), isA(String.class),
2190 isA(CloudConfiguration.class));
2193 @Test(expected = IllegalArgumentException.class)
2194 public void testgetGBBMacroNoUserParamsOtherException() throws Exception {
2195 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
2196 GeneralBuildingBlock.class);
2197 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
2198 ExecuteBuildingBlock.class);
2199 RequestDetails requestDetails = mapper
2200 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
2201 requestDetails.getRequestParameters().setUserParams(null);
2202 org.onap.aai.domain.yang.GenericVnf aaiVnf = new org.onap.aai.domain.yang.GenericVnf();
2203 aaiVnf.setModelCustomizationId("modelCustId");
2204 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
2205 lookupKeyMap.put(ResourceKey.NETWORK_ID, "networkId");
2206 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "vnfId");
2207 lookupKeyMap.put(ResourceKey.VF_MODULE_ID, "vfModuleId");
2208 lookupKeyMap.put(ResourceKey.VOLUME_GROUP_ID, "volumeGroupId");
2209 lookupKeyMap.put(ResourceKey.SERVICE_INSTANCE_ID, "serviceInstanceId");
2210 String resourceId = "123";
2211 String vnfType = "vnfType";
2212 Service service = Mockito.mock(Service.class);
2213 String requestAction = "assignInstance";
2214 doReturn(gBB).when(SPY_bbInputSetup).getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
2215 requestAction, resourceId);
2216 doReturn(service).when(SPY_bbInputSetupUtils)
2217 .getCatalogServiceByModelUUID(gBB.getServiceInstance().getModelInfoServiceInstance().getModelUuid());
2218 String generatedId = "12131";
2220 executeBB.getBuildingBlock().setKey("3c40d244-808e-42ca-b09a-256d83d19d0a");
2221 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
2224 public void testgetGBBMacroNoUserParamsExistingService() throws Exception {
2225 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
2226 GeneralBuildingBlock.class);
2227 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
2228 ExecuteBuildingBlock.class);
2229 RequestDetails requestDetails = mapper
2230 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
2231 requestDetails.getRequestParameters().setUserParams(null);
2232 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
2233 lookupKeyMap.put(ResourceKey.NETWORK_ID, "networkId");
2234 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "vnfId");
2235 lookupKeyMap.put(ResourceKey.VF_MODULE_ID, "vfModuleId");
2236 lookupKeyMap.put(ResourceKey.VOLUME_GROUP_ID, "volumeGroupId");
2237 lookupKeyMap.put(ResourceKey.SERVICE_INSTANCE_ID, "serviceInstanceId");
2238 lookupKeyMap.put(ResourceKey.CONFIGURATION_ID, "configurationId");
2239 Service service = Mockito.mock(Service.class);
2240 CloudConfiguration cloudConfiguration = new CloudConfiguration();
2241 cloudConfiguration.setLcpCloudRegionId("cloudRegionId");
2242 String requestAction = "unassignInstance";
2244 ConfigurationResourceKeys configResourceKeys = new ConfigurationResourceKeys();
2245 configResourceKeys.setCvnfcCustomizationUUID("cvnfcCustomizationUUID");
2246 configResourceKeys.setVfModuleCustomizationUUID("vfModuleCustomizationUUID");
2247 configResourceKeys.setVnfResourceCustomizationUUID("vnfResourceCustomizationUUID");
2248 executeBB.setConfigurationResourceKeys(configResourceKeys);
2250 L3Network network = new L3Network();
2251 network.setNetworkId("networkId");
2252 gBB.getServiceInstance().getNetworks().add(network);
2253 org.onap.aai.domain.yang.L3Network aaiNetwork = new org.onap.aai.domain.yang.L3Network();
2254 aaiNetwork.setModelCustomizationId("modelCustId");
2255 doReturn(aaiNetwork).when(SPY_bbInputSetupUtils).getAAIL3Network(network.getNetworkId());
2256 doNothing().when(SPY_bbInputSetup).mapCatalogNetwork(any(L3Network.class), any(ModelInfo.class),
2257 any(Service.class));
2259 executeBB.getBuildingBlock().setBpmnFlowName("DeleteNetworkBB");
2260 executeBB.getBuildingBlock().setKey("ab153b6e-c364-44c0-bef6-1f2982117f04");
2261 SPY_bbInputSetup.getGBBMacroExistingService(executeBB, lookupKeyMap,
2262 executeBB.getBuildingBlock().getBpmnFlowName(), gBB, service, requestAction, cloudConfiguration);
2263 verify(SPY_bbInputSetup, times(1)).mapCatalogNetwork(any(L3Network.class), any(ModelInfo.class),
2264 any(Service.class));
2266 GenericVnf vnf = new GenericVnf();
2267 vnf.setVnfId("vnfId");
2268 gBB.getServiceInstance().getVnfs().add(vnf);
2269 org.onap.aai.domain.yang.GenericVnf aaiVnf = new org.onap.aai.domain.yang.GenericVnf();
2270 aaiVnf.setModelCustomizationId("modelCustId");
2271 doReturn(aaiVnf).when(SPY_bbInputSetupUtils).getAAIGenericVnf(vnf.getVnfId());
2272 doNothing().when(SPY_bbInputSetup).mapCatalogVnf(any(GenericVnf.class), any(ModelInfo.class),
2273 any(Service.class));
2275 executeBB.getBuildingBlock().setBpmnFlowName("ActivateVnfBB");
2276 executeBB.getBuildingBlock().setKey("ab153b6e-c364-44c0-bef6-1f2982117f04");
2277 SPY_bbInputSetup.getGBBMacroExistingService(executeBB, lookupKeyMap,
2278 executeBB.getBuildingBlock().getBpmnFlowName(), gBB, service, requestAction, cloudConfiguration);
2279 verify(SPY_bbInputSetup, times(1)).mapCatalogVnf(any(GenericVnf.class), any(ModelInfo.class),
2280 any(Service.class));
2282 VfModule vfModule = new VfModule();
2283 vfModule.setVfModuleId("vfModuleId");
2284 gBB.getServiceInstance().getVnfs().get(0).getVfModules().add(vfModule);
2285 org.onap.aai.domain.yang.VfModule aaiVfModule = new org.onap.aai.domain.yang.VfModule();
2286 aaiVfModule.setModelCustomizationId("modelCustId");
2287 doReturn(aaiVfModule).when(SPY_bbInputSetupUtils).getAAIVfModule(vnf.getVnfId(), vfModule.getVfModuleId());
2289 executeBB.getBuildingBlock().setBpmnFlowName("UnassignVfModuleBB");
2290 executeBB.getBuildingBlock().setKey("a25e8e8c-58b8-4eec-810c-97dcc1f5cb7f");
2291 SPY_bbInputSetup.getGBBMacroExistingService(executeBB, lookupKeyMap,
2292 executeBB.getBuildingBlock().getBpmnFlowName(), gBB, service, requestAction, cloudConfiguration);
2293 verify(SPY_bbInputSetup, times(2)).mapCatalogVnf(any(GenericVnf.class), any(ModelInfo.class),
2294 any(Service.class));
2295 verify(SPY_bbInputSetup, times(1)).mapCatalogVfModule(any(VfModule.class), any(ModelInfo.class),
2296 any(Service.class), any(String.class));
2298 org.onap.aai.domain.yang.CloudRegion aaiCloudRegion = Mockito.mock(org.onap.aai.domain.yang.CloudRegion.class);
2299 VolumeGroup volumeGroup = new VolumeGroup();
2300 volumeGroup.setVolumeGroupId("volumeGroupId");
2301 gBB.getServiceInstance().getVnfs().get(0).getVolumeGroups().add(volumeGroup);
2302 org.onap.aai.domain.yang.VolumeGroup aaiVolumeGroup = new org.onap.aai.domain.yang.VolumeGroup();
2303 aaiVolumeGroup.setModelCustomizationId("modelCustId");
2304 doReturn(aaiVolumeGroup).when(SPY_bbInputSetupUtils).getAAIVolumeGroup(Defaults.CLOUD_OWNER.toString(),
2305 cloudConfiguration.getLcpCloudRegionId(), volumeGroup.getVolumeGroupId());
2307 executeBB.getBuildingBlock().setBpmnFlowName("UnassignVolumeGroupBB");
2308 executeBB.getBuildingBlock().setKey("72d9d1cd-f46d-447a-abdb-451d6fb05fa8");
2309 SPY_bbInputSetup.getGBBMacroExistingService(executeBB, lookupKeyMap,
2310 executeBB.getBuildingBlock().getBpmnFlowName(), gBB, service, requestAction, cloudConfiguration);
2311 verify(SPY_bbInputSetup, times(3)).mapCatalogVnf(any(GenericVnf.class), any(ModelInfo.class),
2312 any(Service.class));
2313 verify(SPY_bbInputSetup, times(1)).mapCatalogVolumeGroup(isA(VolumeGroup.class), isA(ModelInfo.class),
2314 isA(Service.class), isA(String.class));
2316 Configuration configuration = new Configuration();
2317 configuration.setConfigurationId("configurationId");
2318 gBB.getServiceInstance().getConfigurations().add(configuration);
2319 org.onap.aai.domain.yang.Configuration aaiConfiguration = new org.onap.aai.domain.yang.Configuration();
2320 aaiConfiguration.setModelCustomizationId("modelCustId");
2321 doReturn(aaiConfiguration).when(SPY_bbInputSetupUtils).getAAIConfiguration(configuration.getConfigurationId());
2322 doNothing().when(SPY_bbInputSetup).mapCatalogConfiguration(isA(Configuration.class), isA(ModelInfo.class), isA(Service.class), isA(ConfigurationResourceKeys.class));
2324 executeBB.getBuildingBlock().setBpmnFlowName("ActivateFabricConfigurationBB");
2325 executeBB.getBuildingBlock().setKey("72d9d1cd-f46d-447a-abdb-451d6fb05fa9");
2326 SPY_bbInputSetup.getGBBMacroExistingService(executeBB, lookupKeyMap,
2327 executeBB.getBuildingBlock().getBpmnFlowName(), gBB, service, requestAction, cloudConfiguration);
2328 verify(SPY_bbInputSetup, times(1)).mapCatalogConfiguration(any(Configuration.class), any(ModelInfo.class),
2329 any(Service.class), isA(ConfigurationResourceKeys.class));
2333 public void testGetVnfId() {
2334 String expected = "vnfId";
2335 ExecuteBuildingBlock executeBB = new ExecuteBuildingBlock();
2336 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
2337 executeBB.setRequestId("requestId");
2338 InfraActiveRequests request = new InfraActiveRequests();
2339 request.setVnfId(expected);
2340 doReturn(request).when(SPY_bbInputSetupUtils).getInfraActiveRequest(executeBB.getRequestId());
2342 String actual = SPY_bbInputSetup.getVnfId(executeBB, lookupKeyMap);
2344 assertEquals("VnfId is set correctly", expected, actual);
2348 public void testCreateVfModule() {
2349 String vfModuleId = "vfModuleId";
2350 String instanceName = "vfModuleName";
2351 Map<String, String> cloudParams = new HashMap<>();
2352 cloudParams.put("param1", "param1Value");
2353 VfModule expected = new VfModule();
2354 expected.setVfModuleId(vfModuleId);
2355 expected.setVfModuleName(instanceName);
2356 expected.setCloudParams(cloudParams);
2357 expected.setOrchestrationStatus(OrchestrationStatus.PRECREATED);
2358 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
2359 List<Map<String, String>> instanceParams = new ArrayList<>();
2360 instanceParams.add(cloudParams);
2362 VfModule actual = SPY_bbInputSetup.createVfModule(lookupKeyMap, vfModuleId, instanceName, instanceParams);
2364 assertThat(actual, sameBeanAs(expected));
2365 assertEquals("LookupKeyMap is populated", vfModuleId, lookupKeyMap.get(ResourceKey.VF_MODULE_ID));
2367 expected.getCloudParams().clear();
2368 actual = SPY_bbInputSetup.createVfModule(lookupKeyMap, vfModuleId, instanceName, null);
2369 assertThat(actual, sameBeanAs(expected));
2373 public void testCreateVolumeGroup() {
2374 String volumeGroupId = "volumeGroupId";
2375 String instanceName = "vfModuleName";
2376 String vnfType = "vnfType";
2377 Map<String, String> cloudParams = new HashMap<>();
2378 cloudParams.put("param1", "param1Value");
2379 VolumeGroup expected = new VolumeGroup();
2380 expected.setVolumeGroupId(volumeGroupId);
2381 expected.setVolumeGroupName(instanceName);
2382 expected.setCloudParams(cloudParams);
2383 expected.setVnfType(vnfType);
2384 expected.setOrchestrationStatus(OrchestrationStatus.PRECREATED);
2385 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
2386 List<Map<String, String>> instanceParams = new ArrayList<>();
2387 instanceParams.add(cloudParams);
2389 VolumeGroup actual = SPY_bbInputSetup.createVolumeGroup(lookupKeyMap, volumeGroupId, instanceName, vnfType, instanceParams);
2391 assertThat(actual, sameBeanAs(expected));
2392 assertEquals("LookupKeyMap is populated", volumeGroupId, lookupKeyMap.get(ResourceKey.VOLUME_GROUP_ID));
2394 expected.getCloudParams().clear();
2395 actual = SPY_bbInputSetup.createVolumeGroup(lookupKeyMap, volumeGroupId, instanceName, vnfType, null);
2396 assertThat(actual, sameBeanAs(expected));
2400 public void testCreateNetwork() {
2401 String networkId = "networkId";
2402 String instanceName = "networkName";
2403 Map<String, String> cloudParams = new HashMap<>();
2404 cloudParams.put("param1", "param1Value");
2405 L3Network expected = new L3Network();
2406 expected.setNetworkId(networkId);
2407 expected.setNetworkName(instanceName);
2408 expected.setCloudParams(cloudParams);
2409 expected.setOrchestrationStatus(OrchestrationStatus.PRECREATED);
2410 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
2411 List<Map<String, String>> instanceParams = new ArrayList<>();
2412 instanceParams.add(cloudParams);
2413 L3Network actual = SPY_bbInputSetup.createNetwork(lookupKeyMap, instanceName, networkId, instanceParams);
2415 assertThat(actual, sameBeanAs(expected));
2416 assertEquals("LookupKeyMap is populated", networkId, lookupKeyMap.get(ResourceKey.NETWORK_ID));
2418 expected.getCloudParams().clear();
2419 actual = SPY_bbInputSetup.createNetwork(lookupKeyMap, instanceName, networkId, null);
2420 assertThat(actual, sameBeanAs(expected));
2424 public void testCreateGenericVnf() {
2425 String vnfId = "vnfId";
2426 String instanceName = "vnfName";
2427 String vnfType = "vnfType";
2428 String platformName = "platformName";
2429 String lineOfBusinessName = "lineOfBusinessName";
2430 Platform platform = new Platform();
2431 platform.setPlatformName(platformName);
2432 LineOfBusiness lineOfBusiness = new LineOfBusiness();
2433 lineOfBusiness.setLineOfBusinessName(lineOfBusinessName);
2434 Map<String, String> cloudParams = new HashMap<>();
2435 cloudParams.put("param1", "param1Value");
2436 GenericVnf expected = new GenericVnf();
2437 expected.setVnfId(vnfId);
2438 expected.setVnfName(instanceName);
2439 expected.setVnfType(vnfType);
2440 expected.setCloudParams(cloudParams);
2441 expected.setOrchestrationStatus(OrchestrationStatus.PRECREATED);
2442 expected.setPlatform(platform);
2443 expected.setLineOfBusiness(lineOfBusiness);
2444 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
2445 List<Map<String, String>> instanceParams = new ArrayList<>();
2446 instanceParams.add(cloudParams);
2447 org.onap.so.serviceinstancebeans.Platform requestPlatform = new org.onap.so.serviceinstancebeans.Platform();
2448 platform.setPlatformName(platformName);
2449 org.onap.so.serviceinstancebeans.LineOfBusiness requestLineOfBusiness = new org.onap.so.serviceinstancebeans.LineOfBusiness();
2450 lineOfBusiness.setLineOfBusinessName(lineOfBusinessName);
2452 doReturn(platform).when(bbInputSetupMapperLayer).mapRequestPlatform(requestPlatform);
2453 doReturn(lineOfBusiness).when(bbInputSetupMapperLayer).mapRequestLineOfBusiness(requestLineOfBusiness);
2455 GenericVnf actual = SPY_bbInputSetup.createGenericVnf(lookupKeyMap, instanceName, requestPlatform, requestLineOfBusiness, vnfId, vnfType, instanceParams);
2457 assertThat(actual, sameBeanAs(expected));
2458 assertEquals("LookupKeyMap is populated", vnfId, lookupKeyMap.get(ResourceKey.GENERIC_VNF_ID));
2460 expected.getCloudParams().clear();
2461 actual = SPY_bbInputSetup.createGenericVnf(lookupKeyMap, instanceName, requestPlatform, requestLineOfBusiness, vnfId, vnfType, null);
2462 assertThat(actual, sameBeanAs(expected));
2466 public void testMapCatalogVfModule() {
2467 String vnfModelCustomizationUUID = "vnfResourceCustUUID";
2468 String vfModuleCustomizationUUID = "vfModelCustomizationUUID";
2469 VfModule vfModule = new VfModule();
2470 ModelInfo modelInfo = new ModelInfo();
2471 modelInfo.setModelCustomizationUuid(vfModuleCustomizationUUID);
2472 Service service = new Service();
2473 VnfResourceCustomization vnfResourceCust = new VnfResourceCustomization();
2474 vnfResourceCust.setModelCustomizationUUID(vnfModelCustomizationUUID);
2475 VfModuleCustomization vfModuleCust = new VfModuleCustomization();
2476 vfModuleCust.setModelCustomizationUUID(vfModuleCustomizationUUID);
2477 vnfResourceCust.getVfModuleCustomizations().add(vfModuleCust);
2478 service.getVnfCustomizations().add(vnfResourceCust);
2479 ModelInfoVfModule modelInfoVfModule = new ModelInfoVfModule();
2481 doReturn(modelInfoVfModule).when(bbInputSetupMapperLayer).mapCatalogVfModuleToVfModule(vfModuleCust);
2483 SPY_bbInputSetup.mapCatalogVfModule(vfModule, modelInfo, service, vnfModelCustomizationUUID);
2485 assertThat(vfModule.getModelInfoVfModule(), sameBeanAs(modelInfoVfModule));
2487 modelInfo.setModelCustomizationUuid(null);
2488 modelInfo.setModelCustomizationId(vfModuleCustomizationUUID);
2490 SPY_bbInputSetup.mapCatalogVfModule(vfModule, modelInfo, service, vnfModelCustomizationUUID);
2492 assertThat(vfModule.getModelInfoVfModule(), sameBeanAs(modelInfoVfModule));
2496 public void testPopulateVfModule() throws Exception {
2497 String vnfId = "vnfId";
2498 String vfModuleId = "vfModuleId";
2499 String volumeGroupId = "volumeGroupId";
2500 String vfModuleCustomizationId = "vfModuleCustomizationId";
2501 ModelInfo modelInfo = new ModelInfo();
2502 modelInfo.setModelCustomizationId(vfModuleCustomizationId);
2503 Service service = new Service();
2504 String bbName = AssignFlows.VF_MODULE.toString();
2505 ServiceInstance serviceInstance = new ServiceInstance();
2506 GenericVnf vnf = new GenericVnf();
2507 vnf.setVnfId(vnfId);
2508 VolumeGroup volumeGroup = new VolumeGroup();
2509 volumeGroup.setVolumeGroupId(volumeGroupId);
2510 vnf.getVolumeGroups().add(volumeGroup);
2511 serviceInstance.getVnfs().add(vnf);
2512 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
2513 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, vnfId);
2514 String resourceId = vfModuleId;
2515 RelatedInstanceList[] relatedInstanceList = null;
2516 String instanceName = "vfModuleName";
2517 List<Map<String, String>> instanceParams = null;
2518 CloudConfiguration cloudConfiguration = new CloudConfiguration();
2520 org.onap.aai.domain.yang.GenericVnf vnfAAI = new org.onap.aai.domain.yang.GenericVnf();
2521 vnfAAI.setModelCustomizationId("vnfModelCustId");
2522 org.onap.aai.domain.yang.VolumeGroup volumeGroupAAI = new org.onap.aai.domain.yang.VolumeGroup();
2523 volumeGroupAAI.setModelCustomizationId(vfModuleCustomizationId);
2525 doReturn(vnfAAI).when(SPY_bbInputSetupUtils).getAAIGenericVnf(vnf.getVnfId());
2526 doReturn(volumeGroupAAI).when(SPY_bbInputSetupUtils).getAAIVolumeGroup(CLOUD_OWNER,
2527 cloudConfiguration.getLcpCloudRegionId(), volumeGroup.getVolumeGroupId());
2528 doNothing().when(SPY_bbInputSetup).mapCatalogVnf(isA(GenericVnf.class), isA(ModelInfo.class), isA(Service.class));
2529 doNothing().when(SPY_bbInputSetup).mapCatalogVfModule(isA(VfModule.class), isA(ModelInfo.class), isA(Service.class), isA(String.class));
2531 SPY_bbInputSetup.populateVfModule(modelInfo, service, bbName, serviceInstance, lookupKeyMap,
2532 resourceId, relatedInstanceList, instanceName, instanceParams, cloudConfiguration);
2534 assertEquals("Lookup Key Map populated with VfModule Id", vfModuleId, lookupKeyMap.get(ResourceKey.VF_MODULE_ID));
2535 assertEquals("Lookup Key Map populated with VolumeGroup Id", volumeGroupId, lookupKeyMap.get(ResourceKey.VOLUME_GROUP_ID));