2 * ============LICENSE_START=======================================================
4 * ================================================================================
5 * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
6 * ================================================================================
7 * Modifications Copyright (c) 2019 Samsung
8 * ================================================================================
9 * Licensed under the Apache License, Version 2.0 (the "License");
10 * you may not use this file except in compliance with the License.
11 * You may obtain a copy of the License at
13 * http://www.apache.org/licenses/LICENSE-2.0
15 * Unless required by applicable law or agreed to in writing, software
16 * distributed under the License is distributed on an "AS IS" BASIS,
17 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18 * See the License for the specific language governing permissions and
19 * limitations under the License.
20 * ============LICENSE_END=========================================================
23 package org.onap.so.bpmn.servicedecomposition.tasks;
25 import static com.shazam.shazamcrest.MatcherAssert.assertThat;
26 import static com.shazam.shazamcrest.matcher.Matchers.sameBeanAs;
27 import static org.junit.Assert.assertEquals;
28 import static org.junit.Assert.assertNotNull;
29 import static org.junit.Assert.assertNull;
30 import static org.mockito.ArgumentMatchers.any;
31 import static org.mockito.ArgumentMatchers.eq;
32 import static org.mockito.ArgumentMatchers.isA;
33 import static org.mockito.Mockito.doNothing;
34 import static org.mockito.Mockito.doReturn;
35 import static org.mockito.Mockito.times;
36 import static org.mockito.Mockito.verify;
39 import java.io.IOException;
40 import java.util.ArrayList;
41 import java.util.Arrays;
42 import java.util.HashMap;
43 import java.util.List;
45 import java.util.Optional;
47 import org.camunda.bpm.engine.delegate.DelegateExecution;
48 import org.junit.Assert;
49 import org.junit.Before;
50 import org.junit.Test;
51 import org.junit.runner.RunWith;
52 import org.mockito.ArgumentMatchers;
53 import org.mockito.Mock;
54 import org.mockito.Mockito;
55 import org.mockito.Spy;
56 import org.mockito.junit.MockitoJUnitRunner;
57 import org.onap.so.bpmn.servicedecomposition.bbobjects.CloudRegion;
58 import org.onap.so.bpmn.servicedecomposition.bbobjects.Collection;
59 import org.onap.so.bpmn.servicedecomposition.bbobjects.Configuration;
60 import org.onap.so.bpmn.servicedecomposition.bbobjects.Customer;
61 import org.onap.so.bpmn.servicedecomposition.bbobjects.GenericVnf;
62 import org.onap.so.bpmn.servicedecomposition.bbobjects.InstanceGroup;
63 import org.onap.so.bpmn.servicedecomposition.bbobjects.L3Network;
64 import org.onap.so.bpmn.servicedecomposition.bbobjects.LineOfBusiness;
65 import org.onap.so.bpmn.servicedecomposition.bbobjects.OwningEntity;
66 import org.onap.so.bpmn.servicedecomposition.bbobjects.Platform;
67 import org.onap.so.bpmn.servicedecomposition.bbobjects.Project;
68 import org.onap.so.bpmn.servicedecomposition.bbobjects.RouteTableReference;
69 import org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance;
70 import org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceSubscription;
71 import org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule;
72 import org.onap.so.bpmn.servicedecomposition.bbobjects.Vnfc;
73 import org.onap.so.bpmn.servicedecomposition.bbobjects.VolumeGroup;
74 import org.onap.so.bpmn.servicedecomposition.entities.BuildingBlock;
75 import org.onap.so.bpmn.servicedecomposition.entities.ConfigurationResourceKeys;
76 import org.onap.so.bpmn.servicedecomposition.entities.ExecuteBuildingBlock;
77 import org.onap.so.bpmn.servicedecomposition.entities.GeneralBuildingBlock;
78 import org.onap.so.bpmn.servicedecomposition.entities.ResourceKey;
79 import org.onap.so.bpmn.servicedecomposition.entities.WorkflowResourceIds;
80 import org.onap.so.bpmn.servicedecomposition.generalobjects.OrchestrationContext;
81 import org.onap.so.bpmn.servicedecomposition.generalobjects.RequestContext;
82 import org.onap.so.bpmn.servicedecomposition.modelinfo.ModelInfoCollection;
83 import org.onap.so.bpmn.servicedecomposition.modelinfo.ModelInfoGenericVnf;
84 import org.onap.so.bpmn.servicedecomposition.modelinfo.ModelInfoInstanceGroup;
85 import org.onap.so.bpmn.servicedecomposition.modelinfo.ModelInfoNetwork;
86 import org.onap.so.bpmn.servicedecomposition.modelinfo.ModelInfoServiceInstance;
87 import org.onap.so.bpmn.servicedecomposition.modelinfo.ModelInfoVfModule;
88 import org.onap.so.client.aai.AAICommonObjectMapperProvider;
89 import org.onap.so.client.aai.AAIObjectType;
90 import org.onap.so.client.aai.entities.AAIResultWrapper;
91 import org.onap.so.client.aai.entities.uri.AAIResourceUri;
92 import org.onap.so.client.aai.entities.uri.AAIUriFactory;
93 import org.onap.so.db.catalog.beans.CollectionNetworkResourceCustomization;
94 import org.onap.so.db.catalog.beans.CollectionResource;
95 import org.onap.so.db.catalog.beans.CollectionResourceCustomization;
96 import org.onap.so.db.catalog.beans.CollectionResourceInstanceGroupCustomization;
97 import org.onap.so.db.catalog.beans.ConfigurationResource;
98 import org.onap.so.db.catalog.beans.ConfigurationResourceCustomization;
99 import org.onap.so.db.catalog.beans.InstanceGroupType;
100 import org.onap.so.db.catalog.beans.NetworkCollectionResourceCustomization;
101 import org.onap.so.db.catalog.beans.NetworkResourceCustomization;
102 import org.onap.so.db.catalog.beans.OrchestrationStatus;
103 import org.onap.so.db.catalog.beans.Service;
104 import org.onap.so.db.catalog.beans.VfModuleCustomization;
105 import org.onap.so.db.catalog.beans.VnfResourceCustomization;
106 import org.onap.so.db.catalog.beans.CvnfcConfigurationCustomization;
107 import org.onap.so.db.catalog.beans.VnfcInstanceGroupCustomization;
108 import org.onap.so.db.request.beans.InfraActiveRequests;
109 import org.onap.so.serviceinstancebeans.CloudConfiguration;
110 import org.onap.so.serviceinstancebeans.ModelInfo;
111 import org.onap.so.serviceinstancebeans.ModelType;
112 import org.onap.so.serviceinstancebeans.RelatedInstance;
113 import org.onap.so.serviceinstancebeans.RelatedInstanceList;
114 import org.onap.so.serviceinstancebeans.RequestDetails;
115 import org.onap.so.serviceinstancebeans.RequestInfo;
116 import org.onap.so.serviceinstancebeans.RequestParameters;
117 import org.onap.so.serviceinstancebeans.Resources;
118 import org.onap.so.serviceinstancebeans.SubscriberInfo;
120 import com.fasterxml.jackson.core.JsonParseException;
121 import com.fasterxml.jackson.core.JsonProcessingException;
122 import com.fasterxml.jackson.databind.JsonMappingException;
123 import com.fasterxml.jackson.databind.ObjectMapper;
124 @RunWith(MockitoJUnitRunner.class)
125 public class BBInputSetupTest {
126 private static final String RESOURCE_PATH = "src/test/resources/__files/ExecuteBuildingBlock/";
128 protected ObjectMapper mapper = new ObjectMapper();
129 private static final String CLOUD_OWNER = "CloudOwner";
132 private BBInputSetup SPY_bbInputSetup = new BBInputSetup();
135 private BBInputSetupUtils SPY_bbInputSetupUtils;
138 private CloudInfoFromAAI SPY_cloudInfoFromAAI;
141 private BBInputSetupMapperLayer bbInputSetupMapperLayer;
145 SPY_bbInputSetup.setBbInputSetupUtils(SPY_bbInputSetupUtils);
146 SPY_bbInputSetup.setMapperLayer(bbInputSetupMapperLayer);
147 SPY_bbInputSetup.setCloudInfoFromAAI(SPY_cloudInfoFromAAI);
151 public void testGetVolumeGroupIdRelatedToVfModule() {
152 String expected = "volumeGroupId";
153 String modelCustomizationId = "modelCustomizationId";
154 ModelInfo modelInfo = new ModelInfo();
155 modelInfo.setModelCustomizationId(modelCustomizationId);
156 String cloudOwner = "cloudOwner";
157 String cloudRegionId = "cloudRegionId";
158 String volumeGroupId = "volumeGroupId";
159 GenericVnf vnf = new GenericVnf();
160 VolumeGroup volumeGroup = new VolumeGroup();
161 volumeGroup.setVolumeGroupId(expected);
162 vnf.getVolumeGroups().add(volumeGroup);
163 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
164 lookupKeyMap.put(ResourceKey.VOLUME_GROUP_ID, null);
165 org.onap.aai.domain.yang.VolumeGroup aaiVolumeGroup = new org.onap.aai.domain.yang.VolumeGroup();
166 aaiVolumeGroup.setModelCustomizationId(modelCustomizationId);
167 doReturn(aaiVolumeGroup).when(SPY_bbInputSetupUtils).getAAIVolumeGroup(cloudOwner, cloudRegionId, volumeGroupId);
169 Optional<String> actual = SPY_bbInputSetup.getVolumeGroupIdRelatedToVfModule(vnf, modelInfo, cloudOwner, cloudRegionId, lookupKeyMap);
171 assertEquals(expected, actual.get());
175 public void testGetAlaCarteServiceInstance() throws Exception {
176 ServiceInstance expected = mapper.readValue(
177 new File(RESOURCE_PATH + "ServiceInstance_getServiceInstanceNOAAIExpected.json"),
178 ServiceInstance.class);
179 RequestDetails requestDetails = new RequestDetails();
180 RequestInfo requestInfo = new RequestInfo();
181 requestInfo.setInstanceName("SharansInstanceName");
182 requestDetails.setRequestInfo(requestInfo);
183 Customer customer = new Customer();
184 String serviceInstanceId = "SharansInstanceId";
185 boolean aLaCarte = true;
186 Service service = new Service();
187 service.setModelUUID("modelUUID");
188 ModelInfoServiceInstance modelInfoServiceInstance = new ModelInfoServiceInstance();
189 modelInfoServiceInstance.setModelUuid("modelUUID");
190 expected.setModelInfoServiceInstance(modelInfoServiceInstance);
191 org.onap.aai.domain.yang.ServiceInstance serviceInstanceAAI = new org.onap.aai.domain.yang.ServiceInstance();
192 serviceInstanceAAI.setModelVersionId("modelUUIDDifferent");
193 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
194 String bbName = AssignFlows.SERVICE_INSTANCE.toString();
195 Service differentService = new Service();
196 differentService.setModelUUID("modelUUIDDifferent");
198 doReturn(expected).when(SPY_bbInputSetup).getServiceInstanceHelper(requestDetails, customer, null, null,
199 lookupKeyMap, serviceInstanceId, aLaCarte, service, bbName);
200 doReturn(serviceInstanceAAI).when(SPY_bbInputSetupUtils).getAAIServiceInstanceById(serviceInstanceId);
201 doReturn(differentService).when(SPY_bbInputSetupUtils)
202 .getCatalogServiceByModelUUID(serviceInstanceAAI.getModelVersionId());
203 doReturn(expected.getModelInfoServiceInstance()).when(bbInputSetupMapperLayer)
204 .mapCatalogServiceIntoServiceInstance(differentService);
206 ServiceInstance actual = SPY_bbInputSetup.getALaCarteServiceInstance(service, requestDetails, customer, null,
207 null, lookupKeyMap, serviceInstanceId, aLaCarte, bbName);
208 assertThat(actual, sameBeanAs(expected));
211 @Test(expected = Exception.class)
212 public void testGetAlaCarteServiceInstanceException() throws Exception {
213 ServiceInstance expected = mapper.readValue(
214 new File(RESOURCE_PATH + "ServiceInstance_getServiceInstanceNOAAIExpected.json"),
215 ServiceInstance.class);
216 RequestDetails requestDetails = new RequestDetails();
217 RequestInfo requestInfo = new RequestInfo();
218 requestInfo.setInstanceName("SharansInstanceName");
219 requestDetails.setRequestInfo(requestInfo);
220 Customer customer = new Customer();
221 String serviceInstanceId = "SharansInstanceId";
222 boolean aLaCarte = true;
223 Service service = new Service();
224 service.setModelUUID("modelUUID");
225 ModelInfoServiceInstance modelInfoServiceInstance = new ModelInfoServiceInstance();
226 modelInfoServiceInstance.setModelUuid("modelUUID");
227 expected.setModelInfoServiceInstance(modelInfoServiceInstance);
228 org.onap.aai.domain.yang.ServiceInstance serviceInstanceAAI = new org.onap.aai.domain.yang.ServiceInstance();
229 serviceInstanceAAI.setModelVersionId("modelUUIDDifferent");
230 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
231 String bbName = AssignFlows.SERVICE_INSTANCE.toString();
232 Service differentService = new Service();
233 differentService.setModelUUID("modelUUIDDifferent");
235 doReturn(expected).when(SPY_bbInputSetup).getServiceInstanceHelper(requestDetails, customer, null, null,
236 lookupKeyMap, serviceInstanceId, aLaCarte, service, bbName);
237 doReturn(serviceInstanceAAI).when(SPY_bbInputSetupUtils).getAAIServiceInstanceById(serviceInstanceId);
238 doReturn(null).when(SPY_bbInputSetupUtils)
239 .getCatalogServiceByModelUUID(serviceInstanceAAI.getModelVersionId());
241 ServiceInstance actual = SPY_bbInputSetup.getALaCarteServiceInstance(service, requestDetails, customer, null,
242 null, lookupKeyMap, serviceInstanceId, aLaCarte, bbName);
243 assertThat(actual, sameBeanAs(expected));
247 public void testGetCustomerAndServiceSubscription() throws JsonParseException, JsonMappingException, IOException {
248 RequestDetails requestDetails = mapper.readValue(
249 new File(RESOURCE_PATH + "RequestDetailsInput_withRelatedInstanceList.json"), RequestDetails.class);
250 SubscriberInfo subscriberInfo = new SubscriberInfo();
251 subscriberInfo.setGlobalSubscriberId("globalSubscriberId");
252 RequestParameters requestParams = new RequestParameters();
253 requestParams.setSubscriptionServiceType("subscriptionServiceType");
254 requestDetails.setRequestParameters(requestParams);
255 requestDetails.setSubscriberInfo(subscriberInfo);
256 String resourceId = "resourceId";
257 Customer expected = new Customer();
258 expected.setGlobalCustomerId("globalCustomerId");
259 ServiceSubscription serviceSubscription = new ServiceSubscription();
260 serviceSubscription.setServiceType("subscriptionServiceType");
262 doReturn(expected).when(this.SPY_bbInputSetup).getCustomerFromRequest(requestDetails);
263 doReturn(serviceSubscription).when(this.SPY_bbInputSetup).getServiceSubscription(requestDetails, expected);
265 Customer actual = this.SPY_bbInputSetup.getCustomerAndServiceSubscription(requestDetails, resourceId);
267 assertThat(actual, sameBeanAs(expected));
269 requestDetails.setSubscriberInfo(null);
272 assertThat(actual, sameBeanAs(expected));
277 public void testSetHomingFlag() throws JsonParseException, JsonMappingException, IOException {
278 GeneralBuildingBlock expected = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
279 GeneralBuildingBlock.class);
280 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
281 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "vnfId");
282 GenericVnf genericVnfExpected = new GenericVnf();
283 genericVnfExpected.setVnfId("vnfId");
284 genericVnfExpected.setCallHoming(true);
285 expected.getCustomer().getServiceSubscription().getServiceInstances().get(0).getVnfs().add(genericVnfExpected);
286 boolean homing = true;
287 GenericVnf genericVnfActual = new GenericVnf();
288 genericVnfActual.setVnfId("vnfId");
289 genericVnfActual.setCallHoming(false);
290 GeneralBuildingBlock actual = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
291 GeneralBuildingBlock.class);
292 actual.getCustomer().getServiceSubscription().getServiceInstances().get(0).getVnfs().add(genericVnfActual);
294 SPY_bbInputSetup.setHomingFlag(actual, homing, lookupKeyMap);
295 assertThat(actual, sameBeanAs(expected));
299 public void testGetExecuteBBFromExecution() throws IOException {
300 ExecuteBuildingBlock expected = new ExecuteBuildingBlock();
301 BuildingBlock bb = new BuildingBlock();
302 bb.setBpmnFlowName("AssignServiceInstanceBB");
303 expected.setBuildingBlock(bb);
304 expected.setRequestId("00032ab7-3fb3-42e5-965d-8ea592502017");
305 DelegateExecution execution = Mockito.mock(DelegateExecution.class);
306 doReturn(expected).when(execution).getVariable(any(String.class));
307 ExecuteBuildingBlock actual = SPY_bbInputSetup.getExecuteBBFromExecution(execution);
308 assertThat(actual, sameBeanAs(expected));
312 public void testGetGBB() throws Exception {
313 GeneralBuildingBlock expected = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
314 GeneralBuildingBlock.class);
316 ExecuteBuildingBlock executeBB = new ExecuteBuildingBlock();
317 executeBB.setRequestId("requestId");
318 RequestDetails requestDetails = new RequestDetails();
319 ModelInfo modelInfo = new ModelInfo();
320 modelInfo.setModelType(ModelType.service);
321 requestDetails.setModelInfo(modelInfo);
322 RequestParameters requestParams = new RequestParameters();
323 requestParams.setaLaCarte(true);
324 requestDetails.setRequestParameters(requestParams);
325 doReturn(requestDetails).when(SPY_bbInputSetupUtils).getRequestDetails(executeBB.getRequestId());
326 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
327 String resourceId = "123";
328 String requestAction = "createInstance";
329 doReturn(expected).when(SPY_bbInputSetup).getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
330 requestAction, resourceId);
331 doNothing().when(SPY_bbInputSetup).populateLookupKeyMapWithIds(executeBB.getWorkflowResourceIds(),lookupKeyMap);
332 boolean aLaCarte = true;
333 GeneralBuildingBlock actual = SPY_bbInputSetup.getGBB(executeBB, lookupKeyMap, requestAction, aLaCarte,
336 assertThat(actual, sameBeanAs(expected));
340 public void testGetGBBCM() throws Exception {
341 GeneralBuildingBlock expected = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockCMExpected.json"),
342 GeneralBuildingBlock.class);
344 ExecuteBuildingBlock executeBB = new ExecuteBuildingBlock();
345 executeBB.setRequestId("requestId");
346 RequestDetails requestDetails = new RequestDetails();
347 requestDetails.setModelInfo(null);
348 RequestParameters requestParams = new RequestParameters();
349 requestParams.setaLaCarte(true);
350 requestDetails.setRequestParameters(requestParams);
351 RequestInfo requestInfo = new RequestInfo();
352 requestInfo.setSuppressRollback(true);
353 requestInfo.setSource("VID");
354 requestDetails.setRequestInfo(requestInfo);
355 CloudConfiguration cloudConfiguration = new CloudConfiguration();
356 cloudConfiguration.setLcpCloudRegionId("myRegionId");
357 requestDetails.setCloudConfiguration(cloudConfiguration);
358 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
359 String resourceId = "123";
360 String requestAction = "createInstance";
362 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "vnf-001");
364 doReturn(new org.onap.aai.domain.yang.GenericVnf()).when(SPY_bbInputSetupUtils).getAAIGenericVnf(ArgumentMatchers.isA(String.class));
365 doReturn(null).when(bbInputSetupMapperLayer).mapAAIGenericVnfIntoGenericVnf(ArgumentMatchers.isA(org.onap.aai.domain.yang.GenericVnf.class));
366 GeneralBuildingBlock actual = SPY_bbInputSetup.getGBBCM(executeBB, requestDetails, lookupKeyMap, requestAction,
368 assertThat(actual, sameBeanAs(expected));
372 public void testGetGBBCMAddMembersAction() throws Exception {
373 GeneralBuildingBlock expected = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockInstanceGroupExpected.json"),
374 GeneralBuildingBlock.class);
375 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
376 ExecuteBuildingBlock.class);
377 RequestDetails requestDetails = mapper.readValue(
378 new File(RESOURCE_PATH + "RequestDetailsInput_instanceGroupAddMembers.json"), RequestDetails.class);
379 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
380 String requestAction = "addMembers";
381 String instanceGroupId = "instance-group-001";
383 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
384 workflowResourceIds.setInstanceGroupId(instanceGroupId);
385 executeBB.setWorkflowResourceIds(workflowResourceIds);
387 lookupKeyMap.put(ResourceKey.INSTANCE_GROUP_ID, instanceGroupId);
389 org.onap.aai.domain.yang.InstanceGroup aaiInstanceGroup = new org.onap.aai.domain.yang.InstanceGroup();
390 aaiInstanceGroup.setId(instanceGroupId);
391 aaiInstanceGroup.setInstanceGroupName("test instance group 1");
393 org.onap.aai.domain.yang.ServiceInstance aaiServiceInstance = new org.onap.aai.domain.yang.ServiceInstance();
394 aaiServiceInstance.setServiceInstanceId("service-instance-001");
395 aaiServiceInstance.setServiceInstanceName("test service instance 1");
396 Optional<org.onap.aai.domain.yang.ServiceInstance> optSI = Optional.of(aaiServiceInstance);
398 org.onap.aai.domain.yang.GenericVnf vnf1 = new org.onap.aai.domain.yang.GenericVnf();
399 vnf1.setVnfId("vnf-001");
400 vnf1.setVnfName("test vnf 1");
402 org.onap.aai.domain.yang.GenericVnf vnf2 = new org.onap.aai.domain.yang.GenericVnf();
403 vnf2.setVnfId("vnf-002");
404 vnf2.setVnfName("test vnf 2");
406 doReturn(aaiInstanceGroup).when(SPY_bbInputSetupUtils).getAAIInstanceGroup(instanceGroupId);
407 doReturn(optSI).when(SPY_bbInputSetupUtils).getRelatedServiceInstanceFromInstanceGroup(instanceGroupId);
408 doReturn(vnf1).when(SPY_bbInputSetupUtils).getAAIGenericVnf("vnf-001");
409 doReturn(vnf2).when(SPY_bbInputSetupUtils).getAAIGenericVnf("vnf-002");
411 GeneralBuildingBlock actual = SPY_bbInputSetup.getGBBCM(executeBB, requestDetails, lookupKeyMap,
412 requestAction, instanceGroupId);
414 assertThat(actual, sameBeanAs(expected));
418 public void testGetGBBALaCarteNonService() throws Exception {
419 GeneralBuildingBlock expected = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
420 GeneralBuildingBlock.class);
421 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
422 ExecuteBuildingBlock.class);
423 RequestDetails requestDetails = mapper.readValue(
424 new File(RESOURCE_PATH + "RequestDetailsInput_withRelatedInstanceList.json"), RequestDetails.class);
425 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
426 String requestAction = "createInstance";
427 Service service = Mockito.mock(Service.class);
428 ServiceInstance serviceInstance = Mockito.mock(ServiceInstance.class);
429 String resourceId = "123";
430 String vnfType = "vnfType";
431 org.onap.aai.domain.yang.ServiceInstance aaiServiceInstance = new org.onap.aai.domain.yang.ServiceInstance();
432 aaiServiceInstance.setModelVersionId("modelVersionId");
433 org.onap.aai.domain.yang.CloudRegion aaiCloudRegion = Mockito.mock(org.onap.aai.domain.yang.CloudRegion.class);
434 lookupKeyMap.put(ResourceKey.SERVICE_INSTANCE_ID, "instanceId");
435 doReturn(service).when(SPY_bbInputSetupUtils).getCatalogServiceByModelUUID(aaiServiceInstance.getModelVersionId());
436 doReturn(aaiServiceInstance).when(SPY_bbInputSetupUtils).getAAIServiceInstanceById("instanceId");
438 doNothing().when(SPY_bbInputSetup).populateObjectsOnAssignAndCreateFlows(requestDetails, service, "bbName",
439 serviceInstance, lookupKeyMap, resourceId, vnfType, null, null);
440 doReturn(serviceInstance).when(SPY_bbInputSetup).getExistingServiceInstance(aaiServiceInstance);
441 doReturn(expected).when(SPY_bbInputSetup).populateGBBWithSIAndAdditionalInfo(requestDetails, serviceInstance,
442 executeBB, requestAction, null);
444 GeneralBuildingBlock actual = SPY_bbInputSetup.getGBBALaCarteNonService(executeBB, requestDetails, lookupKeyMap,
445 requestAction, resourceId, vnfType);
447 assertThat(actual, sameBeanAs(expected));
450 @Test(expected = Exception.class)
451 public void testGetGBBALaCarteNonServiceWithoutServiceModelInfo() throws Exception {
452 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
453 ExecuteBuildingBlock.class);
454 RequestDetails requestDetails = mapper.readValue(
455 new File(RESOURCE_PATH + "RequestDetailsInput_withRelatedInstanceList.json"), RequestDetails.class);
456 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
457 String requestAction = "createInstance";
458 org.onap.aai.domain.yang.ServiceInstance aaiServiceInstance = new org.onap.aai.domain.yang.ServiceInstance();
459 aaiServiceInstance.setModelVersionId("modelVersionId");
460 String resourceId = "123";
461 String vnfType = "vnfType";
463 SPY_bbInputSetup.getGBBALaCarteNonService(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId,
468 public void testGetGBBALaCarteNonServiceWithoutRelatedInstances() throws Exception {
469 GeneralBuildingBlock expected = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
470 GeneralBuildingBlock.class);
471 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
472 ExecuteBuildingBlock.class);
473 RequestDetails requestDetails = mapper.readValue(
474 new File(RESOURCE_PATH + "RequestDetailsInput_withoutRelatedInstanceList.json"), RequestDetails.class);
475 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
476 String requestAction = "createInstance";
477 Service service = Mockito.mock(Service.class);
478 String resourceId = "123";
479 ServiceInstance serviceInstance = Mockito.mock(ServiceInstance.class);
480 org.onap.aai.domain.yang.ServiceInstance aaiServiceInstance = new org.onap.aai.domain.yang.ServiceInstance();
481 aaiServiceInstance.setModelVersionId("modelVersionId");
482 org.onap.aai.domain.yang.CloudRegion aaiCloudRegion = Mockito.mock(org.onap.aai.domain.yang.CloudRegion.class);
483 String vnfType = "vnfType";
484 lookupKeyMap.put(ResourceKey.SERVICE_INSTANCE_ID, "instanceId");
485 doReturn(service).when(SPY_bbInputSetupUtils).getCatalogServiceByModelUUID(aaiServiceInstance.getModelVersionId());
486 doReturn(aaiServiceInstance).when(SPY_bbInputSetupUtils).getAAIServiceInstanceById("instanceId");
488 doNothing().when(SPY_bbInputSetup).populateObjectsOnAssignAndCreateFlows(requestDetails, service, "bbName",
489 serviceInstance, lookupKeyMap, resourceId, vnfType, null, null);
491 doReturn(serviceInstance).when(SPY_bbInputSetup).getExistingServiceInstance(aaiServiceInstance);
492 doReturn(expected).when(SPY_bbInputSetup).populateGBBWithSIAndAdditionalInfo(requestDetails, serviceInstance,
493 executeBB, requestAction,null);
495 GeneralBuildingBlock actual = SPY_bbInputSetup.getGBBALaCarteNonService(executeBB, requestDetails, lookupKeyMap,
496 requestAction, resourceId, vnfType);
498 assertThat(actual, sameBeanAs(expected));
502 public void testGetGBBALaCarteService() throws Exception {
503 GeneralBuildingBlock expected = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
504 GeneralBuildingBlock.class);
505 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
506 ExecuteBuildingBlock.class);
507 RequestDetails requestDetails = mapper.readValue(
508 new File(RESOURCE_PATH + "RequestDetailsInput_withRelatedInstanceList.json"), RequestDetails.class);
509 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
511 org.onap.so.serviceinstancebeans.Project requestProject = new org.onap.so.serviceinstancebeans.Project();
512 org.onap.so.serviceinstancebeans.OwningEntity requestOwningEntity = new org.onap.so.serviceinstancebeans.OwningEntity();
513 requestDetails.setProject(requestProject);
514 requestDetails.setOwningEntity(requestOwningEntity);
516 Service service = Mockito.mock(Service.class);
517 Customer customer = Mockito.mock(Customer.class);
518 ServiceSubscription serviceSubscription = Mockito.mock(ServiceSubscription.class);
519 Project project = Mockito.mock(Project.class);
520 OwningEntity owningEntity = Mockito.mock(OwningEntity.class);
521 ServiceInstance serviceInstance = Mockito.mock(ServiceInstance.class);
522 String resourceId = "123";
523 String requestAction = "createInstance";
524 executeBB.setaLaCarte(true);
525 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.SERVICE_INSTANCE.toString());
526 org.onap.aai.domain.yang.CloudRegion aaiCloudRegion = Mockito.mock(org.onap.aai.domain.yang.CloudRegion.class);
528 doReturn(service).when(SPY_bbInputSetupUtils)
529 .getCatalogServiceByModelUUID(requestDetails.getModelInfo().getModelVersionId());
530 doReturn(project).when(bbInputSetupMapperLayer).mapRequestProject(requestDetails.getProject());
531 doReturn(owningEntity).when(bbInputSetupMapperLayer)
532 .mapRequestOwningEntity(requestDetails.getOwningEntity());
534 doReturn(customer).when(SPY_bbInputSetup).getCustomerAndServiceSubscription(requestDetails, resourceId);
535 doReturn(serviceInstance).when(SPY_bbInputSetup).getALaCarteServiceInstance(service, requestDetails, customer,
536 project, owningEntity, lookupKeyMap, resourceId, Boolean.TRUE.equals(executeBB.isaLaCarte()),
537 executeBB.getBuildingBlock().getBpmnFlowName());
538 doReturn(expected).when(SPY_bbInputSetup).populateGBBWithSIAndAdditionalInfo(requestDetails, serviceInstance,
539 executeBB, requestAction, customer);
541 GeneralBuildingBlock actual = SPY_bbInputSetup.getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
542 requestAction, resourceId);
544 assertThat(actual, sameBeanAs(expected));
548 public void testGetGBBALaCarteServiceFindServiceByModelVersionId() throws Exception {
549 GeneralBuildingBlock expected = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
550 GeneralBuildingBlock.class);
551 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
552 ExecuteBuildingBlock.class);
553 RequestDetails requestDetails = mapper.readValue(
554 new File(RESOURCE_PATH + "RequestDetailsInput_withRelatedInstanceList.json"), RequestDetails.class);
555 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
557 org.onap.so.serviceinstancebeans.Project requestProject = new org.onap.so.serviceinstancebeans.Project();
558 org.onap.so.serviceinstancebeans.OwningEntity requestOwningEntity = new org.onap.so.serviceinstancebeans.OwningEntity();
559 requestDetails.setProject(requestProject);
560 requestDetails.setOwningEntity(requestOwningEntity);
562 Service service = Mockito.mock(Service.class);
563 Customer customer = Mockito.mock(Customer.class);
564 ServiceSubscription serviceSubscription = Mockito.mock(ServiceSubscription.class);
565 Project project = Mockito.mock(Project.class);
566 OwningEntity owningEntity = Mockito.mock(OwningEntity.class);
567 ServiceInstance serviceInstance = Mockito.mock(ServiceInstance.class);
568 String resourceId = "123";
569 String requestAction = "createInstance";
570 executeBB.setaLaCarte(true);
571 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.SERVICE_INSTANCE.toString());
572 org.onap.aai.domain.yang.CloudRegion aaiCloudRegion = Mockito.mock(org.onap.aai.domain.yang.CloudRegion.class);
574 doReturn(null).when(SPY_bbInputSetupUtils)
575 .getCatalogServiceByModelUUID(requestDetails.getModelInfo().getModelVersionId());
576 doReturn(service).when(SPY_bbInputSetupUtils).getCatalogServiceByModelVersionAndModelInvariantUUID(
577 requestDetails.getModelInfo().getModelVersion(), requestDetails.getModelInfo().getModelInvariantId());
578 doReturn(project).when(bbInputSetupMapperLayer).mapRequestProject(requestDetails.getProject());
579 doReturn(owningEntity).when(bbInputSetupMapperLayer)
580 .mapRequestOwningEntity(requestDetails.getOwningEntity());
582 doReturn(customer).when(SPY_bbInputSetup).getCustomerAndServiceSubscription(requestDetails, resourceId);
583 doReturn(serviceInstance).when(SPY_bbInputSetup).getALaCarteServiceInstance(service, requestDetails, customer,
584 project, owningEntity, lookupKeyMap, resourceId, Boolean.TRUE.equals(executeBB.isaLaCarte()),
585 executeBB.getBuildingBlock().getBpmnFlowName());
586 doReturn(expected).when(SPY_bbInputSetup).populateGBBWithSIAndAdditionalInfo(requestDetails, serviceInstance,
587 executeBB, requestAction,customer);
589 GeneralBuildingBlock actual = SPY_bbInputSetup.getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
590 requestAction, resourceId);
592 assertThat(actual, sameBeanAs(expected));
596 public void testGetGBBALaCarteServiceNoProjectNoOE() throws Exception {
597 GeneralBuildingBlock expected = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
598 GeneralBuildingBlock.class);
599 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
600 ExecuteBuildingBlock.class);
601 RequestDetails requestDetails = mapper.readValue(
602 new File(RESOURCE_PATH + "RequestDetailsInput_withRelatedInstanceList.json"), RequestDetails.class);
603 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
605 Service service = Mockito.mock(Service.class);
606 Customer customer = Mockito.mock(Customer.class);
607 ServiceSubscription serviceSubscription = Mockito.mock(ServiceSubscription.class);
608 ServiceInstance serviceInstance = Mockito.mock(ServiceInstance.class);
609 String resourceId = "123";
610 String requestAction = "createInstance";
611 executeBB.setaLaCarte(true);
612 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.SERVICE_INSTANCE.toString());
613 org.onap.aai.domain.yang.CloudRegion aaiCloudRegion = Mockito.mock(org.onap.aai.domain.yang.CloudRegion.class);
615 Map<String, String> uriKeys = new HashMap<>();
616 uriKeys.put("global-customer-id", "globalCustomerId");
617 uriKeys.put("service-type", "serviceType");
619 doReturn(service).when(SPY_bbInputSetupUtils)
620 .getCatalogServiceByModelUUID(requestDetails.getModelInfo().getModelVersionId());
622 doReturn(customer).when(SPY_bbInputSetup).getCustomerAndServiceSubscription(requestDetails, resourceId);
624 doReturn(serviceInstance).when(SPY_bbInputSetup).getALaCarteServiceInstance(service, requestDetails, customer,
625 null, null, lookupKeyMap, resourceId, Boolean.TRUE.equals(executeBB.isaLaCarte()),
626 executeBB.getBuildingBlock().getBpmnFlowName());
627 doReturn(expected).when(SPY_bbInputSetup).populateGBBWithSIAndAdditionalInfo(requestDetails, serviceInstance,
628 executeBB, requestAction,customer);
630 GeneralBuildingBlock actual = SPY_bbInputSetup.getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
631 requestAction, resourceId);
633 assertThat(actual, sameBeanAs(expected));
637 public void testGetServiceInstanceHelperCreateScenario() throws Exception {
638 RequestDetails requestDetails = new RequestDetails();
639 RequestInfo requestInfo = new RequestInfo();
640 requestInfo.setInstanceName("SharansInstanceName");
641 requestDetails.setRequestInfo(requestInfo);
642 Customer customer = new Customer();
643 String serviceInstanceId = "SharansInstanceId";
644 boolean aLaCarte = true;
645 ServiceInstance expected = new ServiceInstance();
646 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
647 Service service = new Service();
648 service.setModelUUID("modelUUID");
649 String bbName = AssignFlows.SERVICE_INSTANCE.toString();
651 doReturn(null).when(SPY_bbInputSetupUtils).getAAIServiceInstanceByName(requestInfo.getInstanceName(), customer);
652 doReturn(null).when(SPY_bbInputSetupUtils).getAAIServiceInstanceById(serviceInstanceId);
655 doReturn(expected).when(SPY_bbInputSetup).createServiceInstance(requestDetails, null, null,
656 lookupKeyMap, serviceInstanceId);
658 ServiceInstance actual = SPY_bbInputSetup.getServiceInstanceHelper(requestDetails, customer, null, null,
659 lookupKeyMap, serviceInstanceId, aLaCarte, service, bbName);
660 assertThat(actual, sameBeanAs(expected));
664 public void testGetServiceInstanceHelperCreateScenarioExisting() throws Exception {
665 RequestDetails requestDetails = new RequestDetails();
666 RequestInfo requestInfo = new RequestInfo();
667 requestInfo.setInstanceName("SharansInstanceName");
668 requestDetails.setRequestInfo(requestInfo);
669 Customer customer = new Customer();
670 String serviceInstanceId = "SharansInstanceId";
671 boolean aLaCarte = true;
672 Service service = new Service();
673 service.setModelUUID("modelUUID");
674 ServiceInstance expected = new ServiceInstance();
675 org.onap.aai.domain.yang.ServiceInstance serviceInstanceAAI = new org.onap.aai.domain.yang.ServiceInstance();
676 serviceInstanceAAI.setModelVersionId("modelUUID");
677 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
678 String bbName = AssignFlows.SERVICE_INSTANCE.toString();
680 doReturn(serviceInstanceAAI).when(SPY_bbInputSetupUtils)
681 .getAAIServiceInstanceByName(requestInfo.getInstanceName(), customer);
682 doReturn(expected).when(SPY_bbInputSetup).getExistingServiceInstance(serviceInstanceAAI);
684 ServiceInstance actual = SPY_bbInputSetup.getServiceInstanceHelper(requestDetails, customer, null, null,
685 lookupKeyMap, serviceInstanceId, aLaCarte, service, bbName);
686 assertThat(actual, sameBeanAs(expected));
690 public void testGetServiceInstanceHelperCreateScenarioExistingNoNameButWithId() throws Exception {
691 RequestDetails requestDetails = new RequestDetails();
692 RequestInfo requestInfo = new RequestInfo();
693 requestInfo.setInstanceName("SharansInstanceName");
694 requestDetails.setRequestInfo(requestInfo);
695 Customer customer = new Customer();
696 String serviceInstanceId = "SharansInstanceId";
697 boolean aLaCarte = true;
698 Service service = new Service();
699 service.setModelUUID("modelUUID");
700 ServiceInstance expected = new ServiceInstance();
701 org.onap.aai.domain.yang.ServiceInstance serviceInstanceAAI = new org.onap.aai.domain.yang.ServiceInstance();
702 serviceInstanceAAI.setModelVersionId("modelUUID");
703 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
704 String bbName = "ActivateServiceInstanceBB";
706 doReturn(serviceInstanceAAI).when(SPY_bbInputSetupUtils).getAAIServiceInstanceById(serviceInstanceId);
707 doReturn(expected).when(SPY_bbInputSetup).getExistingServiceInstance(serviceInstanceAAI);
709 ServiceInstance actual = SPY_bbInputSetup.getServiceInstanceHelper(requestDetails, customer, null, null,
710 lookupKeyMap, serviceInstanceId, aLaCarte, service, bbName);
711 assertThat(actual, sameBeanAs(expected));
715 public void testGetServiceInstanceHelperCreateScenarioExistingNoNameButWithIdDifferentModel() throws Exception {
716 RequestDetails requestDetails = new RequestDetails();
717 RequestInfo requestInfo = new RequestInfo();
718 requestDetails.setRequestInfo(requestInfo);
719 Customer customer = new Customer();
720 String serviceInstanceId = "SharansInstanceId";
721 boolean aLaCarte = true;
722 Service service = new Service();
723 service.setModelUUID("modelUUID");
724 ServiceInstance expected = new ServiceInstance();
725 org.onap.aai.domain.yang.ServiceInstance serviceInstanceAAI = new org.onap.aai.domain.yang.ServiceInstance();
726 serviceInstanceAAI.setModelVersionId("modelUUIDDifferent");
727 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
728 String bbName = "ActivateServiceInstanceBB";
729 Service differentService = new Service();
730 differentService.setModelUUID("modelUUIDDifferent");
732 doReturn(serviceInstanceAAI).when(SPY_bbInputSetupUtils).getAAIServiceInstanceById(serviceInstanceId);
735 ServiceInstance actual = SPY_bbInputSetup.getServiceInstanceHelper(requestDetails, customer, null, null,
736 lookupKeyMap, serviceInstanceId, aLaCarte, service, bbName);
737 assertThat(actual, sameBeanAs(expected));
740 @Test(expected = Exception.class)
741 public void testGetServiceInstanceHelperCreateScenarioExistingNoNameButWithIdExceptionThrown() throws Exception {
742 RequestDetails requestDetails = new RequestDetails();
743 RequestInfo requestInfo = new RequestInfo();
744 requestDetails.setRequestInfo(requestInfo);
745 Customer customer = new Customer();
746 String serviceInstanceId = "SharansInstanceId";
747 boolean aLaCarte = true;
748 Service service = new Service();
749 service.setModelUUID("modelUUID");
750 org.onap.aai.domain.yang.ServiceInstance serviceInstanceAAI = new org.onap.aai.domain.yang.ServiceInstance();
751 serviceInstanceAAI.setModelVersionId("modelUUIDDifferent");
752 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
753 String bbName = AssignFlows.SERVICE_INSTANCE.toString();
755 ServiceInstance actual = SPY_bbInputSetup.getServiceInstanceHelper(requestDetails, customer, null, null,
756 lookupKeyMap, serviceInstanceId, aLaCarte, service, bbName);
760 public void testPopulateObjectsOnAssignAndCreateFlows() throws Exception {
761 String bbName = AssignFlows.SERVICE_INSTANCE.toString();
762 String instanceName = "instanceName";
763 String vnfType = "vnfType";
764 String resourceId = "networkId";
765 String productFamilyId = "productFamilyId";
766 Service service = Mockito.mock(Service.class);
767 ServiceInstance serviceInstance = Mockito.mock(ServiceInstance.class);
768 RequestDetails requestDetails = Mockito.mock(RequestDetails.class);
769 ModelInfo modelInfo = Mockito.mock(ModelInfo.class);
770 RequestInfo requestInfo = Mockito.mock(RequestInfo.class);
771 RelatedInstanceList[] relatedInstanceList = new RelatedInstanceList[] {};
772 CloudConfiguration cloudConfiguration = new CloudConfiguration();
773 org.onap.so.serviceinstancebeans.Platform platform = Mockito
774 .mock(org.onap.so.serviceinstancebeans.Platform.class);
775 org.onap.so.serviceinstancebeans.LineOfBusiness lineOfBusiness = Mockito
776 .mock(org.onap.so.serviceinstancebeans.LineOfBusiness.class);
777 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
779 doNothing().when(SPY_bbInputSetup).populateL3Network(instanceName, modelInfo, service, bbName, serviceInstance,
780 lookupKeyMap, resourceId, null);
781 doReturn(modelInfo).when(requestDetails).getModelInfo();
782 doReturn(productFamilyId).when(requestInfo).getProductFamilyId();
783 doReturn(requestInfo).when(requestDetails).getRequestInfo();
784 doReturn(instanceName).when(requestInfo).getInstanceName();
785 doReturn(platform).when(requestDetails).getPlatform();
786 doReturn(lineOfBusiness).when(requestDetails).getLineOfBusiness();
787 doReturn(relatedInstanceList).when(requestDetails).getRelatedInstanceList();
788 doReturn(cloudConfiguration).when(requestDetails).getCloudConfiguration();
790 doReturn(ModelType.network).when(modelInfo).getModelType();
791 SPY_bbInputSetup.populateObjectsOnAssignAndCreateFlows(requestDetails, service, bbName, serviceInstance,
792 lookupKeyMap, resourceId, vnfType, null, null);
793 verify(SPY_bbInputSetup, times(1)).populateL3Network(instanceName, modelInfo, service, bbName, serviceInstance,
794 lookupKeyMap, resourceId, null);
795 assertEquals("NetworkId populated", true, lookupKeyMap.get(ResourceKey.NETWORK_ID).equalsIgnoreCase(resourceId));
797 doReturn(ModelType.vnf).when(modelInfo).getModelType();
798 resourceId = "vnfId";
799 doNothing().when(SPY_bbInputSetup).populateGenericVnf(modelInfo, instanceName, platform, lineOfBusiness,
800 service, bbName, serviceInstance, lookupKeyMap, relatedInstanceList, resourceId, vnfType, null, productFamilyId);
801 SPY_bbInputSetup.populateObjectsOnAssignAndCreateFlows(requestDetails, service, bbName, serviceInstance,
802 lookupKeyMap, resourceId, vnfType, null, null);
803 verify(SPY_bbInputSetup, times(1)).populateGenericVnf(modelInfo, instanceName, platform, lineOfBusiness,
804 service, bbName, serviceInstance, lookupKeyMap, relatedInstanceList, resourceId, vnfType, null, productFamilyId);
805 assertEquals("VnfId populated", true, lookupKeyMap.get(ResourceKey.GENERIC_VNF_ID).equalsIgnoreCase(resourceId));
807 doReturn(ModelType.volumeGroup).when(modelInfo).getModelType();
808 resourceId = "volumeGroupId";
809 doNothing().when(SPY_bbInputSetup).populateVolumeGroup(modelInfo, service, bbName, serviceInstance,
810 lookupKeyMap, resourceId, relatedInstanceList, instanceName, vnfType, null);
811 SPY_bbInputSetup.populateObjectsOnAssignAndCreateFlows(requestDetails, service, bbName, serviceInstance,
812 lookupKeyMap, resourceId, vnfType, null, null);
813 verify(SPY_bbInputSetup, times(1)).populateVolumeGroup(modelInfo, service, bbName, serviceInstance,
814 lookupKeyMap, resourceId, relatedInstanceList, instanceName, vnfType, null);
815 assertEquals("VolumeGroupId populated", true, lookupKeyMap.get(ResourceKey.VOLUME_GROUP_ID).equalsIgnoreCase(resourceId));
817 doReturn(ModelType.vfModule).when(modelInfo).getModelType();
818 resourceId = "vfModuleId";
819 doNothing().when(SPY_bbInputSetup).populateVfModule(modelInfo, service, bbName, serviceInstance, lookupKeyMap,
820 resourceId, relatedInstanceList, instanceName, null, cloudConfiguration);
821 SPY_bbInputSetup.populateObjectsOnAssignAndCreateFlows(requestDetails, service, bbName, serviceInstance,
822 lookupKeyMap, resourceId, vnfType, null, null);
823 verify(SPY_bbInputSetup, times(1)).populateVfModule(modelInfo, service, bbName, serviceInstance, lookupKeyMap,
824 resourceId, relatedInstanceList, instanceName, null, cloudConfiguration);
825 assertEquals("VfModuleId populated", true, lookupKeyMap.get(ResourceKey.VF_MODULE_ID).equalsIgnoreCase(resourceId));
829 public void testPopulateGBBWithSIAndAdditionalInfo() throws Exception {
830 GeneralBuildingBlock expected = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpectedWUserParamsInfo.json"),
831 GeneralBuildingBlock.class);
832 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
833 ExecuteBuildingBlock.class);
834 RequestDetails requestDetails = mapper.readValue(
835 new File(RESOURCE_PATH + "RequestDetailsInput_withRelatedInstanceList.json"), RequestDetails.class);
836 RequestContext requestContext = mapper.readValue(new File(RESOURCE_PATH + "RequestContextExpected.json"),
837 RequestContext.class);
838 ServiceInstance serviceInstance = mapper.readValue(
839 new File(RESOURCE_PATH + "ServiceInstance_getServiceInstanceNOAAIExpected.json"),
840 ServiceInstance.class);
841 CloudConfiguration cloudConfiguration = new CloudConfiguration();
842 cloudConfiguration.setTenantId("tenantId");
843 requestDetails.setCloudConfiguration(cloudConfiguration);
844 OrchestrationContext orchestrationContext = new OrchestrationContext();
845 orchestrationContext.setIsRollbackEnabled(false);
847 CloudRegion cloudRegion = new CloudRegion();
848 cloudRegion.setCloudOwner("test-owner-name");
849 cloudRegion.setLcpCloudRegionId("lcpCloudRegionId");
850 cloudRegion.setComplex("complexName");
851 cloudRegion.setTenantId("tenantId");
853 Map<String, String> uriKeys = new HashMap<>();
854 uriKeys.put("global-customer-id","global-customer-id");
855 uriKeys.put("service-type","service-type");
857 Customer customer = new Customer();
858 ServiceSubscription serviceSubscription = new ServiceSubscription();
859 serviceSubscription.setServiceType("subscriptionServiceType");
860 customer.setGlobalCustomerId("globalCustomerId");
861 customer.setSubscriberName("subscriberName");
862 customer.setSubscriberType("subscriberType");
863 customer.setServiceSubscription(serviceSubscription);
865 org.onap.so.bpmn.servicedecomposition.bbobjects.Tenant tenant = new org.onap.so.bpmn.servicedecomposition.bbobjects.Tenant();
866 tenant.setTenantContext("tenantContext");
867 tenant.setTenantId("tenantId");
868 tenant.setTenantName("tenantName");
870 org.onap.aai.domain.yang.CloudRegion aaiCloudRegion = Mockito.mock(org.onap.aai.domain.yang.CloudRegion.class);
871 org.onap.aai.domain.yang.Tenants aaiTenants = Mockito.mock(org.onap.aai.domain.yang.Tenants.class);
872 org.onap.aai.domain.yang.Tenant aaiTenant = new org.onap.aai.domain.yang.Tenant();
873 aaiTenant.setTenantId("tenantId");
874 List<org.onap.aai.domain.yang.Tenant> tenants = new ArrayList<>();
875 tenants.add(aaiTenant);
877 String requestAction = "createInstance";
879 doReturn(uriKeys).when(SPY_bbInputSetupUtils).getURIKeysFromServiceInstance(serviceInstance.getServiceInstanceId());
880 doReturn(customer).when(SPY_bbInputSetup).mapCustomer(uriKeys.get("global-customer-id"),uriKeys.get("service-type"));
881 doReturn(aaiCloudRegion).when(SPY_bbInputSetupUtils).getCloudRegion(requestDetails.getCloudConfiguration());
882 doReturn(orchestrationContext).when(bbInputSetupMapperLayer).mapOrchestrationContext(requestDetails);
883 doReturn(requestContext).when(bbInputSetupMapperLayer).mapRequestContext(requestDetails);
884 doReturn(cloudRegion).when(bbInputSetupMapperLayer).mapCloudRegion(requestDetails.getCloudConfiguration(), aaiCloudRegion);
885 doReturn(tenant).when(bbInputSetupMapperLayer).mapTenant(aaiTenant);
886 doReturn(aaiTenants).when(aaiCloudRegion).getTenants();
887 doReturn(tenants).when(aaiTenants).getTenant();
889 GeneralBuildingBlock actual = SPY_bbInputSetup.populateGBBWithSIAndAdditionalInfo(requestDetails,
890 serviceInstance, executeBB, requestAction, null);
892 assertThat(actual, sameBeanAs(expected));
896 public void testGetServiceInstanceNOAAI() throws Exception {
897 ServiceInstance expected = mapper.readValue(
898 new File(RESOURCE_PATH + "ServiceInstance_getServiceInstanceNOAAIExpected.json"),
899 ServiceInstance.class);
900 Service service = mapper.readValue(
901 new File(RESOURCE_PATH + "CatalogDBService_getServiceInstanceNOAAIInput.json"), Service.class);
902 Customer customer = mapper.readValue(new File(RESOURCE_PATH + "Customer.json"), Customer.class);
903 Project project = mapper.readValue(new File(RESOURCE_PATH + "Project.json"), Project.class);
904 OwningEntity owningEntity = mapper.readValue(new File(RESOURCE_PATH + "OwningEntity.json"), OwningEntity.class);
905 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
907 ExecuteBuildingBlock executeBB = new ExecuteBuildingBlock();
908 executeBB.setaLaCarte(true);
909 BuildingBlock buildingBlock = new BuildingBlock();
910 buildingBlock.setBpmnFlowName(AssignFlows.SERVICE_INSTANCE.toString());
911 executeBB.setBuildingBlock(buildingBlock);
912 RequestDetails requestDetails = new RequestDetails();
913 RequestInfo reqInfo = new RequestInfo();
914 reqInfo.setInstanceName("serviceInstanceName");
915 requestDetails.setRequestInfo(reqInfo);
916 ModelInfo modelInfo = new ModelInfo();
917 modelInfo.setModelType(ModelType.service);
918 requestDetails.setModelInfo(modelInfo);
919 doReturn(null).when(SPY_bbInputSetupUtils)
920 .getAAIServiceInstanceByName(requestDetails.getRequestInfo().getInstanceName(), customer);
921 doReturn(expected.getModelInfoServiceInstance()).when(bbInputSetupMapperLayer)
922 .mapCatalogServiceIntoServiceInstance(service);
923 doReturn(null).when(SPY_bbInputSetupUtils).getAAIServiceInstanceById(any(String.class));
924 String serviceInstanceId = "3655a595-05d1-433c-93c0-3afd6b572545";
925 boolean aLaCarte = true;
927 ServiceInstance actual = SPY_bbInputSetup.getALaCarteServiceInstance(service, requestDetails, customer, project,
928 owningEntity, lookupKeyMap, serviceInstanceId, aLaCarte,
929 executeBB.getBuildingBlock().getBpmnFlowName());
931 assertThat(actual, sameBeanAs(expected));
935 public void testGetServiceSubscription() throws IOException {
936 ServiceSubscription expected = new ServiceSubscription();
937 RequestDetails requestDetails = new RequestDetails();
938 RequestParameters params = new RequestParameters();
939 params.setSubscriptionServiceType("subscriptionServiceType");
940 requestDetails.setRequestParameters(params);
941 org.onap.aai.domain.yang.ServiceSubscription aaiServiceSubscription = new org.onap.aai.domain.yang.ServiceSubscription();
942 Customer customer = new Customer();
943 customer.setGlobalCustomerId("globalCustomerId");
944 doReturn(aaiServiceSubscription).when(SPY_bbInputSetupUtils).getAAIServiceSubscription(
945 customer.getGlobalCustomerId(), requestDetails.getRequestParameters().getSubscriptionServiceType());
946 doReturn(expected).when(bbInputSetupMapperLayer).mapAAIServiceSubscription(aaiServiceSubscription);
948 ServiceSubscription actual = SPY_bbInputSetup.getServiceSubscription(requestDetails, customer);
949 assertThat(actual, sameBeanAs(expected));
953 public void testGetCustomer() throws IOException {
954 Customer expected = new Customer();
955 RequestDetails requestDetails = new RequestDetails();
956 SubscriberInfo subscriberInfo = new SubscriberInfo();
957 subscriberInfo.setGlobalSubscriberId("globalSubscriberId");
958 requestDetails.setSubscriberInfo(subscriberInfo);
959 org.onap.aai.domain.yang.Customer aaiCustomer = new org.onap.aai.domain.yang.Customer();
960 doReturn(aaiCustomer).when(SPY_bbInputSetupUtils)
961 .getAAICustomer(requestDetails.getSubscriberInfo().getGlobalSubscriberId());
962 doReturn(expected).when(bbInputSetupMapperLayer).mapAAICustomer(aaiCustomer);
964 Customer actual = SPY_bbInputSetup.getCustomerFromRequest(requestDetails);
965 assertThat(actual, sameBeanAs(expected));
969 public void testGetExistingServiceInstance() throws Exception {
970 org.onap.aai.domain.yang.ServiceInstance serviceInstanceAAI = new org.onap.aai.domain.yang.ServiceInstance();
971 ServiceInstance expected = new ServiceInstance();
973 doReturn(expected).when(bbInputSetupMapperLayer)
974 .mapAAIServiceInstanceIntoServiceInstance(serviceInstanceAAI);
977 ServiceInstance actual = SPY_bbInputSetup.getExistingServiceInstance(serviceInstanceAAI);
978 assertThat(actual, sameBeanAs(expected));
982 public void testPopulateNetworkCollectionAndInstanceGroupAssign() throws Exception {
983 Service service = Mockito.mock(Service.class);
984 String key = "collectionCustId";
985 ServiceInstance serviceInstance = mapper.readValue(
986 new File(RESOURCE_PATH + "ServiceInstance_getServiceInstanceNOAAIExpected.json"),
987 ServiceInstance.class);
988 String resourceId = "123";
989 Collection collection = SPY_bbInputSetup.createCollection(resourceId);
990 InstanceGroup instanceGroup = SPY_bbInputSetup.createInstanceGroup();
991 assertNull(serviceInstance.getCollection());
992 doReturn(true).when(SPY_bbInputSetup).isVlanTagging(service, key);
993 doReturn(collection).when(SPY_bbInputSetup).createCollection(resourceId);
994 doReturn(instanceGroup).when(SPY_bbInputSetup).createInstanceGroup();
995 doNothing().when(SPY_bbInputSetup).mapCatalogCollection(service, collection, key);
997 NetworkCollectionResourceCustomization networkCollection = new NetworkCollectionResourceCustomization();
998 networkCollection.setModelCustomizationUUID(key);
999 networkCollection.setCollectionResource(new CollectionResource());
1000 networkCollection.getCollectionResource().setInstanceGroup(new org.onap.so.db.catalog.beans.InstanceGroup());
1001 networkCollection.getCollectionResource().getInstanceGroup().setToscaNodeType("NetworkCollectionResource");
1002 networkCollection.getCollectionResource().getInstanceGroup().setType(InstanceGroupType.L3_NETWORK);
1003 networkCollection.getCollectionResource().getInstanceGroup().setCollectionInstanceGroupCustomizations(new ArrayList<>());
1004 List<CollectionResourceCustomization> customizations = new ArrayList<>();
1005 customizations.add(networkCollection);
1006 doReturn(customizations).when(service).getCollectionResourceCustomizations();
1008 SPY_bbInputSetup.populateNetworkCollectionAndInstanceGroupAssign(service,
1009 AssignFlows.NETWORK_COLLECTION.toString(), serviceInstance, resourceId, key);
1011 assertNotNull(serviceInstance.getCollection());
1012 assertNotNull(serviceInstance.getCollection().getInstanceGroup());
1014 verify(SPY_bbInputSetup, times(1)).mapCatalogCollection(service, serviceInstance.getCollection(), key);
1015 verify(SPY_bbInputSetup, times(1)).mapCatalogNetworkCollectionInstanceGroup(service,
1016 serviceInstance.getCollection().getInstanceGroup(), key);
1020 public void testPopulateInstanceGroup() throws Exception {
1021 ModelInfo modelInfo = Mockito.mock(ModelInfo.class);
1022 Service service = Mockito.mock(Service.class);
1023 List<InstanceGroup> instanceGroups = Mockito.spy(new ArrayList<>());
1024 ServiceInstance serviceInstance = Mockito.spy(new ServiceInstance());
1025 serviceInstance.setServiceInstanceId("si-001");
1026 serviceInstance.setServiceInstanceName("test service instance");
1027 serviceInstance.setInstanceGroups(instanceGroups);
1029 SPY_bbInputSetup.populateInstanceGroup(modelInfo, service, serviceInstance, "instance-group-001", "test instance group");
1030 verify(SPY_bbInputSetup, times(1)).mapCatalogInstanceGroup(isA(InstanceGroup.class), isA(ModelInfo.class), isA(Service.class));
1031 verify(instanceGroups, times(1)).add(isA(InstanceGroup.class));
1035 public void testIsVlanTagging() throws Exception {
1036 boolean expected = true;
1037 Service service = Mockito.mock(Service.class);
1038 String key = "collectionCustId";
1039 NetworkCollectionResourceCustomization networkCollection = new NetworkCollectionResourceCustomization();
1040 networkCollection.setModelCustomizationUUID(key);
1041 networkCollection.setCollectionResource(new CollectionResource());
1042 networkCollection.getCollectionResource().setInstanceGroup(new org.onap.so.db.catalog.beans.InstanceGroup());
1043 networkCollection.getCollectionResource().getInstanceGroup().setToscaNodeType("org.openecomp.resource.cr.NetworkCollectionResource1806");
1044 List<CollectionResourceCustomization> customizations = new ArrayList<>();
1045 customizations.add(networkCollection);
1046 doReturn(customizations).when(service).getCollectionResourceCustomizations();
1047 boolean actual = SPY_bbInputSetup.isVlanTagging(service, key);
1048 assertEquals("Is Vlan Tagging check.", expected, actual);
1052 public void testPopulateVolumeGroup() throws Exception {
1053 RequestDetails requestDetails = new RequestDetails();
1054 RelatedInstanceList ril = new RelatedInstanceList();
1055 RelatedInstance ri = new RelatedInstance();
1056 ModelInfo mi = new ModelInfo();
1057 mi.setModelType(ModelType.vnf);
1058 mi.setModelCustomizationUuid("vnfModelCustomizationUUID");
1059 ri.setModelInfo(mi);
1060 ril.setRelatedInstance(ri);
1061 requestDetails.setRelatedInstanceList(new RelatedInstanceList[] { ril });
1063 ModelInfo modelInfo = new ModelInfo();
1064 modelInfo.setModelType(ModelType.volumeGroup);
1066 RequestInfo reqInfo = new RequestInfo();
1067 reqInfo.setInstanceName("volumeGroupName");
1068 requestDetails.setModelInfo(modelInfo);
1069 requestDetails.setRequestInfo(reqInfo);
1071 ServiceInstance serviceInstance = new ServiceInstance();
1072 GenericVnf vnf = new GenericVnf();
1073 vnf.setVnfId("genericVnfId");
1075 VolumeGroup vg = new VolumeGroup();
1076 vg.setVolumeGroupName("volumeGroupName");
1077 vg.setVolumeGroupId("volumeGroupId");
1078 vnf.getVolumeGroups().add(vg);
1079 serviceInstance.getVnfs().add(vnf);
1081 Service service = mapper.readValue(
1082 new File(RESOURCE_PATH + "CatalogDBService_getServiceInstanceNOAAIInput.json"), Service.class);
1083 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
1084 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "genericVnfId");
1086 String bbName = AssignFlows.VOLUME_GROUP.toString();
1087 String resourceId = "123";
1088 doNothing().when(SPY_bbInputSetup).mapCatalogVolumeGroup(isA(VolumeGroup.class), eq(modelInfo),
1089 eq(service), eq("vnfModelCustomizationUUID"));
1090 org.onap.aai.domain.yang.GenericVnf aaiGenericVnf = new org.onap.aai.domain.yang.GenericVnf();
1091 aaiGenericVnf.setModelCustomizationId("vnfModelCustomizationUUID");
1092 doReturn(aaiGenericVnf).when(SPY_bbInputSetupUtils).getAAIGenericVnf(vnf.getVnfId());
1094 lookupKeyMap.put(ResourceKey.VOLUME_GROUP_ID, "volumeGroupId");
1095 SPY_bbInputSetup.populateVolumeGroup(modelInfo, service, bbName, serviceInstance, lookupKeyMap, resourceId,
1096 requestDetails.getRelatedInstanceList(), reqInfo.getInstanceName(), null, null);
1097 verify(SPY_bbInputSetup, times(1)).mapCatalogVolumeGroup(vg, modelInfo, service, "vnfModelCustomizationUUID");
1098 vnf.getVolumeGroups().clear();
1099 SPY_bbInputSetup.populateVolumeGroup(modelInfo, service, bbName, serviceInstance, lookupKeyMap, resourceId,
1100 requestDetails.getRelatedInstanceList(), reqInfo.getInstanceName(), null, null);
1101 verify(SPY_bbInputSetup, times(1)).mapCatalogVolumeGroup(vnf.getVolumeGroups().get(0), modelInfo, service,
1102 "vnfModelCustomizationUUID");
1106 public void testMapCatalogVolumeGroup() {
1107 VolumeGroup volumeGroup = new VolumeGroup();
1108 RequestDetails requestDetails = new RequestDetails();
1109 ModelInfo modelInfo = new ModelInfo();
1110 modelInfo.setModelCustomizationUuid("modelCustomizationUUID");
1111 requestDetails.setModelInfo(modelInfo);
1112 Service service = new Service();
1113 VnfResourceCustomization resourceCust = new VnfResourceCustomization();
1114 resourceCust.setModelCustomizationUUID("vnfModelCustomizationUUID");
1115 service.getVnfCustomizations().add(resourceCust);
1116 VfModuleCustomization vfResourceCust = new VfModuleCustomization();
1117 vfResourceCust.setModelCustomizationUUID("modelCustomizationUUID");
1118 ModelInfoVfModule modelInfoVfModule = new ModelInfoVfModule();
1119 resourceCust.getVfModuleCustomizations().add(vfResourceCust);
1121 doReturn(modelInfoVfModule).when(bbInputSetupMapperLayer).mapCatalogVfModuleToVfModule(vfResourceCust);
1123 SPY_bbInputSetup.mapCatalogVolumeGroup(volumeGroup, modelInfo, service, "vnfModelCustomizationUUID");
1125 assertEquals(modelInfoVfModule, volumeGroup.getModelInfoVfModule());
1129 public void testPopulateL3Network() throws JsonParseException, JsonMappingException, IOException {
1130 String instanceName = "networkName";
1131 ModelInfo modelInfo = new ModelInfo();
1132 modelInfo.setModelType(ModelType.network);
1134 ServiceInstance serviceInstance = new ServiceInstance();
1135 L3Network network = new L3Network();
1136 network.setNetworkId("networkId");
1137 network.setNetworkName("networkName");
1138 serviceInstance.getNetworks().add(network);
1139 String resourceId = "123";
1141 Service service = mapper.readValue(
1142 new File(RESOURCE_PATH + "CatalogDBService_getServiceInstanceNOAAIInput.json"), Service.class);
1143 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
1144 lookupKeyMap.put(ResourceKey.NETWORK_ID, "networkId");
1145 String bbName = AssignFlows.NETWORK_A_LA_CARTE.toString();
1147 doNothing().when(SPY_bbInputSetup).mapCatalogNetwork(network, modelInfo, service);
1149 SPY_bbInputSetup.populateL3Network(instanceName, modelInfo, service, bbName, serviceInstance, lookupKeyMap,
1152 lookupKeyMap.put(ResourceKey.NETWORK_ID, null);
1154 SPY_bbInputSetup.populateL3Network(instanceName, modelInfo, service, bbName, serviceInstance, lookupKeyMap,
1156 verify(SPY_bbInputSetup, times(1)).mapCatalogNetwork(network, modelInfo, service);
1158 instanceName = "networkName2";
1159 L3Network network2 = SPY_bbInputSetup.createNetwork(lookupKeyMap, instanceName, resourceId, null);
1160 SPY_bbInputSetup.populateL3Network(instanceName, modelInfo, service, bbName, serviceInstance, lookupKeyMap,
1162 verify(SPY_bbInputSetup, times(2)).mapCatalogNetwork(network2, modelInfo, service);
1166 public void testMapCatalogNetwork() {
1167 ModelInfoNetwork modelInfoNetwork = new ModelInfoNetwork();
1168 L3Network network = new L3Network();
1170 RequestDetails requestDetails = new RequestDetails();
1171 ModelInfo modelInfo = new ModelInfo();
1172 modelInfo.setModelCustomizationUuid("modelCustomizationUUID");
1173 requestDetails.setModelInfo(modelInfo);
1174 Service service = new Service();
1175 NetworkResourceCustomization resourceCust = new NetworkResourceCustomization();
1176 resourceCust.setModelCustomizationUUID("modelCustomizationUUID");
1177 service.setNetworkCustomizations(Arrays.asList(new NetworkResourceCustomization[] { resourceCust }));
1179 doReturn(modelInfoNetwork).when(bbInputSetupMapperLayer).mapCatalogNetworkToNetwork(resourceCust);
1181 SPY_bbInputSetup.mapCatalogNetwork(network, modelInfo, service);
1183 assertEquals(modelInfoNetwork, network.getModelInfoNetwork());
1187 public void testPopulateConfiguration() throws JsonParseException, JsonMappingException, IOException {
1188 String instanceName = "configurationName";
1189 ModelInfo modelInfo = new ModelInfo();
1190 modelInfo.setModelCustomizationUuid("72d9d1cd-f46d-447a-abdb-451d6fb05fa9");
1192 ServiceInstance serviceInstance = new ServiceInstance();
1193 Configuration configuration = new Configuration();
1194 configuration.setConfigurationId("configurationId");
1195 configuration.setConfigurationName("configurationName");
1196 serviceInstance.getConfigurations().add(configuration);
1197 String resourceId = "configurationId";
1198 String vnfcName = "vnfcName";
1200 Service service = mapper.readValue(
1201 new File(RESOURCE_PATH + "CatalogDBService_getServiceInstanceNOAAIInput.json"), Service.class);
1202 ConfigurationResourceCustomization configurationCust = new ConfigurationResourceCustomization();
1203 configurationCust.setModelCustomizationUUID("72d9d1cd-f46d-447a-abdb-451d6fb05fa9");
1204 service.getConfigurationCustomizations().add(configurationCust);
1205 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
1206 lookupKeyMap.put(ResourceKey.CONFIGURATION_ID, "configurationId");
1207 String bbName = AssignFlows.FABRIC_CONFIGURATION.toString();
1208 ConfigurationResourceKeys configResourceKeys = new ConfigurationResourceKeys();
1209 configResourceKeys.setCvnfcCustomizationUUID("cvnfcCustomizationUUID");
1210 configResourceKeys.setVfModuleCustomizationUUID("vfModuleCustomizationUUID");
1211 configResourceKeys.setVnfResourceCustomizationUUID("vnfResourceCustomizationUUID");
1212 configResourceKeys.setVnfcName(vnfcName);
1213 Vnfc vnfc = new Vnfc();
1214 vnfc.setVnfcName(vnfcName);
1216 doNothing().when(SPY_bbInputSetup).mapCatalogConfiguration(configuration, modelInfo, service, configResourceKeys);
1217 doReturn(vnfc).when(SPY_bbInputSetup).getVnfcToConfiguration(vnfcName);
1218 SPY_bbInputSetup.populateConfiguration(modelInfo, service, bbName, serviceInstance, lookupKeyMap, resourceId,
1219 instanceName, configResourceKeys);
1220 verify(SPY_bbInputSetup, times(1)).mapCatalogConfiguration(configuration, modelInfo, service, configResourceKeys);
1222 lookupKeyMap.put(ResourceKey.CONFIGURATION_ID, null);
1224 SPY_bbInputSetup.populateConfiguration(modelInfo, service, bbName, serviceInstance, lookupKeyMap, resourceId,
1225 instanceName, configResourceKeys);
1226 verify(SPY_bbInputSetup, times(2)).mapCatalogConfiguration(configuration, modelInfo, service, configResourceKeys);
1228 instanceName = "configurationName2";
1229 resourceId = "resourceId2";
1230 lookupKeyMap.put(ResourceKey.CONFIGURATION_ID, "configurationId2");
1231 Configuration configuration2 = SPY_bbInputSetup.createConfiguration(lookupKeyMap, instanceName, resourceId);
1232 doReturn(configuration2).when(SPY_bbInputSetup).createConfiguration(lookupKeyMap, instanceName, resourceId);
1233 doNothing().when(SPY_bbInputSetup).mapCatalogConfiguration(configuration2, modelInfo, service, configResourceKeys);
1234 SPY_bbInputSetup.populateConfiguration(modelInfo, service, bbName, serviceInstance, lookupKeyMap, resourceId,
1235 instanceName, configResourceKeys);
1236 verify(SPY_bbInputSetup, times(1)).mapCatalogConfiguration(configuration2, modelInfo, service, configResourceKeys);
1240 public void testMapCatalogConfiguration() {
1241 ModelInfoNetwork modelInfoNetwork = new ModelInfoNetwork();
1242 L3Network network = new L3Network();
1244 RequestDetails requestDetails = new RequestDetails();
1245 ModelInfo modelInfo = new ModelInfo();
1246 modelInfo.setModelCustomizationUuid("modelCustomizationUUID");
1247 requestDetails.setModelInfo(modelInfo);
1248 Service service = new Service();
1249 NetworkResourceCustomization resourceCust = new NetworkResourceCustomization();
1250 resourceCust.setModelCustomizationUUID("modelCustomizationUUID");
1251 service.setNetworkCustomizations(Arrays.asList(new NetworkResourceCustomization[] { resourceCust }));
1253 doReturn(modelInfoNetwork).when(bbInputSetupMapperLayer).mapCatalogNetworkToNetwork(resourceCust);
1255 SPY_bbInputSetup.mapCatalogNetwork(network, modelInfo, service);
1257 assertEquals(modelInfoNetwork, network.getModelInfoNetwork());
1261 public void testPopulateFabricConfiguration() throws JsonParseException, JsonMappingException, IOException {
1262 String instanceName = "configurationName";
1263 ModelInfo modelInfo = new ModelInfo();
1264 modelInfo.setModelCustomizationUuid("72d9d1cd-f46d-447a-abdb-451d6fb05fa9");
1266 ServiceInstance serviceInstance = new ServiceInstance();
1267 Configuration configuration = new Configuration();
1268 configuration.setConfigurationId("configurationId");
1269 configuration.setConfigurationName("configurationName");
1270 serviceInstance.getConfigurations().add(configuration);
1271 String resourceId = "configurationId";
1272 String vnfcName = "vnfcName";
1274 Service service = mapper.readValue(
1275 new File(RESOURCE_PATH + "CatalogDBService_getServiceInstanceNOAAIInput.json"), Service.class);
1276 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
1277 lookupKeyMap.put(ResourceKey.CONFIGURATION_ID, "configurationId");
1278 String bbName = AssignFlows.FABRIC_CONFIGURATION.toString();
1279 ConfigurationResourceKeys configResourceKeys = new ConfigurationResourceKeys();
1280 configResourceKeys.setCvnfcCustomizationUUID("cvnfcCustomizationUUID");
1281 configResourceKeys.setVfModuleCustomizationUUID("vfModuleCustomizationUUID");
1282 configResourceKeys.setVnfResourceCustomizationUUID("vnfResourceCustomizationUUID");
1283 configResourceKeys.setVnfcName(vnfcName);
1284 Vnfc vnfc = new Vnfc();
1285 vnfc.setVnfcName(vnfcName);
1287 CvnfcConfigurationCustomization vnfVfmoduleCvnfcConfigurationCustomization = new CvnfcConfigurationCustomization();
1288 ConfigurationResource configurationResource = new ConfigurationResource();
1289 configurationResource.setModelUUID("modelUUID");
1290 configurationResource.setModelInvariantUUID("modelInvariantUUID");
1291 vnfVfmoduleCvnfcConfigurationCustomization.setConfigurationResource(configurationResource);
1293 doReturn(null).when(SPY_bbInputSetup).findConfigurationResourceCustomization(modelInfo, service);
1294 doReturn(vnfc).when(SPY_bbInputSetup).getVnfcToConfiguration(vnfcName);
1296 SPY_bbInputSetup.populateConfiguration(modelInfo, service, bbName, serviceInstance, lookupKeyMap, resourceId,
1297 instanceName, configResourceKeys);
1298 verify(SPY_bbInputSetup, times(1)).mapCatalogConfiguration(configuration, modelInfo, service, configResourceKeys);
1302 public void testPopulateGenericVnf() throws JsonParseException, JsonMappingException, IOException {
1303 org.onap.so.serviceinstancebeans.Platform platform = new org.onap.so.serviceinstancebeans.Platform();
1304 org.onap.so.serviceinstancebeans.LineOfBusiness lineOfBusiness = new org.onap.so.serviceinstancebeans.LineOfBusiness();
1305 String instanceName = "vnfName";
1306 ModelInfo modelInfo = new ModelInfo();
1307 modelInfo.setModelType(ModelType.vnf);
1309 ServiceInstance serviceInstance = new ServiceInstance();
1310 GenericVnf vnf = new GenericVnf();
1311 vnf.setVnfId("genericVnfId");
1312 vnf.setVnfName("vnfName");
1313 serviceInstance.getVnfs().add(vnf);
1314 String vnfType = "vnfType";
1315 RequestDetails requestDetails = mapper.readValue(new File(RESOURCE_PATH + "RequestDetails_CreateVnf.json"),
1316 RequestDetails.class);
1318 Service service = mapper.readValue(
1319 new File(RESOURCE_PATH + "CatalogDBService_getServiceInstanceNOAAIInput.json"), Service.class);
1320 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
1321 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "genericVnfId");
1322 String bbName = AssignFlows.VNF.toString();
1324 Platform expectedPlatform = new Platform();
1325 LineOfBusiness expectedLineOfBusiness = new LineOfBusiness();
1326 String resourceId = "123";
1327 doReturn(expectedPlatform).when(bbInputSetupMapperLayer).mapRequestPlatform(platform);
1328 doReturn(expectedLineOfBusiness).when(bbInputSetupMapperLayer).mapRequestLineOfBusiness(lineOfBusiness);
1329 org.onap.aai.domain.yang.GenericVnf vnfAAI = new org.onap.aai.domain.yang.GenericVnf();
1330 vnfAAI.setModelCustomizationId("modelCustId");
1331 doReturn(vnfAAI).when(SPY_bbInputSetupUtils).getAAIGenericVnf(vnf.getVnfId());
1332 doNothing().when(SPY_bbInputSetup).mapCatalogVnf(vnf, modelInfo, service);
1333 org.onap.aai.domain.yang.InstanceGroup instanceGroupAAI = new org.onap.aai.domain.yang.InstanceGroup();
1334 doReturn(instanceGroupAAI).when(SPY_bbInputSetupUtils).getAAIInstanceGroup(any());
1335 org.onap.so.db.catalog.beans.InstanceGroup catalogInstanceGroup = new org.onap.so.db.catalog.beans.InstanceGroup();
1336 doReturn(catalogInstanceGroup).when(SPY_bbInputSetupUtils).getCatalogInstanceGroup(any());
1338 SPY_bbInputSetup.populateGenericVnf(modelInfo, instanceName, platform, lineOfBusiness, service, bbName,
1339 serviceInstance, lookupKeyMap, requestDetails.getRelatedInstanceList(), resourceId, vnfType, null,
1340 requestDetails.getRequestInfo().getProductFamilyId());
1342 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, null);
1344 SPY_bbInputSetup.populateGenericVnf(modelInfo, instanceName, platform, lineOfBusiness, service, bbName,
1345 serviceInstance, lookupKeyMap, requestDetails.getRelatedInstanceList(), resourceId, vnfType, null,
1346 requestDetails.getRequestInfo().getProductFamilyId());
1347 verify(SPY_bbInputSetup, times(1)).mapCatalogVnf(vnf, modelInfo, service);
1349 instanceName = "vnfName2";
1350 GenericVnf vnf2 = SPY_bbInputSetup.createGenericVnf(lookupKeyMap, instanceName, platform, lineOfBusiness,
1351 resourceId, vnfType, null, requestDetails.getRequestInfo().getProductFamilyId());
1352 doReturn(vnf2).when(SPY_bbInputSetup).createGenericVnf(lookupKeyMap, instanceName, platform, lineOfBusiness,
1353 resourceId, vnfType, null, requestDetails.getRequestInfo().getProductFamilyId());
1354 doNothing().when(SPY_bbInputSetup).mapNetworkCollectionInstanceGroup(vnf2, "{instanceGroupId}");
1355 doNothing().when(SPY_bbInputSetup).mapVnfcCollectionInstanceGroup(vnf2, modelInfo, service);
1357 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "genericVnfId2");
1359 SPY_bbInputSetup.populateGenericVnf(modelInfo, instanceName, platform, lineOfBusiness, service, bbName,
1360 serviceInstance, lookupKeyMap, requestDetails.getRelatedInstanceList(), resourceId, vnfType, null,
1361 requestDetails.getRequestInfo().getProductFamilyId());
1362 verify(SPY_bbInputSetup, times(2)).mapCatalogVnf(vnf2, modelInfo, service);
1363 verify(SPY_bbInputSetup, times(2)).mapNetworkCollectionInstanceGroup(vnf2, "{instanceGroupId}");
1364 verify(SPY_bbInputSetup, times(2)).mapVnfcCollectionInstanceGroup(vnf2, modelInfo, service);
1368 public void testMapVnfcCollectionInstanceGroup() {
1369 VnfResourceCustomization vnfResourceCust = Mockito.mock(VnfResourceCustomization.class);
1370 GenericVnf genericVnf = new GenericVnf();
1371 ModelInfo modelInfo = Mockito.mock(ModelInfo.class);
1372 Service service = Mockito.mock(Service.class);
1373 org.onap.so.db.catalog.beans.InstanceGroup instanceGroup = new org.onap.so.db.catalog.beans.InstanceGroup();
1374 instanceGroup.setModelUUID("modelUUID");
1375 List<VnfcInstanceGroupCustomization> vnfcInstanceGroups = new ArrayList<>();
1376 VnfcInstanceGroupCustomization vnfcInstanceGroupCust = new VnfcInstanceGroupCustomization();
1377 vnfcInstanceGroupCust.setInstanceGroup(instanceGroup);
1378 vnfcInstanceGroupCust.setFunction("function");
1379 vnfcInstanceGroupCust.setDescription("description");
1380 vnfcInstanceGroups.add(vnfcInstanceGroupCust);
1382 ModelInfoInstanceGroup modelInfoInstanceGroup = new ModelInfoInstanceGroup();
1383 modelInfoInstanceGroup.setModelUUID("modelUUID");
1384 doReturn(vnfResourceCust).when(SPY_bbInputSetup).getVnfResourceCustomizationFromService(modelInfo, service);
1385 doReturn(vnfcInstanceGroups).when(vnfResourceCust).getVnfcInstanceGroupCustomizations();
1386 doReturn(instanceGroup).when(SPY_bbInputSetupUtils).getCatalogInstanceGroup("modelUUID");
1387 doReturn(modelInfoInstanceGroup).when(bbInputSetupMapperLayer).mapCatalogInstanceGroupToInstanceGroup(null, instanceGroup);
1389 SPY_bbInputSetup.mapVnfcCollectionInstanceGroup(genericVnf, modelInfo, service);
1391 assertEquals("Instance Group was created", true, genericVnf.getInstanceGroups().size() == 1);
1394 public void testPopulateGenericVnfWhereVnfTypeIsNull()
1395 throws JsonParseException, JsonMappingException, IOException {
1396 org.onap.so.serviceinstancebeans.Platform platform = new org.onap.so.serviceinstancebeans.Platform();
1397 org.onap.so.serviceinstancebeans.LineOfBusiness lineOfBusiness = new org.onap.so.serviceinstancebeans.LineOfBusiness();
1398 String instanceName = "vnfName";
1399 ModelInfo modelInfo = new ModelInfo();
1400 modelInfo.setModelType(ModelType.vnf);
1402 ServiceInstance serviceInstance = new ServiceInstance();
1403 GenericVnf vnf = new GenericVnf();
1404 vnf.setVnfId("genericVnfId");
1405 vnf.setVnfName("vnfName");
1406 serviceInstance.getVnfs().add(vnf);
1407 String vnfType = null;
1408 RequestDetails requestDetails = mapper.readValue(new File(RESOURCE_PATH + "RequestDetails_CreateVnf.json"),
1409 RequestDetails.class);
1411 Service service = mapper.readValue(
1412 new File(RESOURCE_PATH + "CatalogDBService_getServiceInstanceNOAAIInput.json"), Service.class);
1413 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
1414 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "genericVnfId");
1415 String bbName = AssignFlows.VNF.toString();
1417 Platform expectedPlatform = new Platform();
1418 LineOfBusiness expectedLineOfBusiness = new LineOfBusiness();
1419 String resourceId = "123";
1420 doReturn(expectedPlatform).when(bbInputSetupMapperLayer).mapRequestPlatform(platform);
1421 doReturn(expectedLineOfBusiness).when(bbInputSetupMapperLayer).mapRequestLineOfBusiness(lineOfBusiness);
1422 org.onap.aai.domain.yang.GenericVnf vnfAAI = new org.onap.aai.domain.yang.GenericVnf();
1423 vnfAAI.setModelCustomizationId("modelCustId");
1424 doReturn(vnfAAI).when(SPY_bbInputSetupUtils).getAAIGenericVnf(vnf.getVnfId());
1425 doNothing().when(SPY_bbInputSetup).mapCatalogVnf(vnf, modelInfo, service);
1426 org.onap.aai.domain.yang.InstanceGroup instanceGroupAAI = new org.onap.aai.domain.yang.InstanceGroup();
1427 doReturn(instanceGroupAAI).when(SPY_bbInputSetupUtils).getAAIInstanceGroup(any());
1428 org.onap.so.db.catalog.beans.InstanceGroup catalogInstanceGroup = new org.onap.so.db.catalog.beans.InstanceGroup();
1429 doReturn(catalogInstanceGroup).when(SPY_bbInputSetupUtils).getCatalogInstanceGroup(any());
1431 SPY_bbInputSetup.populateGenericVnf(modelInfo, instanceName, platform, lineOfBusiness, service, bbName,
1432 serviceInstance, lookupKeyMap, requestDetails.getRelatedInstanceList(), resourceId, vnfType, null,
1433 requestDetails.getRequestInfo().getProductFamilyId());
1435 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, null);
1437 SPY_bbInputSetup.populateGenericVnf(modelInfo, instanceName, platform, lineOfBusiness, service, bbName,
1438 serviceInstance, lookupKeyMap, requestDetails.getRelatedInstanceList(), resourceId, vnfType, null,
1439 requestDetails.getRequestInfo().getProductFamilyId());
1440 verify(SPY_bbInputSetup, times(1)).mapCatalogVnf(vnf, modelInfo, service);
1442 instanceName = "vnfName2";
1443 GenericVnf vnf2 = SPY_bbInputSetup.createGenericVnf(lookupKeyMap, instanceName, platform, lineOfBusiness,
1444 resourceId, vnfType, null, requestDetails.getRequestInfo().getProductFamilyId());
1446 org.onap.aai.domain.yang.GenericVnf vnf2AAI = new org.onap.aai.domain.yang.GenericVnf();
1447 vnfAAI.setModelCustomizationId("modelCustId2");
1448 doReturn(vnf2AAI).when(SPY_bbInputSetupUtils).getAAIGenericVnf(vnf2.getVnfId());
1449 doNothing().when(SPY_bbInputSetup).mapCatalogVnf(vnf2, modelInfo, service);
1450 doNothing().when(SPY_bbInputSetup).mapNetworkCollectionInstanceGroup(vnf2, "{instanceGroupId}");
1451 SPY_bbInputSetup.populateGenericVnf(modelInfo, instanceName, platform, lineOfBusiness, service, bbName,
1452 serviceInstance, lookupKeyMap, requestDetails.getRelatedInstanceList(), resourceId, vnfType, null,
1453 requestDetails.getRequestInfo().getProductFamilyId());
1454 verify(SPY_bbInputSetup, times(2)).mapCatalogVnf(vnf2, modelInfo, service);
1455 verify(SPY_bbInputSetup, times(2)).mapNetworkCollectionInstanceGroup(vnf2, "{instanceGroupId}");
1456 verify(SPY_bbInputSetup, times(1)).mapVnfcCollectionInstanceGroup(vnf2, modelInfo, service);
1460 public void testMapCatalogVnf() {
1461 ModelInfoGenericVnf modelInfoGenericVnf = new ModelInfoGenericVnf();
1462 GenericVnf genericVnf = new GenericVnf();
1463 RequestDetails requestDetails = new RequestDetails();
1464 ModelInfo modelInfo = new ModelInfo();
1465 modelInfo.setModelCustomizationUuid("modelCustomizationUUID");
1466 requestDetails.setModelInfo(modelInfo);
1467 Service service = new Service();
1468 VnfResourceCustomization resourceCust = new VnfResourceCustomization();
1469 resourceCust.setModelCustomizationUUID("vnfModelCustomizationUUID");
1470 service.getVnfCustomizations().add(resourceCust);
1471 resourceCust.setModelCustomizationUUID("modelCustomizationUUID");
1473 doReturn(modelInfoGenericVnf).when(bbInputSetupMapperLayer).mapCatalogVnfToVnf(resourceCust);
1475 SPY_bbInputSetup.mapCatalogVnf(genericVnf, modelInfo, service);
1477 assertEquals(modelInfoGenericVnf, genericVnf.getModelInfoGenericVnf());
1481 public void testMapCatalogCollectionAndInstanceGroup() {
1482 ModelInfoCollection modelInfoCollection = new ModelInfoCollection();
1483 modelInfoCollection.setCollectionFunction("collectionFunction");
1484 modelInfoCollection.setCollectionRole("collectionRole");
1485 modelInfoCollection.setCollectionType("collectionType");
1486 modelInfoCollection.setDescription("description");
1487 modelInfoCollection.setModelInvariantUUID("modelInvariantUUID");
1488 modelInfoCollection.setQuantity(0);
1490 ModelInfoInstanceGroup modelInfoInstanceGroup = new ModelInfoInstanceGroup();
1491 modelInfoInstanceGroup.setFunction("function");
1492 modelInfoInstanceGroup.setInstanceGroupRole("instanceGroupRole");
1493 modelInfoInstanceGroup.setModelInvariantUUID("modelInvariantUUID");
1494 modelInfoInstanceGroup.setModelUUID("modelUUID");
1495 modelInfoInstanceGroup.setType("VNFC");
1496 modelInfoInstanceGroup.setDescription("description");
1498 InstanceGroup instanceGroup = new InstanceGroup();
1499 Collection collection = new Collection();
1500 collection.setInstanceGroup(instanceGroup);
1502 CollectionResource collectionResource = new CollectionResource();
1503 org.onap.so.db.catalog.beans.InstanceGroup catalogInstanceGroup = new org.onap.so.db.catalog.beans.InstanceGroup();
1504 collectionResource.setToscaNodeType("NetworkCollection");
1505 collectionResource.setInstanceGroup(catalogInstanceGroup);
1507 CollectionResourceCustomization collectionCust = new NetworkCollectionResourceCustomization();
1508 collectionCust.setModelCustomizationUUID("modelCustomizationUUID");
1509 collectionCust.setCollectionResource(collectionResource);
1511 Service service = new Service();
1512 service.getCollectionResourceCustomizations().add(collectionCust);
1513 ServiceInstance serviceInstance = new ServiceInstance();
1514 serviceInstance.setCollection(collection);
1516 List<CollectionResourceInstanceGroupCustomization> instanceGroupCustList = new ArrayList<>();
1517 CollectionResourceInstanceGroupCustomization instanceGroupCust = new CollectionResourceInstanceGroupCustomization();
1518 instanceGroupCust.setFunction("function");
1519 instanceGroupCust.setDescription("description");
1521 doReturn(modelInfoCollection).when(bbInputSetupMapperLayer).mapCatalogCollectionToCollection(collectionCust,
1522 collectionResource);
1524 doReturn(modelInfoInstanceGroup).when(bbInputSetupMapperLayer).mapCatalogInstanceGroupToInstanceGroup(collectionCust,
1525 catalogInstanceGroup);
1527 SPY_bbInputSetup.mapCatalogCollection(service, serviceInstance.getCollection(), "modelCustomizationUUID");
1528 SPY_bbInputSetup.mapCatalogNetworkCollectionInstanceGroup(service,
1529 serviceInstance.getCollection().getInstanceGroup(), collectionCust.getModelCustomizationUUID());
1531 assertThat(collection.getModelInfoCollection(), sameBeanAs(modelInfoCollection));
1532 assertThat(instanceGroup.getModelInfoInstanceGroup(), sameBeanAs(modelInfoInstanceGroup));
1536 public void testAddRelationshipsToSI() throws Exception {
1537 ServiceInstance serviceInstance = new ServiceInstance();
1538 org.onap.aai.domain.yang.ServiceInstance serviceInstanceAAI = new org.onap.aai.domain.yang.ServiceInstance();
1539 serviceInstanceAAI.setServiceInstanceId("serviceInstanceId");
1541 org.onap.aai.domain.yang.RelationshipList relationshipList = new org.onap.aai.domain.yang.RelationshipList();
1542 org.onap.aai.domain.yang.Relationship relationship = new org.onap.aai.domain.yang.Relationship();
1543 relationshipList.getRelationship().add(relationship);
1544 serviceInstanceAAI.setRelationshipList(relationshipList);
1546 Map<String, String> uriKeys = new HashMap<>();
1547 uriKeys.put("global-customer-id", "globalCustomerId");
1548 uriKeys.put("service-type", "serviceType");
1551 doNothing().when(SPY_bbInputSetup).mapProject(any(), eq(serviceInstance));
1552 doNothing().when(SPY_bbInputSetup).mapOwningEntity(any(), eq(serviceInstance));
1553 doNothing().when(SPY_bbInputSetup).mapL3Networks(any(), eq(serviceInstance.getNetworks()));
1554 doNothing().when(SPY_bbInputSetup).mapGenericVnfs(any(), eq(serviceInstance.getVnfs()));
1555 doNothing().when(SPY_bbInputSetup).mapCollection(any(), eq(serviceInstance));
1557 SPY_bbInputSetup.addRelationshipsToSI(serviceInstanceAAI, serviceInstance);
1559 verify(SPY_bbInputSetup, times(1)).mapProject(any(), eq(serviceInstance));
1560 verify(SPY_bbInputSetup, times(1)).mapOwningEntity(any(), eq(serviceInstance));
1561 verify(SPY_bbInputSetup, times(1)).mapL3Networks(any(), eq(serviceInstance.getNetworks()));
1562 verify(SPY_bbInputSetup, times(1)).mapGenericVnfs(any(), eq(serviceInstance.getVnfs()));
1563 verify(SPY_bbInputSetup, times(1)).mapCollection(any(), eq(serviceInstance));
1564 verify(SPY_bbInputSetup, times(1)).mapConfigurations(any(), eq(serviceInstance.getConfigurations()));
1568 public void testMapConfigurations() throws JsonProcessingException {
1569 org.onap.aai.domain.yang.Configuration expectedAAI = new org.onap.aai.domain.yang.Configuration();
1570 org.onap.aai.domain.yang.RelationshipList relationshipList = new org.onap.aai.domain.yang.RelationshipList();
1571 org.onap.aai.domain.yang.Relationship relationship = new org.onap.aai.domain.yang.Relationship();
1572 relationshipList.getRelationship().add(relationship);
1573 expectedAAI.setRelationshipList(relationshipList);
1575 Configuration expected = new Configuration();
1576 AAIResourceUri aaiResourceUri = AAIUriFactory.createResourceUri(AAIObjectType.CONFIGURATION, "configurationId");
1577 AAIResultWrapper configurationWrapper = new AAIResultWrapper(
1578 new AAICommonObjectMapperProvider().getMapper().writeValueAsString(expectedAAI));
1580 doReturn(configurationWrapper).when(SPY_bbInputSetupUtils).getAAIResourceDepthOne(aaiResourceUri);
1581 doReturn(expected).when(bbInputSetupMapperLayer)
1582 .mapAAIConfiguration(isA(org.onap.aai.domain.yang.Configuration.class));
1584 List<Configuration> configurations = new ArrayList<>();
1586 SPY_bbInputSetup.mapConfigurations(Arrays.asList(new AAIResourceUri[] { aaiResourceUri }), configurations);
1588 assertEquals(expected, configurations.get(0));
1592 public void testMapGenericVnfs() throws JsonProcessingException {
1593 org.onap.aai.domain.yang.GenericVnf expectedAAI = new org.onap.aai.domain.yang.GenericVnf();
1594 org.onap.aai.domain.yang.RelationshipList relationshipList = new org.onap.aai.domain.yang.RelationshipList();
1595 org.onap.aai.domain.yang.Relationship relationship = new org.onap.aai.domain.yang.Relationship();
1596 relationshipList.getRelationship().add(relationship);
1597 expectedAAI.setRelationshipList(relationshipList);
1599 GenericVnf expected = new GenericVnf();
1600 AAIResourceUri aaiResourceUri = AAIUriFactory.createResourceUri(AAIObjectType.GENERIC_VNF, "vnfId");
1601 AAIResultWrapper vnfWrapper = new AAIResultWrapper(
1602 new AAICommonObjectMapperProvider().getMapper().writeValueAsString(expectedAAI));
1604 doReturn(vnfWrapper).when(SPY_bbInputSetupUtils).getAAIResourceDepthOne(aaiResourceUri);
1605 doReturn(expected).when(bbInputSetupMapperLayer)
1606 .mapAAIGenericVnfIntoGenericVnf(isA(org.onap.aai.domain.yang.GenericVnf.class));
1607 doNothing().when(SPY_bbInputSetup).mapPlatform(any(), eq(expected));
1608 doNothing().when(SPY_bbInputSetup).mapLineOfBusiness(any(), eq(expected));
1609 doReturn(new ArrayList<>()).when(SPY_bbInputSetup).mapVolumeGroups(any());
1611 List<GenericVnf> genericVnfs = new ArrayList<>();
1613 SPY_bbInputSetup.mapGenericVnfs(Arrays.asList(new AAIResourceUri[] { aaiResourceUri }), genericVnfs);
1615 assertEquals(expected, genericVnfs.get(0));
1616 verify(SPY_bbInputSetup, times(1)).mapPlatform(any(), eq(expected));
1617 verify(SPY_bbInputSetup, times(1)).mapLineOfBusiness(any(), eq(expected));
1618 verify(SPY_bbInputSetup, times(1)).mapVolumeGroups(any());
1622 public void testMapVolumeGroups() throws JsonProcessingException {
1623 org.onap.aai.domain.yang.VolumeGroup expectedAAI = new org.onap.aai.domain.yang.VolumeGroup();
1625 VolumeGroup expected = new VolumeGroup();
1626 AAIResultWrapper vnfWrapper = new AAIResultWrapper(
1627 new AAICommonObjectMapperProvider().getMapper().writeValueAsString(expectedAAI));
1629 doReturn(expected).when(bbInputSetupMapperLayer)
1630 .mapAAIVolumeGroup(isA(org.onap.aai.domain.yang.VolumeGroup.class));
1632 List<VolumeGroup> volumeGroupsList =
1633 SPY_bbInputSetup.mapVolumeGroups(Arrays.asList(new AAIResultWrapper[] { vnfWrapper }));
1635 assertEquals(expected, volumeGroupsList.get(0));
1639 public void testMapLineOfBusiness() throws JsonProcessingException {
1640 org.onap.aai.domain.yang.LineOfBusiness expectedAAI = new org.onap.aai.domain.yang.LineOfBusiness();
1642 LineOfBusiness expected = new LineOfBusiness();
1643 AAIResultWrapper vnfWrapper = new AAIResultWrapper(
1644 new AAICommonObjectMapperProvider().getMapper().writeValueAsString(expectedAAI));
1646 doReturn(expected).when(bbInputSetupMapperLayer)
1647 .mapAAILineOfBusiness(isA(org.onap.aai.domain.yang.LineOfBusiness.class));
1649 GenericVnf vnf = new GenericVnf();
1651 SPY_bbInputSetup.mapLineOfBusiness(Arrays.asList(new AAIResultWrapper[] { vnfWrapper }), vnf);
1653 assertEquals(expected, vnf.getLineOfBusiness());
1657 public void testMapPlatform() throws JsonProcessingException {
1658 org.onap.aai.domain.yang.Platform expectedAAI = new org.onap.aai.domain.yang.Platform();
1660 Platform expected = new Platform();
1661 AAIResultWrapper vnfWrapper = new AAIResultWrapper(
1662 new AAICommonObjectMapperProvider().getMapper().writeValueAsString(expectedAAI));
1664 doReturn(expected).when(bbInputSetupMapperLayer)
1665 .mapAAIPlatform(isA(org.onap.aai.domain.yang.Platform.class));
1667 GenericVnf vnf = new GenericVnf();
1669 SPY_bbInputSetup.mapPlatform(Arrays.asList(new AAIResultWrapper[] { vnfWrapper }), vnf);
1671 assertEquals(expected, vnf.getPlatform());
1675 public void testMapCollection() throws JsonProcessingException {
1676 List<AAIResultWrapper> collections = new ArrayList<>();
1677 ServiceInstance serviceInstance = new ServiceInstance();
1679 org.onap.aai.domain.yang.Collection aaiCollection = new org.onap.aai.domain.yang.Collection();
1680 org.onap.aai.domain.yang.RelationshipList collectionRelationshipList = new org.onap.aai.domain.yang.RelationshipList();
1681 org.onap.aai.domain.yang.Relationship collectionInstanceGroupRelationship = new org.onap.aai.domain.yang.Relationship();
1682 collectionRelationshipList.getRelationship().add(collectionInstanceGroupRelationship);
1683 aaiCollection.setRelationshipList(collectionRelationshipList);
1685 collections.add(new AAIResultWrapper(
1686 new AAICommonObjectMapperProvider().getMapper().writeValueAsString(aaiCollection)));
1688 Collection collection = new Collection();
1689 ModelInfoCollection modelInfoCollection = new ModelInfoCollection();
1690 List<InstanceGroup> instanceGroupsList = new ArrayList<>();
1691 InstanceGroup instanceGroup = new InstanceGroup();
1692 instanceGroupsList.add(instanceGroup);
1693 NetworkCollectionResourceCustomization networkCollectionCust = Mockito.mock(NetworkCollectionResourceCustomization.class);
1694 CollectionResource collectionResource = new CollectionResource();
1695 doReturn(collection).when(bbInputSetupMapperLayer)
1696 .mapAAICollectionIntoCollection(isA(org.onap.aai.domain.yang.Collection.class));
1697 doReturn(instanceGroupsList).when(SPY_bbInputSetup).mapInstanceGroups(any());
1698 doReturn(networkCollectionCust).when(SPY_bbInputSetupUtils).getCatalogNetworkCollectionResourceCustByID(aaiCollection.getCollectionCustomizationId());
1699 doReturn(collectionResource).when(networkCollectionCust).getCollectionResource();
1700 doReturn(modelInfoCollection).when(bbInputSetupMapperLayer).mapCatalogCollectionToCollection(networkCollectionCust, collectionResource);
1702 SPY_bbInputSetup.mapCollection(collections, serviceInstance);
1704 assertEquals(collection, serviceInstance.getCollection());
1705 assertEquals(instanceGroup, collection.getInstanceGroup());
1707 instanceGroupsList.clear();
1708 collection = new Collection();
1710 SPY_bbInputSetup.mapCollection(collections, serviceInstance);
1711 assertEquals(collection, serviceInstance.getCollection());
1712 assertNull(collection.getInstanceGroup());
1716 public void testMapL3Networks() throws JsonProcessingException {
1717 org.onap.aai.domain.yang.L3Network expectedAAI = new org.onap.aai.domain.yang.L3Network();
1718 org.onap.aai.domain.yang.RelationshipList relationshipList = new org.onap.aai.domain.yang.RelationshipList();
1719 org.onap.aai.domain.yang.Relationship relationship = new org.onap.aai.domain.yang.Relationship();
1720 relationshipList.getRelationship().add(relationship);
1721 expectedAAI.setRelationshipList(relationshipList);
1723 L3Network expected = new L3Network();
1724 List<L3Network> l3Networks = new ArrayList<>();
1725 AAIResultWrapper l3NetworksWrapper = new AAIResultWrapper(
1726 new AAICommonObjectMapperProvider().getMapper().writeValueAsString(expectedAAI));
1727 AAIResourceUri aaiResourceUri = AAIUriFactory.createResourceUri(AAIObjectType.L3_NETWORK, "networkId");
1729 doReturn(l3NetworksWrapper).when(SPY_bbInputSetupUtils).getAAIResourceDepthTwo(aaiResourceUri);
1730 doReturn(expected).when(bbInputSetupMapperLayer)
1731 .mapAAIL3Network(isA(org.onap.aai.domain.yang.L3Network.class));
1732 doNothing().when(SPY_bbInputSetup).mapNetworkPolicies(any(), eq(expected.getNetworkPolicies()));
1733 doNothing().when(SPY_bbInputSetup).mapRouteTableReferences(any(),
1734 eq(expected.getContrailNetworkRouteTableReferences()));
1736 SPY_bbInputSetup.mapL3Networks(Arrays.asList(new AAIResourceUri[] { aaiResourceUri }), l3Networks);
1738 assertEquals(expected, l3Networks.get(0));
1739 verify(SPY_bbInputSetup, times(1)).mapNetworkPolicies(any(), eq(expected.getNetworkPolicies()));
1740 verify(SPY_bbInputSetup, times(1)).mapRouteTableReferences(any(),
1741 eq(expected.getContrailNetworkRouteTableReferences()));
1745 public void testMapRouteTableReferences() throws JsonProcessingException {
1746 org.onap.aai.domain.yang.RouteTableReference expectedAAI = new org.onap.aai.domain.yang.RouteTableReference();
1748 RouteTableReference expected = new RouteTableReference();
1749 List<RouteTableReference> contrailNetworkRouteTableReferences = new ArrayList<>();
1750 AAIResultWrapper vnfWrapper = new AAIResultWrapper(
1751 new AAICommonObjectMapperProvider().getMapper().writeValueAsString(expectedAAI));
1753 doReturn(expected).when(bbInputSetupMapperLayer).mapAAIRouteTableReferenceIntoRouteTableReference(
1754 isA(org.onap.aai.domain.yang.RouteTableReference.class));
1756 SPY_bbInputSetup.mapRouteTableReferences(Arrays.asList(new AAIResultWrapper[] { vnfWrapper }),
1757 contrailNetworkRouteTableReferences);
1759 assertEquals(expected, contrailNetworkRouteTableReferences.get(0));
1763 public void testMapOwningEntity() throws JsonProcessingException {
1764 org.onap.aai.domain.yang.OwningEntity expectedAAI = new org.onap.aai.domain.yang.OwningEntity();
1766 OwningEntity expected = new OwningEntity();
1767 AAIResultWrapper vnfWrapper = new AAIResultWrapper(
1768 new AAICommonObjectMapperProvider().getMapper().writeValueAsString(expectedAAI));
1770 doReturn(expected).when(bbInputSetupMapperLayer)
1771 .mapAAIOwningEntity(isA(org.onap.aai.domain.yang.OwningEntity.class));
1773 ServiceInstance serviceInstance = new ServiceInstance();
1775 SPY_bbInputSetup.mapOwningEntity(Arrays.asList(new AAIResultWrapper[] { vnfWrapper }), serviceInstance);
1777 assertEquals(expected, serviceInstance.getOwningEntity());
1781 public void testMapProject() throws JsonProcessingException {
1782 org.onap.aai.domain.yang.Project expectedAAI = new org.onap.aai.domain.yang.Project();
1784 Project expected = new Project();
1785 AAIResultWrapper vnfWrapper = new AAIResultWrapper(
1786 new AAICommonObjectMapperProvider().getMapper().writeValueAsString(expectedAAI));
1788 doReturn(expected).when(bbInputSetupMapperLayer).mapAAIProject(isA(org.onap.aai.domain.yang.Project.class));
1790 ServiceInstance serviceInstance = new ServiceInstance();
1792 SPY_bbInputSetup.mapProject(Arrays.asList(new AAIResultWrapper[] { vnfWrapper }), serviceInstance);
1794 assertEquals(expected, serviceInstance.getProject());
1798 public void testMapCustomer() throws Exception {
1799 org.onap.aai.domain.yang.Customer customerAAI = new org.onap.aai.domain.yang.Customer();
1800 org.onap.aai.domain.yang.ServiceSubscription serviceSubscriptionAAI = new org.onap.aai.domain.yang.ServiceSubscription();
1802 Customer expected = new Customer();
1803 ServiceSubscription serviceSubscription = new ServiceSubscription();
1805 String globalCustomerId = "globalCustomerId";
1806 String subscriptionServiceType = "subscriptionServiceType";
1808 doReturn(customerAAI).when(SPY_bbInputSetupUtils).getAAICustomer(globalCustomerId);
1809 doReturn(serviceSubscriptionAAI).when(SPY_bbInputSetupUtils).getAAIServiceSubscription(globalCustomerId,
1810 subscriptionServiceType);
1811 doReturn(expected).when(bbInputSetupMapperLayer)
1812 .mapAAICustomer(isA(org.onap.aai.domain.yang.Customer.class));
1813 doReturn(serviceSubscription).when(bbInputSetupMapperLayer)
1814 .mapAAIServiceSubscription(isA(org.onap.aai.domain.yang.ServiceSubscription.class));
1816 Customer actual = SPY_bbInputSetup.mapCustomer(globalCustomerId, subscriptionServiceType);
1818 assertEquals(expected, actual);
1819 assertEquals(serviceSubscription, expected.getServiceSubscription());
1823 public void testPopulateLookupKeyMapWithIds() {
1824 Map<ResourceKey, String> expected = new HashMap<>();
1825 Map<ResourceKey, String> actual = new HashMap<>();
1826 String serviceInstanceId = "serviceInstanceId";
1827 String networkId = "networkId";
1828 String vnfId = "vnfId";
1829 String vfModuleId = "vfModuleId";
1830 String volumeGroupId = "volumeGroupId";
1831 String configurationId = "configurationId";
1832 String instanceGroupId = "instancegroupId";
1834 expected.put(ResourceKey.SERVICE_INSTANCE_ID, serviceInstanceId);
1835 expected.put(ResourceKey.NETWORK_ID, networkId);
1836 expected.put(ResourceKey.GENERIC_VNF_ID, vnfId);
1837 expected.put(ResourceKey.VF_MODULE_ID, vfModuleId);
1838 expected.put(ResourceKey.VOLUME_GROUP_ID, volumeGroupId);
1839 expected.put(ResourceKey.CONFIGURATION_ID, configurationId);
1840 expected.put(ResourceKey.INSTANCE_GROUP_ID, instanceGroupId);
1842 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
1843 workflowResourceIds.setServiceInstanceId(serviceInstanceId);
1844 workflowResourceIds.setNetworkId(networkId);
1845 workflowResourceIds.setVnfId(vnfId);
1846 workflowResourceIds.setVfModuleId(vfModuleId);
1847 workflowResourceIds.setVolumeGroupId(volumeGroupId);
1848 workflowResourceIds.setConfigurationId(configurationId);
1849 workflowResourceIds.setInstanceGroupId(instanceGroupId);
1851 SPY_bbInputSetup.populateLookupKeyMapWithIds(workflowResourceIds, actual);
1853 assertThat(actual, sameBeanAs(expected));
1857 public void testgetGBBMacro() throws Exception {
1858 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
1859 GeneralBuildingBlock.class);
1860 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
1861 ExecuteBuildingBlock.class);
1862 RequestDetails requestDetails = mapper
1863 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
1864 InfraActiveRequests request = Mockito.mock(InfraActiveRequests.class);
1865 org.onap.aai.domain.yang.GenericVnf aaiVnf = new org.onap.aai.domain.yang.GenericVnf();
1866 aaiVnf.setModelCustomizationId("modelCustId");
1867 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
1868 lookupKeyMap.put(ResourceKey.NETWORK_ID, "networkId");
1869 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "vnfId");
1870 lookupKeyMap.put(ResourceKey.VF_MODULE_ID, "vfModuleId");
1871 lookupKeyMap.put(ResourceKey.VOLUME_GROUP_ID, "volumeGroupId");
1872 lookupKeyMap.put(ResourceKey.SERVICE_INSTANCE_ID, "serviceInstanceId");
1873 lookupKeyMap.put(ResourceKey.CONFIGURATION_ID, "configurationId");
1874 String resourceId = "123";
1875 String vnfType = "vnfType";
1876 Service service = Mockito.mock(Service.class);
1877 String requestAction = "createInstance";
1879 ConfigurationResourceKeys configResourceKeys = new ConfigurationResourceKeys();
1880 configResourceKeys.setCvnfcCustomizationUUID("cvnfcCustomizationUUID");
1881 configResourceKeys.setVfModuleCustomizationUUID("vfModuleCustomizationUUID");
1882 configResourceKeys.setVnfResourceCustomizationUUID("vnfResourceCustomizationUUID");
1883 executeBB.setConfigurationResourceKeys(configResourceKeys);
1885 executeBB.setRequestDetails(requestDetails);
1886 doReturn(gBB).when(SPY_bbInputSetup).getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
1887 requestAction, lookupKeyMap.get(ResourceKey.SERVICE_INSTANCE_ID));
1888 doReturn(request).when(SPY_bbInputSetupUtils).getInfraActiveRequest(executeBB.getRequestId());
1889 doReturn(service).when(SPY_bbInputSetupUtils)
1890 .getCatalogServiceByModelUUID(gBB.getServiceInstance().getModelInfoServiceInstance().getModelUuid());
1891 doNothing().when(SPY_bbInputSetupUtils).updateInfraActiveRequestVnfId(request,
1892 lookupKeyMap.get(ResourceKey.GENERIC_VNF_ID));
1893 doReturn("vnfId").when(SPY_bbInputSetup).getVnfId(executeBB, lookupKeyMap);
1894 doReturn(aaiVnf).when(SPY_bbInputSetupUtils).getAAIGenericVnf(any(String.class));
1897 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.NETWORK_MACRO.toString());
1898 executeBB.getBuildingBlock().setKey("ab153b6e-c364-44c0-bef6-1f2982117f04");
1899 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
1900 verify(SPY_bbInputSetup, times(1)).populateL3Network(any(String.class), isA(ModelInfo.class),
1901 isA(Service.class), any(String.class), isA(ServiceInstance.class), any(), any(String.class), any());
1903 executeBB.getBuildingBlock().setKey("ab153b6e-c364-44c0-bef6-1f2982117f04");
1904 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.VNF.toString());
1905 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
1906 verify(SPY_bbInputSetup, times(1)).populateGenericVnf(isA(ModelInfo.class), any(String.class),
1907 isA(org.onap.so.serviceinstancebeans.Platform.class),
1908 isA(org.onap.so.serviceinstancebeans.LineOfBusiness.class), isA(Service.class), any(String.class),
1909 isA(ServiceInstance.class), any(), any(), any(String.class), any(String.class), any(), any(String.class));
1911 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, null);
1912 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.VF_MODULE.toString());
1913 executeBB.getBuildingBlock().setKey("a25e8e8c-58b8-4eec-810c-97dcc1f5cb7f");
1914 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
1915 verify(SPY_bbInputSetup, times(1)).populateVfModule(isA(ModelInfo.class), isA(Service.class), any(String.class),
1916 isA(ServiceInstance.class), any(), any(String.class), any(), any(String.class), any(), isA(CloudConfiguration.class));
1918 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, null);
1919 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.VOLUME_GROUP.toString());
1920 executeBB.getBuildingBlock().setKey("72d9d1cd-f46d-447a-abdb-451d6fb05fa8");
1921 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
1922 verify(SPY_bbInputSetup, times(1)).populateVolumeGroup(isA(ModelInfo.class), isA(Service.class),
1923 any(String.class), isA(ServiceInstance.class), any(), any(String.class),ArgumentMatchers.isNull(),ArgumentMatchers.isNull(),
1924 any(String.class), any());
1926 Configuration configuration = new Configuration();
1927 configuration.setConfigurationId("configurationId");
1928 gBB.getServiceInstance().getConfigurations().add(configuration);
1929 List<ConfigurationResourceCustomization> configurationCustList = new ArrayList<>();
1930 ConfigurationResourceCustomization configurationCust = new ConfigurationResourceCustomization();
1931 configurationCust.setModelCustomizationUUID("72d9d1cd-f46d-447a-abdb-451d6fb05fa9");
1932 doReturn(configurationCustList).when(service).getConfigurationCustomizations();
1933 configurationCustList.add(configurationCust);
1934 doNothing().when(SPY_bbInputSetup).populateConfiguration(isA(ModelInfo.class), isA(Service.class),
1935 any(String.class), isA(ServiceInstance.class), any(), any(String.class), ArgumentMatchers.isNull(), isA(ConfigurationResourceKeys.class));
1937 executeBB.getBuildingBlock().setBpmnFlowName("AssignFabricConfigurationBB");
1938 executeBB.getBuildingBlock().setKey("72d9d1cd-f46d-447a-abdb-451d6fb05fa9");
1939 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
1940 verify(SPY_bbInputSetup, times(1)).populateConfiguration(isA(ModelInfo.class), isA(Service.class),
1941 any(String.class), isA(ServiceInstance.class), any(), any(String.class),ArgumentMatchers.isNull(), isA(ConfigurationResourceKeys.class));
1945 public void testgetGBBMacroCloudConfiguration() throws Exception {
1946 org.onap.so.serviceinstancebeans.Service serviceMacro = mapper.readValue(
1947 new File(RESOURCE_PATH + "ServiceMacroVfModules.json"), org.onap.so.serviceinstancebeans.Service.class);
1948 CloudConfiguration cloudConfig = null;
1949 org.onap.aai.domain.yang.CloudRegion aaiCloudRegion = new org.onap.aai.domain.yang.CloudRegion();
1950 aaiCloudRegion.setCloudOwner("test-owner-name");
1951 Resources resources = serviceMacro.getResources();
1952 doReturn(aaiCloudRegion).when(SPY_bbInputSetupUtils).getCloudRegion(any(CloudConfiguration.class));
1953 CloudRegion expected = new CloudRegion();
1954 expected.setLcpCloudRegionId("mdt1");
1955 expected.setCloudOwner("test-owner-name");
1956 expected.setTenantId("88a6ca3ee0394ade9403f075db23167e");
1958 CloudRegion actual = SPY_bbInputSetup.getCloudRegionFromMacroRequest(cloudConfig, resources);
1959 assertThat(actual, sameBeanAs(expected));
1961 serviceMacro = mapper.readValue(
1962 new File(RESOURCE_PATH + "ServiceMacroVnfs.json"), org.onap.so.serviceinstancebeans.Service.class);
1963 resources = serviceMacro.getResources();
1965 actual = SPY_bbInputSetup.getCloudRegionFromMacroRequest(cloudConfig, resources);
1966 assertThat(actual, sameBeanAs(expected));
1968 serviceMacro = mapper.readValue(
1969 new File(RESOURCE_PATH + "ServiceMacroNetworks.json"), org.onap.so.serviceinstancebeans.Service.class);
1970 resources = serviceMacro.getResources();
1972 actual = SPY_bbInputSetup.getCloudRegionFromMacroRequest(cloudConfig, resources);
1973 assertThat(actual, sameBeanAs(expected));
1975 serviceMacro = mapper.readValue(
1976 new File(RESOURCE_PATH + "ServiceMacroNoCloudConfig.json"), org.onap.so.serviceinstancebeans.Service.class);
1977 resources = serviceMacro.getResources();
1979 actual = SPY_bbInputSetup.getCloudRegionFromMacroRequest(cloudConfig, resources);
1984 public void testgetGBBMacroWithEmptyUserParams() throws Exception {
1985 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
1986 GeneralBuildingBlock.class);
1987 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
1988 ExecuteBuildingBlock.class);
1989 RequestDetails requestDetails = mapper
1990 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
1991 requestDetails.getRequestParameters().getUserParams().clear();
1992 InfraActiveRequests request = Mockito.mock(InfraActiveRequests.class);
1993 org.onap.aai.domain.yang.GenericVnf aaiVnf = new org.onap.aai.domain.yang.GenericVnf();
1994 aaiVnf.setModelCustomizationId("modelCustId");
1995 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
1996 lookupKeyMap.put(ResourceKey.NETWORK_ID, "networkId");
1997 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "vnfId");
1998 lookupKeyMap.put(ResourceKey.VF_MODULE_ID, "vfModuleId");
1999 lookupKeyMap.put(ResourceKey.VOLUME_GROUP_ID, "volumeGroupId");
2000 lookupKeyMap.put(ResourceKey.SERVICE_INSTANCE_ID, "serviceInstanceId");
2001 String resourceId = "123";
2002 String vnfType = "vnfType";
2003 Service service = Mockito.mock(Service.class);
2004 String requestAction = "createInstance";
2006 doReturn(gBB).when(SPY_bbInputSetup).getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
2007 requestAction, lookupKeyMap.get(ResourceKey.SERVICE_INSTANCE_ID));
2008 doReturn(service).when(SPY_bbInputSetupUtils)
2009 .getCatalogServiceByModelUUID(gBB.getServiceInstance().getModelInfoServiceInstance().getModelUuid());
2011 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.NETWORK_MACRO.toString());
2012 executeBB.getBuildingBlock().setKey("ab153b6e-c364-44c0-bef6-1f2982117f04");
2013 executeBB.getBuildingBlock().setIsVirtualLink(Boolean.FALSE);
2014 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
2015 verify(SPY_bbInputSetup, times(1)).getGBBMacroNoUserParamsCreate(any(ExecuteBuildingBlock.class), any(),
2016 any(String.class), any(String.class), any(GeneralBuildingBlock.class), any(Service.class));
2019 @Test(expected = Exception.class)
2020 public void testgetGBBMacroException() throws Exception {
2021 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
2022 GeneralBuildingBlock.class);
2023 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
2024 ExecuteBuildingBlock.class);
2025 RequestDetails requestDetails = mapper
2026 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
2027 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
2028 String resourceId = "123";
2029 String vnfType = "vnfType";
2030 Service service = Mockito.mock(Service.class);
2031 String requestAction = "createInstance";
2033 executeBB.getBuildingBlock().setBpmnFlowName("Network");
2034 executeBB.getBuildingBlock().setKey("ab153b6e-c364-44c0-bef6-1f2982117f04");
2035 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
2039 public void testgetGBBMacroWithVnfTypeNull() throws Exception {
2040 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
2041 GeneralBuildingBlock.class);
2042 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
2043 ExecuteBuildingBlock.class);
2044 RequestDetails requestDetails = mapper
2045 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
2046 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
2047 lookupKeyMap.put(ResourceKey.NETWORK_ID, "networkId");
2048 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "vnfId");
2049 lookupKeyMap.put(ResourceKey.VF_MODULE_ID, "vfModuleId");
2050 lookupKeyMap.put(ResourceKey.VOLUME_GROUP_ID, "volumeGroupId");
2051 lookupKeyMap.put(ResourceKey.SERVICE_INSTANCE_ID, "serviceInstanceId");
2052 org.onap.aai.domain.yang.GenericVnf aaiVnf = new org.onap.aai.domain.yang.GenericVnf();
2053 aaiVnf.setModelCustomizationId("modelCustId");
2054 InfraActiveRequests request = Mockito.mock(InfraActiveRequests.class);
2055 String resourceId = "123";
2056 String vnfType = null;
2057 Service service = Mockito.mock(Service.class);
2058 String requestAction = "createInstance";
2061 executeBB.setRequestDetails(requestDetails);
2062 doReturn(gBB).when(SPY_bbInputSetup).getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
2063 requestAction, lookupKeyMap.get(ResourceKey.SERVICE_INSTANCE_ID));
2064 doReturn(request).when(SPY_bbInputSetupUtils).getInfraActiveRequest(executeBB.getRequestId());
2065 doReturn(service).when(SPY_bbInputSetupUtils)
2066 .getCatalogServiceByModelUUID(gBB.getServiceInstance().getModelInfoServiceInstance().getModelUuid());
2067 doNothing().when(SPY_bbInputSetupUtils).updateInfraActiveRequestVnfId(request,
2068 lookupKeyMap.get(ResourceKey.GENERIC_VNF_ID));
2069 doReturn("vnfId").when(SPY_bbInputSetup).getVnfId(executeBB, lookupKeyMap);
2070 doReturn(aaiVnf).when(SPY_bbInputSetupUtils).getAAIGenericVnf(any(String.class));
2072 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.NETWORK_MACRO.toString());
2073 executeBB.getBuildingBlock().setKey("ab153b6e-c364-44c0-bef6-1f2982117f04");
2074 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
2075 verify(SPY_bbInputSetup, times(1)).populateL3Network(any(String.class), isA(ModelInfo.class),
2076 isA(Service.class), any(String.class), isA(ServiceInstance.class), any(), any(String.class), any());
2078 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.VNF.toString());
2079 executeBB.getBuildingBlock().setKey("ab153b6e-c364-44c0-bef6-1f2982117f04");
2080 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
2081 verify(SPY_bbInputSetup, times(1)).populateGenericVnf(isA(ModelInfo.class), any(String.class),
2082 isA(org.onap.so.serviceinstancebeans.Platform.class),
2083 isA(org.onap.so.serviceinstancebeans.LineOfBusiness.class), isA(Service.class), any(String.class),
2084 isA(ServiceInstance.class), any(),ArgumentMatchers.isNull(), any(String.class), ArgumentMatchers.isNull(), any(), any(String.class));
2086 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, null);
2087 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.VF_MODULE.toString());
2088 executeBB.getBuildingBlock().setKey("a25e8e8c-58b8-4eec-810c-97dcc1f5cb7f");
2089 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
2090 verify(SPY_bbInputSetup, times(1)).populateVfModule(isA(ModelInfo.class), isA(Service.class), any(String.class),
2091 isA(ServiceInstance.class), any(), any(String.class), any(), any(String.class), any(), isA(CloudConfiguration.class));
2093 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, null);
2094 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.VOLUME_GROUP.toString());
2095 executeBB.getBuildingBlock().setKey("72d9d1cd-f46d-447a-abdb-451d6fb05fa8");
2096 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
2097 verify(SPY_bbInputSetup, times(1)).populateVolumeGroup(isA(ModelInfo.class), isA(Service.class),
2098 any(String.class), isA(ServiceInstance.class), any(), any(String.class), ArgumentMatchers.isNull(), ArgumentMatchers.isNull(),
2099 ArgumentMatchers.isNull(), any());
2103 public void testgetGBBMacroGetServiceWithInvariantId() throws Exception {
2104 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
2105 GeneralBuildingBlock.class);
2106 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
2107 ExecuteBuildingBlock.class);
2108 RequestDetails requestDetails = mapper
2109 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
2110 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
2111 lookupKeyMap.put(ResourceKey.NETWORK_ID, "networkId");
2112 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "vnfId");
2113 lookupKeyMap.put(ResourceKey.VF_MODULE_ID, "vfModuleId");
2114 lookupKeyMap.put(ResourceKey.VOLUME_GROUP_ID, "volumeGroupId");
2115 lookupKeyMap.put(ResourceKey.SERVICE_INSTANCE_ID, "serviceInstanceId");
2116 org.onap.aai.domain.yang.GenericVnf aaiVnf = new org.onap.aai.domain.yang.GenericVnf();
2117 aaiVnf.setModelCustomizationId("modelCustId");
2118 InfraActiveRequests request = Mockito.mock(InfraActiveRequests.class);
2119 String resourceId = "123";
2120 String vnfType = "vnfType";
2121 Service service = Mockito.mock(Service.class);
2122 String requestAction = "createInstance";
2124 executeBB.setRequestDetails(requestDetails);
2125 doReturn(gBB).when(SPY_bbInputSetup).getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
2126 requestAction, lookupKeyMap.get(ResourceKey.SERVICE_INSTANCE_ID));
2127 doReturn(request).when(SPY_bbInputSetupUtils).getInfraActiveRequest(executeBB.getRequestId());
2128 doReturn(service).when(SPY_bbInputSetupUtils)
2129 .getCatalogServiceByModelUUID(gBB.getServiceInstance().getModelInfoServiceInstance().getModelUuid());
2130 doNothing().when(SPY_bbInputSetupUtils).updateInfraActiveRequestVnfId(request,
2131 lookupKeyMap.get(ResourceKey.GENERIC_VNF_ID));
2132 doReturn("vnfId").when(SPY_bbInputSetup).getVnfId(executeBB, lookupKeyMap);
2133 doReturn(aaiVnf).when(SPY_bbInputSetupUtils).getAAIGenericVnf(any(String.class));
2135 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.NETWORK_MACRO.toString());
2136 executeBB.getBuildingBlock().setKey("ab153b6e-c364-44c0-bef6-1f2982117f04");
2137 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
2138 verify(SPY_bbInputSetup, times(1)).populateL3Network(any(String.class), isA(ModelInfo.class),
2139 isA(Service.class), any(String.class), isA(ServiceInstance.class), any(), any(String.class), any());
2141 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.VNF.toString());
2142 executeBB.getBuildingBlock().setKey("ab153b6e-c364-44c0-bef6-1f2982117f04");
2143 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
2144 verify(SPY_bbInputSetup, times(1)).populateGenericVnf(isA(ModelInfo.class), any(String.class),
2145 isA(org.onap.so.serviceinstancebeans.Platform.class),
2146 isA(org.onap.so.serviceinstancebeans.LineOfBusiness.class), isA(Service.class), any(String.class),
2147 isA(ServiceInstance.class), any(), any(), any(String.class), any(String.class), any(),
2150 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, null);
2151 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.VF_MODULE.toString());
2152 executeBB.getBuildingBlock().setKey("a25e8e8c-58b8-4eec-810c-97dcc1f5cb7f");
2153 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
2154 verify(SPY_bbInputSetup, times(1)).populateVfModule(isA(ModelInfo.class), isA(Service.class), any(String.class),
2155 isA(ServiceInstance.class), any(), any(String.class), any(), any(String.class), any(), isA(CloudConfiguration.class));
2157 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, null);
2158 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.VOLUME_GROUP.toString());
2159 executeBB.getBuildingBlock().setKey("72d9d1cd-f46d-447a-abdb-451d6fb05fa8");
2160 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
2161 verify(SPY_bbInputSetup, times(1)).populateVolumeGroup(isA(ModelInfo.class), isA(Service.class),
2162 any(String.class), isA(ServiceInstance.class), any(), any(String.class), ArgumentMatchers.isNull(), ArgumentMatchers.isNull(),
2163 any(String.class), any());
2167 public void testgetGBBMacroNoUserParamsDeactivateInstnace() throws Exception {
2168 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
2169 GeneralBuildingBlock.class);
2170 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
2171 ExecuteBuildingBlock.class);
2172 RequestDetails requestDetails = mapper
2173 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
2174 requestDetails.getRequestParameters().setUserParams(null);
2175 org.onap.aai.domain.yang.GenericVnf aaiVnf = new org.onap.aai.domain.yang.GenericVnf();
2176 aaiVnf.setModelCustomizationId("modelCustId");
2177 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
2178 lookupKeyMap.put(ResourceKey.NETWORK_ID, "networkId");
2179 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "vnfId");
2180 lookupKeyMap.put(ResourceKey.VF_MODULE_ID, "vfModuleId");
2181 lookupKeyMap.put(ResourceKey.VOLUME_GROUP_ID, "volumeGroupId");
2182 lookupKeyMap.put(ResourceKey.SERVICE_INSTANCE_ID, "serviceInstanceId");
2183 String resourceId = "123";
2184 String vnfType = "vnfType";
2185 Service service = Mockito.mock(Service.class);
2186 String requestAction = "deactivateInstance";
2187 doReturn(gBB).when(SPY_bbInputSetup).getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
2188 requestAction, lookupKeyMap.get(ResourceKey.SERVICE_INSTANCE_ID));
2189 doReturn(service).when(SPY_bbInputSetupUtils)
2190 .getCatalogServiceByModelUUID(gBB.getServiceInstance().getModelInfoServiceInstance().getModelUuid());
2191 String generatedId = "12131";
2193 executeBB.getBuildingBlock().setBpmnFlowName("DeactivateServiceInstanceBB");
2194 executeBB.getBuildingBlock().setKey("3c40d244-808e-42ca-b09a-256d83d19d0a");
2195 GeneralBuildingBlock actual = SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap,
2196 requestAction, resourceId, vnfType);
2197 assertThat(actual, sameBeanAs(gBB));
2201 public void testgetGBBMacroNoUserParamsCreateInstance() throws Exception {
2202 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
2203 GeneralBuildingBlock.class);
2204 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
2205 ExecuteBuildingBlock.class);
2206 RequestDetails requestDetails = mapper
2207 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
2208 InfraActiveRequests request = Mockito.mock(InfraActiveRequests.class);
2209 requestDetails.getRequestParameters().setUserParams(null);
2210 org.onap.aai.domain.yang.GenericVnf aaiVnf = new org.onap.aai.domain.yang.GenericVnf();
2211 aaiVnf.setModelCustomizationId("modelCustId");
2212 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
2213 lookupKeyMap.put(ResourceKey.NETWORK_ID, "networkId");
2214 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "vnfId");
2215 lookupKeyMap.put(ResourceKey.VF_MODULE_ID, "vfModuleId");
2216 lookupKeyMap.put(ResourceKey.VOLUME_GROUP_ID, "volumeGroupId");
2217 lookupKeyMap.put(ResourceKey.SERVICE_INSTANCE_ID, "serviceInstanceId");
2218 lookupKeyMap.put(ResourceKey.CONFIGURATION_ID, "configurationId");
2220 ConfigurationResourceKeys configResourceKeys = new ConfigurationResourceKeys();
2221 configResourceKeys.setCvnfcCustomizationUUID("cvnfcCustomizationUUID");
2222 configResourceKeys.setVfModuleCustomizationUUID("vfModuleCustomizationUUID");
2223 configResourceKeys.setVnfResourceCustomizationUUID("vnfResourceCustomizationUUID");
2224 executeBB.setConfigurationResourceKeys(configResourceKeys);
2226 String resourceId = "123";
2227 String vnfType = "vnfType";
2228 Service service = Mockito.mock(Service.class);
2229 String requestAction = "createInstance";
2230 doReturn(gBB).when(SPY_bbInputSetup).getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
2231 requestAction, lookupKeyMap.get(ResourceKey.SERVICE_INSTANCE_ID));
2234 doReturn(service).when(SPY_bbInputSetupUtils)
2235 .getCatalogServiceByModelUUID(gBB.getServiceInstance().getModelInfoServiceInstance().getModelUuid());
2236 List<NetworkResourceCustomization> networkCustList = new ArrayList<>();
2237 NetworkResourceCustomization networkCust = Mockito.mock(NetworkResourceCustomization.class);
2238 doReturn("ab153b6e-c364-44c0-bef6-1f2982117f04").when(networkCust).getModelCustomizationUUID();
2239 networkCustList.add(networkCust);
2240 doReturn(networkCustList).when(service).getNetworkCustomizations();
2241 doNothing().when(SPY_bbInputSetup).populateL3Network(any(), isA(ModelInfo.class), isA(Service.class),
2242 any(String.class), isA(ServiceInstance.class), any(), any(String.class), any());
2244 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.NETWORK_MACRO.toString());
2245 executeBB.getBuildingBlock().setKey("ab153b6e-c364-44c0-bef6-1f2982117f04");
2246 executeBB.getBuildingBlock().setIsVirtualLink(false);
2247 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
2248 verify(SPY_bbInputSetup, times(1)).getGBBMacroNoUserParamsCreate(executeBB, lookupKeyMap,
2249 executeBB.getBuildingBlock().getBpmnFlowName(), "ab153b6e-c364-44c0-bef6-1f2982117f04", gBB, service);
2251 CollectionNetworkResourceCustomization collectionNetworkResourceCust = Mockito.mock(CollectionNetworkResourceCustomization.class);
2252 doReturn(collectionNetworkResourceCust).when(SPY_bbInputSetupUtils).getCatalogCollectionNetworkResourceCustByID(any(String.class));
2253 NetworkResourceCustomization networkResourceCustomization = Mockito.mock(NetworkResourceCustomization.class);
2254 doReturn(networkResourceCustomization).when(bbInputSetupMapperLayer).mapCollectionNetworkResourceCustToNetworkResourceCust(collectionNetworkResourceCust);
2255 ModelInfoNetwork modelInfoNetwork = Mockito.mock(ModelInfoNetwork.class);
2256 doReturn(modelInfoNetwork ).when(bbInputSetupMapperLayer).mapCatalogNetworkToNetwork(networkResourceCustomization);
2258 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.NETWORK_MACRO.toString());
2259 executeBB.getBuildingBlock().setKey("ab153b6e-c364-44c0-bef6-1f2982117f04");
2260 executeBB.getBuildingBlock().setIsVirtualLink(true);
2261 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
2262 verify(SPY_bbInputSetup, times(2)).getGBBMacroNoUserParamsCreate(executeBB, lookupKeyMap,
2263 executeBB.getBuildingBlock().getBpmnFlowName(), "ab153b6e-c364-44c0-bef6-1f2982117f04", gBB, service);
2265 executeBB.getBuildingBlock().setBpmnFlowName("CreateNetworkBB");
2266 executeBB.getBuildingBlock().setKey("ab153b6e-c364-44c0-bef6-1f2982117f04");
2267 executeBB.getBuildingBlock().setIsVirtualLink(true);
2268 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
2269 verify(SPY_bbInputSetup, times(1)).getGBBMacroNoUserParamsCreate(executeBB, lookupKeyMap,
2270 executeBB.getBuildingBlock().getBpmnFlowName(), "ab153b6e-c364-44c0-bef6-1f2982117f04", gBB, service);
2274 public void testgetGBBMacroNoUserParamsOther() throws Exception {
2275 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
2276 GeneralBuildingBlock.class);
2277 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
2278 ExecuteBuildingBlock.class);
2279 RequestDetails requestDetails = mapper
2280 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
2281 requestDetails.getRequestParameters().setUserParams(null);
2282 org.onap.aai.domain.yang.GenericVnf aaiVnf = new org.onap.aai.domain.yang.GenericVnf();
2283 aaiVnf.setModelCustomizationId("modelCustId");
2284 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
2285 lookupKeyMap.put(ResourceKey.NETWORK_ID, "networkId");
2286 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "vnfId");
2287 lookupKeyMap.put(ResourceKey.VF_MODULE_ID, "vfModuleId");
2288 lookupKeyMap.put(ResourceKey.VOLUME_GROUP_ID, "volumeGroupId");
2289 lookupKeyMap.put(ResourceKey.SERVICE_INSTANCE_ID, "serviceInstanceId");
2290 String resourceId = "123";
2291 String vnfType = "vnfType";
2292 Service service = Mockito.mock(Service.class);
2293 String requestAction = "deleteInstance";
2295 executeBB.setRequestDetails(requestDetails);
2296 ServiceInstance serviceInstance = gBB.getServiceInstance();
2297 org.onap.aai.domain.yang.ServiceInstance aaiServiceInstance = new org.onap.aai.domain.yang.ServiceInstance();
2298 aaiServiceInstance.setModelVersionId("modelVersionId");
2299 doReturn(service).when(SPY_bbInputSetupUtils).getCatalogServiceByModelUUID(aaiServiceInstance.getModelVersionId());
2300 doReturn(aaiServiceInstance).when(SPY_bbInputSetupUtils).getAAIServiceInstanceById(lookupKeyMap.get(ResourceKey.SERVICE_INSTANCE_ID));
2301 doReturn(serviceInstance).when(SPY_bbInputSetup).getExistingServiceInstance(aaiServiceInstance);
2302 doReturn(gBB).when(SPY_bbInputSetup).populateGBBWithSIAndAdditionalInfo(requestDetails, serviceInstance,
2303 executeBB, requestAction, null);
2305 CloudConfiguration cloudConfig = new CloudConfiguration();
2306 cloudConfig.setLcpCloudRegionId("lcpCloudRegionId");
2307 requestDetails.setCloudConfiguration(cloudConfig);
2308 org.onap.aai.domain.yang.CloudRegion aaiCloudRegion = Mockito.mock(org.onap.aai.domain.yang.CloudRegion.class);
2309 doReturn(aaiCloudRegion).when(SPY_bbInputSetupUtils).getCloudRegion(requestDetails.getCloudConfiguration());
2310 executeBB.getBuildingBlock().setBpmnFlowName("DeleteNetworkBB");
2311 executeBB.getBuildingBlock().setKey("ab153b6e-c364-44c0-bef6-1f2982117f04");
2312 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
2313 verify(SPY_bbInputSetup, times(1)).getGBBMacroExistingService(isA(ExecuteBuildingBlock.class), any(),
2314 any(String.class), isA(String.class),
2315 isA(CloudConfiguration.class));
2317 requestAction = "activateInstance";
2318 doReturn(gBB).when(SPY_bbInputSetup).populateGBBWithSIAndAdditionalInfo(requestDetails, serviceInstance,
2319 executeBB, requestAction, null);
2320 executeBB.getBuildingBlock().setBpmnFlowName("ActivateNetworkBB");
2321 executeBB.getBuildingBlock().setKey("ab153b6e-c364-44c0-bef6-1f2982117f04");
2322 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
2323 verify(SPY_bbInputSetup, times(2)).getGBBMacroExistingService(isA(ExecuteBuildingBlock.class), any(),
2324 any(String.class), isA(String.class),
2325 isA(CloudConfiguration.class));
2327 requestAction = "unassignInstance";
2328 doReturn(gBB).when(SPY_bbInputSetup).populateGBBWithSIAndAdditionalInfo(requestDetails, serviceInstance,
2329 executeBB, requestAction, null);
2330 executeBB.getBuildingBlock().setBpmnFlowName("UnassignNetworkBB");
2331 executeBB.getBuildingBlock().setKey("ab153b6e-c364-44c0-bef6-1f2982117f04");
2332 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
2333 verify(SPY_bbInputSetup, times(3)).getGBBMacroExistingService(isA(ExecuteBuildingBlock.class), any(),
2334 any(String.class), isA(String.class),
2335 isA(CloudConfiguration.class));
2337 requestAction = "activateFabricConfiguration";
2338 doReturn(gBB).when(SPY_bbInputSetup).populateGBBWithSIAndAdditionalInfo(requestDetails, serviceInstance,
2339 executeBB, requestAction, null);
2340 executeBB.getBuildingBlock().setBpmnFlowName("ActivateFabricConfigurationBB");
2341 executeBB.getBuildingBlock().setKey("ab153b6e-c364-44c0-bef6-134534656234");
2342 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
2343 verify(SPY_bbInputSetup, times(4)).getGBBMacroExistingService(isA(ExecuteBuildingBlock.class), any(),
2344 any(String.class), isA(String.class),
2345 isA(CloudConfiguration.class));
2348 @Test(expected = IllegalArgumentException.class)
2349 public void testgetGBBMacroNoUserParamsOtherException() throws Exception {
2350 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
2351 GeneralBuildingBlock.class);
2352 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
2353 ExecuteBuildingBlock.class);
2354 RequestDetails requestDetails = mapper
2355 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
2356 requestDetails.getRequestParameters().setUserParams(null);
2357 org.onap.aai.domain.yang.GenericVnf aaiVnf = new org.onap.aai.domain.yang.GenericVnf();
2358 aaiVnf.setModelCustomizationId("modelCustId");
2359 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
2360 lookupKeyMap.put(ResourceKey.NETWORK_ID, "networkId");
2361 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "vnfId");
2362 lookupKeyMap.put(ResourceKey.VF_MODULE_ID, "vfModuleId");
2363 lookupKeyMap.put(ResourceKey.VOLUME_GROUP_ID, "volumeGroupId");
2364 lookupKeyMap.put(ResourceKey.SERVICE_INSTANCE_ID, "serviceInstanceId");
2365 String resourceId = "123";
2366 String vnfType = "vnfType";
2367 Service service = Mockito.mock(Service.class);
2368 String requestAction = "assignInstance";
2369 doReturn(gBB).when(SPY_bbInputSetup).getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
2370 requestAction, lookupKeyMap.get(ResourceKey.SERVICE_INSTANCE_ID));
2371 doReturn(service).when(SPY_bbInputSetupUtils)
2372 .getCatalogServiceByModelUUID(gBB.getServiceInstance().getModelInfoServiceInstance().getModelUuid());
2373 String generatedId = "12131";
2375 executeBB.getBuildingBlock().setKey("3c40d244-808e-42ca-b09a-256d83d19d0a");
2376 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
2379 public void testgetGBBMacroNoUserParamsExistingService() throws Exception {
2380 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
2381 GeneralBuildingBlock.class);
2382 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
2383 ExecuteBuildingBlock.class);
2384 RequestDetails requestDetails = mapper
2385 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
2386 requestDetails.getRequestParameters().setUserParams(null);
2387 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
2388 lookupKeyMap.put(ResourceKey.NETWORK_ID, "networkId");
2389 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "vnfId");
2390 lookupKeyMap.put(ResourceKey.VF_MODULE_ID, "vfModuleId");
2391 lookupKeyMap.put(ResourceKey.VOLUME_GROUP_ID, "volumeGroupId");
2392 lookupKeyMap.put(ResourceKey.SERVICE_INSTANCE_ID, "serviceInstanceId");
2393 lookupKeyMap.put(ResourceKey.CONFIGURATION_ID, "configurationId");
2394 Service service = Mockito.mock(Service.class);
2395 CloudConfiguration cloudConfiguration = new CloudConfiguration();
2396 cloudConfiguration.setLcpCloudRegionId("cloudRegionId");
2397 String requestAction = "unassignInstance";
2398 executeBB.setRequestDetails(requestDetails);
2400 ConfigurationResourceKeys configResourceKeys = new ConfigurationResourceKeys();
2401 configResourceKeys.setCvnfcCustomizationUUID("cvnfcCustomizationUUID");
2402 configResourceKeys.setVfModuleCustomizationUUID("vfModuleCustomizationUUID");
2403 configResourceKeys.setVnfResourceCustomizationUUID("vnfResourceCustomizationUUID");
2404 executeBB.setConfigurationResourceKeys(configResourceKeys);
2406 ServiceInstance serviceInstance = gBB.getServiceInstance();
2407 org.onap.aai.domain.yang.ServiceInstance aaiServiceInstance = new org.onap.aai.domain.yang.ServiceInstance();
2408 aaiServiceInstance.setModelVersionId("modelVersionId");
2409 doReturn(service).when(SPY_bbInputSetupUtils).getCatalogServiceByModelUUID(aaiServiceInstance.getModelVersionId());
2410 doReturn(aaiServiceInstance).when(SPY_bbInputSetupUtils).getAAIServiceInstanceById(lookupKeyMap.get(ResourceKey.SERVICE_INSTANCE_ID));
2411 doReturn(serviceInstance).when(SPY_bbInputSetup).getExistingServiceInstance(aaiServiceInstance);
2412 doReturn(gBB).when(SPY_bbInputSetup).populateGBBWithSIAndAdditionalInfo(requestDetails, serviceInstance,
2413 executeBB, requestAction, null);
2415 L3Network network = new L3Network();
2416 network.setNetworkId("networkId");
2417 gBB.getServiceInstance().getNetworks().add(network);
2418 org.onap.aai.domain.yang.L3Network aaiNetwork = new org.onap.aai.domain.yang.L3Network();
2419 aaiNetwork.setModelCustomizationId("modelCustId");
2420 doReturn(aaiNetwork).when(SPY_bbInputSetupUtils).getAAIL3Network(network.getNetworkId());
2421 doNothing().when(SPY_bbInputSetup).mapCatalogNetwork(any(L3Network.class), any(ModelInfo.class),
2422 any(Service.class));
2424 executeBB.getBuildingBlock().setBpmnFlowName("DeleteNetworkBB");
2425 executeBB.getBuildingBlock().setKey("ab153b6e-c364-44c0-bef6-1f2982117f04");
2426 SPY_bbInputSetup.getGBBMacroExistingService(executeBB, lookupKeyMap,
2427 executeBB.getBuildingBlock().getBpmnFlowName(), requestAction, null);
2428 verify(SPY_bbInputSetup, times(1)).mapCatalogNetwork(any(L3Network.class), any(ModelInfo.class),
2429 any(Service.class));
2431 GenericVnf vnf = new GenericVnf();
2432 vnf.setVnfId("vnfId");
2433 gBB.getServiceInstance().getVnfs().add(vnf);
2434 org.onap.aai.domain.yang.GenericVnf aaiVnf = new org.onap.aai.domain.yang.GenericVnf();
2435 aaiVnf.setModelCustomizationId("modelCustId");
2436 doReturn(aaiVnf).when(SPY_bbInputSetupUtils).getAAIGenericVnf(vnf.getVnfId());
2437 doNothing().when(SPY_bbInputSetup).mapCatalogVnf(any(GenericVnf.class), any(ModelInfo.class),
2438 any(Service.class));
2440 executeBB.getBuildingBlock().setBpmnFlowName("ActivateVnfBB");
2441 executeBB.getBuildingBlock().setKey("ab153b6e-c364-44c0-bef6-1f2982117f04");
2442 SPY_bbInputSetup.getGBBMacroExistingService(executeBB, lookupKeyMap,
2443 executeBB.getBuildingBlock().getBpmnFlowName(), requestAction, cloudConfiguration);
2444 verify(SPY_bbInputSetup, times(1)).mapCatalogVnf(any(GenericVnf.class), any(ModelInfo.class),
2445 any(Service.class));
2447 VfModule vfModule = new VfModule();
2448 vfModule.setVfModuleId("vfModuleId");
2449 gBB.getServiceInstance().getVnfs().get(0).getVfModules().add(vfModule);
2450 org.onap.aai.domain.yang.VfModule aaiVfModule = new org.onap.aai.domain.yang.VfModule();
2451 aaiVfModule.setModelCustomizationId("modelCustId");
2452 doReturn(aaiVfModule).when(SPY_bbInputSetupUtils).getAAIVfModule(vnf.getVnfId(), vfModule.getVfModuleId());
2454 executeBB.getBuildingBlock().setBpmnFlowName("UnassignVfModuleBB");
2455 executeBB.getBuildingBlock().setKey("a25e8e8c-58b8-4eec-810c-97dcc1f5cb7f");
2456 SPY_bbInputSetup.getGBBMacroExistingService(executeBB, lookupKeyMap,
2457 executeBB.getBuildingBlock().getBpmnFlowName(), requestAction, cloudConfiguration);
2458 verify(SPY_bbInputSetup, times(2)).mapCatalogVnf(any(GenericVnf.class), any(ModelInfo.class),
2459 any(Service.class));
2460 verify(SPY_bbInputSetup, times(1)).mapCatalogVfModule(any(VfModule.class), any(ModelInfo.class),
2461 any(Service.class), any(String.class));
2463 CloudRegion cloudRegion = new CloudRegion();
2464 cloudRegion.setLcpCloudRegionId("cloudRegionId");
2465 cloudRegion.setCloudOwner("CloudOwner");
2466 doReturn(Optional.of(cloudRegion)).when(SPY_cloudInfoFromAAI).getCloudInfoFromAAI(gBB.getServiceInstance());
2467 VolumeGroup volumeGroup = new VolumeGroup();
2468 volumeGroup.setVolumeGroupId("volumeGroupId");
2469 gBB.getServiceInstance().getVnfs().get(0).getVolumeGroups().add(volumeGroup);
2470 org.onap.aai.domain.yang.VolumeGroup aaiVolumeGroup = new org.onap.aai.domain.yang.VolumeGroup();
2471 aaiVolumeGroup.setModelCustomizationId("modelCustId");
2472 doReturn(aaiVolumeGroup).when(SPY_bbInputSetupUtils).getAAIVolumeGroup(cloudRegion.getCloudOwner(),
2473 cloudRegion.getLcpCloudRegionId(), volumeGroup.getVolumeGroupId());
2475 executeBB.getBuildingBlock().setBpmnFlowName("UnassignVolumeGroupBB");
2476 executeBB.getBuildingBlock().setKey("72d9d1cd-f46d-447a-abdb-451d6fb05fa8");
2477 SPY_bbInputSetup.getGBBMacroExistingService(executeBB, lookupKeyMap,
2478 executeBB.getBuildingBlock().getBpmnFlowName(), requestAction, null);
2479 verify(SPY_bbInputSetup, times(3)).mapCatalogVnf(any(GenericVnf.class), any(ModelInfo.class),
2480 any(Service.class));
2481 verify(SPY_bbInputSetup, times(1)).mapCatalogVolumeGroup(isA(VolumeGroup.class), isA(ModelInfo.class),
2482 isA(Service.class), isA(String.class));
2484 Configuration configuration = new Configuration();
2485 configuration.setConfigurationId("configurationId");
2486 gBB.getServiceInstance().getConfigurations().add(configuration);
2487 org.onap.aai.domain.yang.Configuration aaiConfiguration = new org.onap.aai.domain.yang.Configuration();
2488 aaiConfiguration.setModelCustomizationId("modelCustId");
2489 doReturn(aaiConfiguration).when(SPY_bbInputSetupUtils).getAAIConfiguration(configuration.getConfigurationId());
2490 doNothing().when(SPY_bbInputSetup).mapCatalogConfiguration(isA(Configuration.class), isA(ModelInfo.class), isA(Service.class), isA(ConfigurationResourceKeys.class));
2492 executeBB.getBuildingBlock().setBpmnFlowName("ActivateFabricConfigurationBB");
2493 executeBB.getBuildingBlock().setKey("72d9d1cd-f46d-447a-abdb-451d6fb05fa9");
2494 SPY_bbInputSetup.getGBBMacroExistingService(executeBB, lookupKeyMap,
2495 executeBB.getBuildingBlock().getBpmnFlowName(), requestAction, cloudConfiguration);
2496 verify(SPY_bbInputSetup, times(1)).mapCatalogConfiguration(any(Configuration.class), any(ModelInfo.class),
2497 any(Service.class), isA(ConfigurationResourceKeys.class));
2501 public void testGetVnfId() {
2502 String expected = "vnfId";
2503 ExecuteBuildingBlock executeBB = new ExecuteBuildingBlock();
2504 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
2505 executeBB.setRequestId("requestId");
2506 InfraActiveRequests request = new InfraActiveRequests();
2507 request.setVnfId(expected);
2508 doReturn(request).when(SPY_bbInputSetupUtils).getInfraActiveRequest(executeBB.getRequestId());
2510 String actual = SPY_bbInputSetup.getVnfId(executeBB, lookupKeyMap);
2512 assertEquals("VnfId is set correctly", expected, actual);
2516 public void testCreateVfModule() {
2517 String vfModuleId = "vfModuleId";
2518 String instanceName = "vfModuleName";
2519 Map<String, String> cloudParams = new HashMap<>();
2520 cloudParams.put("param1", "param1Value");
2521 VfModule expected = new VfModule();
2522 expected.setVfModuleId(vfModuleId);
2523 expected.setVfModuleName(instanceName);
2524 expected.setCloudParams(cloudParams);
2525 expected.setOrchestrationStatus(OrchestrationStatus.PRECREATED);
2526 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
2527 List<Map<String, String>> instanceParams = new ArrayList<>();
2528 instanceParams.add(cloudParams);
2530 VfModule actual = SPY_bbInputSetup.createVfModule(lookupKeyMap, vfModuleId, instanceName, instanceParams);
2532 assertThat(actual, sameBeanAs(expected));
2533 assertEquals("LookupKeyMap is populated", vfModuleId, lookupKeyMap.get(ResourceKey.VF_MODULE_ID));
2535 expected.getCloudParams().clear();
2536 actual = SPY_bbInputSetup.createVfModule(lookupKeyMap, vfModuleId, instanceName, null);
2537 assertThat(actual, sameBeanAs(expected));
2541 public void testCreateVolumeGroup() {
2542 String volumeGroupId = "volumeGroupId";
2543 String instanceName = "vfModuleName";
2544 String vnfType = "vnfType";
2545 Map<String, String> cloudParams = new HashMap<>();
2546 cloudParams.put("param1", "param1Value");
2547 VolumeGroup expected = new VolumeGroup();
2548 expected.setVolumeGroupId(volumeGroupId);
2549 expected.setVolumeGroupName(instanceName);
2550 expected.setCloudParams(cloudParams);
2551 expected.setVnfType(vnfType);
2552 expected.setOrchestrationStatus(OrchestrationStatus.PRECREATED);
2553 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
2554 List<Map<String, String>> instanceParams = new ArrayList<>();
2555 instanceParams.add(cloudParams);
2557 VolumeGroup actual = SPY_bbInputSetup.createVolumeGroup(lookupKeyMap, volumeGroupId, instanceName, vnfType, instanceParams);
2559 assertThat(actual, sameBeanAs(expected));
2560 assertEquals("LookupKeyMap is populated", volumeGroupId, lookupKeyMap.get(ResourceKey.VOLUME_GROUP_ID));
2562 expected.getCloudParams().clear();
2563 actual = SPY_bbInputSetup.createVolumeGroup(lookupKeyMap, volumeGroupId, instanceName, vnfType, null);
2564 assertThat(actual, sameBeanAs(expected));
2568 public void testCreateNetwork() {
2569 String networkId = "networkId";
2570 String instanceName = "networkName";
2571 Map<String, String> cloudParams = new HashMap<>();
2572 cloudParams.put("param1", "param1Value");
2573 L3Network expected = new L3Network();
2574 expected.setNetworkId(networkId);
2575 expected.setNetworkName(instanceName);
2576 expected.setCloudParams(cloudParams);
2577 expected.setOrchestrationStatus(OrchestrationStatus.PRECREATED);
2578 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
2579 List<Map<String, String>> instanceParams = new ArrayList<>();
2580 instanceParams.add(cloudParams);
2581 L3Network actual = SPY_bbInputSetup.createNetwork(lookupKeyMap, instanceName, networkId, instanceParams);
2583 assertThat(actual, sameBeanAs(expected));
2584 assertEquals("LookupKeyMap is populated", networkId, lookupKeyMap.get(ResourceKey.NETWORK_ID));
2586 expected.getCloudParams().clear();
2587 actual = SPY_bbInputSetup.createNetwork(lookupKeyMap, instanceName, networkId, null);
2588 assertThat(actual, sameBeanAs(expected));
2592 public void testCreateGenericVnf() {
2593 String vnfId = "vnfId";
2594 String instanceName = "vnfName";
2595 String vnfType = "vnfType";
2596 String platformName = "platformName";
2597 String lineOfBusinessName = "lineOfBusinessName";
2598 String productFamilyId = "productFamilyId";
2599 Platform platform = new Platform();
2600 platform.setPlatformName(platformName);
2601 LineOfBusiness lineOfBusiness = new LineOfBusiness();
2602 lineOfBusiness.setLineOfBusinessName(lineOfBusinessName);
2603 Map<String, String> cloudParams = new HashMap<>();
2604 cloudParams.put("param1", "param1Value");
2605 GenericVnf expected = new GenericVnf();
2606 expected.setVnfId(vnfId);
2607 expected.setVnfName(instanceName);
2608 expected.setVnfType(vnfType);
2609 expected.setCloudParams(cloudParams);
2610 expected.setOrchestrationStatus(OrchestrationStatus.PRECREATED);
2611 expected.setPlatform(platform);
2612 expected.setLineOfBusiness(lineOfBusiness);
2613 expected.setProvStatus("PREPROV");
2614 expected.setServiceId(productFamilyId);
2615 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
2616 List<Map<String, String>> instanceParams = new ArrayList<>();
2617 instanceParams.add(cloudParams);
2618 org.onap.so.serviceinstancebeans.Platform requestPlatform = new org.onap.so.serviceinstancebeans.Platform();
2619 platform.setPlatformName(platformName);
2620 org.onap.so.serviceinstancebeans.LineOfBusiness requestLineOfBusiness = new org.onap.so.serviceinstancebeans.LineOfBusiness();
2621 lineOfBusiness.setLineOfBusinessName(lineOfBusinessName);
2623 doReturn(platform).when(bbInputSetupMapperLayer).mapRequestPlatform(requestPlatform);
2624 doReturn(lineOfBusiness).when(bbInputSetupMapperLayer).mapRequestLineOfBusiness(requestLineOfBusiness);
2626 GenericVnf actual = SPY_bbInputSetup.createGenericVnf(lookupKeyMap, instanceName, requestPlatform, requestLineOfBusiness, vnfId, vnfType, instanceParams,
2629 assertThat(actual, sameBeanAs(expected));
2630 assertEquals("LookupKeyMap is populated", vnfId, lookupKeyMap.get(ResourceKey.GENERIC_VNF_ID));
2632 expected.getCloudParams().clear();
2633 actual = SPY_bbInputSetup.createGenericVnf(lookupKeyMap, instanceName, requestPlatform, requestLineOfBusiness, vnfId, vnfType, null, productFamilyId);
2634 assertThat(actual, sameBeanAs(expected));
2638 public void testMapCatalogVfModule() {
2639 String vnfModelCustomizationUUID = "vnfResourceCustUUID";
2640 String vfModuleCustomizationUUID = "vfModelCustomizationUUID";
2641 VfModule vfModule = new VfModule();
2642 ModelInfo modelInfo = new ModelInfo();
2643 modelInfo.setModelCustomizationUuid(vfModuleCustomizationUUID);
2644 Service service = new Service();
2645 VnfResourceCustomization vnfResourceCust = new VnfResourceCustomization();
2646 vnfResourceCust.setModelCustomizationUUID(vnfModelCustomizationUUID);
2647 VfModuleCustomization vfModuleCust = new VfModuleCustomization();
2648 vfModuleCust.setModelCustomizationUUID(vfModuleCustomizationUUID);
2649 vnfResourceCust.getVfModuleCustomizations().add(vfModuleCust);
2650 service.getVnfCustomizations().add(vnfResourceCust);
2651 ModelInfoVfModule modelInfoVfModule = new ModelInfoVfModule();
2653 doReturn(modelInfoVfModule).when(bbInputSetupMapperLayer).mapCatalogVfModuleToVfModule(vfModuleCust);
2655 SPY_bbInputSetup.mapCatalogVfModule(vfModule, modelInfo, service, vnfModelCustomizationUUID);
2657 assertThat(vfModule.getModelInfoVfModule(), sameBeanAs(modelInfoVfModule));
2659 modelInfo.setModelCustomizationUuid(null);
2660 modelInfo.setModelCustomizationId(vfModuleCustomizationUUID);
2662 SPY_bbInputSetup.mapCatalogVfModule(vfModule, modelInfo, service, vnfModelCustomizationUUID);
2664 assertThat(vfModule.getModelInfoVfModule(), sameBeanAs(modelInfoVfModule));
2668 public void testPopulateVfModule() throws Exception {
2669 String vnfId = "vnfId";
2670 String vfModuleId = "vfModuleId";
2671 String volumeGroupId = "volumeGroupId";
2672 String vfModuleCustomizationId = "vfModuleCustomizationId";
2673 ModelInfo modelInfo = new ModelInfo();
2674 modelInfo.setModelCustomizationId(vfModuleCustomizationId);
2675 Service service = new Service();
2676 String bbName = AssignFlows.VF_MODULE.toString();
2677 ServiceInstance serviceInstance = new ServiceInstance();
2678 GenericVnf vnf = new GenericVnf();
2679 vnf.setVnfId(vnfId);
2680 VolumeGroup volumeGroup = new VolumeGroup();
2681 volumeGroup.setVolumeGroupId(volumeGroupId);
2682 vnf.getVolumeGroups().add(volumeGroup);
2683 serviceInstance.getVnfs().add(vnf);
2684 VfModule vfModule1 = new VfModule();
2685 vfModule1.setVfModuleId("vfModuleId1");
2686 VfModule vfModule2 = new VfModule();
2687 vfModule2.setVfModuleId("vfModuleId2");
2688 vnf.getVfModules().add(vfModule1);
2689 vnf.getVfModules().add(vfModule2);
2690 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
2691 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, vnfId);
2692 String resourceId = vfModuleId;
2693 RelatedInstanceList[] relatedInstanceList = null;
2694 String instanceName = "vfModuleName";
2695 List<Map<String, String>> instanceParams = null;
2696 CloudConfiguration cloudConfiguration = new CloudConfiguration();
2698 org.onap.aai.domain.yang.GenericVnf vnfAAI = new org.onap.aai.domain.yang.GenericVnf();
2699 vnfAAI.setModelCustomizationId("vnfModelCustId");
2700 org.onap.aai.domain.yang.VolumeGroup volumeGroupAAI = new org.onap.aai.domain.yang.VolumeGroup();
2701 volumeGroupAAI.setModelCustomizationId(vfModuleCustomizationId);
2702 org.onap.aai.domain.yang.VfModule vfModuleAAI = new org.onap.aai.domain.yang.VfModule();
2703 vfModuleAAI.setModelCustomizationId(vfModuleCustomizationId);
2705 doReturn(vnfAAI).when(SPY_bbInputSetupUtils).getAAIGenericVnf(vnf.getVnfId());
2706 doReturn(volumeGroupAAI).when(SPY_bbInputSetupUtils).getAAIVolumeGroup(CLOUD_OWNER,
2707 cloudConfiguration.getLcpCloudRegionId(), volumeGroup.getVolumeGroupId());
2708 doReturn(vfModuleAAI).when(SPY_bbInputSetupUtils).getAAIVfModule(isA(String.class), isA(String.class));
2709 doNothing().when(SPY_bbInputSetup).mapCatalogVnf(isA(GenericVnf.class), isA(ModelInfo.class), isA(Service.class));
2710 doNothing().when(SPY_bbInputSetup).mapCatalogVfModule(isA(VfModule.class), isA(ModelInfo.class), isA(Service.class), isA(String.class));
2712 SPY_bbInputSetup.populateVfModule(modelInfo, service, bbName, serviceInstance, lookupKeyMap,
2713 resourceId, relatedInstanceList, instanceName, instanceParams, cloudConfiguration);
2715 verify(SPY_bbInputSetup, times(3)).mapCatalogVfModule(isA(VfModule.class), isA(ModelInfo.class), isA(Service.class), isA(String.class));
2716 assertEquals("Lookup Key Map populated with VfModule Id", vfModuleId, lookupKeyMap.get(ResourceKey.VF_MODULE_ID));
2717 assertEquals("Lookup Key Map populated with VolumeGroup Id", volumeGroupId, lookupKeyMap.get(ResourceKey.VOLUME_GROUP_ID));
2721 public void testGettingVnfcToConfiguration() throws Exception {
2723 String vnfcName = "vnfcName";
2724 org.onap.aai.domain.yang.Configuration expectedAAI = new org.onap.aai.domain.yang.Configuration();
2725 AAIResourceUri aaiResourceUri = AAIUriFactory.createResourceUri(AAIObjectType.VNFC, vnfcName);
2726 AAIResultWrapper configurationWrapper =
2727 new AAIResultWrapper(new AAICommonObjectMapperProvider().getMapper().writeValueAsString(expectedAAI));
2729 doReturn(new AAIResultWrapper(null)).when(SPY_bbInputSetupUtils).getAAIResourceDepthOne(aaiResourceUri);
2730 Vnfc vnfc = SPY_bbInputSetup.getVnfcToConfiguration(vnfcName);
2731 Assert.assertNull(vnfc);
2733 doReturn(configurationWrapper).when(SPY_bbInputSetupUtils).getAAIResourceDepthOne(aaiResourceUri);
2734 vnfc = SPY_bbInputSetup.getVnfcToConfiguration(vnfcName);
2735 Assert.assertNotNull(vnfc);