2 * ============LICENSE_START=======================================================
4 * ================================================================================
5 * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
6 * ================================================================================
7 * Modifications Copyright (c) 2019 Samsung
8 * ================================================================================
9 * Modifications Copyright (c) 2020 Nokia
10 * ================================================================================
11 * Licensed under the Apache License, Version 2.0 (the "License");
12 * you may not use this file except in compliance with the License.
13 * You may obtain a copy of the License at
15 * http://www.apache.org/licenses/LICENSE-2.0
17 * Unless required by applicable law or agreed to in writing, software
18 * distributed under the License is distributed on an "AS IS" BASIS,
19 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
20 * See the License for the specific language governing permissions and
21 * limitations under the License.
22 * ============LICENSE_END=========================================================
25 package org.onap.so.bpmn.servicedecomposition.tasks;
27 import static com.shazam.shazamcrest.MatcherAssert.assertThat;
28 import static com.shazam.shazamcrest.matcher.Matchers.sameBeanAs;
29 import static org.junit.Assert.assertEquals;
30 import static org.junit.Assert.assertNotNull;
31 import static org.junit.Assert.assertNull;
32 import static org.mockito.ArgumentMatchers.any;
33 import static org.mockito.ArgumentMatchers.eq;
34 import static org.mockito.ArgumentMatchers.isA;
35 import static org.mockito.Mockito.doNothing;
36 import static org.mockito.Mockito.doReturn;
37 import static org.mockito.Mockito.times;
38 import static org.mockito.Mockito.verify;
39 import static org.onap.so.bpmn.servicedecomposition.tasks.BaseBBInputSetupTestHelper.prepareConfigurationResourceKeys;
40 import static org.onap.so.bpmn.servicedecomposition.tasks.BaseBBInputSetupTestHelper.prepareLookupKeyMap;
42 import java.io.IOException;
43 import java.util.ArrayList;
44 import java.util.Arrays;
45 import java.util.HashMap;
46 import java.util.List;
48 import java.util.Optional;
49 import java.util.UUID;
50 import org.camunda.bpm.engine.delegate.DelegateExecution;
51 import org.junit.Assert;
52 import org.junit.Rule;
53 import org.junit.Test;
54 import org.junit.rules.ExpectedException;
55 import org.junit.runner.RunWith;
56 import org.mockito.ArgumentMatchers;
57 import org.mockito.InjectMocks;
58 import org.mockito.Mock;
59 import org.mockito.Mockito;
60 import org.mockito.Spy;
61 import org.mockito.junit.MockitoJUnitRunner;
62 import org.onap.aaiclient.client.aai.AAICommonObjectMapperProvider;
63 import org.onap.aaiclient.client.aai.entities.AAIResultWrapper;
64 import org.onap.aaiclient.client.aai.entities.uri.AAIResourceUri;
65 import org.onap.aaiclient.client.aai.entities.uri.AAIUriFactory;
66 import org.onap.aaiclient.client.generated.fluentbuilders.AAIFluentTypeBuilder;
67 import org.onap.so.bpmn.servicedecomposition.bbobjects.CloudRegion;
68 import org.onap.so.bpmn.servicedecomposition.bbobjects.Collection;
69 import org.onap.so.bpmn.servicedecomposition.bbobjects.Configuration;
70 import org.onap.so.bpmn.servicedecomposition.bbobjects.Customer;
71 import org.onap.so.bpmn.servicedecomposition.bbobjects.GenericVnf;
72 import org.onap.so.bpmn.servicedecomposition.bbobjects.InstanceGroup;
73 import org.onap.so.bpmn.servicedecomposition.bbobjects.L3Network;
74 import org.onap.so.bpmn.servicedecomposition.bbobjects.LineOfBusiness;
75 import org.onap.so.bpmn.servicedecomposition.bbobjects.OwningEntity;
76 import org.onap.so.bpmn.servicedecomposition.bbobjects.Platform;
77 import org.onap.so.bpmn.servicedecomposition.bbobjects.Pnf;
78 import org.onap.so.bpmn.servicedecomposition.bbobjects.Project;
79 import org.onap.so.bpmn.servicedecomposition.bbobjects.RouteTableReference;
80 import org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance;
81 import org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceProxy;
82 import org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceSubscription;
83 import org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule;
84 import org.onap.so.bpmn.servicedecomposition.bbobjects.Vnfc;
85 import org.onap.so.bpmn.servicedecomposition.bbobjects.VolumeGroup;
86 import org.onap.so.bpmn.servicedecomposition.entities.BuildingBlock;
87 import org.onap.so.bpmn.servicedecomposition.entities.ConfigurationResourceKeys;
88 import org.onap.so.bpmn.servicedecomposition.entities.ExecuteBuildingBlock;
89 import org.onap.so.bpmn.servicedecomposition.entities.GeneralBuildingBlock;
90 import org.onap.so.bpmn.servicedecomposition.entities.ResourceKey;
91 import org.onap.so.bpmn.servicedecomposition.entities.ServiceModel;
92 import org.onap.so.bpmn.servicedecomposition.entities.WorkflowResourceIds;
93 import org.onap.so.bpmn.servicedecomposition.generalobjects.OrchestrationContext;
94 import org.onap.so.bpmn.servicedecomposition.generalobjects.RequestContext;
95 import org.onap.so.bpmn.servicedecomposition.modelinfo.ModelInfoCollection;
96 import org.onap.so.bpmn.servicedecomposition.modelinfo.ModelInfoGenericVnf;
97 import org.onap.so.bpmn.servicedecomposition.modelinfo.ModelInfoInstanceGroup;
98 import org.onap.so.bpmn.servicedecomposition.modelinfo.ModelInfoNetwork;
99 import org.onap.so.bpmn.servicedecomposition.modelinfo.ModelInfoServiceInstance;
100 import org.onap.so.bpmn.servicedecomposition.modelinfo.ModelInfoServiceProxy;
101 import org.onap.so.bpmn.servicedecomposition.modelinfo.ModelInfoVfModule;
102 import org.onap.so.bpmn.servicedecomposition.tasks.exceptions.NoServiceInstanceFoundException;
103 import org.onap.so.bpmn.servicedecomposition.tasks.exceptions.ServiceModelNotFoundException;
104 import org.onap.so.db.catalog.beans.CollectionNetworkResourceCustomization;
105 import org.onap.so.db.catalog.beans.CollectionResource;
106 import org.onap.so.db.catalog.beans.CollectionResourceCustomization;
107 import org.onap.so.db.catalog.beans.CollectionResourceInstanceGroupCustomization;
108 import org.onap.so.db.catalog.beans.ConfigurationResource;
109 import org.onap.so.db.catalog.beans.ConfigurationResourceCustomization;
110 import org.onap.so.db.catalog.beans.CvnfcConfigurationCustomization;
111 import org.onap.so.db.catalog.beans.InstanceGroupType;
112 import org.onap.so.db.catalog.beans.NetworkCollectionResourceCustomization;
113 import org.onap.so.db.catalog.beans.NetworkResourceCustomization;
114 import org.onap.so.db.catalog.beans.OrchestrationStatus;
115 import org.onap.so.db.catalog.beans.Service;
116 import org.onap.so.db.catalog.beans.ServiceProxyResourceCustomization;
117 import org.onap.so.db.catalog.beans.VfModuleCustomization;
118 import org.onap.so.db.catalog.beans.VnfResourceCustomization;
119 import org.onap.so.db.catalog.beans.VnfcInstanceGroupCustomization;
120 import org.onap.so.db.request.beans.InfraActiveRequests;
121 import org.onap.so.serviceinstancebeans.CloudConfiguration;
122 import org.onap.so.serviceinstancebeans.ModelInfo;
123 import org.onap.so.serviceinstancebeans.ModelType;
124 import org.onap.so.serviceinstancebeans.RelatedInstance;
125 import org.onap.so.serviceinstancebeans.RelatedInstanceList;
126 import org.onap.so.serviceinstancebeans.RequestDetails;
127 import org.onap.so.serviceinstancebeans.RequestInfo;
128 import org.onap.so.serviceinstancebeans.RequestParameters;
129 import org.onap.so.serviceinstancebeans.Resources;
130 import org.onap.so.serviceinstancebeans.SubscriberInfo;
131 import com.fasterxml.jackson.core.JsonParseException;
132 import com.fasterxml.jackson.core.JsonProcessingException;
133 import com.fasterxml.jackson.databind.JsonMappingException;
134 import com.fasterxml.jackson.databind.ObjectMapper;
135 import org.onap.so.serviceinstancebeans.VfModules;
136 import org.onap.so.serviceinstancebeans.Vnfs;
138 @RunWith(MockitoJUnitRunner.class)
139 public class BBInputSetupTest {
140 private static final String RESOURCE_PATH = "src/test/resources/__files/ExecuteBuildingBlock/";
142 protected ObjectMapper mapper = new ObjectMapper();
143 private static final String CLOUD_OWNER = "CloudOwner";
144 private static final String REQUEST_ID = "b20bbd26-af25-4a50-a9fe-222a3c0f9771";
148 private BBInputSetup SPY_bbInputSetup = new BBInputSetup();
151 private BBInputSetupUtils SPY_bbInputSetupUtils;
154 private CloudInfoFromAAI SPY_cloudInfoFromAAI;
157 private BBInputSetupMapperLayer bbInputSetupMapperLayer;
160 public ExpectedException expectedException = ExpectedException.none();
163 public void testGetVolumeGroupIdRelatedToVfModule() {
164 String expected = "volumeGroupId";
165 String modelCustomizationId = "modelCustomizationId";
166 ModelInfo modelInfo = new ModelInfo();
167 modelInfo.setModelCustomizationId(modelCustomizationId);
168 String cloudOwner = "cloudOwner";
169 String cloudRegionId = "cloudRegionId";
170 String volumeGroupId = "volumeGroupId";
171 GenericVnf vnf = new GenericVnf();
172 VolumeGroup volumeGroup = new VolumeGroup();
173 volumeGroup.setVolumeGroupId(expected);
174 vnf.getVolumeGroups().add(volumeGroup);
175 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
176 lookupKeyMap.put(ResourceKey.VOLUME_GROUP_ID, null);
177 org.onap.aai.domain.yang.VolumeGroup aaiVolumeGroup = new org.onap.aai.domain.yang.VolumeGroup();
178 aaiVolumeGroup.setModelCustomizationId(modelCustomizationId);
179 doReturn(aaiVolumeGroup).when(SPY_bbInputSetupUtils).getAAIVolumeGroup(cloudOwner, cloudRegionId,
182 Optional<String> actual = SPY_bbInputSetup.getVolumeGroupIdRelatedToVfModule(vnf, modelInfo, cloudOwner,
183 cloudRegionId, lookupKeyMap);
185 assertEquals(expected, actual.get());
189 public void testGetAlaCarteServiceInstance() throws Exception {
190 ServiceInstance expected =
191 mapper.readValue(new File(RESOURCE_PATH + "ServiceInstance_getServiceInstanceNOAAIExpected.json"),
192 ServiceInstance.class);
193 RequestDetails requestDetails = new RequestDetails();
194 RequestInfo requestInfo = new RequestInfo();
195 requestInfo.setInstanceName("SharansInstanceName");
196 requestDetails.setRequestInfo(requestInfo);
197 Customer customer = new Customer();
198 String serviceInstanceId = "SharansInstanceId";
199 boolean aLaCarte = true;
200 Service service = new Service();
201 service.setModelUUID("modelUUID");
202 ModelInfoServiceInstance modelInfoServiceInstance = new ModelInfoServiceInstance();
203 modelInfoServiceInstance.setModelUuid("modelUUID");
204 expected.setModelInfoServiceInstance(modelInfoServiceInstance);
205 org.onap.aai.domain.yang.ServiceInstance serviceInstanceAAI = new org.onap.aai.domain.yang.ServiceInstance();
206 serviceInstanceAAI.setModelVersionId("modelUUIDDifferent");
207 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
208 String bbName = AssignFlows.SERVICE_INSTANCE.toString();
209 Service differentService = new Service();
210 differentService.setModelUUID("modelUUIDDifferent");
212 doReturn(expected).when(SPY_bbInputSetup).getServiceInstanceHelper(requestDetails, customer, null, null,
213 lookupKeyMap, serviceInstanceId, aLaCarte, service, bbName);
214 doReturn(serviceInstanceAAI).when(SPY_bbInputSetupUtils).getAAIServiceInstanceById(serviceInstanceId);
215 doReturn(differentService).when(SPY_bbInputSetupUtils)
216 .getCatalogServiceByModelUUID(serviceInstanceAAI.getModelVersionId());
217 doReturn(expected.getModelInfoServiceInstance()).when(bbInputSetupMapperLayer)
218 .mapCatalogServiceIntoServiceInstance(differentService);
220 ServiceInstance actual = SPY_bbInputSetup.getALaCarteServiceInstance(service, requestDetails, customer, null,
221 null, lookupKeyMap, serviceInstanceId, aLaCarte, bbName);
222 assertThat(actual, sameBeanAs(expected));
225 @Test(expected = Exception.class)
226 public void testGetAlaCarteServiceInstanceException() throws Exception {
227 ServiceInstance expected =
228 mapper.readValue(new File(RESOURCE_PATH + "ServiceInstance_getServiceInstanceNOAAIExpected.json"),
229 ServiceInstance.class);
230 RequestDetails requestDetails = new RequestDetails();
231 RequestInfo requestInfo = new RequestInfo();
232 requestInfo.setInstanceName("SharansInstanceName");
233 requestDetails.setRequestInfo(requestInfo);
234 Customer customer = new Customer();
235 String serviceInstanceId = "SharansInstanceId";
236 boolean aLaCarte = true;
237 Service service = new Service();
238 service.setModelUUID("modelUUID");
239 ModelInfoServiceInstance modelInfoServiceInstance = new ModelInfoServiceInstance();
240 modelInfoServiceInstance.setModelUuid("modelUUID");
241 expected.setModelInfoServiceInstance(modelInfoServiceInstance);
242 org.onap.aai.domain.yang.ServiceInstance serviceInstanceAAI = new org.onap.aai.domain.yang.ServiceInstance();
243 serviceInstanceAAI.setModelVersionId("modelUUIDDifferent");
244 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
245 String bbName = AssignFlows.SERVICE_INSTANCE.toString();
246 Service differentService = new Service();
247 differentService.setModelUUID("modelUUIDDifferent");
249 doReturn(expected).when(SPY_bbInputSetup).getServiceInstanceHelper(requestDetails, customer, null, null,
250 lookupKeyMap, serviceInstanceId, aLaCarte, service, bbName);
251 doReturn(serviceInstanceAAI).when(SPY_bbInputSetupUtils).getAAIServiceInstanceById(serviceInstanceId);
252 doReturn(null).when(SPY_bbInputSetupUtils).getCatalogServiceByModelUUID(serviceInstanceAAI.getModelVersionId());
254 ServiceInstance actual = SPY_bbInputSetup.getALaCarteServiceInstance(service, requestDetails, customer, null,
255 null, lookupKeyMap, serviceInstanceId, aLaCarte, bbName);
256 assertThat(actual, sameBeanAs(expected));
260 public void testGetCustomerAndServiceSubscription() throws JsonParseException, JsonMappingException, IOException {
261 RequestDetails requestDetails = mapper.readValue(
262 new File(RESOURCE_PATH + "RequestDetailsInput_withRelatedInstanceList.json"), RequestDetails.class);
263 SubscriberInfo subscriberInfo = new SubscriberInfo();
264 subscriberInfo.setGlobalSubscriberId("globalSubscriberId");
265 RequestParameters requestParams = new RequestParameters();
266 requestParams.setSubscriptionServiceType("subscriptionServiceType");
267 requestDetails.setRequestParameters(requestParams);
268 requestDetails.setSubscriberInfo(subscriberInfo);
269 String resourceId = "resourceId";
270 Customer expected = new Customer();
271 expected.setGlobalCustomerId("globalCustomerId");
272 ServiceSubscription serviceSubscription = new ServiceSubscription();
273 serviceSubscription.setServiceType("subscriptionServiceType");
275 doReturn(expected).when(this.SPY_bbInputSetup).getCustomerFromRequest(requestDetails);
276 doReturn(serviceSubscription).when(this.SPY_bbInputSetup).getServiceSubscription(requestDetails, expected);
278 Customer actual = this.SPY_bbInputSetup.getCustomerAndServiceSubscription(requestDetails, resourceId);
280 assertThat(actual, sameBeanAs(expected));
282 requestDetails.setSubscriberInfo(null);
285 assertThat(actual, sameBeanAs(expected));
290 public void testSetHomingFlag() throws IOException {
291 GeneralBuildingBlock expected = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
292 GeneralBuildingBlock.class);
293 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
294 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "vnfId");
295 GenericVnf genericVnfExpected = new GenericVnf();
296 genericVnfExpected.setVnfId("vnfId");
297 genericVnfExpected.setCallHoming(true);
298 expected.getCustomer().getServiceSubscription().getServiceInstances().get(0).getVnfs().add(genericVnfExpected);
299 boolean homing = true;
300 GenericVnf genericVnfActual = new GenericVnf();
301 genericVnfActual.setVnfId("vnfId");
302 genericVnfActual.setCallHoming(false);
303 GeneralBuildingBlock actual = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
304 GeneralBuildingBlock.class);
305 actual.getCustomer().getServiceSubscription().getServiceInstances().get(0).getVnfs().add(genericVnfActual);
307 SPY_bbInputSetup.setHomingFlag(actual, homing, lookupKeyMap);
308 assertThat(actual, sameBeanAs(expected));
312 public void testGetExecuteBBFromExecution() throws IOException {
313 BuildingBlock bb = new BuildingBlock().setBpmnFlowName("AssignServiceInstanceBB");
314 ExecuteBuildingBlock expected =
315 new ExecuteBuildingBlock().setBuildingBlock(bb).setRequestId("00032ab7-3fb3-42e5-965d-8ea592502017");
316 DelegateExecution execution = Mockito.mock(DelegateExecution.class);
317 doReturn(expected).when(execution).getVariable(any(String.class));
318 ExecuteBuildingBlock actual = SPY_bbInputSetup.getExecuteBBFromExecution(execution);
319 assertThat(actual, sameBeanAs(expected));
323 public void testGetGBB() throws Exception {
324 GeneralBuildingBlock expected = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
325 GeneralBuildingBlock.class);
327 ExecuteBuildingBlock executeBB = new ExecuteBuildingBlock().setRequestId("requestId");
328 RequestDetails requestDetails = new RequestDetails();
329 ModelInfo modelInfo = new ModelInfo();
330 modelInfo.setModelType(ModelType.service);
331 requestDetails.setModelInfo(modelInfo);
332 RequestParameters requestParams = new RequestParameters();
333 requestParams.setaLaCarte(true);
334 requestDetails.setRequestParameters(requestParams);
335 doReturn(requestDetails).when(SPY_bbInputSetupUtils).getRequestDetails(executeBB.getRequestId());
336 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
337 String resourceId = "123";
338 String requestAction = "createInstance";
339 doReturn(expected).when(SPY_bbInputSetup).getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
340 requestAction, resourceId);
341 doNothing().when(SPY_bbInputSetup).populateLookupKeyMapWithIds(executeBB.getWorkflowResourceIds(),
343 boolean aLaCarte = true;
344 GeneralBuildingBlock actual =
345 SPY_bbInputSetup.getGBB(executeBB, lookupKeyMap, requestAction, aLaCarte, resourceId, null);
347 assertThat(actual, sameBeanAs(expected));
351 public void testGetGBBCM() throws Exception {
352 GeneralBuildingBlock expected = mapper
353 .readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockCMExpected.json"), GeneralBuildingBlock.class);
355 ExecuteBuildingBlock executeBB = new ExecuteBuildingBlock().setRequestId("requestId");
356 RequestDetails requestDetails = new RequestDetails();
357 requestDetails.setModelInfo(null);
358 RequestParameters requestParams = new RequestParameters();
359 requestParams.setaLaCarte(true);
360 requestDetails.setRequestParameters(requestParams);
361 RequestInfo requestInfo = new RequestInfo();
362 requestInfo.setSuppressRollback(true);
363 requestInfo.setSource("VID");
364 requestDetails.setRequestInfo(requestInfo);
365 CloudConfiguration cloudConfiguration = new CloudConfiguration();
366 cloudConfiguration.setLcpCloudRegionId("myRegionId");
367 requestDetails.setCloudConfiguration(cloudConfiguration);
368 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
369 String resourceId = "123";
370 String requestAction = "createInstance";
372 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "vnf-001");
374 doReturn(new org.onap.aai.domain.yang.GenericVnf()).when(SPY_bbInputSetupUtils)
375 .getAAIGenericVnf(ArgumentMatchers.isA(String.class));
376 doReturn(null).when(bbInputSetupMapperLayer)
377 .mapAAIGenericVnfIntoGenericVnf(ArgumentMatchers.isA(org.onap.aai.domain.yang.GenericVnf.class));
378 GeneralBuildingBlock actual =
379 SPY_bbInputSetup.getGBBCM(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId);
380 assertThat(actual, sameBeanAs(expected));
384 public void testGetGBBCMAddMembersAction() throws Exception {
385 GeneralBuildingBlock expected = mapper.readValue(
386 new File(RESOURCE_PATH + "GeneralBuildingBlockInstanceGroupExpected.json"), GeneralBuildingBlock.class);
387 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
388 ExecuteBuildingBlock.class);
389 RequestDetails requestDetails = mapper.readValue(
390 new File(RESOURCE_PATH + "RequestDetailsInput_instanceGroupAddMembers.json"), RequestDetails.class);
391 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
392 String requestAction = "addMembers";
393 String instanceGroupId = "instance-group-001";
395 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
396 workflowResourceIds.setInstanceGroupId(instanceGroupId);
397 executeBB.setWorkflowResourceIds(workflowResourceIds);
399 lookupKeyMap.put(ResourceKey.INSTANCE_GROUP_ID, instanceGroupId);
401 org.onap.aai.domain.yang.InstanceGroup aaiInstanceGroup = new org.onap.aai.domain.yang.InstanceGroup();
402 aaiInstanceGroup.setId(instanceGroupId);
403 aaiInstanceGroup.setInstanceGroupName("test instance group 1");
405 org.onap.aai.domain.yang.ServiceInstance aaiServiceInstance = new org.onap.aai.domain.yang.ServiceInstance();
406 aaiServiceInstance.setServiceInstanceId("service-instance-001");
407 aaiServiceInstance.setServiceInstanceName("test service instance 1");
408 Optional<org.onap.aai.domain.yang.ServiceInstance> optSI = Optional.of(aaiServiceInstance);
410 org.onap.aai.domain.yang.GenericVnf vnf1 = new org.onap.aai.domain.yang.GenericVnf();
411 vnf1.setVnfId("vnf-001");
412 vnf1.setVnfName("test vnf 1");
414 org.onap.aai.domain.yang.GenericVnf vnf2 = new org.onap.aai.domain.yang.GenericVnf();
415 vnf2.setVnfId("vnf-002");
416 vnf2.setVnfName("test vnf 2");
418 doReturn(aaiInstanceGroup).when(SPY_bbInputSetupUtils).getAAIInstanceGroup(instanceGroupId);
419 doReturn(optSI).when(SPY_bbInputSetupUtils).getRelatedServiceInstanceFromInstanceGroup(instanceGroupId);
420 doReturn(vnf1).when(SPY_bbInputSetupUtils).getAAIGenericVnf("vnf-001");
421 doReturn(vnf2).when(SPY_bbInputSetupUtils).getAAIGenericVnf("vnf-002");
423 GeneralBuildingBlock actual =
424 SPY_bbInputSetup.getGBBCM(executeBB, requestDetails, lookupKeyMap, requestAction, instanceGroupId);
426 assertThat(actual, sameBeanAs(expected));
430 public void testGetGBBALaCarteNonService() throws Exception {
431 GeneralBuildingBlock expected = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
432 GeneralBuildingBlock.class);
433 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
434 ExecuteBuildingBlock.class);
435 RequestDetails requestDetails = mapper.readValue(
436 new File(RESOURCE_PATH + "RequestDetailsInput_withRelatedInstanceList.json"), RequestDetails.class);
437 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
438 String requestAction = "createInstance";
439 Service service = Mockito.mock(Service.class);
440 ServiceModel serviceModel = new ServiceModel();
441 serviceModel.setCurrentService(service);
442 ServiceInstance serviceInstance = Mockito.mock(ServiceInstance.class);
443 String resourceId = "123";
444 String vnfType = "vnfType";
445 org.onap.aai.domain.yang.ServiceInstance aaiServiceInstance = new org.onap.aai.domain.yang.ServiceInstance();
446 aaiServiceInstance.setModelVersionId("modelVersionId");
447 org.onap.aai.domain.yang.CloudRegion aaiCloudRegion = Mockito.mock(org.onap.aai.domain.yang.CloudRegion.class);
448 lookupKeyMap.put(ResourceKey.SERVICE_INSTANCE_ID, "instanceId");
449 doReturn(service).when(SPY_bbInputSetupUtils)
450 .getCatalogServiceByModelUUID(aaiServiceInstance.getModelVersionId());
451 doReturn(aaiServiceInstance).when(SPY_bbInputSetupUtils).getAAIServiceInstanceById("instanceId");
452 doNothing().when(SPY_bbInputSetup).populateObjectsOnAssignAndCreateFlows(any(BBInputSetupParameter.class));
453 doReturn(serviceInstance).when(SPY_bbInputSetup).getExistingServiceInstance(aaiServiceInstance);
454 doReturn(expected).when(SPY_bbInputSetup).populateGBBWithSIAndAdditionalInfo(any(BBInputSetupParameter.class));
456 GeneralBuildingBlock actual = SPY_bbInputSetup.getGBBALaCarteNonService(executeBB, requestDetails, lookupKeyMap,
457 requestAction, resourceId, vnfType);
459 assertThat(actual, sameBeanAs(expected));
463 public void testGetGBBALaCarteNonServiceIsReplace() throws Exception {
464 GeneralBuildingBlock expected = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
465 GeneralBuildingBlock.class);
466 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
467 ExecuteBuildingBlock.class);
468 RequestDetails requestDetails = mapper.readValue(
469 new File(RESOURCE_PATH + "RequestDetailsInput_withRelatedInstanceList.json"), RequestDetails.class);
470 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
471 String requestAction = "replaceInstance";
472 Service service = Mockito.mock(Service.class);
473 ServiceModel serviceModel = new ServiceModel();
474 serviceModel.setCurrentService(service);
475 ServiceInstance serviceInstance = Mockito.mock(ServiceInstance.class);
476 String resourceId = "123";
477 String vnfType = "vnfType";
478 org.onap.aai.domain.yang.ServiceInstance aaiServiceInstance = new org.onap.aai.domain.yang.ServiceInstance();
479 aaiServiceInstance.setModelVersionId("modelVersionId");
480 org.onap.aai.domain.yang.CloudRegion aaiCloudRegion = Mockito.mock(org.onap.aai.domain.yang.CloudRegion.class);
481 lookupKeyMap.put(ResourceKey.SERVICE_INSTANCE_ID, "instanceId");
482 doReturn(service).when(SPY_bbInputSetupUtils)
483 .getCatalogServiceByModelUUID(aaiServiceInstance.getModelVersionId());
484 doReturn(service).when(SPY_bbInputSetupUtils).getCatalogServiceByModelUUID("modelUUID");
485 doReturn(aaiServiceInstance).when(SPY_bbInputSetupUtils).getAAIServiceInstanceById("instanceId");
487 doNothing().when(SPY_bbInputSetup).populateObjectsOnAssignAndCreateFlows(any(BBInputSetupParameter.class));
488 doReturn(serviceInstance).when(SPY_bbInputSetup).getExistingServiceInstance(aaiServiceInstance);
489 doReturn(expected).when(SPY_bbInputSetup).populateGBBWithSIAndAdditionalInfo(any(BBInputSetupParameter.class));
491 GeneralBuildingBlock actual = SPY_bbInputSetup.getGBBALaCarteNonService(executeBB, requestDetails, lookupKeyMap,
492 requestAction, resourceId, vnfType);
494 verify(SPY_bbInputSetup, times(1)).populateObjectsOnAssignAndCreateFlows(any(BBInputSetupParameter.class));
496 verify(SPY_bbInputSetupUtils, times(1)).getCatalogServiceByModelUUID(aaiServiceInstance.getModelVersionId());
497 verify(SPY_bbInputSetupUtils, times(1)).getCatalogServiceByModelUUID("modelUUID");
499 assertThat(actual, sameBeanAs(expected));
503 public void testGetGBBALaCarteNonServiceWithoutServiceModelInfo() throws Exception {
504 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
505 ExecuteBuildingBlock.class);
506 RequestDetails requestDetails = mapper.readValue(
507 new File(RESOURCE_PATH + "RequestDetailsInput_withRelatedInstanceList.json"), RequestDetails.class);
508 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
509 lookupKeyMap.put(ResourceKey.SERVICE_INSTANCE_ID, "si123");
510 String requestAction = "createInstance";
511 org.onap.aai.domain.yang.ServiceInstance aaiServiceInstance = new org.onap.aai.domain.yang.ServiceInstance();
512 aaiServiceInstance.setModelVersionId("modelVersionId");
513 String resourceId = "123";
514 String vnfType = "vnfType";
516 doReturn(aaiServiceInstance).when(SPY_bbInputSetupUtils).getAAIServiceInstanceById("si123");
517 doReturn(null).when(SPY_bbInputSetupUtils).getCatalogServiceByModelUUID(aaiServiceInstance.getModelVersionId());
519 expectedException.expect(ServiceModelNotFoundException.class);
520 expectedException.expectMessage(
521 "Related service instance model not found in MSO CatalogDB: model-version-id=modelVersionId");
523 SPY_bbInputSetup.getGBBALaCarteNonService(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId,
528 public void testGetGBBALaCarteNonServiceServiceInstanceNotFoundInAAI() throws Exception {
529 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
530 ExecuteBuildingBlock.class);
531 RequestDetails requestDetails = mapper.readValue(
532 new File(RESOURCE_PATH + "RequestDetailsInput_withRelatedInstanceList.json"), RequestDetails.class);
533 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
534 lookupKeyMap.put(ResourceKey.SERVICE_INSTANCE_ID, "si123");
535 String requestAction = "createInstance";
536 org.onap.aai.domain.yang.ServiceInstance aaiServiceInstance = new org.onap.aai.domain.yang.ServiceInstance();
537 aaiServiceInstance.setModelVersionId("modelVersionId");
538 String resourceId = "123";
539 String vnfType = "vnfType";
541 doReturn(null).when(SPY_bbInputSetupUtils).getAAIServiceInstanceById("si123");
543 expectedException.expect(NoServiceInstanceFoundException.class);
544 expectedException.expectMessage("Related service instance from AAI not found: service-instance-id=si123");
546 SPY_bbInputSetup.getGBBALaCarteNonService(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId,
551 public void testGetGBBALaCarteNonServiceWithoutRelatedInstances() throws Exception {
552 GeneralBuildingBlock expected = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
553 GeneralBuildingBlock.class);
554 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
555 ExecuteBuildingBlock.class);
556 RequestDetails requestDetails = mapper.readValue(
557 new File(RESOURCE_PATH + "RequestDetailsInput_withoutRelatedInstanceList.json"), RequestDetails.class);
558 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
559 String requestAction = "createInstance";
560 Service service = Mockito.mock(Service.class);
561 ServiceModel serviceModel = new ServiceModel();
562 serviceModel.setCurrentService(service);
563 String resourceId = "123";
564 ServiceInstance serviceInstance = Mockito.mock(ServiceInstance.class);
565 org.onap.aai.domain.yang.ServiceInstance aaiServiceInstance = new org.onap.aai.domain.yang.ServiceInstance();
566 aaiServiceInstance.setModelVersionId("modelVersionId");
567 org.onap.aai.domain.yang.CloudRegion aaiCloudRegion = Mockito.mock(org.onap.aai.domain.yang.CloudRegion.class);
568 String vnfType = "vnfType";
569 lookupKeyMap.put(ResourceKey.SERVICE_INSTANCE_ID, "instanceId");
570 doReturn(service).when(SPY_bbInputSetupUtils)
571 .getCatalogServiceByModelUUID(aaiServiceInstance.getModelVersionId());
572 doReturn(aaiServiceInstance).when(SPY_bbInputSetupUtils).getAAIServiceInstanceById("instanceId");
574 doNothing().when(SPY_bbInputSetup).populateObjectsOnAssignAndCreateFlows(any(BBInputSetupParameter.class));
576 doReturn(serviceInstance).when(SPY_bbInputSetup).getExistingServiceInstance(aaiServiceInstance);
577 doReturn(expected).when(SPY_bbInputSetup).populateGBBWithSIAndAdditionalInfo(any(BBInputSetupParameter.class));
579 GeneralBuildingBlock actual = SPY_bbInputSetup.getGBBALaCarteNonService(executeBB, requestDetails, lookupKeyMap,
580 requestAction, resourceId, vnfType);
582 assertThat(actual, sameBeanAs(expected));
586 public void testGetGBBALaCarteService() throws Exception {
587 GeneralBuildingBlock expected = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
588 GeneralBuildingBlock.class);
589 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
590 ExecuteBuildingBlock.class);
591 RequestDetails requestDetails = mapper.readValue(
592 new File(RESOURCE_PATH + "RequestDetailsInput_withRelatedInstanceList.json"), RequestDetails.class);
593 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
595 org.onap.so.serviceinstancebeans.Project requestProject = new org.onap.so.serviceinstancebeans.Project();
596 org.onap.so.serviceinstancebeans.OwningEntity requestOwningEntity =
597 new org.onap.so.serviceinstancebeans.OwningEntity();
598 requestDetails.setProject(requestProject);
599 requestDetails.setOwningEntity(requestOwningEntity);
601 Service service = Mockito.mock(Service.class);
602 Customer customer = Mockito.mock(Customer.class);
603 ServiceSubscription serviceSubscription = Mockito.mock(ServiceSubscription.class);
604 Project project = Mockito.mock(Project.class);
605 OwningEntity owningEntity = Mockito.mock(OwningEntity.class);
606 ServiceInstance serviceInstance = Mockito.mock(ServiceInstance.class);
607 String resourceId = "123";
608 String requestAction = "createInstance";
609 executeBB.setaLaCarte(true);
610 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.SERVICE_INSTANCE.toString());
611 org.onap.aai.domain.yang.CloudRegion aaiCloudRegion = Mockito.mock(org.onap.aai.domain.yang.CloudRegion.class);
613 doReturn(service).when(SPY_bbInputSetupUtils)
614 .getCatalogServiceByModelUUID(requestDetails.getModelInfo().getModelVersionId());
615 doReturn(project).when(bbInputSetupMapperLayer).mapRequestProject(requestDetails.getProject());
616 doReturn(owningEntity).when(bbInputSetupMapperLayer).mapRequestOwningEntity(requestDetails.getOwningEntity());
618 doReturn(customer).when(SPY_bbInputSetup).getCustomerAndServiceSubscription(requestDetails, resourceId);
619 doReturn(serviceInstance).when(SPY_bbInputSetup).getALaCarteServiceInstance(service, requestDetails, customer,
620 project, owningEntity, lookupKeyMap, resourceId, Boolean.TRUE.equals(executeBB.isaLaCarte()),
621 executeBB.getBuildingBlock().getBpmnFlowName());
622 doReturn(expected).when(SPY_bbInputSetup).populateGBBWithSIAndAdditionalInfo(any(BBInputSetupParameter.class));
624 GeneralBuildingBlock actual = SPY_bbInputSetup.getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
625 requestAction, resourceId);
627 assertThat(actual, sameBeanAs(expected));
631 public void testGetGBBALaCarteServiceFindServiceByModelVersionId() throws Exception {
632 GeneralBuildingBlock expected = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
633 GeneralBuildingBlock.class);
634 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
635 ExecuteBuildingBlock.class);
636 RequestDetails requestDetails = mapper.readValue(
637 new File(RESOURCE_PATH + "RequestDetailsInput_withRelatedInstanceList.json"), RequestDetails.class);
638 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
640 org.onap.so.serviceinstancebeans.Project requestProject = new org.onap.so.serviceinstancebeans.Project();
641 org.onap.so.serviceinstancebeans.OwningEntity requestOwningEntity =
642 new org.onap.so.serviceinstancebeans.OwningEntity();
643 requestDetails.setProject(requestProject);
644 requestDetails.setOwningEntity(requestOwningEntity);
646 Service service = Mockito.mock(Service.class);
647 Customer customer = Mockito.mock(Customer.class);
648 ServiceSubscription serviceSubscription = Mockito.mock(ServiceSubscription.class);
649 Project project = Mockito.mock(Project.class);
650 OwningEntity owningEntity = Mockito.mock(OwningEntity.class);
651 ServiceInstance serviceInstance = Mockito.mock(ServiceInstance.class);
652 String resourceId = "123";
653 String requestAction = "createInstance";
654 executeBB.setaLaCarte(true);
655 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.SERVICE_INSTANCE.toString());
656 org.onap.aai.domain.yang.CloudRegion aaiCloudRegion = Mockito.mock(org.onap.aai.domain.yang.CloudRegion.class);
658 doReturn(null).when(SPY_bbInputSetupUtils)
659 .getCatalogServiceByModelUUID(requestDetails.getModelInfo().getModelVersionId());
660 doReturn(service).when(SPY_bbInputSetupUtils).getCatalogServiceByModelVersionAndModelInvariantUUID(
661 requestDetails.getModelInfo().getModelVersion(), requestDetails.getModelInfo().getModelInvariantId());
662 doReturn(project).when(bbInputSetupMapperLayer).mapRequestProject(requestDetails.getProject());
663 doReturn(owningEntity).when(bbInputSetupMapperLayer).mapRequestOwningEntity(requestDetails.getOwningEntity());
665 doReturn(customer).when(SPY_bbInputSetup).getCustomerAndServiceSubscription(requestDetails, resourceId);
666 doReturn(serviceInstance).when(SPY_bbInputSetup).getALaCarteServiceInstance(service, requestDetails, customer,
667 project, owningEntity, lookupKeyMap, resourceId, Boolean.TRUE.equals(executeBB.isaLaCarte()),
668 executeBB.getBuildingBlock().getBpmnFlowName());
669 doReturn(expected).when(SPY_bbInputSetup).populateGBBWithSIAndAdditionalInfo(any(BBInputSetupParameter.class));
671 GeneralBuildingBlock actual = SPY_bbInputSetup.getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
672 requestAction, resourceId);
674 assertThat(actual, sameBeanAs(expected));
678 public void testGetGBBALaCarteServiceNoProjectNoOE() throws Exception {
679 GeneralBuildingBlock expected = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
680 GeneralBuildingBlock.class);
681 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
682 ExecuteBuildingBlock.class);
683 RequestDetails requestDetails = mapper.readValue(
684 new File(RESOURCE_PATH + "RequestDetailsInput_withRelatedInstanceList.json"), RequestDetails.class);
685 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
687 Service service = Mockito.mock(Service.class);
688 Customer customer = Mockito.mock(Customer.class);
689 ServiceSubscription serviceSubscription = Mockito.mock(ServiceSubscription.class);
690 ServiceInstance serviceInstance = Mockito.mock(ServiceInstance.class);
691 String resourceId = "123";
692 String requestAction = "createInstance";
693 executeBB.setaLaCarte(true);
694 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.SERVICE_INSTANCE.toString());
695 org.onap.aai.domain.yang.CloudRegion aaiCloudRegion = Mockito.mock(org.onap.aai.domain.yang.CloudRegion.class);
697 Map<String, String> uriKeys = new HashMap<>();
698 uriKeys.put("global-customer-id", "globalCustomerId");
699 uriKeys.put("service-type", "serviceType");
701 doReturn(service).when(SPY_bbInputSetupUtils)
702 .getCatalogServiceByModelUUID(requestDetails.getModelInfo().getModelVersionId());
704 doReturn(customer).when(SPY_bbInputSetup).getCustomerAndServiceSubscription(requestDetails, resourceId);
706 doReturn(serviceInstance).when(SPY_bbInputSetup).getALaCarteServiceInstance(service, requestDetails, customer,
707 null, null, lookupKeyMap, resourceId, Boolean.TRUE.equals(executeBB.isaLaCarte()),
708 executeBB.getBuildingBlock().getBpmnFlowName());
709 doReturn(expected).when(SPY_bbInputSetup).populateGBBWithSIAndAdditionalInfo(any(BBInputSetupParameter.class));
711 GeneralBuildingBlock actual = SPY_bbInputSetup.getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
712 requestAction, resourceId);
714 assertThat(actual, sameBeanAs(expected));
718 public void testGetServiceInstanceHelperCreateScenario() throws Exception {
719 RequestDetails requestDetails = new RequestDetails();
720 RequestInfo requestInfo = new RequestInfo();
721 requestInfo.setInstanceName("SharansInstanceName");
722 requestDetails.setRequestInfo(requestInfo);
723 Customer customer = new Customer();
724 String serviceInstanceId = "SharansInstanceId";
725 boolean aLaCarte = true;
726 ServiceInstance expected = new ServiceInstance();
727 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
728 Service service = new Service();
729 service.setModelUUID("modelUUID");
730 String bbName = AssignFlows.SERVICE_INSTANCE.toString();
732 doReturn(null).when(SPY_bbInputSetupUtils).getAAIServiceInstanceByName(requestInfo.getInstanceName(), customer);
733 doReturn(null).when(SPY_bbInputSetupUtils).getAAIServiceInstanceById(serviceInstanceId);
736 doReturn(expected).when(SPY_bbInputSetup).createServiceInstance(requestDetails, null, null, lookupKeyMap,
739 ServiceInstance actual = SPY_bbInputSetup.getServiceInstanceHelper(requestDetails, customer, null, null,
740 lookupKeyMap, serviceInstanceId, aLaCarte, service, bbName);
741 assertThat(actual, sameBeanAs(expected));
745 public void testGetServiceInstanceHelperCreateScenarioExisting() throws Exception {
746 RequestDetails requestDetails = new RequestDetails();
747 RequestInfo requestInfo = new RequestInfo();
748 requestInfo.setInstanceName("SharansInstanceName");
749 requestDetails.setRequestInfo(requestInfo);
750 Customer customer = new Customer();
751 String serviceInstanceId = "SharansInstanceId";
752 boolean aLaCarte = true;
753 Service service = new Service();
754 service.setModelUUID("modelUUID");
755 ServiceInstance expected = new ServiceInstance();
756 org.onap.aai.domain.yang.ServiceInstance serviceInstanceAAI = new org.onap.aai.domain.yang.ServiceInstance();
757 serviceInstanceAAI.setModelVersionId("modelUUID");
758 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
759 String bbName = AssignFlows.SERVICE_INSTANCE.toString();
761 doReturn(serviceInstanceAAI).when(SPY_bbInputSetupUtils)
762 .getAAIServiceInstanceByName(requestInfo.getInstanceName(), customer);
763 doReturn(expected).when(SPY_bbInputSetup).getExistingServiceInstance(serviceInstanceAAI);
765 ServiceInstance actual = SPY_bbInputSetup.getServiceInstanceHelper(requestDetails, customer, null, null,
766 lookupKeyMap, serviceInstanceId, aLaCarte, service, bbName);
767 assertThat(actual, sameBeanAs(expected));
771 public void testGetServiceInstanceHelperCreateScenarioExistingNoNameButWithId() throws Exception {
772 RequestDetails requestDetails = new RequestDetails();
773 RequestInfo requestInfo = new RequestInfo();
774 requestInfo.setInstanceName("SharansInstanceName");
775 requestDetails.setRequestInfo(requestInfo);
776 Customer customer = new Customer();
777 String serviceInstanceId = "SharansInstanceId";
778 boolean aLaCarte = true;
779 Service service = new Service();
780 service.setModelUUID("modelUUID");
781 ServiceInstance expected = new ServiceInstance();
782 org.onap.aai.domain.yang.ServiceInstance serviceInstanceAAI = new org.onap.aai.domain.yang.ServiceInstance();
783 serviceInstanceAAI.setModelVersionId("modelUUID");
784 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
785 String bbName = "ActivateServiceInstanceBB";
787 doReturn(serviceInstanceAAI).when(SPY_bbInputSetupUtils).getAAIServiceInstanceById(serviceInstanceId);
788 doReturn(expected).when(SPY_bbInputSetup).getExistingServiceInstance(serviceInstanceAAI);
790 ServiceInstance actual = SPY_bbInputSetup.getServiceInstanceHelper(requestDetails, customer, null, null,
791 lookupKeyMap, serviceInstanceId, aLaCarte, service, bbName);
792 assertThat(actual, sameBeanAs(expected));
796 public void testGetServiceInstanceHelperCreateScenarioExistingNoNameButWithIdDifferentModel() throws Exception {
797 RequestDetails requestDetails = new RequestDetails();
798 RequestInfo requestInfo = new RequestInfo();
799 requestDetails.setRequestInfo(requestInfo);
800 Customer customer = new Customer();
801 String serviceInstanceId = "SharansInstanceId";
802 boolean aLaCarte = true;
803 Service service = new Service();
804 service.setModelUUID("modelUUID");
805 ServiceInstance expected = new ServiceInstance();
806 org.onap.aai.domain.yang.ServiceInstance serviceInstanceAAI = new org.onap.aai.domain.yang.ServiceInstance();
807 serviceInstanceAAI.setModelVersionId("modelUUIDDifferent");
808 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
809 String bbName = "ActivateServiceInstanceBB";
810 Service differentService = new Service();
811 differentService.setModelUUID("modelUUIDDifferent");
813 doReturn(serviceInstanceAAI).when(SPY_bbInputSetupUtils).getAAIServiceInstanceById(serviceInstanceId);
816 ServiceInstance actual = SPY_bbInputSetup.getServiceInstanceHelper(requestDetails, customer, null, null,
817 lookupKeyMap, serviceInstanceId, aLaCarte, service, bbName);
818 assertThat(actual, sameBeanAs(expected));
822 public void testGetServiceInstanceHelperCreateScenarioExistingWithName() throws Exception {
823 RequestDetails requestDetails = new RequestDetails();
824 RequestInfo requestInfo = new RequestInfo();
825 requestDetails.setRequestInfo(requestInfo);
826 ServiceSubscription serviceSub = new ServiceSubscription();
827 Customer customer = new Customer();
828 customer.setServiceSubscription(serviceSub);
829 ServiceInstance expected = new ServiceInstance();
830 expected.setServiceInstanceId("serviceInstanceId");
831 org.onap.aai.domain.yang.ServiceInstance serviceInstanceAAI = new org.onap.aai.domain.yang.ServiceInstance();
832 serviceInstanceAAI.setServiceInstanceId("serviceInstanceId");
834 doReturn(serviceInstanceAAI).when(SPY_bbInputSetupUtils).getAAIServiceInstanceByIdAndCustomer(Mockito.any(),
835 Mockito.any(), Mockito.any());
836 ServiceInstance actual = SPY_bbInputSetup.getServiceInstanceHelper(requestDetails, customer, null, null,
837 new HashMap<>(), "SharansInstanceId", false, new Service(), "ActivateServiceInstanceBB");
838 assertThat(actual, sameBeanAs(expected));
841 @Test(expected = Exception.class)
842 public void testGetServiceInstanceHelperCreateScenarioExistingNoNameButWithIdExceptionThrown() throws Exception {
843 RequestDetails requestDetails = new RequestDetails();
844 RequestInfo requestInfo = new RequestInfo();
845 requestDetails.setRequestInfo(requestInfo);
846 Customer customer = new Customer();
847 String serviceInstanceId = "SharansInstanceId";
848 boolean aLaCarte = true;
849 Service service = new Service();
850 service.setModelUUID("modelUUID");
851 org.onap.aai.domain.yang.ServiceInstance serviceInstanceAAI = new org.onap.aai.domain.yang.ServiceInstance();
852 serviceInstanceAAI.setModelVersionId("modelUUIDDifferent");
853 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
854 String bbName = AssignFlows.SERVICE_INSTANCE.toString();
856 ServiceInstance actual = SPY_bbInputSetup.getServiceInstanceHelper(requestDetails, customer, null, null,
857 lookupKeyMap, serviceInstanceId, aLaCarte, service, bbName);
861 public void testPopulateObjectsOnAssignAndCreateFlows() throws Exception {
862 String bbName = AssignFlows.SERVICE_INSTANCE.toString();
863 String instanceName = "instanceName";
864 String vnfType = "vnfType";
865 String resourceId = "networkId";
866 String productFamilyId = "productFamilyId";
867 String applicationId = "applicationId";
868 Service service = Mockito.mock(Service.class);
869 ServiceModel serviceModel = new ServiceModel();
870 serviceModel.setCurrentService(service);
871 ServiceInstance serviceInstance = Mockito.mock(ServiceInstance.class);
872 RequestDetails requestDetails = Mockito.mock(RequestDetails.class);
873 ModelInfo modelInfo = Mockito.mock(ModelInfo.class);
874 RequestInfo requestInfo = Mockito.mock(RequestInfo.class);
875 RelatedInstanceList[] relatedInstanceList = new RelatedInstanceList[] {};
876 CloudConfiguration cloudConfiguration = new CloudConfiguration();
877 org.onap.so.serviceinstancebeans.Platform platform =
878 Mockito.mock(org.onap.so.serviceinstancebeans.Platform.class);
879 org.onap.so.serviceinstancebeans.LineOfBusiness lineOfBusiness =
880 Mockito.mock(org.onap.so.serviceinstancebeans.LineOfBusiness.class);
881 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
883 doReturn(modelInfo).when(requestDetails).getModelInfo();
884 doReturn(productFamilyId).when(requestInfo).getProductFamilyId();
885 doReturn(requestInfo).when(requestDetails).getRequestInfo();
886 doReturn(instanceName).when(requestInfo).getInstanceName();
887 doReturn(platform).when(requestDetails).getPlatform();
888 doReturn(lineOfBusiness).when(requestDetails).getLineOfBusiness();
889 doReturn(relatedInstanceList).when(requestDetails).getRelatedInstanceList();
890 doReturn(cloudConfiguration).when(requestDetails).getCloudConfiguration();
891 doReturn(applicationId).when(requestInfo).getApplicationId();
893 doReturn(ModelType.network).when(modelInfo).getModelType();
894 BBInputSetupParameter parameter = new BBInputSetupParameter.Builder().setRequestId(REQUEST_ID)
895 .setRequestDetails(requestDetails).setService(service).setBbName(bbName)
896 .setServiceInstance(serviceInstance).setLookupKeyMap(lookupKeyMap).setResourceId(resourceId)
897 .setVnfType(vnfType).setIsReplace(false).setApplicationId(applicationId).build();
899 doNothing().when(SPY_bbInputSetup).populateL3Network(parameter);
900 SPY_bbInputSetup.populateObjectsOnAssignAndCreateFlows(parameter);
901 parameter.setInstanceName(instanceName);
902 parameter.setModelInfo(modelInfo);
903 verify(SPY_bbInputSetup, times(1)).populateL3Network(parameter);
904 assertEquals("NetworkId populated", true,
905 lookupKeyMap.get(ResourceKey.NETWORK_ID).equalsIgnoreCase(resourceId));
907 doReturn(ModelType.vnf).when(modelInfo).getModelType();
908 resourceId = "vnfId";
909 doNothing().when(SPY_bbInputSetup).populateGenericVnf(parameter);
910 parameter.setResourceId(resourceId);
911 SPY_bbInputSetup.populateObjectsOnAssignAndCreateFlows(parameter);
912 verify(SPY_bbInputSetup, times(1)).populateGenericVnf(parameter);
913 assertEquals("VnfId populated", true,
914 lookupKeyMap.get(ResourceKey.GENERIC_VNF_ID).equalsIgnoreCase(resourceId));
915 doReturn(ModelType.volumeGroup).when(modelInfo).getModelType();
916 resourceId = "volumeGroupId";
917 parameter.setResourceId(resourceId);
918 doNothing().when(SPY_bbInputSetup).populateVolumeGroup(parameter);
919 SPY_bbInputSetup.populateObjectsOnAssignAndCreateFlows(parameter);
920 verify(SPY_bbInputSetup, times(1)).populateVolumeGroup(parameter);
921 assertEquals("VolumeGroupId populated", true,
922 lookupKeyMap.get(ResourceKey.VOLUME_GROUP_ID).equalsIgnoreCase(resourceId));
924 doReturn(ModelType.vfModule).when(modelInfo).getModelType();
925 resourceId = "vfModuleId";
926 parameter.setResourceId(resourceId);
927 doNothing().when(SPY_bbInputSetup).populateVfModule(parameter);
928 SPY_bbInputSetup.populateObjectsOnAssignAndCreateFlows(parameter);
929 verify(SPY_bbInputSetup, times(1)).populateVfModule(parameter);
930 assertEquals("VfModuleId populated", true,
931 lookupKeyMap.get(ResourceKey.VF_MODULE_ID).equalsIgnoreCase(resourceId));
933 String bbNameAssignVolume = AssignFlows.VOLUME_GROUP.toString();
934 doReturn(ModelType.vfModule).when(modelInfo).getModelType();
935 resourceId = "vfModuleId";
936 parameter.setResourceId(resourceId);
937 parameter.setBbName(bbNameAssignVolume);
938 doNothing().when(SPY_bbInputSetup).populateVolumeGroup(parameter);
939 SPY_bbInputSetup.populateObjectsOnAssignAndCreateFlows(parameter);
940 verify(SPY_bbInputSetup, times(2)).populateVolumeGroup(parameter);
941 assertEquals(resourceId, lookupKeyMap.get(ResourceKey.VOLUME_GROUP_ID));
945 public void testPopulateGBBWithSIAndAdditionalInfo() throws Exception {
946 GeneralBuildingBlock expected =
947 mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpectedWUserParamsInfo.json"),
948 GeneralBuildingBlock.class);
949 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
950 ExecuteBuildingBlock.class);
951 RequestDetails requestDetails = mapper.readValue(
952 new File(RESOURCE_PATH + "RequestDetailsInput_withRelatedInstanceList.json"), RequestDetails.class);
953 RequestContext requestContext =
954 mapper.readValue(new File(RESOURCE_PATH + "RequestContextExpected.json"), RequestContext.class);
955 ServiceInstance serviceInstance =
956 mapper.readValue(new File(RESOURCE_PATH + "ServiceInstance_getServiceInstanceNOAAIExpected.json"),
957 ServiceInstance.class);
958 CloudConfiguration cloudConfiguration = new CloudConfiguration();
959 cloudConfiguration.setTenantId("tenantId");
960 requestDetails.setCloudConfiguration(cloudConfiguration);
961 OrchestrationContext orchestrationContext = new OrchestrationContext();
962 orchestrationContext.setIsRollbackEnabled(false);
964 CloudRegion cloudRegion = new CloudRegion();
965 cloudRegion.setCloudOwner("test-owner-name");
966 cloudRegion.setLcpCloudRegionId("lcpCloudRegionId");
967 cloudRegion.setComplex("complexName");
968 cloudRegion.setTenantId("tenantId");
970 Map<String, String> uriKeys = new HashMap<>();
971 uriKeys.put(AAIFluentTypeBuilder.Types.CUSTOMER.getUriParams().globalCustomerId, "global-customer-id");
972 uriKeys.put(AAIFluentTypeBuilder.Types.SERVICE_SUBSCRIPTION.getUriParams().serviceType, "service-type");
974 Customer customer = new Customer();
975 ServiceSubscription serviceSubscription = new ServiceSubscription();
976 serviceSubscription.setServiceType("subscriptionServiceType");
977 customer.setGlobalCustomerId("globalCustomerId");
978 customer.setSubscriberName("subscriberName");
979 customer.setSubscriberType("subscriberType");
980 customer.setServiceSubscription(serviceSubscription);
982 org.onap.so.bpmn.servicedecomposition.bbobjects.Tenant tenant =
983 new org.onap.so.bpmn.servicedecomposition.bbobjects.Tenant();
984 tenant.setTenantContext("tenantContext");
985 tenant.setTenantId("tenantId");
986 tenant.setTenantName("tenantName");
988 org.onap.aai.domain.yang.CloudRegion aaiCloudRegion = Mockito.mock(org.onap.aai.domain.yang.CloudRegion.class);
989 org.onap.aai.domain.yang.Tenants aaiTenants = Mockito.mock(org.onap.aai.domain.yang.Tenants.class);
990 org.onap.aai.domain.yang.Tenant aaiTenant = new org.onap.aai.domain.yang.Tenant();
991 aaiTenant.setTenantId("tenantId");
992 List<org.onap.aai.domain.yang.Tenant> tenants = new ArrayList<>();
993 tenants.add(aaiTenant);
995 String requestAction = "createInstance";
997 doReturn(uriKeys).when(SPY_bbInputSetupUtils)
998 .getURIKeysFromServiceInstance(serviceInstance.getServiceInstanceId());
999 doReturn(customer).when(SPY_bbInputSetup).mapCustomer(uriKeys.get("global-customer-id"),
1000 uriKeys.get("service-type"));
1001 doReturn(aaiCloudRegion).when(SPY_bbInputSetupUtils).getCloudRegion(requestDetails.getCloudConfiguration());
1002 doReturn(orchestrationContext).when(bbInputSetupMapperLayer).mapOrchestrationContext(requestDetails);
1003 doReturn(requestContext).when(bbInputSetupMapperLayer).mapRequestContext(requestDetails);
1004 doReturn(cloudRegion).when(bbInputSetupMapperLayer).mapCloudRegion(requestDetails.getCloudConfiguration(),
1006 doReturn(tenant).when(bbInputSetupMapperLayer).mapTenant(aaiTenant);
1007 doReturn(aaiTenants).when(aaiCloudRegion).getTenants();
1008 doReturn(tenants).when(aaiTenants).getTenant();
1009 BBInputSetupParameter parameter = new BBInputSetupParameter.Builder().setServiceInstance(serviceInstance)
1010 .setRequestDetails(requestDetails).setExecuteBB(executeBB).setRequestAction(requestAction).build();
1011 GeneralBuildingBlock actual = SPY_bbInputSetup.populateGBBWithSIAndAdditionalInfo(parameter);
1013 assertThat(actual, sameBeanAs(expected));
1017 public void testGetServiceInstanceNOAAI() throws Exception {
1018 ServiceInstance expected =
1019 mapper.readValue(new File(RESOURCE_PATH + "ServiceInstance_getServiceInstanceNOAAIExpected.json"),
1020 ServiceInstance.class);
1021 Service service = mapper.readValue(
1022 new File(RESOURCE_PATH + "CatalogDBService_getServiceInstanceNOAAIInput.json"), Service.class);
1023 Customer customer = mapper.readValue(new File(RESOURCE_PATH + "Customer.json"), Customer.class);
1024 Project project = mapper.readValue(new File(RESOURCE_PATH + "Project.json"), Project.class);
1025 OwningEntity owningEntity = mapper.readValue(new File(RESOURCE_PATH + "OwningEntity.json"), OwningEntity.class);
1026 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
1028 BuildingBlock buildingBlock = new BuildingBlock().setBpmnFlowName(AssignFlows.SERVICE_INSTANCE.toString());
1029 ExecuteBuildingBlock executeBB = new ExecuteBuildingBlock().setaLaCarte(true).setBuildingBlock(buildingBlock);
1030 RequestDetails requestDetails = new RequestDetails();
1031 RequestInfo reqInfo = new RequestInfo();
1032 reqInfo.setInstanceName("serviceInstanceName");
1033 requestDetails.setRequestInfo(reqInfo);
1034 ModelInfo modelInfo = new ModelInfo();
1035 modelInfo.setModelType(ModelType.service);
1036 requestDetails.setModelInfo(modelInfo);
1037 doReturn(null).when(SPY_bbInputSetupUtils)
1038 .getAAIServiceInstanceByName(requestDetails.getRequestInfo().getInstanceName(), customer);
1039 doReturn(expected.getModelInfoServiceInstance()).when(bbInputSetupMapperLayer)
1040 .mapCatalogServiceIntoServiceInstance(service);
1041 doReturn(null).when(SPY_bbInputSetupUtils).getAAIServiceInstanceById(any(String.class));
1042 String serviceInstanceId = "3655a595-05d1-433c-93c0-3afd6b572545";
1043 boolean aLaCarte = true;
1045 ServiceInstance actual =
1046 SPY_bbInputSetup.getALaCarteServiceInstance(service, requestDetails, customer, project, owningEntity,
1047 lookupKeyMap, serviceInstanceId, aLaCarte, executeBB.getBuildingBlock().getBpmnFlowName());
1049 assertThat(actual, sameBeanAs(expected));
1053 public void testGetServiceSubscription() throws IOException {
1054 ServiceSubscription expected = new ServiceSubscription();
1055 RequestDetails requestDetails = new RequestDetails();
1056 RequestParameters params = new RequestParameters();
1057 params.setSubscriptionServiceType("subscriptionServiceType");
1058 requestDetails.setRequestParameters(params);
1059 org.onap.aai.domain.yang.ServiceSubscription aaiServiceSubscription =
1060 new org.onap.aai.domain.yang.ServiceSubscription();
1061 Customer customer = new Customer();
1062 customer.setGlobalCustomerId("globalCustomerId");
1063 doReturn(aaiServiceSubscription).when(SPY_bbInputSetupUtils).getAAIServiceSubscription(
1064 customer.getGlobalCustomerId(), requestDetails.getRequestParameters().getSubscriptionServiceType());
1065 doReturn(expected).when(bbInputSetupMapperLayer).mapAAIServiceSubscription(aaiServiceSubscription);
1067 ServiceSubscription actual = SPY_bbInputSetup.getServiceSubscription(requestDetails, customer);
1068 assertThat(actual, sameBeanAs(expected));
1072 public void testGetCustomer() throws IOException {
1073 Customer expected = new Customer();
1074 RequestDetails requestDetails = new RequestDetails();
1075 SubscriberInfo subscriberInfo = new SubscriberInfo();
1076 subscriberInfo.setGlobalSubscriberId("globalSubscriberId");
1077 requestDetails.setSubscriberInfo(subscriberInfo);
1078 org.onap.aai.domain.yang.Customer aaiCustomer = new org.onap.aai.domain.yang.Customer();
1079 doReturn(aaiCustomer).when(SPY_bbInputSetupUtils)
1080 .getAAICustomer(requestDetails.getSubscriberInfo().getGlobalSubscriberId());
1081 doReturn(expected).when(bbInputSetupMapperLayer).mapAAICustomer(aaiCustomer);
1083 Customer actual = SPY_bbInputSetup.getCustomerFromRequest(requestDetails);
1084 assertThat(actual, sameBeanAs(expected));
1088 public void testGetExistingServiceInstance() throws Exception {
1089 org.onap.aai.domain.yang.ServiceInstance serviceInstanceAAI = new org.onap.aai.domain.yang.ServiceInstance();
1090 ServiceInstance expected = new ServiceInstance();
1092 doReturn(expected).when(bbInputSetupMapperLayer).mapAAIServiceInstanceIntoServiceInstance(serviceInstanceAAI);
1095 ServiceInstance actual = SPY_bbInputSetup.getExistingServiceInstance(serviceInstanceAAI);
1096 assertThat(actual, sameBeanAs(expected));
1100 public void testPopulateNetworkCollectionAndInstanceGroupAssign() throws Exception {
1101 Service service = Mockito.mock(Service.class);
1102 String key = "collectionCustId";
1103 ServiceInstance serviceInstance =
1104 mapper.readValue(new File(RESOURCE_PATH + "ServiceInstance_getServiceInstanceNOAAIExpected.json"),
1105 ServiceInstance.class);
1106 String resourceId = "123";
1107 Collection collection = SPY_bbInputSetup.createCollection(resourceId);
1108 InstanceGroup instanceGroup = SPY_bbInputSetup.createInstanceGroup();
1109 assertNull(serviceInstance.getCollection());
1110 doReturn(true).when(SPY_bbInputSetup).isVlanTagging(service, key);
1112 doReturn(collection).when(SPY_bbInputSetup).createCollection(resourceId);
1113 doReturn(instanceGroup).when(SPY_bbInputSetup).createInstanceGroup();
1114 doNothing().when(SPY_bbInputSetup).mapCatalogCollection(service, collection, key);
1116 NetworkCollectionResourceCustomization networkCollection = new NetworkCollectionResourceCustomization();
1117 networkCollection.setModelCustomizationUUID(key);
1118 networkCollection.setCollectionResource(new CollectionResource());
1119 networkCollection.getCollectionResource().setInstanceGroup(new org.onap.so.db.catalog.beans.InstanceGroup());
1120 networkCollection.getCollectionResource().getInstanceGroup().setToscaNodeType("NetworkCollectionResource");
1121 networkCollection.getCollectionResource().getInstanceGroup().setType(InstanceGroupType.L3_NETWORK);
1122 networkCollection.getCollectionResource().getInstanceGroup()
1123 .setCollectionInstanceGroupCustomizations(new ArrayList<>());
1124 List<CollectionResourceCustomization> customizations = new ArrayList<>();
1125 customizations.add(networkCollection);
1126 doReturn(customizations).when(service).getCollectionResourceCustomizations();
1127 BBInputSetupParameter parameter = new BBInputSetupParameter.Builder().setService(service)
1128 .setServiceInstance(serviceInstance).setResourceId(resourceId).setKey(key)
1129 .setBbName(AssignFlows.NETWORK_COLLECTION.toString()).build();
1131 SPY_bbInputSetup.populateNetworkCollectionAndInstanceGroupAssign(parameter);
1132 assertNotNull(serviceInstance.getCollection());
1133 assertNotNull(serviceInstance.getCollection().getInstanceGroup());
1135 verify(SPY_bbInputSetup, times(1)).mapCatalogCollection(service, serviceInstance.getCollection(), key);
1136 verify(SPY_bbInputSetup, times(1)).mapCatalogNetworkCollectionInstanceGroup(service,
1137 serviceInstance.getCollection().getInstanceGroup(), key);
1141 public void testPopulateInstanceGroup() throws Exception {
1142 ModelInfo modelInfo = Mockito.mock(ModelInfo.class);
1143 Service service = Mockito.mock(Service.class);
1144 List<InstanceGroup> instanceGroups = Mockito.spy(new ArrayList<>());
1145 ServiceInstance serviceInstance = Mockito.spy(new ServiceInstance());
1146 serviceInstance.setServiceInstanceId("si-001");
1147 serviceInstance.setServiceInstanceName("test service instance");
1148 serviceInstance.setInstanceGroups(instanceGroups);
1150 BBInputSetupParameter parameter = new BBInputSetupParameter.Builder().setModelInfo(modelInfo)
1151 .setService(service).setServiceInstance(serviceInstance).setResourceId("instance-group-001")
1152 .setInstanceName("test instance group").build();
1153 SPY_bbInputSetup.populateInstanceGroup(parameter);
1154 verify(SPY_bbInputSetup, times(1)).mapCatalogInstanceGroup(isA(InstanceGroup.class), isA(ModelInfo.class),
1155 isA(Service.class));
1156 verify(instanceGroups, times(1)).add(isA(InstanceGroup.class));
1160 public void testIsVlanTagging() throws Exception {
1161 boolean expected = true;
1162 Service service = Mockito.mock(Service.class);
1163 String key = "collectionCustId";
1164 NetworkCollectionResourceCustomization networkCollection = new NetworkCollectionResourceCustomization();
1165 networkCollection.setModelCustomizationUUID(key);
1166 networkCollection.setCollectionResource(new CollectionResource());
1167 networkCollection.getCollectionResource().setInstanceGroup(new org.onap.so.db.catalog.beans.InstanceGroup());
1168 networkCollection.getCollectionResource().getInstanceGroup()
1169 .setToscaNodeType("org.openecomp.resource.cr.NetworkCollectionResource1806");
1170 List<CollectionResourceCustomization> customizations = new ArrayList<>();
1171 customizations.add(networkCollection);
1172 doReturn(customizations).when(service).getCollectionResourceCustomizations();
1173 boolean actual = SPY_bbInputSetup.isVlanTagging(service, key);
1174 assertEquals("Is Vlan Tagging check.", expected, actual);
1178 public void testPopulateVolumeGroup() throws Exception {
1179 RequestDetails requestDetails = new RequestDetails();
1180 RelatedInstanceList ril = new RelatedInstanceList();
1181 RelatedInstance ri = new RelatedInstance();
1182 ModelInfo mi = new ModelInfo();
1183 mi.setModelType(ModelType.vnf);
1184 mi.setModelCustomizationUuid("vnfModelCustomizationUUID");
1185 mi.setModelCustomizationId("vnfModelCustomizationUUID");
1186 ri.setModelInfo(mi);
1187 ril.setRelatedInstance(ri);
1188 requestDetails.setRelatedInstanceList(new RelatedInstanceList[] {ril});
1190 ModelInfo modelInfo = new ModelInfo();
1191 modelInfo.setModelCustomizationId("volumeGroupCustId");
1193 RequestInfo reqInfo = new RequestInfo();
1194 reqInfo.setInstanceName("volumeGroupName");
1195 requestDetails.setModelInfo(modelInfo);
1196 requestDetails.setRequestInfo(reqInfo);
1198 ServiceInstance serviceInstance = new ServiceInstance();
1199 GenericVnf vnf = new GenericVnf();
1200 vnf.setVnfId("genericVnfId");
1202 VolumeGroup vg = new VolumeGroup();
1203 vg.setVolumeGroupName("volumeGroupName");
1204 vg.setVolumeGroupId("volumeGroupId");
1205 vg.setModelInfoVfModule(new ModelInfoVfModule());
1206 vg.getModelInfoVfModule().setModelCustomizationUUID("volumeGroupCustId");
1207 vnf.getVolumeGroups().add(vg);
1208 serviceInstance.getVnfs().add(vnf);
1210 Service service = mapper.readValue(
1211 new File(RESOURCE_PATH + "CatalogDBService_getServiceInstanceNOAAIInput.json"), Service.class);
1212 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
1213 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "genericVnfId");
1215 ServiceModel serviceModel = new ServiceModel();
1216 serviceModel.setCurrentService(service);
1217 String bbName = AssignFlows.VOLUME_GROUP.toString();
1218 String resourceId = "123";
1219 doNothing().when(SPY_bbInputSetup).mapCatalogVolumeGroup(isA(VolumeGroup.class), eq(modelInfo), eq(service),
1220 eq("vnfModelCustomizationUUID"));
1221 org.onap.aai.domain.yang.GenericVnf aaiGenericVnf = new org.onap.aai.domain.yang.GenericVnf();
1222 aaiGenericVnf.setModelCustomizationId("vnfModelCustomizationUUID");
1223 doReturn(aaiGenericVnf).when(SPY_bbInputSetupUtils).getAAIGenericVnf(vnf.getVnfId());
1225 lookupKeyMap.put(ResourceKey.VOLUME_GROUP_ID, "volumeGroupId");
1226 BBInputSetupParameter parameter = new BBInputSetupParameter.Builder().setRequestId(REQUEST_ID)
1227 .setModelInfo(modelInfo).setService(service).setBbName(bbName).setServiceInstance(serviceInstance)
1228 .setLookupKeyMap(lookupKeyMap).setResourceId(resourceId).setRequestDetails(requestDetails)
1229 .setInstanceName(reqInfo.getInstanceName()).setServiceModel(serviceModel).build();
1230 SPY_bbInputSetup.populateVolumeGroup(parameter);
1231 verify(SPY_bbInputSetup, times(1)).mapCatalogVolumeGroup(eq(vg), isA(ModelInfo.class), eq(service),
1232 eq("vnfModelCustomizationUUID"));
1233 vnf.getVolumeGroups().clear();
1234 SPY_bbInputSetup.populateVolumeGroup(parameter);
1235 verify(SPY_bbInputSetup, times(1)).mapCatalogVolumeGroup(vnf.getVolumeGroups().get(0), modelInfo, service,
1236 "vnfModelCustomizationUUID");
1240 public void testMapCatalogVolumeGroup() {
1241 VolumeGroup volumeGroup = new VolumeGroup();
1242 RequestDetails requestDetails = new RequestDetails();
1243 ModelInfo modelInfo = new ModelInfo();
1244 modelInfo.setModelCustomizationUuid("modelCustomizationUUID");
1245 requestDetails.setModelInfo(modelInfo);
1246 Service service = new Service();
1247 VnfResourceCustomization resourceCust = new VnfResourceCustomization();
1248 resourceCust.setModelCustomizationUUID("vnfModelCustomizationUUID");
1249 service.getVnfCustomizations().add(resourceCust);
1250 VfModuleCustomization vfResourceCust = new VfModuleCustomization();
1251 vfResourceCust.setModelCustomizationUUID("modelCustomizationUUID");
1252 ModelInfoVfModule modelInfoVfModule = new ModelInfoVfModule();
1253 resourceCust.getVfModuleCustomizations().add(vfResourceCust);
1255 doReturn(modelInfoVfModule).when(bbInputSetupMapperLayer).mapCatalogVfModuleToVfModule(vfResourceCust);
1257 SPY_bbInputSetup.mapCatalogVolumeGroup(volumeGroup, modelInfo, service, "vnfModelCustomizationUUID");
1259 assertEquals(modelInfoVfModule, volumeGroup.getModelInfoVfModule());
1263 public void testPopulateL3Network() throws JsonParseException, JsonMappingException, IOException {
1264 String instanceName = "networkName";
1265 ModelInfo modelInfo = new ModelInfo();
1266 modelInfo.setModelType(ModelType.network);
1268 ServiceInstance serviceInstance = new ServiceInstance();
1269 L3Network network = new L3Network();
1270 network.setNetworkId("networkId");
1271 network.setNetworkName("networkName");
1272 serviceInstance.getNetworks().add(network);
1273 String resourceId = "123";
1275 Service service = mapper.readValue(
1276 new File(RESOURCE_PATH + "CatalogDBService_getServiceInstanceNOAAIInput.json"), Service.class);
1277 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
1278 lookupKeyMap.put(ResourceKey.NETWORK_ID, "networkId");
1279 String bbName = AssignFlows.NETWORK_A_LA_CARTE.toString();
1281 doNothing().when(SPY_bbInputSetup).mapCatalogNetwork(network, modelInfo, service);
1283 BBInputSetupParameter parameter = new BBInputSetupParameter.Builder().setRequestId(REQUEST_ID)
1284 .setInstanceName(instanceName).setModelInfo(modelInfo).setService(service).setBbName(bbName)
1285 .setServiceInstance(serviceInstance).setLookupKeyMap(lookupKeyMap).setResourceId(resourceId).build();
1286 SPY_bbInputSetup.populateL3Network(parameter);
1288 lookupKeyMap.put(ResourceKey.NETWORK_ID, null);
1290 SPY_bbInputSetup.populateL3Network(parameter);
1291 verify(SPY_bbInputSetup, times(1)).mapCatalogNetwork(network, modelInfo, service);
1293 instanceName = "networkName2";
1294 L3Network network2 = SPY_bbInputSetup.createNetwork(lookupKeyMap, instanceName, resourceId, null, parameter);
1295 SPY_bbInputSetup.populateL3Network(parameter);
1296 verify(SPY_bbInputSetup, times(2)).mapCatalogNetwork(network2, modelInfo, service);
1300 public void testMapCatalogNetwork() {
1301 ModelInfoNetwork modelInfoNetwork = new ModelInfoNetwork();
1302 L3Network network = new L3Network();
1304 RequestDetails requestDetails = new RequestDetails();
1305 ModelInfo modelInfo = new ModelInfo();
1306 modelInfo.setModelCustomizationUuid("modelCustomizationUUID");
1307 requestDetails.setModelInfo(modelInfo);
1308 Service service = new Service();
1309 NetworkResourceCustomization resourceCust = new NetworkResourceCustomization();
1310 resourceCust.setModelCustomizationUUID("modelCustomizationUUID");
1311 service.setNetworkCustomizations(Arrays.asList(new NetworkResourceCustomization[] {resourceCust}));
1313 doReturn(modelInfoNetwork).when(bbInputSetupMapperLayer).mapCatalogNetworkToNetwork(resourceCust);
1315 SPY_bbInputSetup.mapCatalogNetwork(network, modelInfo, service);
1317 assertEquals(modelInfoNetwork, network.getModelInfoNetwork());
1321 public void testPopulateConfiguration() throws JsonParseException, JsonMappingException, IOException {
1322 String instanceName = "configurationName";
1323 ModelInfo modelInfo = new ModelInfo();
1324 modelInfo.setModelCustomizationUuid("72d9d1cd-f46d-447a-abdb-451d6fb05fa9");
1326 ServiceInstance serviceInstance = new ServiceInstance();
1327 Configuration configuration = new Configuration();
1328 configuration.setConfigurationId("configurationId");
1329 configuration.setConfigurationName("configurationName");
1330 serviceInstance.getConfigurations().add(configuration);
1331 String resourceId = "configurationId";
1332 String vnfcName = "vnfcName";
1334 Service service = mapper.readValue(
1335 new File(RESOURCE_PATH + "CatalogDBService_getServiceInstanceNOAAIInput.json"), Service.class);
1336 ConfigurationResourceCustomization configurationCust = new ConfigurationResourceCustomization();
1337 configurationCust.setModelCustomizationUUID("72d9d1cd-f46d-447a-abdb-451d6fb05fa9");
1338 service.getConfigurationCustomizations().add(configurationCust);
1339 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
1340 lookupKeyMap.put(ResourceKey.CONFIGURATION_ID, "configurationId");
1341 String bbName = AssignFlows.FABRIC_CONFIGURATION.toString();
1343 ServiceModel serviceModel = new ServiceModel();
1344 serviceModel.setCurrentService(service);
1346 ConfigurationResourceKeys configResourceKeys = prepareConfigurationResourceKeys();
1347 configResourceKeys.setVnfcName(vnfcName);
1348 Vnfc vnfc = new Vnfc();
1349 vnfc.setVnfcName(vnfcName);
1350 RequestDetails requestDetails = new RequestDetails();
1351 doNothing().when(SPY_bbInputSetup).mapCatalogConfiguration(configuration, modelInfo, service,
1352 configResourceKeys);
1353 doReturn(vnfc).when(SPY_bbInputSetup).getVnfcToConfiguration(vnfcName);
1354 BBInputSetupParameter parameter = new BBInputSetupParameter.Builder().setRequestId(REQUEST_ID)
1355 .setModelInfo(modelInfo).setService(service).setBbName(bbName).setServiceInstance(serviceInstance)
1356 .setLookupKeyMap(lookupKeyMap).setResourceId(resourceId).setInstanceName(instanceName)
1357 .setConfigurationResourceKeys(configResourceKeys).setRequestDetails(requestDetails)
1358 .setServiceModel(serviceModel).build();
1359 SPY_bbInputSetup.populateConfiguration(parameter);
1360 verify(SPY_bbInputSetup, times(1)).mapCatalogConfiguration(configuration, modelInfo, service,
1361 configResourceKeys);
1363 lookupKeyMap.put(ResourceKey.CONFIGURATION_ID, null);
1365 SPY_bbInputSetup.populateConfiguration(parameter);
1366 verify(SPY_bbInputSetup, times(2)).mapCatalogConfiguration(configuration, modelInfo, service,
1367 configResourceKeys);
1369 instanceName = "configurationName2";
1370 resourceId = "resourceId2";
1371 lookupKeyMap.put(ResourceKey.CONFIGURATION_ID, "configurationId2");
1372 parameter.setInstanceName(instanceName);
1373 parameter.setResourceId(resourceId);
1374 Configuration configuration2 = SPY_bbInputSetup.createConfiguration(lookupKeyMap, instanceName, resourceId);
1375 doReturn(configuration2).when(SPY_bbInputSetup).createConfiguration(lookupKeyMap, instanceName, resourceId);
1376 doNothing().when(SPY_bbInputSetup).mapCatalogConfiguration(configuration2, modelInfo, service,
1377 configResourceKeys);
1378 SPY_bbInputSetup.populateConfiguration(parameter);
1379 verify(SPY_bbInputSetup, times(1)).mapCatalogConfiguration(configuration2, modelInfo, service,
1380 configResourceKeys);
1384 public void testPopulateConfigurationReplace() throws JsonParseException, JsonMappingException, IOException {
1385 String instanceName = "configurationName";
1386 ModelInfo modelInfo = new ModelInfo();
1387 modelInfo.setModelCustomizationUuid("72d9d1cd-f46d-447a-abdb-451d6fb05fa9");
1389 ServiceInstance serviceInstance = new ServiceInstance();
1390 Configuration configuration = new Configuration();
1391 configuration.setConfigurationId("configurationId");
1392 configuration.setConfigurationName("configurationName");
1393 serviceInstance.getConfigurations().add(configuration);
1394 String resourceId = "configurationId";
1395 String vnfcName = "vnfcName";
1397 Service service = mapper.readValue(
1398 new File(RESOURCE_PATH + "CatalogDBService_getServiceInstanceNOAAIInput.json"), Service.class);
1399 ConfigurationResourceCustomization configurationCust = new ConfigurationResourceCustomization();
1400 configurationCust.setModelCustomizationUUID("72d9d1cd-f46d-447a-abdb-451d6fb05fa9");
1401 service.getConfigurationCustomizations().add(configurationCust);
1402 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
1403 lookupKeyMap.put(ResourceKey.CONFIGURATION_ID, "configurationId");
1404 String bbName = AssignFlows.FABRIC_CONFIGURATION.toString();
1406 ServiceModel serviceModel = new ServiceModel();
1407 serviceModel.setNewService(service);
1409 ConfigurationResourceKeys configResourceKeys = prepareConfigurationResourceKeys();
1410 configResourceKeys.setVnfcName(vnfcName);
1411 Vnfc vnfc = new Vnfc();
1412 vnfc.setVnfcName(vnfcName);
1413 RequestDetails requestDetails = mapper.readValue(
1414 new File(RESOURCE_PATH + "RequestDetailsInput_withRelatedInstanceList.json"), RequestDetails.class);
1415 doNothing().when(SPY_bbInputSetup).mapCatalogConfiguration(configuration, modelInfo, service,
1416 configResourceKeys);
1417 doReturn(vnfc).when(SPY_bbInputSetup).getVnfcToConfiguration(vnfcName);
1418 BBInputSetupParameter parameter = new BBInputSetupParameter.Builder().setRequestId(REQUEST_ID)
1419 .setModelInfo(modelInfo).setService(service).setBbName(bbName).setServiceInstance(serviceInstance)
1420 .setLookupKeyMap(lookupKeyMap).setResourceId(resourceId).setInstanceName(instanceName)
1421 .setConfigurationResourceKeys(configResourceKeys).setRequestDetails(requestDetails)
1422 .setServiceModel(serviceModel).setIsReplace(true).build();
1423 SPY_bbInputSetup.populateConfiguration(parameter);
1424 configResourceKeys.setVnfResourceCustomizationUUID("my-test-uuid");
1425 verify(SPY_bbInputSetup, times(1)).mapCatalogConfiguration(configuration, modelInfo, service,
1426 configResourceKeys);
1430 public void testMapCatalogConfiguration() {
1431 ModelInfoNetwork modelInfoNetwork = new ModelInfoNetwork();
1432 L3Network network = new L3Network();
1434 RequestDetails requestDetails = new RequestDetails();
1435 ModelInfo modelInfo = new ModelInfo();
1436 modelInfo.setModelCustomizationUuid("modelCustomizationUUID");
1437 requestDetails.setModelInfo(modelInfo);
1438 Service service = new Service();
1439 NetworkResourceCustomization resourceCust = new NetworkResourceCustomization();
1440 resourceCust.setModelCustomizationUUID("modelCustomizationUUID");
1441 service.setNetworkCustomizations(Arrays.asList(new NetworkResourceCustomization[] {resourceCust}));
1443 doReturn(modelInfoNetwork).when(bbInputSetupMapperLayer).mapCatalogNetworkToNetwork(resourceCust);
1445 SPY_bbInputSetup.mapCatalogNetwork(network, modelInfo, service);
1447 assertEquals(modelInfoNetwork, network.getModelInfoNetwork());
1451 public void testPopulateFabricConfiguration() throws JsonParseException, JsonMappingException, IOException {
1452 String instanceName = "configurationName";
1453 ModelInfo modelInfo = new ModelInfo();
1454 modelInfo.setModelCustomizationUuid("72d9d1cd-f46d-447a-abdb-451d6fb05fa9");
1456 ServiceInstance serviceInstance = new ServiceInstance();
1457 Configuration configuration = new Configuration();
1458 configuration.setConfigurationId("configurationId");
1459 configuration.setConfigurationName("configurationName");
1460 configuration.setConfigurationSubType("Fabric Config");
1461 serviceInstance.getConfigurations().add(configuration);
1462 String resourceId = "configurationId";
1463 String vnfcName = "vnfcName";
1465 Service service = mapper.readValue(
1466 new File(RESOURCE_PATH + "CatalogDBService_getServiceInstanceNOAAIInput.json"), Service.class);
1467 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
1468 lookupKeyMap.put(ResourceKey.CONFIGURATION_ID, "configurationId");
1469 String bbName = AssignFlows.FABRIC_CONFIGURATION.toString();
1470 ConfigurationResourceKeys configResourceKeys = prepareConfigurationResourceKeys();
1471 configResourceKeys.setVnfcName(vnfcName);
1472 Vnfc vnfc = new Vnfc();
1473 vnfc.setVnfcName(vnfcName);
1474 RequestDetails requestDetails = new RequestDetails();
1476 ServiceModel serviceModel = new ServiceModel();
1477 serviceModel.setCurrentService(service);
1479 CvnfcConfigurationCustomization vnfVfmoduleCvnfcConfigurationCustomization =
1480 new CvnfcConfigurationCustomization();
1481 ConfigurationResource configurationResource = new ConfigurationResource();
1482 configurationResource.setModelUUID("modelUUID");
1483 configurationResource.setModelInvariantUUID("modelInvariantUUID");
1484 vnfVfmoduleCvnfcConfigurationCustomization.setConfigurationResource(configurationResource);
1486 doReturn(null).when(SPY_bbInputSetup).findConfigurationResourceCustomization(modelInfo, service);
1487 doReturn(vnfc).when(SPY_bbInputSetup).getVnfcToConfiguration(vnfcName);
1488 BBInputSetupParameter parameter = new BBInputSetupParameter.Builder().setRequestId(REQUEST_ID)
1489 .setModelInfo(modelInfo).setService(service).setBbName(bbName).setServiceInstance(serviceInstance)
1490 .setLookupKeyMap(lookupKeyMap).setResourceId(resourceId).setInstanceName(instanceName)
1491 .setConfigurationResourceKeys(configResourceKeys).setRequestDetails(requestDetails)
1492 .setServiceModel(serviceModel).build();
1493 SPY_bbInputSetup.populateConfiguration(parameter);
1494 verify(SPY_bbInputSetup, times(1)).mapCatalogConfiguration(configuration, modelInfo, service,
1495 configResourceKeys);
1499 public void testPopulateGenericVnf() throws JsonParseException, JsonMappingException, IOException {
1500 org.onap.so.serviceinstancebeans.Platform platform = new org.onap.so.serviceinstancebeans.Platform();
1501 org.onap.so.serviceinstancebeans.LineOfBusiness lineOfBusiness =
1502 new org.onap.so.serviceinstancebeans.LineOfBusiness();
1503 String instanceName = "vnfName";
1504 ModelInfo modelInfo = new ModelInfo();
1505 modelInfo.setModelType(ModelType.vnf);
1506 ServiceInstance serviceInstance = new ServiceInstance();
1507 GenericVnf vnf = new GenericVnf();
1508 vnf.setVnfId("genericVnfId");
1509 vnf.setVnfName("vnfName");
1510 serviceInstance.getVnfs().add(vnf);
1511 String vnfType = "vnfType";
1512 String applicationId = "applicationId";
1513 RequestDetails requestDetails =
1514 mapper.readValue(new File(RESOURCE_PATH + "RequestDetails_CreateVnf.json"), RequestDetails.class);
1516 Service service = mapper.readValue(
1517 new File(RESOURCE_PATH + "CatalogDBService_getServiceInstanceNOAAIInput.json"), Service.class);
1518 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
1519 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "genericVnfId");
1520 String bbName = AssignFlows.VNF.toString();
1523 ServiceModel serviceModel = new ServiceModel();
1524 serviceModel.setCurrentService(service);
1526 Platform expectedPlatform = new Platform();
1527 LineOfBusiness expectedLineOfBusiness = new LineOfBusiness();
1528 String resourceId = "123";
1529 doReturn(expectedPlatform).when(bbInputSetupMapperLayer).mapRequestPlatform(platform);
1530 doReturn(expectedLineOfBusiness).when(bbInputSetupMapperLayer).mapRequestLineOfBusiness(lineOfBusiness);
1531 org.onap.aai.domain.yang.GenericVnf vnfAAI = new org.onap.aai.domain.yang.GenericVnf();
1532 vnfAAI.setModelCustomizationId("modelCustId");
1533 doReturn(vnfAAI).when(SPY_bbInputSetupUtils).getAAIGenericVnf(vnf.getVnfId());
1534 doNothing().when(SPY_bbInputSetup).mapCatalogVnf(vnf, modelInfo, service);
1535 org.onap.aai.domain.yang.InstanceGroup instanceGroupAAI = new org.onap.aai.domain.yang.InstanceGroup();
1536 doReturn(instanceGroupAAI).when(SPY_bbInputSetupUtils).getAAIInstanceGroup(any());
1537 org.onap.so.db.catalog.beans.InstanceGroup catalogInstanceGroup =
1538 new org.onap.so.db.catalog.beans.InstanceGroup();
1539 doReturn(catalogInstanceGroup).when(SPY_bbInputSetupUtils).getCatalogInstanceGroup(any());
1540 BBInputSetupParameter parameter = new BBInputSetupParameter.Builder().setRequestId(REQUEST_ID)
1541 .setModelInfo(modelInfo).setInstanceName(instanceName).setPlatform(platform)
1542 .setLineOfBusiness(lineOfBusiness).setService(service).setBbName(bbName)
1543 .setServiceInstance(serviceInstance).setLookupKeyMap(lookupKeyMap)
1544 .setRelatedInstanceList(requestDetails.getRelatedInstanceList()).setResourceId(resourceId)
1545 .setVnfType(vnfType).setProductFamilyId(requestDetails.getRequestInfo().getProductFamilyId())
1546 .setServiceModel(serviceModel).build();
1547 SPY_bbInputSetup.populateGenericVnf(parameter);
1549 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, null);
1551 SPY_bbInputSetup.populateGenericVnf(parameter);
1552 verify(SPY_bbInputSetup, times(1)).mapCatalogVnf(vnf, modelInfo, service);
1554 instanceName = "vnfName2";
1555 GenericVnf vnf2 = SPY_bbInputSetup.createGenericVnf(lookupKeyMap, instanceName, platform, lineOfBusiness,
1556 resourceId, vnfType, null, requestDetails.getRequestInfo().getProductFamilyId(), applicationId);
1558 doNothing().when(SPY_bbInputSetup).mapNetworkCollectionInstanceGroup(vnf2, "{instanceGroupId}");
1559 doNothing().when(SPY_bbInputSetup).mapVnfcCollectionInstanceGroup(vnf2, modelInfo, service);
1561 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "genericVnfId2");
1563 SPY_bbInputSetup.populateGenericVnf(parameter);
1564 verify(SPY_bbInputSetup, times(2)).mapCatalogVnf(vnf2, modelInfo, service);
1565 verify(SPY_bbInputSetup, times(2)).mapNetworkCollectionInstanceGroup(vnf2, "{instanceGroupId}");
1566 verify(SPY_bbInputSetup, times(2)).mapVnfcCollectionInstanceGroup(vnf2, modelInfo, service);
1568 assertEquals("modelCustId", modelInfo.getModelCustomizationUuid());
1573 public void testPopulateGenericVnfReplace() throws JsonParseException, JsonMappingException, IOException {
1574 org.onap.so.serviceinstancebeans.Platform platform = new org.onap.so.serviceinstancebeans.Platform();
1575 org.onap.so.serviceinstancebeans.LineOfBusiness lineOfBusiness =
1576 new org.onap.so.serviceinstancebeans.LineOfBusiness();
1577 String instanceName = "vnfName";
1578 ModelInfo modelInfo = new ModelInfo();
1579 modelInfo.setModelType(ModelType.vnf);
1580 ServiceInstance serviceInstance = new ServiceInstance();
1581 GenericVnf vnf = new GenericVnf();
1582 vnf.setVnfId("genericVnfId");
1583 vnf.setVnfName("vnfName");
1584 serviceInstance.getVnfs().add(vnf);
1585 String vnfType = "vnfType";
1586 String applicationId = "applicationId";
1587 RequestDetails requestDetails =
1588 mapper.readValue(new File(RESOURCE_PATH + "RequestDetails_CreateVnf.json"), RequestDetails.class);
1590 Service service = mapper.readValue(
1591 new File(RESOURCE_PATH + "CatalogDBService_getServiceInstanceNOAAIInput.json"), Service.class);
1592 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
1593 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "genericVnfId");
1594 String bbName = AssignFlows.VNF.toString();
1596 String resourceId = "123";
1597 org.onap.aai.domain.yang.GenericVnf vnfAAI = new org.onap.aai.domain.yang.GenericVnf();
1598 vnfAAI.setModelCustomizationId("modelCustId");
1599 doReturn(vnfAAI).when(SPY_bbInputSetupUtils).getAAIGenericVnf(vnf.getVnfId());
1600 doNothing().when(SPY_bbInputSetup).mapCatalogVnf(vnf, modelInfo, service);
1601 org.onap.aai.domain.yang.InstanceGroup instanceGroupAAI = new org.onap.aai.domain.yang.InstanceGroup();
1602 doReturn(instanceGroupAAI).when(SPY_bbInputSetupUtils).getAAIInstanceGroup(any());
1603 org.onap.so.db.catalog.beans.InstanceGroup catalogInstanceGroup =
1604 new org.onap.so.db.catalog.beans.InstanceGroup();
1605 doReturn(catalogInstanceGroup).when(SPY_bbInputSetupUtils).getCatalogInstanceGroup(any());
1607 BBInputSetupParameter parameter = new BBInputSetupParameter.Builder().setModelInfo(modelInfo)
1608 .setInstanceName(instanceName).setPlatform(platform).setLineOfBusiness(lineOfBusiness)
1609 .setService(service).setBbName(bbName).setServiceInstance(serviceInstance).setLookupKeyMap(lookupKeyMap)
1610 .setRelatedInstanceList(requestDetails.getRelatedInstanceList()).setResourceId(resourceId)
1611 .setVnfType(vnfType).setProductFamilyId(requestDetails.getRequestInfo().getProductFamilyId())
1612 .setApplicationId(applicationId).setIsReplace(true).build();
1614 SPY_bbInputSetup.populateGenericVnf(parameter);
1616 assertEquals("my-test-uuid", modelInfo.getModelCustomizationUuid());
1621 public void testMapVnfcCollectionInstanceGroup() {
1622 VnfResourceCustomization vnfResourceCust = Mockito.mock(VnfResourceCustomization.class);
1623 GenericVnf genericVnf = new GenericVnf();
1624 ModelInfo modelInfo = Mockito.mock(ModelInfo.class);
1625 Service service = Mockito.mock(Service.class);
1626 org.onap.so.db.catalog.beans.InstanceGroup instanceGroup = new org.onap.so.db.catalog.beans.InstanceGroup();
1627 instanceGroup.setModelUUID("modelUUID");
1628 List<VnfcInstanceGroupCustomization> vnfcInstanceGroups = new ArrayList<>();
1629 VnfcInstanceGroupCustomization vnfcInstanceGroupCust = new VnfcInstanceGroupCustomization();
1630 vnfcInstanceGroupCust.setInstanceGroup(instanceGroup);
1631 vnfcInstanceGroupCust.setFunction("function");
1632 vnfcInstanceGroupCust.setDescription("description");
1633 vnfcInstanceGroups.add(vnfcInstanceGroupCust);
1635 ModelInfoInstanceGroup modelInfoInstanceGroup = new ModelInfoInstanceGroup();
1636 modelInfoInstanceGroup.setModelUUID("modelUUID");
1637 doReturn(vnfResourceCust).when(SPY_bbInputSetup).getVnfResourceCustomizationFromService(modelInfo, service);
1638 doReturn(vnfcInstanceGroups).when(vnfResourceCust).getVnfcInstanceGroupCustomizations();
1639 doReturn(instanceGroup).when(SPY_bbInputSetupUtils).getCatalogInstanceGroup("modelUUID");
1640 doReturn(modelInfoInstanceGroup).when(bbInputSetupMapperLayer).mapCatalogInstanceGroupToInstanceGroup(null,
1643 SPY_bbInputSetup.mapVnfcCollectionInstanceGroup(genericVnf, modelInfo, service);
1645 assertEquals("Instance Group was created", true, genericVnf.getInstanceGroups().size() == 1);
1649 public void testPopulateGenericVnfWhereVnfTypeIsNull()
1650 throws JsonParseException, JsonMappingException, IOException {
1651 org.onap.so.serviceinstancebeans.Platform platform = new org.onap.so.serviceinstancebeans.Platform();
1652 org.onap.so.serviceinstancebeans.LineOfBusiness lineOfBusiness =
1653 new org.onap.so.serviceinstancebeans.LineOfBusiness();
1654 String instanceName = "vnfName";
1655 ModelInfo modelInfo = new ModelInfo();
1656 modelInfo.setModelType(ModelType.vnf);
1658 ServiceInstance serviceInstance = new ServiceInstance();
1659 GenericVnf vnf = new GenericVnf();
1660 vnf.setVnfId("genericVnfId");
1661 vnf.setVnfName("vnfName");
1662 serviceInstance.getVnfs().add(vnf);
1663 String vnfType = null;
1664 RequestDetails requestDetails =
1665 mapper.readValue(new File(RESOURCE_PATH + "RequestDetails_CreateVnf.json"), RequestDetails.class);
1667 Service service = mapper.readValue(
1668 new File(RESOURCE_PATH + "CatalogDBService_getServiceInstanceNOAAIInput.json"), Service.class);
1669 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
1670 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "genericVnfId");
1671 String bbName = AssignFlows.VNF.toString();
1673 Platform expectedPlatform = new Platform();
1674 LineOfBusiness expectedLineOfBusiness = new LineOfBusiness();
1675 String resourceId = "123";
1676 String applicationId = "applicationId";
1677 doReturn(expectedPlatform).when(bbInputSetupMapperLayer).mapRequestPlatform(platform);
1678 doReturn(expectedLineOfBusiness).when(bbInputSetupMapperLayer).mapRequestLineOfBusiness(lineOfBusiness);
1679 org.onap.aai.domain.yang.GenericVnf vnfAAI = new org.onap.aai.domain.yang.GenericVnf();
1680 vnfAAI.setModelCustomizationId("modelCustId");
1681 doReturn(vnfAAI).when(SPY_bbInputSetupUtils).getAAIGenericVnf(vnf.getVnfId());
1682 doNothing().when(SPY_bbInputSetup).mapCatalogVnf(vnf, modelInfo, service);
1683 org.onap.aai.domain.yang.InstanceGroup instanceGroupAAI = new org.onap.aai.domain.yang.InstanceGroup();
1684 doReturn(instanceGroupAAI).when(SPY_bbInputSetupUtils).getAAIInstanceGroup(any());
1685 org.onap.so.db.catalog.beans.InstanceGroup catalogInstanceGroup =
1686 new org.onap.so.db.catalog.beans.InstanceGroup();
1687 doReturn(catalogInstanceGroup).when(SPY_bbInputSetupUtils).getCatalogInstanceGroup(any());
1688 BBInputSetupParameter parameter = new BBInputSetupParameter.Builder().setRequestId(REQUEST_ID)
1689 .setModelInfo(modelInfo).setInstanceName(instanceName).setPlatform(platform)
1690 .setLineOfBusiness(lineOfBusiness).setService(service).setBbName(bbName)
1691 .setServiceInstance(serviceInstance).setLookupKeyMap(lookupKeyMap)
1692 .setRelatedInstanceList(requestDetails.getRelatedInstanceList()).setResourceId(resourceId)
1693 .setVnfType(vnfType).setProductFamilyId(requestDetails.getRequestInfo().getProductFamilyId()).build();
1694 SPY_bbInputSetup.populateGenericVnf(parameter);
1696 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, null);
1698 SPY_bbInputSetup.populateGenericVnf(parameter);
1699 verify(SPY_bbInputSetup, times(1)).mapCatalogVnf(vnf, modelInfo, service);
1701 instanceName = "vnfName2";
1702 GenericVnf vnf2 = SPY_bbInputSetup.createGenericVnf(lookupKeyMap, instanceName, platform, lineOfBusiness,
1703 resourceId, vnfType, null, requestDetails.getRequestInfo().getProductFamilyId(), applicationId);
1705 org.onap.aai.domain.yang.GenericVnf vnf2AAI = new org.onap.aai.domain.yang.GenericVnf();
1706 vnfAAI.setModelCustomizationId("modelCustId2");
1707 doReturn(vnf2AAI).when(SPY_bbInputSetupUtils).getAAIGenericVnf(vnf2.getVnfId());
1708 doNothing().when(SPY_bbInputSetup).mapCatalogVnf(vnf2, modelInfo, service);
1709 doNothing().when(SPY_bbInputSetup).mapNetworkCollectionInstanceGroup(vnf2, "{instanceGroupId}");
1710 SPY_bbInputSetup.populateGenericVnf(parameter);
1711 verify(SPY_bbInputSetup, times(2)).mapCatalogVnf(vnf2, modelInfo, service);
1712 verify(SPY_bbInputSetup, times(2)).mapNetworkCollectionInstanceGroup(vnf2, "{instanceGroupId}");
1713 verify(SPY_bbInputSetup, times(1)).mapVnfcCollectionInstanceGroup(vnf2, modelInfo, service);
1717 public void testMapCatalogVnf() {
1718 ModelInfoGenericVnf modelInfoGenericVnf = new ModelInfoGenericVnf();
1719 GenericVnf genericVnf = new GenericVnf();
1720 RequestDetails requestDetails = new RequestDetails();
1721 ModelInfo modelInfo = new ModelInfo();
1722 modelInfo.setModelCustomizationUuid("modelCustomizationUUID");
1723 requestDetails.setModelInfo(modelInfo);
1724 Service service = new Service();
1725 VnfResourceCustomization resourceCust = new VnfResourceCustomization();
1726 resourceCust.setModelCustomizationUUID("vnfModelCustomizationUUID");
1727 service.getVnfCustomizations().add(resourceCust);
1728 resourceCust.setModelCustomizationUUID("modelCustomizationUUID");
1730 doReturn(modelInfoGenericVnf).when(bbInputSetupMapperLayer).mapCatalogVnfToVnf(resourceCust);
1732 SPY_bbInputSetup.mapCatalogVnf(genericVnf, modelInfo, service);
1734 assertEquals(modelInfoGenericVnf, genericVnf.getModelInfoGenericVnf());
1738 public void testMapCatalogCollectionAndInstanceGroup() {
1739 ModelInfoCollection modelInfoCollection = new ModelInfoCollection();
1740 modelInfoCollection.setCollectionFunction("collectionFunction");
1741 modelInfoCollection.setCollectionRole("collectionRole");
1742 modelInfoCollection.setCollectionType("collectionType");
1743 modelInfoCollection.setDescription("description");
1744 modelInfoCollection.setModelInvariantUUID("modelInvariantUUID");
1745 modelInfoCollection.setQuantity(0);
1747 ModelInfoInstanceGroup modelInfoInstanceGroup = new ModelInfoInstanceGroup();
1748 modelInfoInstanceGroup.setFunction("function");
1749 modelInfoInstanceGroup.setInstanceGroupRole("instanceGroupRole");
1750 modelInfoInstanceGroup.setModelInvariantUUID("modelInvariantUUID");
1751 modelInfoInstanceGroup.setModelUUID("modelUUID");
1752 modelInfoInstanceGroup.setType("VNFC");
1753 modelInfoInstanceGroup.setDescription("description");
1755 InstanceGroup instanceGroup = new InstanceGroup();
1756 Collection collection = new Collection();
1757 collection.setInstanceGroup(instanceGroup);
1759 CollectionResource collectionResource = new CollectionResource();
1760 org.onap.so.db.catalog.beans.InstanceGroup catalogInstanceGroup =
1761 new org.onap.so.db.catalog.beans.InstanceGroup();
1762 collectionResource.setToscaNodeType("NetworkCollection");
1763 collectionResource.setInstanceGroup(catalogInstanceGroup);
1765 CollectionResourceCustomization collectionCust = new NetworkCollectionResourceCustomization();
1766 collectionCust.setModelCustomizationUUID("modelCustomizationUUID");
1767 collectionCust.setCollectionResource(collectionResource);
1769 Service service = new Service();
1770 service.getCollectionResourceCustomizations().add(collectionCust);
1771 ServiceInstance serviceInstance = new ServiceInstance();
1772 serviceInstance.setCollection(collection);
1774 List<CollectionResourceInstanceGroupCustomization> instanceGroupCustList = new ArrayList<>();
1775 CollectionResourceInstanceGroupCustomization instanceGroupCust =
1776 new CollectionResourceInstanceGroupCustomization();
1777 instanceGroupCust.setFunction("function");
1778 instanceGroupCust.setDescription("description");
1780 doReturn(modelInfoCollection).when(bbInputSetupMapperLayer).mapCatalogCollectionToCollection(collectionCust,
1781 collectionResource);
1783 doReturn(modelInfoInstanceGroup).when(bbInputSetupMapperLayer)
1784 .mapCatalogInstanceGroupToInstanceGroup(collectionCust, catalogInstanceGroup);
1786 SPY_bbInputSetup.mapCatalogCollection(service, serviceInstance.getCollection(), "modelCustomizationUUID");
1787 SPY_bbInputSetup.mapCatalogNetworkCollectionInstanceGroup(service,
1788 serviceInstance.getCollection().getInstanceGroup(), collectionCust.getModelCustomizationUUID());
1790 assertThat(collection.getModelInfoCollection(), sameBeanAs(modelInfoCollection));
1791 assertThat(instanceGroup.getModelInfoInstanceGroup(), sameBeanAs(modelInfoInstanceGroup));
1795 public void testAddRelationshipsToSI() throws Exception {
1796 ServiceInstance serviceInstance = new ServiceInstance();
1797 org.onap.aai.domain.yang.ServiceInstance serviceInstanceAAI = new org.onap.aai.domain.yang.ServiceInstance();
1798 serviceInstanceAAI.setServiceInstanceId("serviceInstanceId");
1800 org.onap.aai.domain.yang.RelationshipList relationshipList = new org.onap.aai.domain.yang.RelationshipList();
1801 org.onap.aai.domain.yang.Relationship relationship = new org.onap.aai.domain.yang.Relationship();
1802 relationshipList.getRelationship().add(relationship);
1803 serviceInstanceAAI.setRelationshipList(relationshipList);
1805 Map<String, String> uriKeys = new HashMap<>();
1806 uriKeys.put("global-customer-id", "globalCustomerId");
1807 uriKeys.put("service-type", "serviceType");
1810 doNothing().when(SPY_bbInputSetup).mapProject(any(), eq(serviceInstance));
1811 doNothing().when(SPY_bbInputSetup).mapOwningEntity(any(), eq(serviceInstance));
1812 doNothing().when(SPY_bbInputSetup).mapL3Networks(any(), eq(serviceInstance.getNetworks()));
1813 doNothing().when(SPY_bbInputSetup).mapGenericVnfs(any(), eq(serviceInstance.getVnfs()));
1814 doNothing().when(SPY_bbInputSetup).mapCollection(any(), eq(serviceInstance));
1816 SPY_bbInputSetup.addRelationshipsToSI(serviceInstanceAAI, serviceInstance);
1818 verify(SPY_bbInputSetup, times(1)).mapProject(any(), eq(serviceInstance));
1819 verify(SPY_bbInputSetup, times(1)).mapOwningEntity(any(), eq(serviceInstance));
1820 verify(SPY_bbInputSetup, times(1)).mapL3Networks(any(), eq(serviceInstance.getNetworks()));
1821 verify(SPY_bbInputSetup, times(1)).mapGenericVnfs(any(), eq(serviceInstance.getVnfs()));
1822 verify(SPY_bbInputSetup, times(1)).mapCollection(any(), eq(serviceInstance));
1823 verify(SPY_bbInputSetup, times(1)).mapConfigurations(any(), eq(serviceInstance.getConfigurations()));
1827 public void testMapConfigurations() throws JsonProcessingException {
1828 org.onap.aai.domain.yang.Configuration expectedAAI = new org.onap.aai.domain.yang.Configuration();
1829 org.onap.aai.domain.yang.RelationshipList relationshipList = new org.onap.aai.domain.yang.RelationshipList();
1830 org.onap.aai.domain.yang.Relationship relationship = new org.onap.aai.domain.yang.Relationship();
1831 relationshipList.getRelationship().add(relationship);
1832 expectedAAI.setRelationshipList(relationshipList);
1834 Configuration expected = new Configuration();
1835 AAIResourceUri aaiResourceUri =
1836 AAIUriFactory.createResourceUri(AAIFluentTypeBuilder.network().configuration("configurationId"));
1837 AAIResultWrapper configurationWrapper =
1838 new AAIResultWrapper(new AAICommonObjectMapperProvider().getMapper().writeValueAsString(expectedAAI));
1840 doReturn(configurationWrapper).when(SPY_bbInputSetupUtils).getAAIResourceDepthOne(aaiResourceUri);
1841 doReturn(expected).when(bbInputSetupMapperLayer)
1842 .mapAAIConfiguration(isA(org.onap.aai.domain.yang.Configuration.class));
1844 List<Configuration> configurations = new ArrayList<>();
1846 SPY_bbInputSetup.mapConfigurations(Arrays.asList(new AAIResourceUri[] {aaiResourceUri}), configurations);
1848 assertEquals(expected, configurations.get(0));
1852 public void testMapGenericVnfs() throws JsonProcessingException {
1853 org.onap.aai.domain.yang.GenericVnf expectedAAI = new org.onap.aai.domain.yang.GenericVnf();
1854 org.onap.aai.domain.yang.RelationshipList relationshipList = new org.onap.aai.domain.yang.RelationshipList();
1855 org.onap.aai.domain.yang.Relationship relationship = new org.onap.aai.domain.yang.Relationship();
1856 relationshipList.getRelationship().add(relationship);
1857 expectedAAI.setRelationshipList(relationshipList);
1859 GenericVnf expected = new GenericVnf();
1860 AAIResourceUri aaiResourceUri =
1861 AAIUriFactory.createResourceUri(AAIFluentTypeBuilder.network().genericVnf("vnfId"));
1862 AAIResultWrapper vnfWrapper =
1863 new AAIResultWrapper(new AAICommonObjectMapperProvider().getMapper().writeValueAsString(expectedAAI));
1865 doReturn(vnfWrapper).when(SPY_bbInputSetupUtils).getAAIResourceDepthOne(aaiResourceUri);
1866 doReturn(expected).when(bbInputSetupMapperLayer)
1867 .mapAAIGenericVnfIntoGenericVnf(isA(org.onap.aai.domain.yang.GenericVnf.class));
1868 doNothing().when(SPY_bbInputSetup).mapPlatform(any(), eq(expected));
1869 doNothing().when(SPY_bbInputSetup).mapLineOfBusiness(any(), eq(expected));
1870 doReturn(new ArrayList<>()).when(SPY_bbInputSetup).mapVolumeGroups(any());
1872 List<GenericVnf> genericVnfs = new ArrayList<>();
1874 SPY_bbInputSetup.mapGenericVnfs(Arrays.asList(new AAIResourceUri[] {aaiResourceUri}), genericVnfs);
1876 assertEquals(expected, genericVnfs.get(0));
1877 verify(SPY_bbInputSetup, times(1)).mapPlatform(any(), eq(expected));
1878 verify(SPY_bbInputSetup, times(1)).mapLineOfBusiness(any(), eq(expected));
1879 verify(SPY_bbInputSetup, times(1)).mapVolumeGroups(any());
1883 public void testMapPnfs() throws JsonProcessingException {
1884 org.onap.aai.domain.yang.Pnf expectedAAI = new org.onap.aai.domain.yang.Pnf();
1885 org.onap.aai.domain.yang.RelationshipList relationshipList = new org.onap.aai.domain.yang.RelationshipList();
1886 org.onap.aai.domain.yang.Relationship relationship = new org.onap.aai.domain.yang.Relationship();
1887 relationshipList.getRelationship().add(relationship);
1888 expectedAAI.setRelationshipList(relationshipList);
1890 Pnf expected = new Pnf();
1891 AAIResourceUri aaiResourceUri = AAIUriFactory.createResourceUri(AAIFluentTypeBuilder.network().pnf("pnfId"));
1892 AAIResultWrapper pnfWrapper =
1893 new AAIResultWrapper(new AAICommonObjectMapperProvider().getMapper().writeValueAsString(expectedAAI));
1895 doReturn(pnfWrapper).when(SPY_bbInputSetupUtils).getAAIResourceDepthOne(aaiResourceUri);
1896 doReturn(expected).when(bbInputSetupMapperLayer).mapAAIPnfIntoPnf(isA(org.onap.aai.domain.yang.Pnf.class));
1898 List<Pnf> pnfs = new ArrayList<>();
1900 SPY_bbInputSetup.mapPnfs(Arrays.asList(aaiResourceUri), pnfs);
1902 assertEquals(expected, pnfs.get(0));
1906 public void testMapVolumeGroups() throws JsonProcessingException {
1907 org.onap.aai.domain.yang.VolumeGroup expectedAAI = new org.onap.aai.domain.yang.VolumeGroup();
1909 VolumeGroup expected = new VolumeGroup();
1910 AAIResultWrapper vnfWrapper =
1911 new AAIResultWrapper(new AAICommonObjectMapperProvider().getMapper().writeValueAsString(expectedAAI));
1913 doReturn(expected).when(bbInputSetupMapperLayer)
1914 .mapAAIVolumeGroup(isA(org.onap.aai.domain.yang.VolumeGroup.class));
1916 List<VolumeGroup> volumeGroupsList =
1917 SPY_bbInputSetup.mapVolumeGroups(Arrays.asList(new AAIResultWrapper[] {vnfWrapper}));
1919 assertEquals(expected, volumeGroupsList.get(0));
1923 public void testMapLineOfBusiness() throws JsonProcessingException {
1924 org.onap.aai.domain.yang.LineOfBusiness expectedAAI = new org.onap.aai.domain.yang.LineOfBusiness();
1926 LineOfBusiness expected = new LineOfBusiness();
1927 AAIResultWrapper vnfWrapper =
1928 new AAIResultWrapper(new AAICommonObjectMapperProvider().getMapper().writeValueAsString(expectedAAI));
1930 doReturn(expected).when(bbInputSetupMapperLayer)
1931 .mapAAILineOfBusiness(isA(org.onap.aai.domain.yang.LineOfBusiness.class));
1933 GenericVnf vnf = new GenericVnf();
1935 SPY_bbInputSetup.mapLineOfBusiness(Arrays.asList(new AAIResultWrapper[] {vnfWrapper}), vnf);
1937 assertEquals(expected, vnf.getLineOfBusiness());
1941 public void testMapPlatform() throws JsonProcessingException {
1942 org.onap.aai.domain.yang.Platform expectedAAI = new org.onap.aai.domain.yang.Platform();
1944 Platform expected = new Platform();
1945 AAIResultWrapper vnfWrapper =
1946 new AAIResultWrapper(new AAICommonObjectMapperProvider().getMapper().writeValueAsString(expectedAAI));
1948 doReturn(expected).when(bbInputSetupMapperLayer).mapAAIPlatform(isA(org.onap.aai.domain.yang.Platform.class));
1950 GenericVnf vnf = new GenericVnf();
1952 SPY_bbInputSetup.mapPlatform(Arrays.asList(new AAIResultWrapper[] {vnfWrapper}), vnf);
1954 assertEquals(expected, vnf.getPlatform());
1958 public void testMapCollection() throws JsonProcessingException {
1959 List<AAIResultWrapper> collections = new ArrayList<>();
1960 ServiceInstance serviceInstance = new ServiceInstance();
1962 org.onap.aai.domain.yang.Collection aaiCollection = new org.onap.aai.domain.yang.Collection();
1963 org.onap.aai.domain.yang.RelationshipList collectionRelationshipList =
1964 new org.onap.aai.domain.yang.RelationshipList();
1965 org.onap.aai.domain.yang.Relationship collectionInstanceGroupRelationship =
1966 new org.onap.aai.domain.yang.Relationship();
1967 collectionRelationshipList.getRelationship().add(collectionInstanceGroupRelationship);
1968 aaiCollection.setRelationshipList(collectionRelationshipList);
1970 collections.add(new AAIResultWrapper(
1971 new AAICommonObjectMapperProvider().getMapper().writeValueAsString(aaiCollection)));
1973 Collection collection = new Collection();
1974 ModelInfoCollection modelInfoCollection = new ModelInfoCollection();
1975 List<InstanceGroup> instanceGroupsList = new ArrayList<>();
1976 InstanceGroup instanceGroup = new InstanceGroup();
1977 instanceGroupsList.add(instanceGroup);
1978 NetworkCollectionResourceCustomization networkCollectionCust =
1979 Mockito.mock(NetworkCollectionResourceCustomization.class);
1980 CollectionResource collectionResource = new CollectionResource();
1981 doReturn(collection).when(bbInputSetupMapperLayer)
1982 .mapAAICollectionIntoCollection(isA(org.onap.aai.domain.yang.Collection.class));
1983 doReturn(instanceGroupsList).when(SPY_bbInputSetup).mapInstanceGroups(any());
1984 doReturn(networkCollectionCust).when(SPY_bbInputSetupUtils)
1985 .getCatalogNetworkCollectionResourceCustByID(aaiCollection.getCollectionCustomizationId());
1986 doReturn(collectionResource).when(networkCollectionCust).getCollectionResource();
1987 doReturn(modelInfoCollection).when(bbInputSetupMapperLayer)
1988 .mapCatalogCollectionToCollection(networkCollectionCust, collectionResource);
1990 SPY_bbInputSetup.mapCollection(collections, serviceInstance);
1992 assertEquals(collection, serviceInstance.getCollection());
1993 assertEquals(instanceGroup, collection.getInstanceGroup());
1995 instanceGroupsList.clear();
1996 collection = new Collection();
1998 SPY_bbInputSetup.mapCollection(collections, serviceInstance);
1999 assertEquals(collection, serviceInstance.getCollection());
2000 assertNull(collection.getInstanceGroup());
2004 public void testMapL3Networks() throws JsonProcessingException {
2005 org.onap.aai.domain.yang.L3Network expectedAAI = new org.onap.aai.domain.yang.L3Network();
2006 org.onap.aai.domain.yang.RelationshipList relationshipList = new org.onap.aai.domain.yang.RelationshipList();
2007 org.onap.aai.domain.yang.Relationship relationship = new org.onap.aai.domain.yang.Relationship();
2008 relationshipList.getRelationship().add(relationship);
2009 expectedAAI.setRelationshipList(relationshipList);
2011 L3Network expected = new L3Network();
2012 List<L3Network> l3Networks = new ArrayList<>();
2013 AAIResultWrapper l3NetworksWrapper =
2014 new AAIResultWrapper(new AAICommonObjectMapperProvider().getMapper().writeValueAsString(expectedAAI));
2015 AAIResourceUri aaiResourceUri =
2016 AAIUriFactory.createResourceUri(AAIFluentTypeBuilder.network().l3Network("networkId"));
2018 doReturn(l3NetworksWrapper).when(SPY_bbInputSetupUtils).getAAIResourceDepthTwo(aaiResourceUri);
2019 doReturn(expected).when(bbInputSetupMapperLayer).mapAAIL3Network(isA(org.onap.aai.domain.yang.L3Network.class));
2020 doNothing().when(SPY_bbInputSetup).mapNetworkPolicies(any(), eq(expected.getNetworkPolicies()));
2021 doNothing().when(SPY_bbInputSetup).mapRouteTableReferences(any(),
2022 eq(expected.getContrailNetworkRouteTableReferences()));
2024 SPY_bbInputSetup.mapL3Networks(Arrays.asList(new AAIResourceUri[] {aaiResourceUri}), l3Networks);
2026 assertEquals(expected, l3Networks.get(0));
2027 verify(SPY_bbInputSetup, times(1)).mapNetworkPolicies(any(), eq(expected.getNetworkPolicies()));
2028 verify(SPY_bbInputSetup, times(1)).mapRouteTableReferences(any(),
2029 eq(expected.getContrailNetworkRouteTableReferences()));
2033 public void testMapRouteTableReferences() throws JsonProcessingException {
2034 org.onap.aai.domain.yang.RouteTableReference expectedAAI = new org.onap.aai.domain.yang.RouteTableReference();
2036 RouteTableReference expected = new RouteTableReference();
2037 List<RouteTableReference> contrailNetworkRouteTableReferences = new ArrayList<>();
2038 AAIResultWrapper vnfWrapper =
2039 new AAIResultWrapper(new AAICommonObjectMapperProvider().getMapper().writeValueAsString(expectedAAI));
2041 doReturn(expected).when(bbInputSetupMapperLayer).mapAAIRouteTableReferenceIntoRouteTableReference(
2042 isA(org.onap.aai.domain.yang.RouteTableReference.class));
2044 SPY_bbInputSetup.mapRouteTableReferences(Arrays.asList(new AAIResultWrapper[] {vnfWrapper}),
2045 contrailNetworkRouteTableReferences);
2047 assertEquals(expected, contrailNetworkRouteTableReferences.get(0));
2051 public void testMapOwningEntity() throws JsonProcessingException {
2052 org.onap.aai.domain.yang.OwningEntity expectedAAI = new org.onap.aai.domain.yang.OwningEntity();
2054 OwningEntity expected = new OwningEntity();
2055 AAIResultWrapper vnfWrapper =
2056 new AAIResultWrapper(new AAICommonObjectMapperProvider().getMapper().writeValueAsString(expectedAAI));
2058 doReturn(expected).when(bbInputSetupMapperLayer)
2059 .mapAAIOwningEntity(isA(org.onap.aai.domain.yang.OwningEntity.class));
2061 ServiceInstance serviceInstance = new ServiceInstance();
2063 SPY_bbInputSetup.mapOwningEntity(Arrays.asList(new AAIResultWrapper[] {vnfWrapper}), serviceInstance);
2065 assertEquals(expected, serviceInstance.getOwningEntity());
2069 public void testMapProject() throws JsonProcessingException {
2070 org.onap.aai.domain.yang.Project expectedAAI = new org.onap.aai.domain.yang.Project();
2072 Project expected = new Project();
2073 AAIResultWrapper vnfWrapper =
2074 new AAIResultWrapper(new AAICommonObjectMapperProvider().getMapper().writeValueAsString(expectedAAI));
2076 doReturn(expected).when(bbInputSetupMapperLayer).mapAAIProject(isA(org.onap.aai.domain.yang.Project.class));
2078 ServiceInstance serviceInstance = new ServiceInstance();
2080 SPY_bbInputSetup.mapProject(Arrays.asList(new AAIResultWrapper[] {vnfWrapper}), serviceInstance);
2082 assertEquals(expected, serviceInstance.getProject());
2086 public void testMapCustomer() throws Exception {
2087 org.onap.aai.domain.yang.Customer customerAAI = new org.onap.aai.domain.yang.Customer();
2088 org.onap.aai.domain.yang.ServiceSubscription serviceSubscriptionAAI =
2089 new org.onap.aai.domain.yang.ServiceSubscription();
2091 Customer expected = new Customer();
2092 ServiceSubscription serviceSubscription = new ServiceSubscription();
2094 String globalCustomerId = "globalCustomerId";
2095 String subscriptionServiceType = "subscriptionServiceType";
2097 doReturn(customerAAI).when(SPY_bbInputSetupUtils).getAAICustomer(globalCustomerId);
2098 doReturn(serviceSubscriptionAAI).when(SPY_bbInputSetupUtils).getAAIServiceSubscription(globalCustomerId,
2099 subscriptionServiceType);
2100 doReturn(expected).when(bbInputSetupMapperLayer).mapAAICustomer(isA(org.onap.aai.domain.yang.Customer.class));
2101 doReturn(serviceSubscription).when(bbInputSetupMapperLayer)
2102 .mapAAIServiceSubscription(isA(org.onap.aai.domain.yang.ServiceSubscription.class));
2104 Customer actual = SPY_bbInputSetup.mapCustomer(globalCustomerId, subscriptionServiceType);
2106 assertEquals(expected, actual);
2107 assertEquals(serviceSubscription, expected.getServiceSubscription());
2111 public void testPopulateLookupKeyMapWithIds() {
2112 Map<ResourceKey, String> expected = new HashMap<>();
2113 Map<ResourceKey, String> actual = new HashMap<>();
2114 String serviceInstanceId = "serviceInstanceId";
2115 String networkId = "networkId";
2116 String vnfId = "vnfId";
2117 String pnfId = "pnfId";
2118 String vfModuleId = "vfModuleId";
2119 String volumeGroupId = "volumeGroupId";
2120 String configurationId = "configurationId";
2121 String instanceGroupId = "instancegroupId";
2122 String vnfInstanceName = "vnfInstanceName";
2123 String vfModuleInstanceName = "vfModuleInstanceName";
2124 String childServiceInstanceId = "childServiceInstanceId";
2125 String childServiceInstanceName = "childServiceInstanceName";
2127 expected.put(ResourceKey.SERVICE_INSTANCE_ID, serviceInstanceId);
2128 expected.put(ResourceKey.NETWORK_ID, networkId);
2129 expected.put(ResourceKey.GENERIC_VNF_ID, vnfId);
2130 expected.put(ResourceKey.PNF, pnfId);
2131 expected.put(ResourceKey.VF_MODULE_ID, vfModuleId);
2132 expected.put(ResourceKey.VOLUME_GROUP_ID, volumeGroupId);
2133 expected.put(ResourceKey.CONFIGURATION_ID, configurationId);
2134 expected.put(ResourceKey.INSTANCE_GROUP_ID, instanceGroupId);
2135 expected.put(ResourceKey.VNF_INSTANCE_NAME, vnfInstanceName);
2136 expected.put(ResourceKey.VF_MODULE_INSTANCE_NAME, vfModuleInstanceName);
2137 expected.put(ResourceKey.CHILD_SERVICE_INSTANCE_ID, childServiceInstanceId);
2138 expected.put(ResourceKey.CHILD_SERVICE_INSTANCE_NAME, childServiceInstanceName);
2140 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2141 workflowResourceIds.setServiceInstanceId(serviceInstanceId);
2142 workflowResourceIds.setNetworkId(networkId);
2143 workflowResourceIds.setVnfId(vnfId);
2144 workflowResourceIds.setPnfId(pnfId);
2145 workflowResourceIds.setVfModuleId(vfModuleId);
2146 workflowResourceIds.setVolumeGroupId(volumeGroupId);
2147 workflowResourceIds.setConfigurationId(configurationId);
2148 workflowResourceIds.setInstanceGroupId(instanceGroupId);
2149 workflowResourceIds.setVnfInstanceName(vnfInstanceName);
2150 workflowResourceIds.setVfModuleInstanceName(vfModuleInstanceName);
2151 workflowResourceIds.setChildServiceInstanceId(childServiceInstanceId);
2152 workflowResourceIds.setChildServiceInstanceName(childServiceInstanceName);
2154 SPY_bbInputSetup.populateLookupKeyMapWithIds(workflowResourceIds, actual);
2156 assertThat(actual, sameBeanAs(expected));
2160 public void testGetVfModulesByInstanceName() throws IOException {
2161 org.onap.so.serviceinstancebeans.Service serviceMacro = mapper.readValue(
2162 new File(RESOURCE_PATH + "ServiceMacroVfModules.json"), org.onap.so.serviceinstancebeans.Service.class);
2163 Resources resources = serviceMacro.getResources();
2164 VfModules expectedVfModule = resources.getVnfs().get(0).getVfModules().get(2);
2165 assertEquals(expectedVfModule,
2166 SPY_bbInputSetup.getVfModulesByInstanceName("vmxnjr001_AVPN_base_vRE_BV_expansion_002", resources));
2170 public void testGetVfModulesByKey() throws IOException {
2171 org.onap.so.serviceinstancebeans.Service serviceMacro = mapper.readValue(
2172 new File(RESOURCE_PATH + "ServiceMacroVfModules.json"), org.onap.so.serviceinstancebeans.Service.class);
2173 Resources resources = serviceMacro.getResources();
2174 VfModules expectedVfModule = resources.getVnfs().get(0).getVfModules().get(0);
2175 assertEquals(expectedVfModule,
2176 SPY_bbInputSetup.getVfModulesByKey("a25e8e8c-58b8-4eec-810c-97dcc1f5cb7f", resources));
2180 public void testFindVnfsByInstanceName() throws IOException {
2181 org.onap.so.serviceinstancebeans.Service serviceMacro = mapper.readValue(
2182 new File(RESOURCE_PATH + "ServiceMacroVfModules.json"), org.onap.so.serviceinstancebeans.Service.class);
2183 Resources resources = serviceMacro.getResources();
2184 Vnfs expectedVnf = resources.getVnfs().get(0);
2185 assertEquals(expectedVnf, SPY_bbInputSetup.findVnfsByInstanceName("vmxnjr001", resources));
2189 public void testVnfsByKey() throws IOException {
2190 org.onap.so.serviceinstancebeans.Service serviceMacro = mapper.readValue(
2191 new File(RESOURCE_PATH + "ServiceMacroVfModules.json"), org.onap.so.serviceinstancebeans.Service.class);
2192 Resources resources = serviceMacro.getResources();
2193 Vnfs expectedVnf = resources.getVnfs().get(0);
2194 assertEquals(expectedVnf, SPY_bbInputSetup.findVnfsByKey("ab153b6e-c364-44c0-bef6-1f2982117f04", resources));
2198 public void testGBBMacroNoUserParamsVrfConfiguration() throws Exception {
2199 String resourceId = "123";
2200 String vnfType = "vnfType";
2201 String requestAction = "createInstance";
2202 Service service = Mockito.mock(Service.class);
2203 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
2204 GeneralBuildingBlock.class);
2205 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
2206 ExecuteBuildingBlock.class);
2207 RequestDetails requestDetails = mapper
2208 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacroVrf.json"), RequestDetails.class);
2209 Map<ResourceKey, String> lookupKeyMap = prepareLookupKeyMap();
2211 ConfigurationResourceKeys configResourceKeys = prepareConfigurationResourceKeys();
2212 executeBB.setConfigurationResourceKeys(configResourceKeys).setRequestDetails(requestDetails);
2213 BuildingBlock buildingBlock = executeBB.getBuildingBlock();
2214 buildingBlock.setBpmnFlowName("AssignVrfConfigurationBB");
2215 buildingBlock.setKey("72d9d1cd-f46d-447a-abdb-451d6fb05fa9");
2217 doReturn(gBB).when(SPY_bbInputSetup).getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
2218 requestAction, lookupKeyMap.get(ResourceKey.SERVICE_INSTANCE_ID));
2219 doReturn(service).when(SPY_bbInputSetupUtils)
2220 .getCatalogServiceByModelUUID(gBB.getServiceInstance().getModelInfoServiceInstance().getModelUuid());
2222 RelatedInstance relatedVpnBinding = new RelatedInstance();
2223 relatedVpnBinding.setInstanceId("vpnBindingInstanceId");
2224 RelatedInstance relatedLocalNetwork = new RelatedInstance();
2225 relatedLocalNetwork.setInstanceId("localNetworkInstanceId");
2226 org.onap.aai.domain.yang.VpnBinding aaiVpnBinding = new org.onap.aai.domain.yang.VpnBinding();
2227 aaiVpnBinding.setVpnId("vpnBindingId");
2228 org.onap.aai.domain.yang.L3Network aaiLocalNetwork = new org.onap.aai.domain.yang.L3Network();
2229 aaiLocalNetwork.setNetworkId("localNetworkId");
2230 Optional<org.onap.aai.domain.yang.VpnBinding> aaiAICVpnBindingOp =
2231 Optional.of(new org.onap.aai.domain.yang.VpnBinding());
2232 aaiAICVpnBindingOp.get().setVpnId("AICVpnBindingId");
2233 ServiceProxy proxy = new ServiceProxy();
2234 proxy.setType("transport");
2235 proxy.setServiceInstance(new ServiceInstance());
2236 proxy.getServiceInstance().setModelInfoServiceInstance(new ModelInfoServiceInstance());
2237 proxy.getServiceInstance().getModelInfoServiceInstance().setModelUuid("sourceServiceModelUUID");
2238 doReturn(relatedVpnBinding).when(SPY_bbInputSetupUtils).getRelatedInstanceByType(requestDetails,
2239 ModelType.vpnBinding);
2240 doReturn(relatedLocalNetwork).when(SPY_bbInputSetupUtils).getRelatedInstanceByType(requestDetails,
2242 doReturn(aaiVpnBinding).when(SPY_bbInputSetupUtils).getAAIVpnBinding(relatedVpnBinding.getInstanceId());
2243 doReturn(aaiLocalNetwork).when(SPY_bbInputSetupUtils).getAAIL3Network(relatedLocalNetwork.getInstanceId());
2244 doReturn(aaiAICVpnBindingOp).when(SPY_bbInputSetupUtils).getAICVpnBindingFromNetwork(aaiLocalNetwork);
2245 doReturn(proxy).when(SPY_bbInputSetup).getServiceProxy(service);
2247 Configuration configuration = new Configuration();
2248 configuration.setConfigurationId("configurationId");
2249 gBB.getServiceInstance().getConfigurations().add(configuration);
2250 List<ConfigurationResourceCustomization> configurationCustList = new ArrayList<>();
2251 ConfigurationResourceCustomization configurationCust = new ConfigurationResourceCustomization();
2252 configurationCust.setModelCustomizationUUID("72d9d1cd-f46d-447a-abdb-451d6fb05fa9");
2253 configurationCustList.add(configurationCust);
2254 doNothing().when(SPY_bbInputSetup).populateConfiguration(any(BBInputSetupParameter.class));
2256 gBB = SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
2257 verify(SPY_bbInputSetup, times(1)).populateConfiguration(any(BBInputSetupParameter.class));
2258 assertEquals(gBB.getCustomer().getVpnBindings().get(0).getVpnId(), "vpnBindingId");
2259 assertEquals(gBB.getServiceInstance().getNetworks().get(0).getNetworkId(), "localNetworkId");
2260 assertEquals(gBB.getServiceInstance().getNetworks().get(0).getVpnBindings().get(0).getVpnId(),
2262 assertEquals(gBB.getServiceInstance().getServiceProxies().get(0).getType(), "transport");
2266 public void testGetServiceProxy() {
2267 ServiceProxy expected = new ServiceProxy();
2268 expected.setType("TRANSPORT");
2269 expected.setModelInfoServiceProxy(new ModelInfoServiceProxy());
2270 expected.getModelInfoServiceProxy().setModelUuid("modelUUID");
2271 expected.getModelInfoServiceProxy().setModelInstanceName("modelInstanceName");
2272 expected.setServiceInstance(new ServiceInstance());
2273 expected.getServiceInstance().setModelInfoServiceInstance(new ModelInfoServiceInstance());
2274 expected.getServiceInstance().getModelInfoServiceInstance().setModelUuid("modelUUID");
2275 expected.getServiceInstance().getModelInfoServiceInstance().setServiceType("TRANSPORT");
2276 Service service = new Service();
2277 ServiceProxyResourceCustomization serviceProxyCatalog = new ServiceProxyResourceCustomization();
2278 serviceProxyCatalog.setModelCustomizationUUID("modelCustomizationUUID");
2279 serviceProxyCatalog.setModelInstanceName("modelInstanceName");
2280 Service sourceService = new Service();
2281 sourceService.setModelUUID("modelUUID");
2282 sourceService.setServiceType("TRANSPORT");
2283 serviceProxyCatalog.setSourceService(sourceService);
2284 service.setServiceProxyCustomizations(new ArrayList<ServiceProxyResourceCustomization>());
2285 service.getServiceProxyCustomizations().add(serviceProxyCatalog);
2286 ServiceProxy actual = SPY_bbInputSetup.getServiceProxy(service);
2287 assertThat(actual, sameBeanAs(expected));
2291 public void testgetGBBMacroCloudConfiguration() throws Exception {
2292 org.onap.so.serviceinstancebeans.Service serviceMacro = mapper.readValue(
2293 new File(RESOURCE_PATH + "ServiceMacroVfModules.json"), org.onap.so.serviceinstancebeans.Service.class);
2294 CloudConfiguration cloudConfig = null;
2295 org.onap.aai.domain.yang.CloudRegion aaiCloudRegion = new org.onap.aai.domain.yang.CloudRegion();
2296 aaiCloudRegion.setCloudOwner("test-owner-name");
2297 Resources resources = serviceMacro.getResources();
2298 doReturn(aaiCloudRegion).when(SPY_bbInputSetupUtils).getCloudRegion(any(CloudConfiguration.class));
2299 CloudRegion expected = new CloudRegion();
2300 expected.setLcpCloudRegionId("mdt1");
2301 expected.setCloudOwner("test-owner-name");
2302 expected.setTenantId("88a6ca3ee0394ade9403f075db23167e");
2304 CloudRegion actual = SPY_bbInputSetup.getCloudRegionFromMacroRequest(cloudConfig, resources);
2305 assertThat(actual, sameBeanAs(expected));
2307 serviceMacro = mapper.readValue(new File(RESOURCE_PATH + "ServiceMacroVnfs.json"),
2308 org.onap.so.serviceinstancebeans.Service.class);
2309 resources = serviceMacro.getResources();
2311 actual = SPY_bbInputSetup.getCloudRegionFromMacroRequest(cloudConfig, resources);
2312 assertThat(actual, sameBeanAs(expected));
2314 serviceMacro = mapper.readValue(new File(RESOURCE_PATH + "ServiceMacroNetworks.json"),
2315 org.onap.so.serviceinstancebeans.Service.class);
2316 resources = serviceMacro.getResources();
2318 actual = SPY_bbInputSetup.getCloudRegionFromMacroRequest(cloudConfig, resources);
2319 assertThat(actual, sameBeanAs(expected));
2321 serviceMacro = mapper.readValue(new File(RESOURCE_PATH + "ServiceMacroNoCloudConfig.json"),
2322 org.onap.so.serviceinstancebeans.Service.class);
2323 resources = serviceMacro.getResources();
2325 actual = SPY_bbInputSetup.getCloudRegionFromMacroRequest(cloudConfig, resources);
2330 public void testgetGBBMacroWithEmptyUserParams() throws Exception {
2331 String resourceId = "123";
2332 String vnfType = "vnfType";
2333 String requestAction = "createInstance";
2334 Service service = Mockito.mock(Service.class);
2335 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
2336 GeneralBuildingBlock.class);
2337 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
2338 ExecuteBuildingBlock.class);
2339 RequestDetails requestDetails = mapper
2340 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
2341 requestDetails.getRequestParameters().getUserParams().clear();
2342 org.onap.aai.domain.yang.GenericVnf aaiVnf = new org.onap.aai.domain.yang.GenericVnf();
2343 aaiVnf.setModelCustomizationId("modelCustId");
2344 Map<ResourceKey, String> lookupKeyMap = prepareLookupKeyMap();
2345 BuildingBlock buildingBlock = executeBB.getBuildingBlock();
2346 buildingBlock.setBpmnFlowName(AssignFlows.NETWORK_MACRO.toString())
2347 .setKey("ab153b6e-c364-44c0-bef6-1f2982117f04").setIsVirtualLink(false);
2349 doReturn(gBB).when(SPY_bbInputSetup).getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
2350 requestAction, lookupKeyMap.get(ResourceKey.SERVICE_INSTANCE_ID));
2351 doReturn(service).when(SPY_bbInputSetupUtils)
2352 .getCatalogServiceByModelUUID(gBB.getServiceInstance().getModelInfoServiceInstance().getModelUuid());
2354 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
2355 verify(SPY_bbInputSetup, times(1)).getGBBMacroNoUserParamsCreate(any(ExecuteBuildingBlock.class), any(),
2356 any(String.class), any(String.class), any(GeneralBuildingBlock.class), any(Service.class));
2359 @Test(expected = Exception.class)
2360 public void testgetGBBMacroException() throws Exception {
2361 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
2362 ExecuteBuildingBlock.class);
2363 RequestDetails requestDetails = mapper
2364 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
2365 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
2366 String resourceId = "123";
2367 String vnfType = "vnfType";
2368 String requestAction = "createInstance";
2370 BuildingBlock buildingBlock = executeBB.getBuildingBlock();
2371 buildingBlock.setBpmnFlowName("Network").setKey("ab153b6e-c364-44c0-bef6-1f2982117f04");
2373 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
2377 public void test_getGBBMacroForVnfTypeNull_populateL3Network_shouldBeCalled() throws Exception {
2379 String resourceId = "123";
2380 String vnfType = "null";
2381 String requestAction = "createInstance";
2382 Service service = Mockito.mock(Service.class);
2383 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
2384 GeneralBuildingBlock.class);
2385 Map<ResourceKey, String> lookupKeyMap = prepareLookupKeyMap();
2387 ConfigurationResourceKeys configResourceKeys = prepareConfigurationResourceKeys();
2388 RequestDetails requestDetails = mapper
2389 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
2390 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
2391 ExecuteBuildingBlock.class);
2392 executeBB.setConfigurationResourceKeys(configResourceKeys).setRequestDetails(requestDetails);
2393 BuildingBlock buildingBlock = executeBB.getBuildingBlock();
2394 buildingBlock.setBpmnFlowName(AssignFlows.NETWORK_MACRO.toString())
2395 .setKey("ab153b6e-c364-44c0-bef6-1f2982117f04");
2397 doReturn(gBB).when(SPY_bbInputSetup).getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
2398 requestAction, lookupKeyMap.get(ResourceKey.SERVICE_INSTANCE_ID));
2399 doReturn(service).when(SPY_bbInputSetupUtils)
2400 .getCatalogServiceByModelUUID(gBB.getServiceInstance().getModelInfoServiceInstance().getModelUuid());
2402 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
2404 verify(SPY_bbInputSetup, times(1)).populateL3Network(any(BBInputSetupParameter.class));
2408 public void testgetGBBMacroNoUserParamsDeactivateInstnace() throws Exception {
2409 String resourceId = "123";
2410 String vnfType = "vnfType";
2411 String requestAction = "deactivateInstance";
2412 Service service = Mockito.mock(Service.class);
2413 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
2414 GeneralBuildingBlock.class);
2415 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
2416 ExecuteBuildingBlock.class);
2417 RequestDetails requestDetails = mapper
2418 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
2419 requestDetails.getRequestParameters().setUserParams(null);
2420 org.onap.aai.domain.yang.GenericVnf aaiVnf = new org.onap.aai.domain.yang.GenericVnf();
2421 aaiVnf.setModelCustomizationId("modelCustId");
2422 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
2423 lookupKeyMap.put(ResourceKey.NETWORK_ID, "networkId");
2424 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "vnfId");
2425 lookupKeyMap.put(ResourceKey.VF_MODULE_ID, "vfModuleId");
2426 lookupKeyMap.put(ResourceKey.VOLUME_GROUP_ID, "volumeGroupId");
2427 lookupKeyMap.put(ResourceKey.SERVICE_INSTANCE_ID, "serviceInstanceId");
2428 BuildingBlock buildingBlock = executeBB.getBuildingBlock();
2429 buildingBlock.setBpmnFlowName("DeactivateServiceInstanceBB").setKey("3c40d244-808e-42ca-b09a-256d83d19d0a");
2431 doReturn(gBB).when(SPY_bbInputSetup).getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
2432 requestAction, lookupKeyMap.get(ResourceKey.SERVICE_INSTANCE_ID));
2433 doReturn(service).when(SPY_bbInputSetupUtils)
2434 .getCatalogServiceByModelUUID(gBB.getServiceInstance().getModelInfoServiceInstance().getModelUuid());
2436 GeneralBuildingBlock actual = SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap,
2437 requestAction, resourceId, vnfType);
2438 assertThat(actual, sameBeanAs(gBB));
2442 public void test_getGBBMacroNoUserParamsCreate_shouldBeCalled() throws Exception {
2444 String resourceId = "123";
2445 String vnfType = "vnfType";
2446 String requestAction = "createInstance";
2447 Service service = Mockito.mock(Service.class);
2448 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
2449 GeneralBuildingBlock.class);
2450 Map<ResourceKey, String> lookupKeyMap = prepareLookupKeyMap();
2451 List<NetworkResourceCustomization> networkCustList = new ArrayList<>();
2452 NetworkResourceCustomization networkCust = Mockito.mock(NetworkResourceCustomization.class);
2453 networkCustList.add(networkCust);
2455 ConfigurationResourceKeys configResourceKeys = prepareConfigurationResourceKeys();
2456 RequestDetails requestDetails = mapper
2457 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
2458 requestDetails.getRequestParameters().setUserParams(null);
2459 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
2460 ExecuteBuildingBlock.class);
2461 executeBB.setConfigurationResourceKeys(configResourceKeys).setRequestDetails(requestDetails);
2462 BuildingBlock buildingBlock = executeBB.getBuildingBlock();
2463 buildingBlock.setBpmnFlowName(AssignFlows.NETWORK_MACRO.toString())
2464 .setKey("ab153b6e-c364-44c0-bef6-1f2982117f04").setIsVirtualLink(false);
2466 doReturn(gBB).when(SPY_bbInputSetup).getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
2467 requestAction, lookupKeyMap.get(ResourceKey.SERVICE_INSTANCE_ID));
2468 doReturn(service).when(SPY_bbInputSetupUtils)
2469 .getCatalogServiceByModelUUID(gBB.getServiceInstance().getModelInfoServiceInstance().getModelUuid());
2470 doReturn(networkCustList).when(service).getNetworkCustomizations();
2471 doReturn("ab153b6e-c364-44c0-bef6-1f2982117f04").when(networkCust).getModelCustomizationUUID();
2472 doNothing().when(SPY_bbInputSetup).populateL3Network(any(BBInputSetupParameter.class));
2474 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
2476 verify(SPY_bbInputSetup, times(1)).getGBBMacroNoUserParamsCreate(executeBB, lookupKeyMap,
2477 executeBB.getBuildingBlock().getBpmnFlowName(), "ab153b6e-c364-44c0-bef6-1f2982117f04", gBB, service);
2481 public void test_getGBBMacroNoUserParamsCreate_shouldBeCalled_whenBBhasVirtualLink() throws Exception {
2483 String resourceId = "123";
2484 String vnfType = "vnfType";
2485 String requestAction = "createInstance";
2486 Service service = Mockito.mock(Service.class);
2487 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
2488 GeneralBuildingBlock.class);
2489 Map<ResourceKey, String> lookupKeyMap = prepareLookupKeyMap();
2490 List<NetworkResourceCustomization> networkCustList = new ArrayList<>();
2491 NetworkResourceCustomization networkCust = Mockito.mock(NetworkResourceCustomization.class);
2492 networkCustList.add(networkCust);
2493 CollectionNetworkResourceCustomization collectionNetworkResourceCust =
2494 Mockito.mock(CollectionNetworkResourceCustomization.class);
2495 org.onap.aai.domain.yang.GenericVnf aaiVnf = new org.onap.aai.domain.yang.GenericVnf();
2496 aaiVnf.setModelCustomizationId("modelCustId");
2497 ModelInfoNetwork modelInfoNetwork = Mockito.mock(ModelInfoNetwork.class);
2498 NetworkResourceCustomization networkResourceCustomization = Mockito.mock(NetworkResourceCustomization.class);
2500 ConfigurationResourceKeys configResourceKeys = prepareConfigurationResourceKeys();
2501 RequestDetails requestDetails = mapper
2502 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
2503 requestDetails.getRequestParameters().setUserParams(null);
2504 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
2505 ExecuteBuildingBlock.class);
2506 executeBB.setConfigurationResourceKeys(configResourceKeys).setRequestDetails(requestDetails);
2507 BuildingBlock buildingBlock = executeBB.getBuildingBlock();
2508 buildingBlock.setBpmnFlowName(AssignFlows.NETWORK_MACRO.toString())
2509 .setKey("ab153b6e-c364-44c0-bef6-1f2982117f04").setIsVirtualLink(true);
2511 doReturn(gBB).when(SPY_bbInputSetup).getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
2512 requestAction, lookupKeyMap.get(ResourceKey.SERVICE_INSTANCE_ID));
2513 doReturn(service).when(SPY_bbInputSetupUtils)
2514 .getCatalogServiceByModelUUID(gBB.getServiceInstance().getModelInfoServiceInstance().getModelUuid());
2515 doReturn(collectionNetworkResourceCust).when(SPY_bbInputSetupUtils)
2516 .getCatalogCollectionNetworkResourceCustByID(any(String.class));
2517 doReturn(networkResourceCustomization).when(bbInputSetupMapperLayer)
2518 .mapCollectionNetworkResourceCustToNetworkResourceCust(collectionNetworkResourceCust);
2519 doReturn(modelInfoNetwork).when(bbInputSetupMapperLayer)
2520 .mapCatalogNetworkToNetwork(networkResourceCustomization);
2522 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
2524 verify(SPY_bbInputSetup, times(1)).getGBBMacroNoUserParamsCreate(executeBB, lookupKeyMap,
2525 executeBB.getBuildingBlock().getBpmnFlowName(), "ab153b6e-c364-44c0-bef6-1f2982117f04", gBB, service);
2529 public void test_getGBBMacroNoUserParamsCreate_shouldBeCalled_whenBBhasVirtualLinkAndOtherFlowName()
2532 String otherFlowName = "CreateNetworkBB";
2533 String resourceId = "123";
2534 String vnfType = "vnfType";
2535 String requestAction = "createInstance";
2536 Service service = Mockito.mock(Service.class);
2537 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
2538 GeneralBuildingBlock.class);
2539 Map<ResourceKey, String> lookupKeyMap = prepareLookupKeyMap();
2540 List<NetworkResourceCustomization> networkCustList = new ArrayList<>();
2541 NetworkResourceCustomization networkCust = Mockito.mock(NetworkResourceCustomization.class);
2542 networkCustList.add(networkCust);
2543 CollectionNetworkResourceCustomization collectionNetworkResourceCust =
2544 Mockito.mock(CollectionNetworkResourceCustomization.class);
2546 ConfigurationResourceKeys configResourceKeys = prepareConfigurationResourceKeys();
2547 RequestDetails requestDetails = mapper
2548 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
2549 requestDetails.getRequestParameters().setUserParams(null);
2550 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
2551 ExecuteBuildingBlock.class);
2552 executeBB.setConfigurationResourceKeys(configResourceKeys).setRequestDetails(requestDetails);
2553 BuildingBlock buildingBlock = executeBB.getBuildingBlock();
2554 buildingBlock.setBpmnFlowName(otherFlowName).setKey("ab153b6e-c364-44c0-bef6-1f2982117f04")
2555 .setIsVirtualLink(true);
2557 doReturn(gBB).when(SPY_bbInputSetup).getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
2558 requestAction, lookupKeyMap.get(ResourceKey.SERVICE_INSTANCE_ID));
2559 doReturn(service).when(SPY_bbInputSetupUtils)
2560 .getCatalogServiceByModelUUID(gBB.getServiceInstance().getModelInfoServiceInstance().getModelUuid());
2561 doReturn(collectionNetworkResourceCust).when(SPY_bbInputSetupUtils)
2562 .getCatalogCollectionNetworkResourceCustByID(any(String.class));
2564 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
2566 verify(SPY_bbInputSetup, times(1)).getGBBMacroNoUserParamsCreate(executeBB, lookupKeyMap,
2567 executeBB.getBuildingBlock().getBpmnFlowName(), "ab153b6e-c364-44c0-bef6-1f2982117f04", gBB, service);
2570 @Test(expected = IllegalArgumentException.class)
2571 public void testgetGBBMacroNoUserParamsOtherException() throws Exception {
2572 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
2573 GeneralBuildingBlock.class);
2574 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
2575 ExecuteBuildingBlock.class);
2576 RequestDetails requestDetails = mapper
2577 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
2578 requestDetails.getRequestParameters().setUserParams(null);
2579 org.onap.aai.domain.yang.GenericVnf aaiVnf = new org.onap.aai.domain.yang.GenericVnf();
2580 aaiVnf.setModelCustomizationId("modelCustId");
2581 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
2582 lookupKeyMap.put(ResourceKey.NETWORK_ID, "networkId");
2583 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "vnfId");
2584 lookupKeyMap.put(ResourceKey.VF_MODULE_ID, "vfModuleId");
2585 lookupKeyMap.put(ResourceKey.VOLUME_GROUP_ID, "volumeGroupId");
2586 lookupKeyMap.put(ResourceKey.SERVICE_INSTANCE_ID, "serviceInstanceId");
2587 String resourceId = "123";
2588 String vnfType = "vnfType";
2589 Service service = Mockito.mock(Service.class);
2590 String requestAction = "assignInstance";
2591 doReturn(gBB).when(SPY_bbInputSetup).getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
2592 requestAction, lookupKeyMap.get(ResourceKey.SERVICE_INSTANCE_ID));
2593 doReturn(service).when(SPY_bbInputSetupUtils)
2594 .getCatalogServiceByModelUUID(gBB.getServiceInstance().getModelInfoServiceInstance().getModelUuid());
2595 String generatedId = "12131";
2597 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
2601 public void test_getGBBMacroNoUserParamsExistingService_forCatalogNetwork() throws Exception {
2603 String requestAction = "unassignInstance";
2604 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
2605 GeneralBuildingBlock.class);
2606 L3Network network = new L3Network();
2607 network.setNetworkId("networkId");
2608 gBB.getServiceInstance().getNetworks().add(network);
2609 ServiceInstance serviceInstance = gBB.getServiceInstance();
2610 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
2611 ExecuteBuildingBlock.class);
2612 RequestDetails requestDetails = mapper
2613 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
2614 requestDetails.getRequestParameters().setUserParams(null);
2615 Map<ResourceKey, String> lookupKeyMap = prepareLookupKeyMap();
2616 Service service = Mockito.mock(Service.class);
2617 CloudConfiguration cloudConfiguration = new CloudConfiguration();
2618 cloudConfiguration.setLcpCloudRegionId("cloudRegionId");
2619 org.onap.aai.domain.yang.ServiceInstance aaiServiceInstance = new org.onap.aai.domain.yang.ServiceInstance();
2620 org.onap.aai.domain.yang.L3Network aaiNetwork = new org.onap.aai.domain.yang.L3Network();
2621 aaiNetwork.setModelCustomizationId("modelCustId");
2623 ConfigurationResourceKeys configResourceKeys = prepareConfigurationResourceKeys();
2624 executeBB.setConfigurationResourceKeys(configResourceKeys).setRequestDetails(requestDetails);
2625 BuildingBlock buildingBlock = executeBB.getBuildingBlock();
2626 buildingBlock.setBpmnFlowName("DeleteNetworkBB").setKey("ab153b6e-c364-44c0-bef6-1f2982117f04");
2628 aaiServiceInstance.setModelVersionId("modelVersionId");
2629 doReturn(service).when(SPY_bbInputSetupUtils)
2630 .getCatalogServiceByModelUUID(aaiServiceInstance.getModelVersionId());
2631 doReturn(aaiServiceInstance).when(SPY_bbInputSetupUtils)
2632 .getAAIServiceInstanceById(lookupKeyMap.get(ResourceKey.SERVICE_INSTANCE_ID));
2633 doReturn(serviceInstance).when(SPY_bbInputSetup).getExistingServiceInstance(aaiServiceInstance);
2634 doReturn(gBB).when(SPY_bbInputSetup).populateGBBWithSIAndAdditionalInfo(any(BBInputSetupParameter.class));
2635 doReturn(aaiNetwork).when(SPY_bbInputSetupUtils).getAAIL3Network(network.getNetworkId());
2636 doNothing().when(SPY_bbInputSetup).mapCatalogNetwork(any(L3Network.class), any(ModelInfo.class),
2637 any(Service.class));
2639 SPY_bbInputSetup.getGBBMacroExistingService(executeBB, lookupKeyMap,
2640 executeBB.getBuildingBlock().getBpmnFlowName(), requestAction, null);
2642 verify(SPY_bbInputSetup, times(1)).mapCatalogNetwork(any(L3Network.class), any(ModelInfo.class),
2643 any(Service.class));
2647 public void test_getGBBMacroNoUserParamsExistingService_forControllerExecutionBB() throws Exception {
2649 String requestAction = "unassignInstance";
2650 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
2651 GeneralBuildingBlock.class);
2652 L3Network network = new L3Network();
2653 network.setNetworkId("networkId");
2654 gBB.getServiceInstance().getNetworks().add(network);
2655 ServiceInstance serviceInstance = gBB.getServiceInstance();
2656 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
2657 ExecuteBuildingBlock.class);
2658 RequestDetails requestDetails = mapper
2659 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
2660 requestDetails.getRequestParameters().setUserParams(null);
2661 Map<ResourceKey, String> lookupKeyMap = prepareLookupKeyMap();
2662 Service service = Mockito.mock(Service.class);
2663 CloudConfiguration cloudConfiguration = new CloudConfiguration();
2664 cloudConfiguration.setLcpCloudRegionId("cloudRegionId");
2665 org.onap.aai.domain.yang.ServiceInstance aaiServiceInstance = new org.onap.aai.domain.yang.ServiceInstance();
2666 org.onap.aai.domain.yang.L3Network aaiNetwork = new org.onap.aai.domain.yang.L3Network();
2667 aaiNetwork.setModelCustomizationId("modelCustId");
2668 GenericVnf vnf = new GenericVnf();
2669 vnf.setVnfId("vnfId");
2670 gBB.getServiceInstance().getVnfs().add(vnf);
2671 org.onap.aai.domain.yang.GenericVnf aaiVnf = new org.onap.aai.domain.yang.GenericVnf();
2672 aaiVnf.setModelCustomizationId("modelCustId");
2674 ConfigurationResourceKeys configResourceKeys = prepareConfigurationResourceKeys();
2675 executeBB.setConfigurationResourceKeys(configResourceKeys).setRequestDetails(requestDetails);
2676 BuildingBlock buildingBlock = executeBB.getBuildingBlock();
2677 buildingBlock.setBpmnFlowName("ControllerExecutionBB").setKey("ab153b6e-c364-44c0-bef6-1f2982117f04");
2678 buildingBlock.setBpmnScope("VNF");
2680 aaiServiceInstance.setModelVersionId("modelVersionId");
2681 doReturn(service).when(SPY_bbInputSetupUtils)
2682 .getCatalogServiceByModelUUID(aaiServiceInstance.getModelVersionId());
2683 doReturn(aaiServiceInstance).when(SPY_bbInputSetupUtils)
2684 .getAAIServiceInstanceById(lookupKeyMap.get(ResourceKey.SERVICE_INSTANCE_ID));
2685 doReturn(serviceInstance).when(SPY_bbInputSetup).getExistingServiceInstance(aaiServiceInstance);
2686 doReturn(gBB).when(SPY_bbInputSetup).populateGBBWithSIAndAdditionalInfo(any(BBInputSetupParameter.class));
2687 doReturn(aaiVnf).when(SPY_bbInputSetupUtils).getAAIGenericVnf(vnf.getVnfId());
2688 doNothing().when(SPY_bbInputSetup).mapCatalogVnf(any(GenericVnf.class), any(ModelInfo.class),
2689 any(Service.class));
2691 SPY_bbInputSetup.getGBBMacroExistingService(executeBB, lookupKeyMap,
2692 executeBB.getBuildingBlock().getBpmnFlowName(), requestAction, cloudConfiguration);
2694 verify(SPY_bbInputSetup, times(1)).mapCatalogVnf(any(GenericVnf.class), any(ModelInfo.class),
2695 any(Service.class));
2699 public void test_getGBBMacroNoUserParamsExistingService_forActivateVnfBB() throws Exception {
2701 String requestAction = "unassignInstance";
2702 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
2703 GeneralBuildingBlock.class);
2704 L3Network network = new L3Network();
2705 network.setNetworkId("networkId");
2706 gBB.getServiceInstance().getNetworks().add(network);
2707 ServiceInstance serviceInstance = gBB.getServiceInstance();
2708 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
2709 ExecuteBuildingBlock.class);
2710 RequestDetails requestDetails = mapper
2711 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
2712 requestDetails.getRequestParameters().setUserParams(null);
2713 Map<ResourceKey, String> lookupKeyMap = prepareLookupKeyMap();
2714 Service service = Mockito.mock(Service.class);
2715 CloudConfiguration cloudConfiguration = new CloudConfiguration();
2716 cloudConfiguration.setLcpCloudRegionId("cloudRegionId");
2717 org.onap.aai.domain.yang.ServiceInstance aaiServiceInstance = new org.onap.aai.domain.yang.ServiceInstance();
2718 org.onap.aai.domain.yang.L3Network aaiNetwork = new org.onap.aai.domain.yang.L3Network();
2719 aaiNetwork.setModelCustomizationId("modelCustId");
2720 GenericVnf vnf = new GenericVnf();
2721 vnf.setVnfId("vnfId");
2722 gBB.getServiceInstance().getVnfs().add(vnf);
2723 org.onap.aai.domain.yang.GenericVnf aaiVnf = new org.onap.aai.domain.yang.GenericVnf();
2724 aaiVnf.setModelCustomizationId("modelCustId");
2726 ConfigurationResourceKeys configResourceKeys = prepareConfigurationResourceKeys();
2727 executeBB.setConfigurationResourceKeys(configResourceKeys).setRequestDetails(requestDetails);
2728 BuildingBlock buildingBlock = executeBB.getBuildingBlock();
2729 buildingBlock.setBpmnFlowName("ActivateVnfBB").setKey("ab153b6e-c364-44c0-bef6-1f2982117f04");
2731 aaiServiceInstance.setModelVersionId("modelVersionId");
2732 doReturn(service).when(SPY_bbInputSetupUtils)
2733 .getCatalogServiceByModelUUID(aaiServiceInstance.getModelVersionId());
2734 doReturn(aaiServiceInstance).when(SPY_bbInputSetupUtils)
2735 .getAAIServiceInstanceById(lookupKeyMap.get(ResourceKey.SERVICE_INSTANCE_ID));
2736 doReturn(serviceInstance).when(SPY_bbInputSetup).getExistingServiceInstance(aaiServiceInstance);
2737 doReturn(gBB).when(SPY_bbInputSetup).populateGBBWithSIAndAdditionalInfo(any(BBInputSetupParameter.class));
2738 doReturn(aaiVnf).when(SPY_bbInputSetupUtils).getAAIGenericVnf(vnf.getVnfId());
2739 doNothing().when(SPY_bbInputSetup).mapCatalogVnf(any(GenericVnf.class), any(ModelInfo.class),
2740 any(Service.class));
2742 SPY_bbInputSetup.getGBBMacroExistingService(executeBB, lookupKeyMap,
2743 executeBB.getBuildingBlock().getBpmnFlowName(), requestAction, cloudConfiguration);
2745 verify(SPY_bbInputSetup, times(1)).mapCatalogVnf(any(GenericVnf.class), any(ModelInfo.class),
2746 any(Service.class));
2750 public void test_getGBBMacroNoUserParamsExistingService_forControllerExecutionBB_VFModule() throws Exception {
2752 String requestAction = "unassignInstance";
2753 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
2754 GeneralBuildingBlock.class);
2755 L3Network network = new L3Network();
2756 network.setNetworkId("networkId");
2757 gBB.getServiceInstance().getNetworks().add(network);
2758 ServiceInstance serviceInstance = gBB.getServiceInstance();
2759 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
2760 ExecuteBuildingBlock.class);
2761 RequestDetails requestDetails = mapper
2762 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
2763 requestDetails.getRequestParameters().setUserParams(null);
2764 Map<ResourceKey, String> lookupKeyMap = prepareLookupKeyMap();
2765 Service service = Mockito.mock(Service.class);
2766 CloudConfiguration cloudConfiguration = new CloudConfiguration();
2767 cloudConfiguration.setLcpCloudRegionId("cloudRegionId");
2768 org.onap.aai.domain.yang.ServiceInstance aaiServiceInstance = new org.onap.aai.domain.yang.ServiceInstance();
2769 org.onap.aai.domain.yang.L3Network aaiNetwork = new org.onap.aai.domain.yang.L3Network();
2770 aaiNetwork.setModelCustomizationId("modelCustId");
2771 GenericVnf vnf = new GenericVnf();
2772 vnf.setVnfId("vnfId");
2773 gBB.getServiceInstance().getVnfs().add(vnf);
2774 org.onap.aai.domain.yang.GenericVnf aaiVnf = new org.onap.aai.domain.yang.GenericVnf();
2775 aaiVnf.setModelCustomizationId("modelCustId");
2776 VfModule vfModule = new VfModule();
2777 vfModule.setVfModuleId("vfModuleId");
2778 gBB.getServiceInstance().getVnfs().get(0).getVfModules().add(vfModule);
2779 org.onap.aai.domain.yang.VfModule aaiVfModule = new org.onap.aai.domain.yang.VfModule();
2780 aaiVfModule.setModelCustomizationId("modelCustId");
2782 ConfigurationResourceKeys configResourceKeys = prepareConfigurationResourceKeys();
2783 executeBB.setConfigurationResourceKeys(configResourceKeys).setRequestDetails(requestDetails);
2784 BuildingBlock buildingBlock = executeBB.getBuildingBlock();
2785 buildingBlock.setBpmnFlowName("ControllerExecutionBB").setKey("a25e8e8c-58b8-4eec-810c-97dcc1f5cb7f");
2786 buildingBlock.setBpmnScope("VfModule");
2788 aaiServiceInstance.setModelVersionId("modelVersionId");
2789 doReturn(service).when(SPY_bbInputSetupUtils)
2790 .getCatalogServiceByModelUUID(aaiServiceInstance.getModelVersionId());
2791 doReturn(aaiServiceInstance).when(SPY_bbInputSetupUtils)
2792 .getAAIServiceInstanceById(lookupKeyMap.get(ResourceKey.SERVICE_INSTANCE_ID));
2793 doReturn(serviceInstance).when(SPY_bbInputSetup).getExistingServiceInstance(aaiServiceInstance);
2794 doReturn(gBB).when(SPY_bbInputSetup).populateGBBWithSIAndAdditionalInfo(any(BBInputSetupParameter.class));
2795 doReturn(aaiVnf).when(SPY_bbInputSetupUtils).getAAIGenericVnf(vnf.getVnfId());
2796 doNothing().when(SPY_bbInputSetup).mapCatalogVnf(any(GenericVnf.class), any(ModelInfo.class),
2797 any(Service.class));
2798 doReturn(aaiVfModule).when(SPY_bbInputSetupUtils).getAAIVfModule(vnf.getVnfId(), vfModule.getVfModuleId());
2800 SPY_bbInputSetup.getGBBMacroExistingService(executeBB, lookupKeyMap,
2801 executeBB.getBuildingBlock().getBpmnFlowName(), requestAction, cloudConfiguration);
2803 verify(SPY_bbInputSetup, times(1)).mapCatalogVnf(any(GenericVnf.class), any(ModelInfo.class),
2804 any(Service.class));
2805 verify(SPY_bbInputSetup, times(1)).mapCatalogVfModule(any(VfModule.class), any(ModelInfo.class),
2806 any(Service.class), any(String.class));
2810 public void test_getGBBMacroNoUserParamsExistingService_forUnassignVfModuleBB() throws Exception {
2812 String requestAction = "unassignInstance";
2813 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
2814 GeneralBuildingBlock.class);
2815 L3Network network = new L3Network();
2816 network.setNetworkId("networkId");
2817 gBB.getServiceInstance().getNetworks().add(network);
2818 ServiceInstance serviceInstance = gBB.getServiceInstance();
2819 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
2820 ExecuteBuildingBlock.class);
2821 RequestDetails requestDetails = mapper
2822 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
2823 requestDetails.getRequestParameters().setUserParams(null);
2824 Map<ResourceKey, String> lookupKeyMap = prepareLookupKeyMap();
2825 Service service = Mockito.mock(Service.class);
2826 CloudConfiguration cloudConfiguration = new CloudConfiguration();
2827 cloudConfiguration.setLcpCloudRegionId("cloudRegionId");
2828 org.onap.aai.domain.yang.ServiceInstance aaiServiceInstance = new org.onap.aai.domain.yang.ServiceInstance();
2829 org.onap.aai.domain.yang.L3Network aaiNetwork = new org.onap.aai.domain.yang.L3Network();
2830 aaiNetwork.setModelCustomizationId("modelCustId");
2831 GenericVnf vnf = new GenericVnf();
2832 vnf.setVnfId("vnfId");
2833 gBB.getServiceInstance().getVnfs().add(vnf);
2834 org.onap.aai.domain.yang.GenericVnf aaiVnf = new org.onap.aai.domain.yang.GenericVnf();
2835 aaiVnf.setModelCustomizationId("modelCustId");
2836 VfModule vfModule = new VfModule();
2837 vfModule.setVfModuleId("vfModuleId");
2838 gBB.getServiceInstance().getVnfs().get(0).getVfModules().add(vfModule);
2839 org.onap.aai.domain.yang.VfModule aaiVfModule = new org.onap.aai.domain.yang.VfModule();
2840 aaiVfModule.setModelCustomizationId("modelCustId");
2842 ConfigurationResourceKeys configResourceKeys = prepareConfigurationResourceKeys();
2843 executeBB.setConfigurationResourceKeys(configResourceKeys).setRequestDetails(requestDetails);
2844 BuildingBlock buildingBlock = executeBB.getBuildingBlock();
2845 buildingBlock.setBpmnFlowName("UnassignVfModuleBB").setKey("a25e8e8c-58b8-4eec-810c-97dcc1f5cb7f");
2847 aaiServiceInstance.setModelVersionId("modelVersionId");
2848 doReturn(service).when(SPY_bbInputSetupUtils)
2849 .getCatalogServiceByModelUUID(aaiServiceInstance.getModelVersionId());
2850 doReturn(aaiServiceInstance).when(SPY_bbInputSetupUtils)
2851 .getAAIServiceInstanceById(lookupKeyMap.get(ResourceKey.SERVICE_INSTANCE_ID));
2852 doReturn(serviceInstance).when(SPY_bbInputSetup).getExistingServiceInstance(aaiServiceInstance);
2853 doReturn(gBB).when(SPY_bbInputSetup).populateGBBWithSIAndAdditionalInfo(any(BBInputSetupParameter.class));
2854 doReturn(aaiVnf).when(SPY_bbInputSetupUtils).getAAIGenericVnf(vnf.getVnfId());
2855 doNothing().when(SPY_bbInputSetup).mapCatalogVnf(any(GenericVnf.class), any(ModelInfo.class),
2856 any(Service.class));
2857 doReturn(aaiVfModule).when(SPY_bbInputSetupUtils).getAAIVfModule(vnf.getVnfId(), vfModule.getVfModuleId());
2859 SPY_bbInputSetup.getGBBMacroExistingService(executeBB, lookupKeyMap,
2860 executeBB.getBuildingBlock().getBpmnFlowName(), requestAction, cloudConfiguration);
2862 verify(SPY_bbInputSetup, times(1)).mapCatalogVnf(any(GenericVnf.class), any(ModelInfo.class),
2863 any(Service.class));
2864 verify(SPY_bbInputSetup, times(1)).mapCatalogVfModule(any(VfModule.class), any(ModelInfo.class),
2865 any(Service.class), any(String.class));
2869 public void test_getGBBMacroNoUserParamsExistingService_forUnassignVolumeGroupBB() throws Exception {
2871 String requestAction = "unassignInstance";
2872 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
2873 GeneralBuildingBlock.class);
2874 L3Network network = new L3Network();
2875 network.setNetworkId("networkId");
2876 gBB.getServiceInstance().getNetworks().add(network);
2877 ServiceInstance serviceInstance = gBB.getServiceInstance();
2878 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
2879 ExecuteBuildingBlock.class);
2880 RequestDetails requestDetails = mapper
2881 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
2882 requestDetails.getRequestParameters().setUserParams(null);
2883 Map<ResourceKey, String> lookupKeyMap = prepareLookupKeyMap();
2884 Service service = Mockito.mock(Service.class);
2885 org.onap.aai.domain.yang.ServiceInstance aaiServiceInstance = new org.onap.aai.domain.yang.ServiceInstance();
2886 GenericVnf vnf = new GenericVnf();
2887 vnf.setVnfId("vnfId");
2888 gBB.getServiceInstance().getVnfs().add(vnf);
2889 org.onap.aai.domain.yang.GenericVnf aaiVnf = new org.onap.aai.domain.yang.GenericVnf();
2890 aaiVnf.setModelCustomizationId("modelCustId");
2891 VfModule vfModule = new VfModule();
2892 vfModule.setVfModuleId("vfModuleId");
2893 gBB.getServiceInstance().getVnfs().get(0).getVfModules().add(vfModule);
2894 CloudRegion cloudRegion = new CloudRegion();
2895 cloudRegion.setLcpCloudRegionId("cloudRegionId");
2896 cloudRegion.setCloudOwner("CloudOwner");
2897 VolumeGroup volumeGroup = new VolumeGroup();
2898 volumeGroup.setVolumeGroupId("volumeGroupId");
2899 gBB.getServiceInstance().getVnfs().get(0).getVolumeGroups().add(volumeGroup);
2900 org.onap.aai.domain.yang.VolumeGroup aaiVolumeGroup = new org.onap.aai.domain.yang.VolumeGroup();
2901 aaiVolumeGroup.setModelCustomizationId("modelCustId");
2903 ConfigurationResourceKeys configResourceKeys = prepareConfigurationResourceKeys();
2904 executeBB.setConfigurationResourceKeys(configResourceKeys).setRequestDetails(requestDetails);
2905 BuildingBlock buildingBlock = executeBB.getBuildingBlock();
2906 buildingBlock.setBpmnFlowName("UnassignVolumeGroupBB").setKey("72d9d1cd-f46d-447a-abdb-451d6fb05fa8");
2908 aaiServiceInstance.setModelVersionId("modelVersionId");
2909 doReturn(service).when(SPY_bbInputSetupUtils)
2910 .getCatalogServiceByModelUUID(aaiServiceInstance.getModelVersionId());
2911 doReturn(aaiServiceInstance).when(SPY_bbInputSetupUtils)
2912 .getAAIServiceInstanceById(lookupKeyMap.get(ResourceKey.SERVICE_INSTANCE_ID));
2913 doReturn(serviceInstance).when(SPY_bbInputSetup).getExistingServiceInstance(aaiServiceInstance);
2914 doReturn(gBB).when(SPY_bbInputSetup).populateGBBWithSIAndAdditionalInfo(any(BBInputSetupParameter.class));
2915 doReturn(aaiVnf).when(SPY_bbInputSetupUtils).getAAIGenericVnf(vnf.getVnfId());
2916 doNothing().when(SPY_bbInputSetup).mapCatalogVnf(any(GenericVnf.class), any(ModelInfo.class),
2917 any(Service.class));
2918 doReturn(aaiVolumeGroup).when(SPY_bbInputSetupUtils).getAAIVolumeGroup(cloudRegion.getCloudOwner(),
2919 cloudRegion.getLcpCloudRegionId(), volumeGroup.getVolumeGroupId());
2920 doReturn(Optional.of(cloudRegion)).when(SPY_cloudInfoFromAAI).getCloudInfoFromAAI(gBB.getServiceInstance());
2923 SPY_bbInputSetup.getGBBMacroExistingService(executeBB, lookupKeyMap,
2924 executeBB.getBuildingBlock().getBpmnFlowName(), requestAction, null);
2926 verify(SPY_bbInputSetup, times(1)).mapCatalogVnf(any(GenericVnf.class), any(ModelInfo.class),
2927 any(Service.class));
2928 verify(SPY_bbInputSetup, times(1)).mapCatalogVolumeGroup(isA(VolumeGroup.class), isA(ModelInfo.class),
2929 isA(Service.class), isA(String.class));
2933 public void test_getGBBMacroNoUserParamsExistingService_forActivateFabricConfigurationBB() throws Exception {
2935 String requestAction = "unassignInstance";
2936 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
2937 GeneralBuildingBlock.class);
2938 L3Network network = new L3Network();
2939 network.setNetworkId("networkId");
2940 gBB.getServiceInstance().getNetworks().add(network);
2941 ServiceInstance serviceInstance = gBB.getServiceInstance();
2942 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
2943 ExecuteBuildingBlock.class);
2944 RequestDetails requestDetails = mapper
2945 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
2946 requestDetails.getRequestParameters().setUserParams(null);
2947 Map<ResourceKey, String> lookupKeyMap = prepareLookupKeyMap();
2948 Service service = Mockito.mock(Service.class);
2949 org.onap.aai.domain.yang.ServiceInstance aaiServiceInstance = new org.onap.aai.domain.yang.ServiceInstance();
2950 GenericVnf vnf = new GenericVnf();
2951 vnf.setVnfId("vnfId");
2952 gBB.getServiceInstance().getVnfs().add(vnf);
2953 org.onap.aai.domain.yang.GenericVnf aaiVnf = new org.onap.aai.domain.yang.GenericVnf();
2954 aaiVnf.setModelCustomizationId("modelCustId");
2955 VfModule vfModule = new VfModule();
2956 vfModule.setVfModuleId("vfModuleId");
2957 gBB.getServiceInstance().getVnfs().get(0).getVfModules().add(vfModule);
2958 VolumeGroup volumeGroup = new VolumeGroup();
2959 volumeGroup.setVolumeGroupId("volumeGroupId");
2960 gBB.getServiceInstance().getVnfs().get(0).getVolumeGroups().add(volumeGroup);
2961 CloudConfiguration cloudConfiguration = new CloudConfiguration();
2962 cloudConfiguration.setLcpCloudRegionId("cloudRegionId");
2963 Configuration configuration = new Configuration();
2964 configuration.setConfigurationId("configurationId");
2965 gBB.getServiceInstance().getConfigurations().add(configuration);
2966 org.onap.aai.domain.yang.Configuration aaiConfiguration = new org.onap.aai.domain.yang.Configuration();
2967 aaiConfiguration.setModelCustomizationId("modelCustId");
2969 ConfigurationResourceKeys configResourceKeys = prepareConfigurationResourceKeys();
2970 executeBB.setConfigurationResourceKeys(configResourceKeys).setRequestDetails(requestDetails);
2971 BuildingBlock buildingBlock = executeBB.getBuildingBlock();
2972 buildingBlock.setBpmnFlowName("ActivateFabricConfigurationBB").setKey("72d9d1cd-f46d-447a-abdb-451d6fb05fa9");
2974 aaiServiceInstance.setModelVersionId("modelVersionId");
2975 doReturn(service).when(SPY_bbInputSetupUtils)
2976 .getCatalogServiceByModelUUID(aaiServiceInstance.getModelVersionId());
2977 doReturn(aaiServiceInstance).when(SPY_bbInputSetupUtils)
2978 .getAAIServiceInstanceById(lookupKeyMap.get(ResourceKey.SERVICE_INSTANCE_ID));
2979 doReturn(serviceInstance).when(SPY_bbInputSetup).getExistingServiceInstance(aaiServiceInstance);
2980 doReturn(gBB).when(SPY_bbInputSetup).populateGBBWithSIAndAdditionalInfo(any(BBInputSetupParameter.class));
2981 doReturn(aaiConfiguration).when(SPY_bbInputSetupUtils).getAAIConfiguration(configuration.getConfigurationId());
2982 doNothing().when(SPY_bbInputSetup).mapCatalogConfiguration(isA(Configuration.class), isA(ModelInfo.class),
2983 isA(Service.class), isA(ConfigurationResourceKeys.class));
2986 SPY_bbInputSetup.getGBBMacroExistingService(executeBB, lookupKeyMap,
2987 executeBB.getBuildingBlock().getBpmnFlowName(), requestAction, cloudConfiguration);
2989 verify(SPY_bbInputSetup, times(1)).mapCatalogConfiguration(any(Configuration.class), any(ModelInfo.class),
2990 any(Service.class), isA(ConfigurationResourceKeys.class));
2994 public void testGetGBBMacroExistingServiceUpgrade() throws Exception {
2995 String requestAction = "upgradeInstance";
2996 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
2997 GeneralBuildingBlock.class);
2998 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
2999 ExecuteBuildingBlock.class);
3000 RequestDetails requestDetails = mapper
3001 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceUpgrade.json"), RequestDetails.class);
3002 Map<ResourceKey, String> lookupKeyMap = prepareLookupKeyMap();
3003 executeBB.setRequestDetails(requestDetails);
3005 doReturn(new Service()).when(SPY_bbInputSetupUtils)
3006 .getCatalogServiceByModelUUID(requestDetails.getModelInfo().getModelVersionId());
3007 doReturn(new org.onap.aai.domain.yang.ServiceInstance()).when(SPY_bbInputSetupUtils)
3008 .getAAIServiceInstanceById(lookupKeyMap.get(ResourceKey.SERVICE_INSTANCE_ID));
3009 doReturn(gBB).when(SPY_bbInputSetup).populateGBBWithSIAndAdditionalInfo(any(BBInputSetupParameter.class));
3011 SPY_bbInputSetup.getGBBMacroExistingService(executeBB, lookupKeyMap,
3012 executeBB.getBuildingBlock().getBpmnFlowName(), requestAction, null);
3014 verify(SPY_bbInputSetupUtils, times(1))
3015 .getCatalogServiceByModelUUID(requestDetails.getModelInfo().getModelVersionId());
3019 public void testGetGBBMacroExistingServiceServiceinstancenotFoundInAai() throws Exception {
3020 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
3021 ExecuteBuildingBlock.class);
3022 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
3023 lookupKeyMap.put(ResourceKey.SERVICE_INSTANCE_ID, "si123");
3025 CloudConfiguration cloudConfiguration = new CloudConfiguration();
3026 cloudConfiguration.setLcpCloudRegionId("cloudRegionId");
3028 doReturn(null).when(SPY_bbInputSetupUtils).getAAIServiceInstanceById("si123");
3030 expectedException.expect(NoServiceInstanceFoundException.class);
3031 expectedException.expectMessage("Related service instance from AAI not found: service-instance-id=si123");
3033 SPY_bbInputSetup.getGBBMacroExistingService(executeBB, lookupKeyMap, "AssignVnfBB", "assign",
3034 cloudConfiguration);
3038 public void testGetGBBMacroExistingServiceServiceModelNotFound() throws Exception {
3039 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
3040 ExecuteBuildingBlock.class);
3041 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
3042 lookupKeyMap.put(ResourceKey.SERVICE_INSTANCE_ID, "si123");
3043 org.onap.aai.domain.yang.ServiceInstance aaiServiceInstance = new org.onap.aai.domain.yang.ServiceInstance();
3044 aaiServiceInstance.setModelVersionId("modelVersionId");
3046 CloudConfiguration cloudConfiguration = new CloudConfiguration();
3047 cloudConfiguration.setLcpCloudRegionId("cloudRegionId");
3049 doReturn(aaiServiceInstance).when(SPY_bbInputSetupUtils).getAAIServiceInstanceById("si123");
3050 doReturn(null).when(SPY_bbInputSetupUtils).getCatalogServiceByModelUUID(aaiServiceInstance.getModelVersionId());
3052 expectedException.expect(ServiceModelNotFoundException.class);
3053 expectedException.expectMessage(
3054 "Related service instance model not found in MSO CatalogDB: model-version-id=modelVersionId");
3056 SPY_bbInputSetup.getGBBMacroExistingService(executeBB, lookupKeyMap, "AssignVnfBB", "assign",
3057 cloudConfiguration);
3061 public void testGetVnfId() {
3062 String expected = "vnfId";
3063 ExecuteBuildingBlock executeBB = new ExecuteBuildingBlock().setRequestId("requestId");
3064 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
3065 InfraActiveRequests request = new InfraActiveRequests();
3066 request.setVnfId(expected);
3067 doReturn(request).when(SPY_bbInputSetupUtils).getInfraActiveRequest(executeBB.getRequestId());
3069 String actual = SPY_bbInputSetup.getVnfId(executeBB, lookupKeyMap);
3071 assertEquals("VnfId is set correctly", expected, actual);
3075 public void testCreateVfModule() {
3076 String vfModuleId = "vfModuleId";
3077 String instanceName = "vfModuleName";
3078 Map<String, String> cloudParams = new HashMap<>();
3079 cloudParams.put("param1", "param1Value");
3080 VfModule expected = new VfModule();
3081 expected.setVfModuleId(vfModuleId);
3082 expected.setVfModuleName(instanceName);
3083 expected.setCloudParams(cloudParams);
3084 expected.setOrchestrationStatus(OrchestrationStatus.PRECREATED);
3085 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
3086 List<Map<String, String>> instanceParams = new ArrayList<>();
3087 instanceParams.add(cloudParams);
3089 VfModule actual = SPY_bbInputSetup.createVfModule(lookupKeyMap, vfModuleId, instanceName, instanceParams);
3091 assertThat(actual, sameBeanAs(expected));
3092 assertEquals("LookupKeyMap is populated", vfModuleId, lookupKeyMap.get(ResourceKey.VF_MODULE_ID));
3094 expected.getCloudParams().clear();
3095 actual = SPY_bbInputSetup.createVfModule(lookupKeyMap, vfModuleId, instanceName, null);
3096 assertThat(actual, sameBeanAs(expected));
3100 public void testCreateVolumeGroup() {
3101 String volumeGroupId = "volumeGroupId";
3102 String instanceName = "vfModuleName";
3103 String vnfType = "vnfType";
3104 Map<String, String> cloudParams = new HashMap<>();
3105 cloudParams.put("param1", "param1Value");
3106 VolumeGroup expected = new VolumeGroup();
3107 expected.setVolumeGroupId(volumeGroupId);
3108 expected.setVolumeGroupName(instanceName);
3109 expected.setCloudParams(cloudParams);
3110 expected.setVnfType(vnfType);
3111 expected.setOrchestrationStatus(OrchestrationStatus.PRECREATED);
3112 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
3113 List<Map<String, String>> instanceParams = new ArrayList<>();
3114 instanceParams.add(cloudParams);
3116 VolumeGroup actual =
3117 SPY_bbInputSetup.createVolumeGroup(lookupKeyMap, volumeGroupId, instanceName, vnfType, instanceParams);
3119 assertThat(actual, sameBeanAs(expected));
3120 assertEquals("LookupKeyMap is populated", volumeGroupId, lookupKeyMap.get(ResourceKey.VOLUME_GROUP_ID));
3122 expected.getCloudParams().clear();
3123 actual = SPY_bbInputSetup.createVolumeGroup(lookupKeyMap, volumeGroupId, instanceName, vnfType, null);
3124 assertThat(actual, sameBeanAs(expected));
3128 public void testCreateNetwork() {
3129 String networkId = "networkId";
3130 String instanceName = "networkName";
3131 Map<String, String> cloudParams = new HashMap<>();
3132 cloudParams.put("param1", "param1Value");
3133 L3Network expected = new L3Network();
3134 expected.setNetworkId(networkId);
3135 expected.setNetworkName(instanceName);
3136 expected.setCloudParams(cloudParams);
3137 Platform platform = new Platform();
3138 platform.setPlatformName("platformName");
3139 expected.setPlatform(platform);
3140 LineOfBusiness lineOfBusiness = new LineOfBusiness();
3141 lineOfBusiness.setLineOfBusinessName("lineOfBusiness");
3142 expected.setLineOfBusiness(lineOfBusiness);
3143 expected.setOrchestrationStatus(OrchestrationStatus.PRECREATED);
3144 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
3145 List<Map<String, String>> instanceParams = new ArrayList<>();
3146 instanceParams.add(cloudParams);
3147 org.onap.so.serviceinstancebeans.Platform platformRequest = new org.onap.so.serviceinstancebeans.Platform();
3148 org.onap.so.serviceinstancebeans.LineOfBusiness lineOfBusinessRequest =
3149 new org.onap.so.serviceinstancebeans.LineOfBusiness();
3150 lineOfBusinessRequest.setLineOfBusinessName("lineOfBusiness");
3151 platformRequest.setPlatformName("platformName");
3152 BBInputSetupParameter parameter = new BBInputSetupParameter.Builder().setRequestId(REQUEST_ID)
3153 .setPlatform(platformRequest).setLineOfBusiness(lineOfBusinessRequest).build();
3155 SPY_bbInputSetup.createNetwork(lookupKeyMap, instanceName, networkId, instanceParams, parameter);
3157 assertThat(actual, sameBeanAs(expected));
3158 assertEquals("LookupKeyMap is populated", networkId, lookupKeyMap.get(ResourceKey.NETWORK_ID));
3160 expected.getCloudParams().clear();
3162 actual = SPY_bbInputSetup.createNetwork(lookupKeyMap, instanceName, networkId, null, parameter);
3163 assertThat(actual, sameBeanAs(expected));
3167 public void testCreateGenericVnf() {
3168 String vnfId = "vnfId";
3169 String instanceName = "vnfName";
3170 String vnfType = "vnfType";
3171 String platformName = "platformName";
3172 String lineOfBusinessName = "lineOfBusinessName";
3173 String productFamilyId = "productFamilyId";
3174 String applicationId = "applicationId";
3175 Platform platform = new Platform();
3176 platform.setPlatformName(platformName);
3177 LineOfBusiness lineOfBusiness = new LineOfBusiness();
3178 lineOfBusiness.setLineOfBusinessName(lineOfBusinessName);
3179 Map<String, String> cloudParams = new HashMap<>();
3180 cloudParams.put("param1", "param1Value");
3181 GenericVnf expected = new GenericVnf();
3182 expected.setVnfId(vnfId);
3183 expected.setVnfName(instanceName);
3184 expected.setVnfType(vnfType);
3185 expected.setCloudParams(cloudParams);
3186 expected.setOrchestrationStatus(OrchestrationStatus.PRECREATED);
3187 expected.setPlatform(platform);
3188 expected.setLineOfBusiness(lineOfBusiness);
3189 expected.setProvStatus("PREPROV");
3190 expected.setServiceId(productFamilyId);
3191 expected.setApplicationId(applicationId);
3192 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
3193 List<Map<String, String>> instanceParams = new ArrayList<>();
3194 instanceParams.add(cloudParams);
3195 org.onap.so.serviceinstancebeans.Platform requestPlatform = new org.onap.so.serviceinstancebeans.Platform();
3196 platform.setPlatformName(platformName);
3197 org.onap.so.serviceinstancebeans.LineOfBusiness requestLineOfBusiness =
3198 new org.onap.so.serviceinstancebeans.LineOfBusiness();
3199 lineOfBusiness.setLineOfBusinessName(lineOfBusinessName);
3201 doReturn(platform).when(bbInputSetupMapperLayer).mapRequestPlatform(requestPlatform);
3202 doReturn(lineOfBusiness).when(bbInputSetupMapperLayer).mapRequestLineOfBusiness(requestLineOfBusiness);
3204 GenericVnf actual = SPY_bbInputSetup.createGenericVnf(lookupKeyMap, instanceName, requestPlatform,
3205 requestLineOfBusiness, vnfId, vnfType, instanceParams, productFamilyId, applicationId);
3207 assertThat(actual, sameBeanAs(expected));
3208 assertEquals("LookupKeyMap is populated", vnfId, lookupKeyMap.get(ResourceKey.GENERIC_VNF_ID));
3210 expected.getCloudParams().clear();
3211 actual = SPY_bbInputSetup.createGenericVnf(lookupKeyMap, instanceName, requestPlatform, requestLineOfBusiness,
3212 vnfId, vnfType, null, productFamilyId, applicationId);
3213 assertThat(actual, sameBeanAs(expected));
3217 public void testMapCatalogVfModule() {
3218 String vnfModelCustomizationUUID = "vnfResourceCustUUID";
3219 String vfModuleCustomizationUUID = "vfModelCustomizationUUID";
3220 VfModule vfModule = new VfModule();
3221 ModelInfo modelInfo = new ModelInfo();
3222 modelInfo.setModelCustomizationUuid(vfModuleCustomizationUUID);
3223 Service service = new Service();
3224 VnfResourceCustomization vnfResourceCust = new VnfResourceCustomization();
3225 vnfResourceCust.setModelCustomizationUUID(vnfModelCustomizationUUID);
3226 VfModuleCustomization vfModuleCust = new VfModuleCustomization();
3227 vfModuleCust.setModelCustomizationUUID(vfModuleCustomizationUUID);
3228 vnfResourceCust.getVfModuleCustomizations().add(vfModuleCust);
3229 service.getVnfCustomizations().add(vnfResourceCust);
3230 ModelInfoVfModule modelInfoVfModule = new ModelInfoVfModule();
3232 doReturn(modelInfoVfModule).when(bbInputSetupMapperLayer).mapCatalogVfModuleToVfModule(vfModuleCust);
3234 SPY_bbInputSetup.mapCatalogVfModule(vfModule, modelInfo, service, vnfModelCustomizationUUID);
3236 assertThat(vfModule.getModelInfoVfModule(), sameBeanAs(modelInfoVfModule));
3238 modelInfo.setModelCustomizationUuid(null);
3239 modelInfo.setModelCustomizationId(vfModuleCustomizationUUID);
3241 SPY_bbInputSetup.mapCatalogVfModule(vfModule, modelInfo, service, vnfModelCustomizationUUID);
3243 assertThat(vfModule.getModelInfoVfModule(), sameBeanAs(modelInfoVfModule));
3247 public void testMapCatalogVfModuleIfNoVfUnderVnf() {
3248 String vnfModelCustomizationUUID = "vnfResourceCustUUID";
3249 String vfModuleCustomizationUUID = "vfModelCustomizationUUID";
3250 VfModule vfModule = new VfModule();
3251 ModelInfo modelInfo = new ModelInfo();
3252 modelInfo.setModelCustomizationUuid(vfModuleCustomizationUUID);
3253 Service service = new Service();
3254 VnfResourceCustomization vnfResourceCust = new VnfResourceCustomization();
3255 vnfResourceCust.setModelCustomizationUUID(vnfModelCustomizationUUID);
3256 VfModuleCustomization vfModuleCust = new VfModuleCustomization();
3257 vfModuleCust.setModelCustomizationUUID(vfModuleCustomizationUUID);
3258 ModelInfoVfModule modelInfoVfModule = new ModelInfoVfModule();
3259 doReturn(vfModuleCust).when(SPY_bbInputSetupUtils)
3260 .getVfModuleCustomizationByModelCuztomizationUUID(vfModuleCustomizationUUID);
3261 doReturn(modelInfoVfModule).when(bbInputSetupMapperLayer).mapCatalogVfModuleToVfModule(vfModuleCust);
3263 SPY_bbInputSetup.mapCatalogVfModule(vfModule, modelInfo, service, vnfModelCustomizationUUID);
3265 assertThat(vfModule.getModelInfoVfModule(), sameBeanAs(modelInfoVfModule));
3267 verify(SPY_bbInputSetupUtils, times(1))
3268 .getVfModuleCustomizationByModelCuztomizationUUID(modelInfo.getModelCustomizationId());
3272 public void testPopulateVfModule() throws Exception {
3273 String vnfId = "vnfId";
3274 String vfModuleId = "vfModuleId";
3275 String volumeGroupId = "volumeGroupId";
3276 String vfModuleCustomizationId = "vfModuleCustomizationId";
3277 ModelInfo modelInfo = new ModelInfo();
3278 modelInfo.setModelCustomizationId(vfModuleCustomizationId);
3279 Service service = new Service();
3280 ServiceModel serviceModel = new ServiceModel();
3281 serviceModel.setCurrentService(service);
3282 String bbName = AssignFlows.VF_MODULE.toString();
3283 ServiceInstance serviceInstance = new ServiceInstance();
3284 GenericVnf vnf = new GenericVnf();
3285 vnf.setVnfId(vnfId);
3286 VolumeGroup volumeGroup = new VolumeGroup();
3287 volumeGroup.setVolumeGroupId(volumeGroupId);
3288 vnf.getVolumeGroups().add(volumeGroup);
3289 serviceInstance.getVnfs().add(vnf);
3290 VfModule vfModule1 = new VfModule();
3291 vfModule1.setVfModuleId("vfModuleId1");
3292 VfModule vfModule2 = new VfModule();
3293 vfModule2.setVfModuleId("vfModuleId2");
3294 vnf.getVfModules().add(vfModule1);
3295 vnf.getVfModules().add(vfModule2);
3296 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
3297 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, vnfId);
3298 String resourceId = vfModuleId;
3299 RelatedInstanceList[] relatedInstanceList = null;
3300 String instanceName = "vfModuleName";
3301 List<Map<String, String>> instanceParams = null;
3302 CloudConfiguration cloudConfiguration = new CloudConfiguration();
3304 org.onap.aai.domain.yang.GenericVnf vnfAAI = new org.onap.aai.domain.yang.GenericVnf();
3305 vnfAAI.setModelCustomizationId("vnfModelCustId");
3306 org.onap.aai.domain.yang.VolumeGroup volumeGroupAAI = new org.onap.aai.domain.yang.VolumeGroup();
3307 volumeGroupAAI.setModelCustomizationId(vfModuleCustomizationId);
3308 org.onap.aai.domain.yang.VfModule vfModuleAAI = new org.onap.aai.domain.yang.VfModule();
3309 vfModuleAAI.setModelCustomizationId(vfModuleCustomizationId);
3311 doReturn(vnfAAI).when(SPY_bbInputSetupUtils).getAAIGenericVnf(vnf.getVnfId());
3312 doReturn(volumeGroupAAI).when(SPY_bbInputSetupUtils).getAAIVolumeGroup(CLOUD_OWNER,
3313 cloudConfiguration.getLcpCloudRegionId(), volumeGroup.getVolumeGroupId());
3314 doReturn(vfModuleAAI).when(SPY_bbInputSetupUtils).getAAIVfModule(isA(String.class), isA(String.class));
3315 doNothing().when(SPY_bbInputSetup).mapCatalogVnf(isA(GenericVnf.class), isA(ModelInfo.class),
3316 isA(Service.class));
3317 doNothing().when(SPY_bbInputSetup).mapCatalogVfModule(isA(VfModule.class), isA(ModelInfo.class),
3318 isA(Service.class), isA(String.class));
3320 SPY_bbInputSetup.populateVfModule(new BBInputSetupParameter.Builder().setRequestId(REQUEST_ID)
3321 .setModelInfo(modelInfo).setService(service).setBbName(bbName).setServiceInstance(serviceInstance)
3322 .setLookupKeyMap(lookupKeyMap).setResourceId(resourceId).setRelatedInstanceList(relatedInstanceList)
3323 .setInstanceName(instanceName).setInstanceParams(instanceParams)
3324 .setCloudConfiguration(cloudConfiguration).setServiceModel(serviceModel).build());
3326 verify(SPY_bbInputSetup, times(3)).mapCatalogVfModule(isA(VfModule.class), isA(ModelInfo.class),
3327 isA(Service.class), isA(String.class));
3328 assertEquals("Lookup Key Map populated with VfModule Id", vfModuleId,
3329 lookupKeyMap.get(ResourceKey.VF_MODULE_ID));
3330 assertEquals("Lookup Key Map populated with VolumeGroup Id", volumeGroupId,
3331 lookupKeyMap.get(ResourceKey.VOLUME_GROUP_ID));
3335 public void testPopulateVfModuleIsReplaceCorrectPopulationOfVfs() throws Exception {
3336 String vnfId = "vnfId";
3337 String vfModuleId = "vfModuleId";
3338 String volumeGroupId = "volumeGroupId";
3339 String vfModuleCustomizationId = "vfModuleCustomizationId";
3340 ModelInfo modelInfo = new ModelInfo();
3341 modelInfo.setModelCustomizationId(vfModuleCustomizationId);
3342 Service currentService = new Service();
3343 currentService.setModelUUID("currentUUID");
3344 Service newService = new Service();
3345 newService.setModelUUID("newUUID");
3346 ServiceModel serviceModel = new ServiceModel();
3347 serviceModel.setCurrentService(currentService);
3348 serviceModel.setNewService(newService);
3349 String bbName = "ActivateVfModuleBB";
3350 ServiceInstance serviceInstance = new ServiceInstance();
3351 GenericVnf vnf = new GenericVnf();
3352 vnf.setVnfId(vnfId);
3353 VolumeGroup volumeGroup = new VolumeGroup();
3354 volumeGroup.setVolumeGroupId(volumeGroupId);
3355 vnf.getVolumeGroups().add(volumeGroup);
3356 serviceInstance.getVnfs().add(vnf);
3357 VfModule vfModule1 = new VfModule();
3358 vfModule1.setVfModuleId("vfModuleId1");
3359 VfModule vfModule2 = new VfModule();
3360 vfModule2.setVfModuleId("vfModuleId2");
3361 vnf.getVfModules().add(vfModule1);
3362 vnf.getVfModules().add(vfModule2);
3363 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
3364 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, vnfId);
3365 lookupKeyMap.put(ResourceKey.VF_MODULE_ID, "vfModuleId1");
3366 String resourceId = vfModuleId;
3367 RelatedInstanceList[] relatedInstanceList = new RelatedInstanceList[1];
3368 RelatedInstanceList relatedInstanceListObj = new RelatedInstanceList();
3369 RelatedInstance relatedInstance = new RelatedInstance();
3370 relatedInstance.setInstanceId(vnfId);
3372 ModelInfo vnfModelInfo = new ModelInfo();
3373 vnfModelInfo.setModelCustomizationId("vnfCustomizationId");
3374 vnfModelInfo.setModelType(ModelType.vnf);
3375 relatedInstance.setModelInfo(vnfModelInfo);
3376 relatedInstanceListObj.setRelatedInstance(relatedInstance);
3377 relatedInstanceList[0] = relatedInstanceListObj;
3379 String instanceName = "vfModuleName";
3380 List<Map<String, String>> instanceParams = null;
3381 CloudConfiguration cloudConfiguration = new CloudConfiguration();
3383 org.onap.aai.domain.yang.GenericVnf vnfAAI = new org.onap.aai.domain.yang.GenericVnf();
3384 vnfAAI.setModelCustomizationId("vnfModelCustId");
3385 org.onap.aai.domain.yang.VolumeGroup volumeGroupAAI = new org.onap.aai.domain.yang.VolumeGroup();
3386 volumeGroupAAI.setModelCustomizationId(vfModuleCustomizationId);
3387 org.onap.aai.domain.yang.VfModule vfModuleAAI = new org.onap.aai.domain.yang.VfModule();
3388 vfModuleAAI.setModelCustomizationId(vfModuleCustomizationId);
3390 doReturn(vnfAAI).when(SPY_bbInputSetupUtils).getAAIGenericVnf(vnf.getVnfId());
3391 doReturn(volumeGroupAAI).when(SPY_bbInputSetupUtils).getAAIVolumeGroup(CLOUD_OWNER,
3392 cloudConfiguration.getLcpCloudRegionId(), volumeGroup.getVolumeGroupId());
3393 doReturn(vfModuleAAI).when(SPY_bbInputSetupUtils).getAAIVfModule(isA(String.class), isA(String.class));
3394 doNothing().when(SPY_bbInputSetup).mapCatalogVnf(isA(GenericVnf.class), isA(ModelInfo.class),
3395 isA(Service.class));
3396 doNothing().when(SPY_bbInputSetup).mapCatalogVfModule(isA(VfModule.class), isA(ModelInfo.class),
3397 isA(Service.class), isA(String.class));
3399 BBInputSetupParameter parameter = new BBInputSetupParameter.Builder().setModelInfo(modelInfo)
3400 .setService(newService).setBbName(bbName).setServiceInstance(serviceInstance)
3401 .setLookupKeyMap(lookupKeyMap).setResourceId(resourceId).setRelatedInstanceList(relatedInstanceList)
3402 .setInstanceName(instanceName).setInstanceParams(instanceParams)
3403 .setCloudConfiguration(cloudConfiguration).setIsReplace(true).setServiceModel(serviceModel).build();
3404 SPY_bbInputSetup.populateVfModule(parameter);
3406 verify(SPY_bbInputSetup, times(1)).mapCatalogVfModule(isA(VfModule.class), isA(ModelInfo.class),
3407 eq(currentService), eq("vnfModelCustId"));
3408 verify(SPY_bbInputSetup, times(1)).mapCatalogVfModule(isA(VfModule.class), isA(ModelInfo.class), eq(newService),
3409 eq("vnfCustomizationId"));
3410 assertEquals("Lookup Key Map populated with VfModule Id", "vfModuleId1",
3411 lookupKeyMap.get(ResourceKey.VF_MODULE_ID));
3412 assertEquals("Lookup Key Map populated with VolumeGroup Id", volumeGroupId,
3413 lookupKeyMap.get(ResourceKey.VOLUME_GROUP_ID));
3417 public void testPopulateVfModuleIsReplace() throws Exception {
3418 String vnfId = "vnfId";
3419 String vfModuleId = "vfModuleId";
3420 String volumeGroupId = "volumeGroupId";
3421 String vfModuleCustomizationId = "vfModuleCustomizationId";
3422 ModelInfo modelInfo = new ModelInfo();
3423 modelInfo.setModelCustomizationId(vfModuleCustomizationId);
3424 Service currentService = new Service();
3425 Service newService = new Service();
3426 ServiceModel serviceModel = new ServiceModel();
3427 serviceModel.setCurrentService(currentService);
3428 currentService.setModelUUID("currentUUID");
3429 serviceModel.setNewService(newService);
3430 currentService.setModelUUID("newUUID");
3431 String bbName = AssignFlows.VF_MODULE.toString();
3432 ServiceInstance serviceInstance = new ServiceInstance();
3433 GenericVnf vnf = new GenericVnf();
3434 vnf.setVnfId(vnfId);
3435 VolumeGroup volumeGroup = new VolumeGroup();
3436 volumeGroup.setVolumeGroupId(volumeGroupId);
3437 vnf.getVolumeGroups().add(volumeGroup);
3438 serviceInstance.getVnfs().add(vnf);
3439 VfModule vfModule1 = new VfModule();
3440 vfModule1.setVfModuleId("vfModuleId1");
3441 VfModule vfModule2 = new VfModule();
3442 vfModule2.setVfModuleId("vfModuleId2");
3443 vnf.getVfModules().add(vfModule1);
3444 vnf.getVfModules().add(vfModule2);
3445 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
3446 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, vnfId);
3447 lookupKeyMap.put(ResourceKey.VF_MODULE_ID, vfModuleId);
3448 String resourceId = vfModuleId;
3449 RelatedInstanceList[] relatedInstanceList = new RelatedInstanceList[1];
3450 RelatedInstanceList relatedInstanceListObj = new RelatedInstanceList();
3451 RelatedInstance relatedInstance = new RelatedInstance();
3452 relatedInstance.setInstanceId(vnfId);
3454 ModelInfo vnfModelInfo = new ModelInfo();
3455 vnfModelInfo.setModelCustomizationId("vnfCustomizationId");
3456 vnfModelInfo.setModelType(ModelType.vnf);
3457 relatedInstance.setModelInfo(vnfModelInfo);
3458 relatedInstanceListObj.setRelatedInstance(relatedInstance);
3459 relatedInstanceList[0] = relatedInstanceListObj;
3461 String instanceName = "vfModuleName";
3462 List<Map<String, String>> instanceParams = null;
3463 CloudConfiguration cloudConfiguration = new CloudConfiguration();
3465 org.onap.aai.domain.yang.GenericVnf vnfAAI = new org.onap.aai.domain.yang.GenericVnf();
3466 vnfAAI.setModelCustomizationId("vnfModelCustId");
3467 org.onap.aai.domain.yang.VolumeGroup volumeGroupAAI = new org.onap.aai.domain.yang.VolumeGroup();
3468 volumeGroupAAI.setModelCustomizationId(vfModuleCustomizationId);
3469 org.onap.aai.domain.yang.VfModule vfModuleAAI = new org.onap.aai.domain.yang.VfModule();
3470 vfModuleAAI.setModelCustomizationId(vfModuleCustomizationId);
3472 doReturn(vnfAAI).when(SPY_bbInputSetupUtils).getAAIGenericVnf(vnf.getVnfId());
3473 doReturn(volumeGroupAAI).when(SPY_bbInputSetupUtils).getAAIVolumeGroup(CLOUD_OWNER,
3474 cloudConfiguration.getLcpCloudRegionId(), volumeGroup.getVolumeGroupId());
3475 doReturn(vfModuleAAI).when(SPY_bbInputSetupUtils).getAAIVfModule(isA(String.class), isA(String.class));
3476 doNothing().when(SPY_bbInputSetup).mapCatalogVnf(isA(GenericVnf.class), isA(ModelInfo.class),
3477 isA(Service.class));
3478 doNothing().when(SPY_bbInputSetup).mapCatalogVfModule(isA(VfModule.class), isA(ModelInfo.class),
3479 isA(Service.class), isA(String.class));
3481 BBInputSetupParameter parameter = new BBInputSetupParameter.Builder().setModelInfo(modelInfo)
3482 .setService(newService).setServiceInstance(serviceInstance).setBbName(bbName)
3483 .setLookupKeyMap(lookupKeyMap).setResourceId(resourceId).setRelatedInstanceList(relatedInstanceList)
3484 .setInstanceName(instanceName).setInstanceParams(instanceParams)
3485 .setCloudConfiguration(cloudConfiguration).setIsReplace(true).setServiceModel(serviceModel).build();
3488 SPY_bbInputSetup.populateVfModule(parameter);
3490 verify(SPY_bbInputSetup, times(2)).mapCatalogVfModule(isA(VfModule.class), isA(ModelInfo.class),
3491 eq(serviceModel.getCurrentService()), isA(String.class));
3492 verify(SPY_bbInputSetup, times(1)).mapCatalogVfModule(isA(VfModule.class), isA(ModelInfo.class),
3493 eq(serviceModel.getNewService()), isA(String.class));
3494 assertEquals("Lookup Key Map populated with VfModule Id", vfModuleId,
3495 lookupKeyMap.get(ResourceKey.VF_MODULE_ID));
3496 assertEquals("Lookup Key Map populated with VolumeGroup Id", volumeGroupId,
3497 lookupKeyMap.get(ResourceKey.VOLUME_GROUP_ID));
3501 public void testGettingVnfcToConfiguration() throws Exception {
3503 String vnfcName = "vnfcName";
3504 org.onap.aai.domain.yang.Configuration expectedAAI = new org.onap.aai.domain.yang.Configuration();
3505 AAIResourceUri aaiResourceUri = AAIUriFactory.createResourceUri(AAIFluentTypeBuilder.network().vnfc(vnfcName));
3506 AAIResultWrapper configurationWrapper =
3507 new AAIResultWrapper(new AAICommonObjectMapperProvider().getMapper().writeValueAsString(expectedAAI));
3509 doReturn(new AAIResultWrapper(null)).when(SPY_bbInputSetupUtils).getAAIResourceDepthOne(aaiResourceUri);
3510 Vnfc vnfc = SPY_bbInputSetup.getVnfcToConfiguration(vnfcName);
3511 Assert.assertNull(vnfc);
3513 doReturn(configurationWrapper).when(SPY_bbInputSetupUtils).getAAIResourceDepthOne(aaiResourceUri);
3514 vnfc = SPY_bbInputSetup.getVnfcToConfiguration(vnfcName);
3515 Assert.assertNotNull(vnfc);