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.ModelInfoPnf;
101 import org.onap.so.bpmn.servicedecomposition.modelinfo.ModelInfoServiceProxy;
102 import org.onap.so.bpmn.servicedecomposition.modelinfo.ModelInfoVfModule;
103 import org.onap.so.bpmn.servicedecomposition.tasks.exceptions.NoServiceInstanceFoundException;
104 import org.onap.so.bpmn.servicedecomposition.tasks.exceptions.ServiceModelNotFoundException;
105 import org.onap.so.db.catalog.beans.CollectionNetworkResourceCustomization;
106 import org.onap.so.db.catalog.beans.CollectionResource;
107 import org.onap.so.db.catalog.beans.CollectionResourceCustomization;
108 import org.onap.so.db.catalog.beans.CollectionResourceInstanceGroupCustomization;
109 import org.onap.so.db.catalog.beans.ConfigurationResource;
110 import org.onap.so.db.catalog.beans.ConfigurationResourceCustomization;
111 import org.onap.so.db.catalog.beans.CvnfcConfigurationCustomization;
112 import org.onap.so.db.catalog.beans.InstanceGroupType;
113 import org.onap.so.db.catalog.beans.NetworkCollectionResourceCustomization;
114 import org.onap.so.db.catalog.beans.NetworkResourceCustomization;
115 import org.onap.so.db.catalog.beans.OrchestrationStatus;
116 import org.onap.so.db.catalog.beans.Service;
117 import org.onap.so.db.catalog.beans.PnfResourceCustomization;
118 import org.onap.so.db.catalog.beans.ServiceProxyResourceCustomization;
119 import org.onap.so.db.catalog.beans.VfModuleCustomization;
120 import org.onap.so.db.catalog.beans.VnfResourceCustomization;
121 import org.onap.so.db.catalog.beans.VnfcInstanceGroupCustomization;
122 import org.onap.so.db.request.beans.InfraActiveRequests;
123 import org.onap.so.serviceinstancebeans.CloudConfiguration;
124 import org.onap.so.serviceinstancebeans.ModelInfo;
125 import org.onap.so.serviceinstancebeans.ModelType;
126 import org.onap.so.serviceinstancebeans.RelatedInstance;
127 import org.onap.so.serviceinstancebeans.RelatedInstanceList;
128 import org.onap.so.serviceinstancebeans.RequestDetails;
129 import org.onap.so.serviceinstancebeans.RequestInfo;
130 import org.onap.so.serviceinstancebeans.RequestParameters;
131 import org.onap.so.serviceinstancebeans.Resources;
132 import org.onap.so.serviceinstancebeans.SubscriberInfo;
133 import com.fasterxml.jackson.core.JsonParseException;
134 import com.fasterxml.jackson.core.JsonProcessingException;
135 import com.fasterxml.jackson.databind.JsonMappingException;
136 import com.fasterxml.jackson.databind.ObjectMapper;
137 import org.onap.so.serviceinstancebeans.VfModules;
138 import org.onap.so.serviceinstancebeans.Vnfs;
140 @RunWith(MockitoJUnitRunner.class)
141 public class BBInputSetupTest {
142 private static final String RESOURCE_PATH = "src/test/resources/__files/ExecuteBuildingBlock/";
144 protected ObjectMapper mapper = new ObjectMapper();
145 private static final String CLOUD_OWNER = "CloudOwner";
146 private static final String REQUEST_ID = "b20bbd26-af25-4a50-a9fe-222a3c0f9771";
150 private BBInputSetup SPY_bbInputSetup = new BBInputSetup();
153 private BBInputSetupUtils SPY_bbInputSetupUtils;
156 private CloudInfoFromAAI SPY_cloudInfoFromAAI;
159 private BBInputSetupMapperLayer bbInputSetupMapperLayer;
162 public ExpectedException expectedException = ExpectedException.none();
165 public void testGetVolumeGroupIdRelatedToVfModule() {
166 String expected = "volumeGroupId";
167 String modelCustomizationId = "modelCustomizationId";
168 ModelInfo modelInfo = new ModelInfo();
169 modelInfo.setModelCustomizationId(modelCustomizationId);
170 String cloudOwner = "cloudOwner";
171 String cloudRegionId = "cloudRegionId";
172 String volumeGroupId = "volumeGroupId";
173 GenericVnf vnf = new GenericVnf();
174 VolumeGroup volumeGroup = new VolumeGroup();
175 volumeGroup.setVolumeGroupId(expected);
176 vnf.getVolumeGroups().add(volumeGroup);
177 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
178 lookupKeyMap.put(ResourceKey.VOLUME_GROUP_ID, null);
179 org.onap.aai.domain.yang.VolumeGroup aaiVolumeGroup = new org.onap.aai.domain.yang.VolumeGroup();
180 aaiVolumeGroup.setModelCustomizationId(modelCustomizationId);
181 doReturn(aaiVolumeGroup).when(SPY_bbInputSetupUtils).getAAIVolumeGroup(cloudOwner, cloudRegionId,
184 Optional<String> actual = SPY_bbInputSetup.getVolumeGroupIdRelatedToVfModule(vnf, modelInfo, cloudOwner,
185 cloudRegionId, lookupKeyMap);
187 assertEquals(expected, actual.get());
191 public void testGetAlaCarteServiceInstance() throws Exception {
192 ServiceInstance expected =
193 mapper.readValue(new File(RESOURCE_PATH + "ServiceInstance_getServiceInstanceNOAAIExpected.json"),
194 ServiceInstance.class);
195 RequestDetails requestDetails = new RequestDetails();
196 RequestInfo requestInfo = new RequestInfo();
197 requestInfo.setInstanceName("SharansInstanceName");
198 requestDetails.setRequestInfo(requestInfo);
199 Customer customer = new Customer();
200 String serviceInstanceId = "SharansInstanceId";
201 boolean aLaCarte = true;
202 Service service = new Service();
203 service.setModelUUID("modelUUID");
204 ModelInfoServiceInstance modelInfoServiceInstance = new ModelInfoServiceInstance();
205 modelInfoServiceInstance.setModelUuid("modelUUID");
206 expected.setModelInfoServiceInstance(modelInfoServiceInstance);
207 org.onap.aai.domain.yang.ServiceInstance serviceInstanceAAI = new org.onap.aai.domain.yang.ServiceInstance();
208 serviceInstanceAAI.setModelVersionId("modelUUIDDifferent");
209 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
210 String bbName = AssignFlows.SERVICE_INSTANCE.toString();
211 Service differentService = new Service();
212 differentService.setModelUUID("modelUUIDDifferent");
214 doReturn(expected).when(SPY_bbInputSetup).getServiceInstanceHelper(requestDetails, customer, null, null,
215 lookupKeyMap, serviceInstanceId, aLaCarte, service, bbName);
216 doReturn(serviceInstanceAAI).when(SPY_bbInputSetupUtils).getAAIServiceInstanceById(serviceInstanceId);
217 doReturn(differentService).when(SPY_bbInputSetupUtils)
218 .getCatalogServiceByModelUUID(serviceInstanceAAI.getModelVersionId());
219 doReturn(expected.getModelInfoServiceInstance()).when(bbInputSetupMapperLayer)
220 .mapCatalogServiceIntoServiceInstance(differentService);
222 ServiceInstance actual = SPY_bbInputSetup.getALaCarteServiceInstance(service, requestDetails, customer, null,
223 null, lookupKeyMap, serviceInstanceId, aLaCarte, bbName);
224 assertThat(actual, sameBeanAs(expected));
227 @Test(expected = Exception.class)
228 public void testGetAlaCarteServiceInstanceException() throws Exception {
229 ServiceInstance expected =
230 mapper.readValue(new File(RESOURCE_PATH + "ServiceInstance_getServiceInstanceNOAAIExpected.json"),
231 ServiceInstance.class);
232 RequestDetails requestDetails = new RequestDetails();
233 RequestInfo requestInfo = new RequestInfo();
234 requestInfo.setInstanceName("SharansInstanceName");
235 requestDetails.setRequestInfo(requestInfo);
236 Customer customer = new Customer();
237 String serviceInstanceId = "SharansInstanceId";
238 boolean aLaCarte = true;
239 Service service = new Service();
240 service.setModelUUID("modelUUID");
241 ModelInfoServiceInstance modelInfoServiceInstance = new ModelInfoServiceInstance();
242 modelInfoServiceInstance.setModelUuid("modelUUID");
243 expected.setModelInfoServiceInstance(modelInfoServiceInstance);
244 org.onap.aai.domain.yang.ServiceInstance serviceInstanceAAI = new org.onap.aai.domain.yang.ServiceInstance();
245 serviceInstanceAAI.setModelVersionId("modelUUIDDifferent");
246 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
247 String bbName = AssignFlows.SERVICE_INSTANCE.toString();
248 Service differentService = new Service();
249 differentService.setModelUUID("modelUUIDDifferent");
251 doReturn(expected).when(SPY_bbInputSetup).getServiceInstanceHelper(requestDetails, customer, null, null,
252 lookupKeyMap, serviceInstanceId, aLaCarte, service, bbName);
253 doReturn(serviceInstanceAAI).when(SPY_bbInputSetupUtils).getAAIServiceInstanceById(serviceInstanceId);
254 doReturn(null).when(SPY_bbInputSetupUtils).getCatalogServiceByModelUUID(serviceInstanceAAI.getModelVersionId());
256 ServiceInstance actual = SPY_bbInputSetup.getALaCarteServiceInstance(service, requestDetails, customer, null,
257 null, lookupKeyMap, serviceInstanceId, aLaCarte, bbName);
258 assertThat(actual, sameBeanAs(expected));
262 public void testGetCustomerAndServiceSubscription() throws JsonParseException, JsonMappingException, IOException {
263 RequestDetails requestDetails = mapper.readValue(
264 new File(RESOURCE_PATH + "RequestDetailsInput_withRelatedInstanceList.json"), RequestDetails.class);
265 SubscriberInfo subscriberInfo = new SubscriberInfo();
266 subscriberInfo.setGlobalSubscriberId("globalSubscriberId");
267 RequestParameters requestParams = new RequestParameters();
268 requestParams.setSubscriptionServiceType("subscriptionServiceType");
269 requestDetails.setRequestParameters(requestParams);
270 requestDetails.setSubscriberInfo(subscriberInfo);
271 String resourceId = "resourceId";
272 Customer expected = new Customer();
273 expected.setGlobalCustomerId("globalCustomerId");
274 ServiceSubscription serviceSubscription = new ServiceSubscription();
275 serviceSubscription.setServiceType("subscriptionServiceType");
277 doReturn(expected).when(this.SPY_bbInputSetup).getCustomerFromRequest(requestDetails);
278 doReturn(serviceSubscription).when(this.SPY_bbInputSetup).getServiceSubscription(requestDetails, expected);
280 Customer actual = this.SPY_bbInputSetup.getCustomerAndServiceSubscription(requestDetails, resourceId);
282 assertThat(actual, sameBeanAs(expected));
284 requestDetails.setSubscriberInfo(null);
287 assertThat(actual, sameBeanAs(expected));
292 public void testSetHomingFlag() throws IOException {
293 GeneralBuildingBlock expected = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
294 GeneralBuildingBlock.class);
295 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
296 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "vnfId");
297 GenericVnf genericVnfExpected = new GenericVnf();
298 genericVnfExpected.setVnfId("vnfId");
299 genericVnfExpected.setCallHoming(true);
300 expected.getCustomer().getServiceSubscription().getServiceInstances().get(0).getVnfs().add(genericVnfExpected);
301 boolean homing = true;
302 GenericVnf genericVnfActual = new GenericVnf();
303 genericVnfActual.setVnfId("vnfId");
304 genericVnfActual.setCallHoming(false);
305 GeneralBuildingBlock actual = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
306 GeneralBuildingBlock.class);
307 actual.getCustomer().getServiceSubscription().getServiceInstances().get(0).getVnfs().add(genericVnfActual);
309 SPY_bbInputSetup.setHomingFlag(actual, homing, lookupKeyMap);
310 assertThat(actual, sameBeanAs(expected));
314 public void testGetExecuteBBFromExecution() throws IOException {
315 BuildingBlock bb = new BuildingBlock().setBpmnFlowName("AssignServiceInstanceBB");
316 ExecuteBuildingBlock expected =
317 new ExecuteBuildingBlock().setBuildingBlock(bb).setRequestId("00032ab7-3fb3-42e5-965d-8ea592502017");
318 DelegateExecution execution = Mockito.mock(DelegateExecution.class);
319 doReturn(expected).when(execution).getVariable(any(String.class));
320 ExecuteBuildingBlock actual = SPY_bbInputSetup.getExecuteBBFromExecution(execution);
321 assertThat(actual, sameBeanAs(expected));
325 public void testGetGBB() throws Exception {
326 GeneralBuildingBlock expected = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
327 GeneralBuildingBlock.class);
329 ExecuteBuildingBlock executeBB = new ExecuteBuildingBlock().setRequestId("requestId");
330 RequestDetails requestDetails = new RequestDetails();
331 ModelInfo modelInfo = new ModelInfo();
332 modelInfo.setModelType(ModelType.service);
333 requestDetails.setModelInfo(modelInfo);
334 RequestParameters requestParams = new RequestParameters();
335 requestParams.setaLaCarte(true);
336 requestDetails.setRequestParameters(requestParams);
337 doReturn(requestDetails).when(SPY_bbInputSetupUtils).getRequestDetails(executeBB.getRequestId());
338 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
339 String resourceId = "123";
340 String requestAction = "createInstance";
341 doReturn(expected).when(SPY_bbInputSetup).getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
342 requestAction, resourceId);
343 doNothing().when(SPY_bbInputSetup).populateLookupKeyMapWithIds(executeBB.getWorkflowResourceIds(),
345 boolean aLaCarte = true;
346 GeneralBuildingBlock actual =
347 SPY_bbInputSetup.getGBB(executeBB, lookupKeyMap, requestAction, aLaCarte, resourceId, null);
349 assertThat(actual, sameBeanAs(expected));
353 public void testGetGBBCM() throws Exception {
354 GeneralBuildingBlock expected = mapper
355 .readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockCMExpected.json"), GeneralBuildingBlock.class);
357 ExecuteBuildingBlock executeBB = new ExecuteBuildingBlock().setRequestId("requestId");
358 RequestDetails requestDetails = new RequestDetails();
359 requestDetails.setModelInfo(null);
360 RequestParameters requestParams = new RequestParameters();
361 requestParams.setaLaCarte(true);
362 requestDetails.setRequestParameters(requestParams);
363 RequestInfo requestInfo = new RequestInfo();
364 requestInfo.setSuppressRollback(true);
365 requestInfo.setSource("VID");
366 requestDetails.setRequestInfo(requestInfo);
367 CloudConfiguration cloudConfiguration = new CloudConfiguration();
368 cloudConfiguration.setLcpCloudRegionId("myRegionId");
369 requestDetails.setCloudConfiguration(cloudConfiguration);
370 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
371 String resourceId = "123";
372 String requestAction = "createInstance";
374 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "vnf-001");
376 doReturn(new org.onap.aai.domain.yang.GenericVnf()).when(SPY_bbInputSetupUtils)
377 .getAAIGenericVnf(ArgumentMatchers.isA(String.class));
378 doReturn(null).when(bbInputSetupMapperLayer)
379 .mapAAIGenericVnfIntoGenericVnf(ArgumentMatchers.isA(org.onap.aai.domain.yang.GenericVnf.class));
380 GeneralBuildingBlock actual =
381 SPY_bbInputSetup.getGBBCM(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId);
382 assertThat(actual, sameBeanAs(expected));
386 public void testGetGBBCMAddMembersAction() throws Exception {
387 GeneralBuildingBlock expected = mapper.readValue(
388 new File(RESOURCE_PATH + "GeneralBuildingBlockInstanceGroupExpected.json"), GeneralBuildingBlock.class);
389 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
390 ExecuteBuildingBlock.class);
391 RequestDetails requestDetails = mapper.readValue(
392 new File(RESOURCE_PATH + "RequestDetailsInput_instanceGroupAddMembers.json"), RequestDetails.class);
393 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
394 String requestAction = "addMembers";
395 String instanceGroupId = "instance-group-001";
397 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
398 workflowResourceIds.setInstanceGroupId(instanceGroupId);
399 executeBB.setWorkflowResourceIds(workflowResourceIds);
401 lookupKeyMap.put(ResourceKey.INSTANCE_GROUP_ID, instanceGroupId);
403 org.onap.aai.domain.yang.InstanceGroup aaiInstanceGroup = new org.onap.aai.domain.yang.InstanceGroup();
404 aaiInstanceGroup.setId(instanceGroupId);
405 aaiInstanceGroup.setInstanceGroupName("test instance group 1");
407 org.onap.aai.domain.yang.ServiceInstance aaiServiceInstance = new org.onap.aai.domain.yang.ServiceInstance();
408 aaiServiceInstance.setServiceInstanceId("service-instance-001");
409 aaiServiceInstance.setServiceInstanceName("test service instance 1");
410 Optional<org.onap.aai.domain.yang.ServiceInstance> optSI = Optional.of(aaiServiceInstance);
412 org.onap.aai.domain.yang.GenericVnf vnf1 = new org.onap.aai.domain.yang.GenericVnf();
413 vnf1.setVnfId("vnf-001");
414 vnf1.setVnfName("test vnf 1");
416 org.onap.aai.domain.yang.GenericVnf vnf2 = new org.onap.aai.domain.yang.GenericVnf();
417 vnf2.setVnfId("vnf-002");
418 vnf2.setVnfName("test vnf 2");
420 doReturn(aaiInstanceGroup).when(SPY_bbInputSetupUtils).getAAIInstanceGroup(instanceGroupId);
421 doReturn(optSI).when(SPY_bbInputSetupUtils).getRelatedServiceInstanceFromInstanceGroup(instanceGroupId);
422 doReturn(vnf1).when(SPY_bbInputSetupUtils).getAAIGenericVnf("vnf-001");
423 doReturn(vnf2).when(SPY_bbInputSetupUtils).getAAIGenericVnf("vnf-002");
425 GeneralBuildingBlock actual =
426 SPY_bbInputSetup.getGBBCM(executeBB, requestDetails, lookupKeyMap, requestAction, instanceGroupId);
428 assertThat(actual, sameBeanAs(expected));
432 public void testGetGBBALaCarteNonService() throws Exception {
433 GeneralBuildingBlock expected = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
434 GeneralBuildingBlock.class);
435 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
436 ExecuteBuildingBlock.class);
437 RequestDetails requestDetails = mapper.readValue(
438 new File(RESOURCE_PATH + "RequestDetailsInput_withRelatedInstanceList.json"), RequestDetails.class);
439 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
440 String requestAction = "createInstance";
441 Service service = Mockito.mock(Service.class);
442 ServiceModel serviceModel = new ServiceModel();
443 serviceModel.setCurrentService(service);
444 ServiceInstance serviceInstance = Mockito.mock(ServiceInstance.class);
445 String resourceId = "123";
446 String vnfType = "vnfType";
447 org.onap.aai.domain.yang.ServiceInstance aaiServiceInstance = new org.onap.aai.domain.yang.ServiceInstance();
448 aaiServiceInstance.setModelVersionId("modelVersionId");
449 org.onap.aai.domain.yang.CloudRegion aaiCloudRegion = Mockito.mock(org.onap.aai.domain.yang.CloudRegion.class);
450 lookupKeyMap.put(ResourceKey.SERVICE_INSTANCE_ID, "instanceId");
451 doReturn(service).when(SPY_bbInputSetupUtils)
452 .getCatalogServiceByModelUUID(aaiServiceInstance.getModelVersionId());
453 doReturn(aaiServiceInstance).when(SPY_bbInputSetupUtils).getAAIServiceInstanceById("instanceId");
454 doNothing().when(SPY_bbInputSetup).populateObjectsOnAssignAndCreateFlows(any(BBInputSetupParameter.class));
455 doReturn(serviceInstance).when(SPY_bbInputSetup).getExistingServiceInstance(aaiServiceInstance);
456 doReturn(expected).when(SPY_bbInputSetup).populateGBBWithSIAndAdditionalInfo(any(BBInputSetupParameter.class));
458 GeneralBuildingBlock actual = SPY_bbInputSetup.getGBBALaCarteNonService(executeBB, requestDetails, lookupKeyMap,
459 requestAction, resourceId, vnfType);
461 assertThat(actual, sameBeanAs(expected));
465 public void testGetGBBALaCarteNonServiceIsReplace() throws Exception {
466 GeneralBuildingBlock expected = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
467 GeneralBuildingBlock.class);
468 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
469 ExecuteBuildingBlock.class);
470 RequestDetails requestDetails = mapper.readValue(
471 new File(RESOURCE_PATH + "RequestDetailsInput_withRelatedInstanceList.json"), RequestDetails.class);
472 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
473 String requestAction = "replaceInstance";
474 Service service = Mockito.mock(Service.class);
475 ServiceModel serviceModel = new ServiceModel();
476 serviceModel.setCurrentService(service);
477 ServiceInstance serviceInstance = Mockito.mock(ServiceInstance.class);
478 String resourceId = "123";
479 String vnfType = "vnfType";
480 org.onap.aai.domain.yang.ServiceInstance aaiServiceInstance = new org.onap.aai.domain.yang.ServiceInstance();
481 aaiServiceInstance.setModelVersionId("modelVersionId");
482 org.onap.aai.domain.yang.CloudRegion aaiCloudRegion = Mockito.mock(org.onap.aai.domain.yang.CloudRegion.class);
483 lookupKeyMap.put(ResourceKey.SERVICE_INSTANCE_ID, "instanceId");
484 doReturn(service).when(SPY_bbInputSetupUtils)
485 .getCatalogServiceByModelUUID(aaiServiceInstance.getModelVersionId());
486 doReturn(service).when(SPY_bbInputSetupUtils).getCatalogServiceByModelUUID("modelUUID");
487 doReturn(aaiServiceInstance).when(SPY_bbInputSetupUtils).getAAIServiceInstanceById("instanceId");
489 doNothing().when(SPY_bbInputSetup).populateObjectsOnAssignAndCreateFlows(any(BBInputSetupParameter.class));
490 doReturn(serviceInstance).when(SPY_bbInputSetup).getExistingServiceInstance(aaiServiceInstance);
491 doReturn(expected).when(SPY_bbInputSetup).populateGBBWithSIAndAdditionalInfo(any(BBInputSetupParameter.class));
493 GeneralBuildingBlock actual = SPY_bbInputSetup.getGBBALaCarteNonService(executeBB, requestDetails, lookupKeyMap,
494 requestAction, resourceId, vnfType);
496 verify(SPY_bbInputSetup, times(1)).populateObjectsOnAssignAndCreateFlows(any(BBInputSetupParameter.class));
498 verify(SPY_bbInputSetupUtils, times(1)).getCatalogServiceByModelUUID(aaiServiceInstance.getModelVersionId());
499 verify(SPY_bbInputSetupUtils, times(1)).getCatalogServiceByModelUUID("modelUUID");
501 assertThat(actual, sameBeanAs(expected));
505 public void testGetGBBALaCarteNonServiceWithoutServiceModelInfo() throws Exception {
506 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
507 ExecuteBuildingBlock.class);
508 RequestDetails requestDetails = mapper.readValue(
509 new File(RESOURCE_PATH + "RequestDetailsInput_withRelatedInstanceList.json"), RequestDetails.class);
510 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
511 lookupKeyMap.put(ResourceKey.SERVICE_INSTANCE_ID, "si123");
512 String requestAction = "createInstance";
513 org.onap.aai.domain.yang.ServiceInstance aaiServiceInstance = new org.onap.aai.domain.yang.ServiceInstance();
514 aaiServiceInstance.setModelVersionId("modelVersionId");
515 String resourceId = "123";
516 String vnfType = "vnfType";
518 doReturn(aaiServiceInstance).when(SPY_bbInputSetupUtils).getAAIServiceInstanceById("si123");
519 doReturn(null).when(SPY_bbInputSetupUtils).getCatalogServiceByModelUUID(aaiServiceInstance.getModelVersionId());
521 expectedException.expect(ServiceModelNotFoundException.class);
522 expectedException.expectMessage(
523 "Related service instance model not found in MSO CatalogDB: model-version-id=modelVersionId");
525 SPY_bbInputSetup.getGBBALaCarteNonService(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId,
530 public void testGetGBBALaCarteNonServiceServiceInstanceNotFoundInAAI() throws Exception {
531 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
532 ExecuteBuildingBlock.class);
533 RequestDetails requestDetails = mapper.readValue(
534 new File(RESOURCE_PATH + "RequestDetailsInput_withRelatedInstanceList.json"), RequestDetails.class);
535 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
536 lookupKeyMap.put(ResourceKey.SERVICE_INSTANCE_ID, "si123");
537 String requestAction = "createInstance";
538 org.onap.aai.domain.yang.ServiceInstance aaiServiceInstance = new org.onap.aai.domain.yang.ServiceInstance();
539 aaiServiceInstance.setModelVersionId("modelVersionId");
540 String resourceId = "123";
541 String vnfType = "vnfType";
543 doReturn(null).when(SPY_bbInputSetupUtils).getAAIServiceInstanceById("si123");
545 expectedException.expect(NoServiceInstanceFoundException.class);
546 expectedException.expectMessage("Related service instance from AAI not found: service-instance-id=si123");
548 SPY_bbInputSetup.getGBBALaCarteNonService(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId,
553 public void testGetGBBALaCarteNonServiceWithoutRelatedInstances() throws Exception {
554 GeneralBuildingBlock expected = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
555 GeneralBuildingBlock.class);
556 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
557 ExecuteBuildingBlock.class);
558 RequestDetails requestDetails = mapper.readValue(
559 new File(RESOURCE_PATH + "RequestDetailsInput_withoutRelatedInstanceList.json"), RequestDetails.class);
560 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
561 String requestAction = "createInstance";
562 Service service = Mockito.mock(Service.class);
563 ServiceModel serviceModel = new ServiceModel();
564 serviceModel.setCurrentService(service);
565 String resourceId = "123";
566 ServiceInstance serviceInstance = Mockito.mock(ServiceInstance.class);
567 org.onap.aai.domain.yang.ServiceInstance aaiServiceInstance = new org.onap.aai.domain.yang.ServiceInstance();
568 aaiServiceInstance.setModelVersionId("modelVersionId");
569 org.onap.aai.domain.yang.CloudRegion aaiCloudRegion = Mockito.mock(org.onap.aai.domain.yang.CloudRegion.class);
570 String vnfType = "vnfType";
571 lookupKeyMap.put(ResourceKey.SERVICE_INSTANCE_ID, "instanceId");
572 doReturn(service).when(SPY_bbInputSetupUtils)
573 .getCatalogServiceByModelUUID(aaiServiceInstance.getModelVersionId());
574 doReturn(aaiServiceInstance).when(SPY_bbInputSetupUtils).getAAIServiceInstanceById("instanceId");
576 doNothing().when(SPY_bbInputSetup).populateObjectsOnAssignAndCreateFlows(any(BBInputSetupParameter.class));
578 doReturn(serviceInstance).when(SPY_bbInputSetup).getExistingServiceInstance(aaiServiceInstance);
579 doReturn(expected).when(SPY_bbInputSetup).populateGBBWithSIAndAdditionalInfo(any(BBInputSetupParameter.class));
581 GeneralBuildingBlock actual = SPY_bbInputSetup.getGBBALaCarteNonService(executeBB, requestDetails, lookupKeyMap,
582 requestAction, resourceId, vnfType);
584 assertThat(actual, sameBeanAs(expected));
588 public void testGetGBBALaCarteService() throws Exception {
589 GeneralBuildingBlock expected = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
590 GeneralBuildingBlock.class);
591 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
592 ExecuteBuildingBlock.class);
593 RequestDetails requestDetails = mapper.readValue(
594 new File(RESOURCE_PATH + "RequestDetailsInput_withRelatedInstanceList.json"), RequestDetails.class);
595 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
597 org.onap.so.serviceinstancebeans.Project requestProject = new org.onap.so.serviceinstancebeans.Project();
598 org.onap.so.serviceinstancebeans.OwningEntity requestOwningEntity =
599 new org.onap.so.serviceinstancebeans.OwningEntity();
600 requestDetails.setProject(requestProject);
601 requestDetails.setOwningEntity(requestOwningEntity);
603 Service service = Mockito.mock(Service.class);
604 Customer customer = Mockito.mock(Customer.class);
605 ServiceSubscription serviceSubscription = Mockito.mock(ServiceSubscription.class);
606 Project project = Mockito.mock(Project.class);
607 OwningEntity owningEntity = Mockito.mock(OwningEntity.class);
608 ServiceInstance serviceInstance = Mockito.mock(ServiceInstance.class);
609 String resourceId = "123";
610 String requestAction = "createInstance";
611 executeBB.setaLaCarte(true);
612 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.SERVICE_INSTANCE.toString());
613 org.onap.aai.domain.yang.CloudRegion aaiCloudRegion = Mockito.mock(org.onap.aai.domain.yang.CloudRegion.class);
615 doReturn(service).when(SPY_bbInputSetupUtils)
616 .getCatalogServiceByModelUUID(requestDetails.getModelInfo().getModelVersionId());
617 doReturn(project).when(bbInputSetupMapperLayer).mapRequestProject(requestDetails.getProject());
618 doReturn(owningEntity).when(bbInputSetupMapperLayer).mapRequestOwningEntity(requestDetails.getOwningEntity());
620 doReturn(customer).when(SPY_bbInputSetup).getCustomerAndServiceSubscription(requestDetails, resourceId);
621 doReturn(serviceInstance).when(SPY_bbInputSetup).getALaCarteServiceInstance(service, requestDetails, customer,
622 project, owningEntity, lookupKeyMap, resourceId, Boolean.TRUE.equals(executeBB.isaLaCarte()),
623 executeBB.getBuildingBlock().getBpmnFlowName());
624 doReturn(expected).when(SPY_bbInputSetup).populateGBBWithSIAndAdditionalInfo(any(BBInputSetupParameter.class));
626 GeneralBuildingBlock actual = SPY_bbInputSetup.getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
627 requestAction, resourceId);
629 assertThat(actual, sameBeanAs(expected));
633 public void testGetGBBALaCarteServiceFindServiceByModelVersionId() throws Exception {
634 GeneralBuildingBlock expected = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
635 GeneralBuildingBlock.class);
636 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
637 ExecuteBuildingBlock.class);
638 RequestDetails requestDetails = mapper.readValue(
639 new File(RESOURCE_PATH + "RequestDetailsInput_withRelatedInstanceList.json"), RequestDetails.class);
640 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
642 org.onap.so.serviceinstancebeans.Project requestProject = new org.onap.so.serviceinstancebeans.Project();
643 org.onap.so.serviceinstancebeans.OwningEntity requestOwningEntity =
644 new org.onap.so.serviceinstancebeans.OwningEntity();
645 requestDetails.setProject(requestProject);
646 requestDetails.setOwningEntity(requestOwningEntity);
648 Service service = Mockito.mock(Service.class);
649 Customer customer = Mockito.mock(Customer.class);
650 ServiceSubscription serviceSubscription = Mockito.mock(ServiceSubscription.class);
651 Project project = Mockito.mock(Project.class);
652 OwningEntity owningEntity = Mockito.mock(OwningEntity.class);
653 ServiceInstance serviceInstance = Mockito.mock(ServiceInstance.class);
654 String resourceId = "123";
655 String requestAction = "createInstance";
656 executeBB.setaLaCarte(true);
657 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.SERVICE_INSTANCE.toString());
658 org.onap.aai.domain.yang.CloudRegion aaiCloudRegion = Mockito.mock(org.onap.aai.domain.yang.CloudRegion.class);
660 doReturn(null).when(SPY_bbInputSetupUtils)
661 .getCatalogServiceByModelUUID(requestDetails.getModelInfo().getModelVersionId());
662 doReturn(service).when(SPY_bbInputSetupUtils).getCatalogServiceByModelVersionAndModelInvariantUUID(
663 requestDetails.getModelInfo().getModelVersion(), requestDetails.getModelInfo().getModelInvariantId());
664 doReturn(project).when(bbInputSetupMapperLayer).mapRequestProject(requestDetails.getProject());
665 doReturn(owningEntity).when(bbInputSetupMapperLayer).mapRequestOwningEntity(requestDetails.getOwningEntity());
667 doReturn(customer).when(SPY_bbInputSetup).getCustomerAndServiceSubscription(requestDetails, resourceId);
668 doReturn(serviceInstance).when(SPY_bbInputSetup).getALaCarteServiceInstance(service, requestDetails, customer,
669 project, owningEntity, lookupKeyMap, resourceId, Boolean.TRUE.equals(executeBB.isaLaCarte()),
670 executeBB.getBuildingBlock().getBpmnFlowName());
671 doReturn(expected).when(SPY_bbInputSetup).populateGBBWithSIAndAdditionalInfo(any(BBInputSetupParameter.class));
673 GeneralBuildingBlock actual = SPY_bbInputSetup.getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
674 requestAction, resourceId);
676 assertThat(actual, sameBeanAs(expected));
680 public void testGetGBBALaCarteServiceNoProjectNoOE() throws Exception {
681 GeneralBuildingBlock expected = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
682 GeneralBuildingBlock.class);
683 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
684 ExecuteBuildingBlock.class);
685 RequestDetails requestDetails = mapper.readValue(
686 new File(RESOURCE_PATH + "RequestDetailsInput_withRelatedInstanceList.json"), RequestDetails.class);
687 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
689 Service service = Mockito.mock(Service.class);
690 Customer customer = Mockito.mock(Customer.class);
691 ServiceSubscription serviceSubscription = Mockito.mock(ServiceSubscription.class);
692 ServiceInstance serviceInstance = Mockito.mock(ServiceInstance.class);
693 String resourceId = "123";
694 String requestAction = "createInstance";
695 executeBB.setaLaCarte(true);
696 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.SERVICE_INSTANCE.toString());
697 org.onap.aai.domain.yang.CloudRegion aaiCloudRegion = Mockito.mock(org.onap.aai.domain.yang.CloudRegion.class);
699 Map<String, String> uriKeys = new HashMap<>();
700 uriKeys.put("global-customer-id", "globalCustomerId");
701 uriKeys.put("service-type", "serviceType");
703 doReturn(service).when(SPY_bbInputSetupUtils)
704 .getCatalogServiceByModelUUID(requestDetails.getModelInfo().getModelVersionId());
706 doReturn(customer).when(SPY_bbInputSetup).getCustomerAndServiceSubscription(requestDetails, resourceId);
708 doReturn(serviceInstance).when(SPY_bbInputSetup).getALaCarteServiceInstance(service, requestDetails, customer,
709 null, null, lookupKeyMap, resourceId, Boolean.TRUE.equals(executeBB.isaLaCarte()),
710 executeBB.getBuildingBlock().getBpmnFlowName());
711 doReturn(expected).when(SPY_bbInputSetup).populateGBBWithSIAndAdditionalInfo(any(BBInputSetupParameter.class));
713 GeneralBuildingBlock actual = SPY_bbInputSetup.getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
714 requestAction, resourceId);
716 assertThat(actual, sameBeanAs(expected));
720 public void testGetServiceInstanceHelperCreateScenario() throws Exception {
721 RequestDetails requestDetails = new RequestDetails();
722 RequestInfo requestInfo = new RequestInfo();
723 requestInfo.setInstanceName("SharansInstanceName");
724 requestDetails.setRequestInfo(requestInfo);
725 Customer customer = new Customer();
726 String serviceInstanceId = "SharansInstanceId";
727 boolean aLaCarte = true;
728 ServiceInstance expected = new ServiceInstance();
729 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
730 Service service = new Service();
731 service.setModelUUID("modelUUID");
732 String bbName = AssignFlows.SERVICE_INSTANCE.toString();
734 doReturn(null).when(SPY_bbInputSetupUtils).getAAIServiceInstanceByName(requestInfo.getInstanceName(), customer);
735 doReturn(null).when(SPY_bbInputSetupUtils).getAAIServiceInstanceById(serviceInstanceId);
738 doReturn(expected).when(SPY_bbInputSetup).createServiceInstance(requestDetails, null, null, lookupKeyMap,
741 ServiceInstance actual = SPY_bbInputSetup.getServiceInstanceHelper(requestDetails, customer, null, null,
742 lookupKeyMap, serviceInstanceId, aLaCarte, service, bbName);
743 assertThat(actual, sameBeanAs(expected));
747 public void testGetServiceInstanceHelperCreateScenarioExisting() throws Exception {
748 RequestDetails requestDetails = new RequestDetails();
749 RequestInfo requestInfo = new RequestInfo();
750 requestInfo.setInstanceName("SharansInstanceName");
751 requestDetails.setRequestInfo(requestInfo);
752 Customer customer = new Customer();
753 String serviceInstanceId = "SharansInstanceId";
754 boolean aLaCarte = true;
755 Service service = new Service();
756 service.setModelUUID("modelUUID");
757 ServiceInstance expected = new ServiceInstance();
758 org.onap.aai.domain.yang.ServiceInstance serviceInstanceAAI = new org.onap.aai.domain.yang.ServiceInstance();
759 serviceInstanceAAI.setModelVersionId("modelUUID");
760 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
761 String bbName = AssignFlows.SERVICE_INSTANCE.toString();
763 doReturn(serviceInstanceAAI).when(SPY_bbInputSetupUtils)
764 .getAAIServiceInstanceByName(requestInfo.getInstanceName(), customer);
765 doReturn(expected).when(SPY_bbInputSetup).getExistingServiceInstance(serviceInstanceAAI);
767 ServiceInstance actual = SPY_bbInputSetup.getServiceInstanceHelper(requestDetails, customer, null, null,
768 lookupKeyMap, serviceInstanceId, aLaCarte, service, bbName);
769 assertThat(actual, sameBeanAs(expected));
773 public void testGetServiceInstanceHelperCreateScenarioExistingNoNameButWithId() throws Exception {
774 RequestDetails requestDetails = new RequestDetails();
775 RequestInfo requestInfo = new RequestInfo();
776 requestInfo.setInstanceName("SharansInstanceName");
777 requestDetails.setRequestInfo(requestInfo);
778 Customer customer = new Customer();
779 String serviceInstanceId = "SharansInstanceId";
780 boolean aLaCarte = true;
781 Service service = new Service();
782 service.setModelUUID("modelUUID");
783 ServiceInstance expected = new ServiceInstance();
784 org.onap.aai.domain.yang.ServiceInstance serviceInstanceAAI = new org.onap.aai.domain.yang.ServiceInstance();
785 serviceInstanceAAI.setModelVersionId("modelUUID");
786 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
787 String bbName = "ActivateServiceInstanceBB";
789 doReturn(serviceInstanceAAI).when(SPY_bbInputSetupUtils).getAAIServiceInstanceById(serviceInstanceId);
790 doReturn(expected).when(SPY_bbInputSetup).getExistingServiceInstance(serviceInstanceAAI);
792 ServiceInstance actual = SPY_bbInputSetup.getServiceInstanceHelper(requestDetails, customer, null, null,
793 lookupKeyMap, serviceInstanceId, aLaCarte, service, bbName);
794 assertThat(actual, sameBeanAs(expected));
798 public void testGetServiceInstanceHelperCreateScenarioExistingNoNameButWithIdDifferentModel() throws Exception {
799 RequestDetails requestDetails = new RequestDetails();
800 RequestInfo requestInfo = new RequestInfo();
801 requestDetails.setRequestInfo(requestInfo);
802 Customer customer = new Customer();
803 String serviceInstanceId = "SharansInstanceId";
804 boolean aLaCarte = true;
805 Service service = new Service();
806 service.setModelUUID("modelUUID");
807 ServiceInstance expected = new ServiceInstance();
808 org.onap.aai.domain.yang.ServiceInstance serviceInstanceAAI = new org.onap.aai.domain.yang.ServiceInstance();
809 serviceInstanceAAI.setModelVersionId("modelUUIDDifferent");
810 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
811 String bbName = "ActivateServiceInstanceBB";
812 Service differentService = new Service();
813 differentService.setModelUUID("modelUUIDDifferent");
815 doReturn(serviceInstanceAAI).when(SPY_bbInputSetupUtils).getAAIServiceInstanceById(serviceInstanceId);
818 ServiceInstance actual = SPY_bbInputSetup.getServiceInstanceHelper(requestDetails, customer, null, null,
819 lookupKeyMap, serviceInstanceId, aLaCarte, service, bbName);
820 assertThat(actual, sameBeanAs(expected));
824 public void testGetServiceInstanceHelperCreateScenarioExistingWithName() throws Exception {
825 RequestDetails requestDetails = new RequestDetails();
826 RequestInfo requestInfo = new RequestInfo();
827 requestDetails.setRequestInfo(requestInfo);
828 ServiceSubscription serviceSub = new ServiceSubscription();
829 Customer customer = new Customer();
830 customer.setServiceSubscription(serviceSub);
831 ServiceInstance expected = new ServiceInstance();
832 expected.setServiceInstanceId("serviceInstanceId");
833 org.onap.aai.domain.yang.ServiceInstance serviceInstanceAAI = new org.onap.aai.domain.yang.ServiceInstance();
834 serviceInstanceAAI.setServiceInstanceId("serviceInstanceId");
836 doReturn(serviceInstanceAAI).when(SPY_bbInputSetupUtils).getAAIServiceInstanceByIdAndCustomer(Mockito.any(),
837 Mockito.any(), Mockito.any());
838 ServiceInstance actual = SPY_bbInputSetup.getServiceInstanceHelper(requestDetails, customer, null, null,
839 new HashMap<>(), "SharansInstanceId", false, new Service(), "ActivateServiceInstanceBB");
840 assertThat(actual, sameBeanAs(expected));
843 @Test(expected = Exception.class)
844 public void testGetServiceInstanceHelperCreateScenarioExistingNoNameButWithIdExceptionThrown() throws Exception {
845 RequestDetails requestDetails = new RequestDetails();
846 RequestInfo requestInfo = new RequestInfo();
847 requestDetails.setRequestInfo(requestInfo);
848 Customer customer = new Customer();
849 String serviceInstanceId = "SharansInstanceId";
850 boolean aLaCarte = true;
851 Service service = new Service();
852 service.setModelUUID("modelUUID");
853 org.onap.aai.domain.yang.ServiceInstance serviceInstanceAAI = new org.onap.aai.domain.yang.ServiceInstance();
854 serviceInstanceAAI.setModelVersionId("modelUUIDDifferent");
855 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
856 String bbName = AssignFlows.SERVICE_INSTANCE.toString();
858 ServiceInstance actual = SPY_bbInputSetup.getServiceInstanceHelper(requestDetails, customer, null, null,
859 lookupKeyMap, serviceInstanceId, aLaCarte, service, bbName);
863 public void testPopulateObjectsOnAssignAndCreateFlows() throws Exception {
864 String bbName = AssignFlows.SERVICE_INSTANCE.toString();
865 String instanceName = "instanceName";
866 String vnfType = "vnfType";
867 String resourceId = "networkId";
868 String productFamilyId = "productFamilyId";
869 String applicationId = "applicationId";
870 Service service = Mockito.mock(Service.class);
871 ServiceModel serviceModel = new ServiceModel();
872 serviceModel.setCurrentService(service);
873 ServiceInstance serviceInstance = Mockito.mock(ServiceInstance.class);
874 RequestDetails requestDetails = Mockito.mock(RequestDetails.class);
875 ModelInfo modelInfo = Mockito.mock(ModelInfo.class);
876 RequestInfo requestInfo = Mockito.mock(RequestInfo.class);
877 RelatedInstanceList[] relatedInstanceList = new RelatedInstanceList[] {};
878 CloudConfiguration cloudConfiguration = new CloudConfiguration();
879 org.onap.so.serviceinstancebeans.Platform platform =
880 Mockito.mock(org.onap.so.serviceinstancebeans.Platform.class);
881 org.onap.so.serviceinstancebeans.LineOfBusiness lineOfBusiness =
882 Mockito.mock(org.onap.so.serviceinstancebeans.LineOfBusiness.class);
883 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
885 doReturn(modelInfo).when(requestDetails).getModelInfo();
886 doReturn(productFamilyId).when(requestInfo).getProductFamilyId();
887 doReturn(requestInfo).when(requestDetails).getRequestInfo();
888 doReturn(instanceName).when(requestInfo).getInstanceName();
889 doReturn(platform).when(requestDetails).getPlatform();
890 doReturn(lineOfBusiness).when(requestDetails).getLineOfBusiness();
891 doReturn(relatedInstanceList).when(requestDetails).getRelatedInstanceList();
892 doReturn(cloudConfiguration).when(requestDetails).getCloudConfiguration();
893 doReturn(applicationId).when(requestInfo).getApplicationId();
895 doReturn(ModelType.network).when(modelInfo).getModelType();
896 BBInputSetupParameter parameter = new BBInputSetupParameter.Builder().setRequestId(REQUEST_ID)
897 .setRequestDetails(requestDetails).setService(service).setBbName(bbName)
898 .setServiceInstance(serviceInstance).setLookupKeyMap(lookupKeyMap).setResourceId(resourceId)
899 .setVnfType(vnfType).setIsReplace(false).setApplicationId(applicationId).build();
901 doNothing().when(SPY_bbInputSetup).populateL3Network(parameter);
902 SPY_bbInputSetup.populateObjectsOnAssignAndCreateFlows(parameter);
903 parameter.setInstanceName(instanceName);
904 parameter.setModelInfo(modelInfo);
905 verify(SPY_bbInputSetup, times(1)).populateL3Network(parameter);
906 assertEquals("NetworkId populated", true,
907 lookupKeyMap.get(ResourceKey.NETWORK_ID).equalsIgnoreCase(resourceId));
909 doReturn(ModelType.vnf).when(modelInfo).getModelType();
910 resourceId = "vnfId";
911 doNothing().when(SPY_bbInputSetup).populateGenericVnf(parameter);
912 parameter.setResourceId(resourceId);
913 SPY_bbInputSetup.populateObjectsOnAssignAndCreateFlows(parameter);
914 verify(SPY_bbInputSetup, times(1)).populateGenericVnf(parameter);
915 assertEquals("VnfId populated", true,
916 lookupKeyMap.get(ResourceKey.GENERIC_VNF_ID).equalsIgnoreCase(resourceId));
917 doReturn(ModelType.volumeGroup).when(modelInfo).getModelType();
918 resourceId = "volumeGroupId";
919 parameter.setResourceId(resourceId);
920 doNothing().when(SPY_bbInputSetup).populateVolumeGroup(parameter);
921 SPY_bbInputSetup.populateObjectsOnAssignAndCreateFlows(parameter);
922 verify(SPY_bbInputSetup, times(1)).populateVolumeGroup(parameter);
923 assertEquals("VolumeGroupId populated", true,
924 lookupKeyMap.get(ResourceKey.VOLUME_GROUP_ID).equalsIgnoreCase(resourceId));
926 doReturn(ModelType.vfModule).when(modelInfo).getModelType();
927 resourceId = "vfModuleId";
928 parameter.setResourceId(resourceId);
929 doNothing().when(SPY_bbInputSetup).populateVfModule(parameter);
930 SPY_bbInputSetup.populateObjectsOnAssignAndCreateFlows(parameter);
931 verify(SPY_bbInputSetup, times(1)).populateVfModule(parameter);
932 assertEquals("VfModuleId populated", true,
933 lookupKeyMap.get(ResourceKey.VF_MODULE_ID).equalsIgnoreCase(resourceId));
935 String bbNameAssignVolume = AssignFlows.VOLUME_GROUP.toString();
936 doReturn(ModelType.vfModule).when(modelInfo).getModelType();
937 resourceId = "vfModuleId";
938 parameter.setResourceId(resourceId);
939 parameter.setBbName(bbNameAssignVolume);
940 doNothing().when(SPY_bbInputSetup).populateVolumeGroup(parameter);
941 SPY_bbInputSetup.populateObjectsOnAssignAndCreateFlows(parameter);
942 verify(SPY_bbInputSetup, times(2)).populateVolumeGroup(parameter);
943 assertEquals(resourceId, lookupKeyMap.get(ResourceKey.VOLUME_GROUP_ID));
947 public void testPopulateGBBWithSIAndAdditionalInfo() throws Exception {
948 GeneralBuildingBlock expected =
949 mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpectedWUserParamsInfo.json"),
950 GeneralBuildingBlock.class);
951 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
952 ExecuteBuildingBlock.class);
953 RequestDetails requestDetails = mapper.readValue(
954 new File(RESOURCE_PATH + "RequestDetailsInput_withRelatedInstanceList.json"), RequestDetails.class);
955 RequestContext requestContext =
956 mapper.readValue(new File(RESOURCE_PATH + "RequestContextExpected.json"), RequestContext.class);
957 ServiceInstance serviceInstance =
958 mapper.readValue(new File(RESOURCE_PATH + "ServiceInstance_getServiceInstanceNOAAIExpected.json"),
959 ServiceInstance.class);
960 CloudConfiguration cloudConfiguration = new CloudConfiguration();
961 cloudConfiguration.setTenantId("tenantId");
962 requestDetails.setCloudConfiguration(cloudConfiguration);
963 OrchestrationContext orchestrationContext = new OrchestrationContext();
964 orchestrationContext.setIsRollbackEnabled(false);
966 CloudRegion cloudRegion = new CloudRegion();
967 cloudRegion.setCloudOwner("test-owner-name");
968 cloudRegion.setLcpCloudRegionId("lcpCloudRegionId");
969 cloudRegion.setComplex("complexName");
970 cloudRegion.setTenantId("tenantId");
972 Map<String, String> uriKeys = new HashMap<>();
973 uriKeys.put(AAIFluentTypeBuilder.Types.CUSTOMER.getUriParams().globalCustomerId, "global-customer-id");
974 uriKeys.put(AAIFluentTypeBuilder.Types.SERVICE_SUBSCRIPTION.getUriParams().serviceType, "service-type");
976 Customer customer = new Customer();
977 ServiceSubscription serviceSubscription = new ServiceSubscription();
978 serviceSubscription.setServiceType("subscriptionServiceType");
979 customer.setGlobalCustomerId("globalCustomerId");
980 customer.setSubscriberName("subscriberName");
981 customer.setSubscriberType("subscriberType");
982 customer.setServiceSubscription(serviceSubscription);
984 org.onap.so.bpmn.servicedecomposition.bbobjects.Tenant tenant =
985 new org.onap.so.bpmn.servicedecomposition.bbobjects.Tenant();
986 tenant.setTenantContext("tenantContext");
987 tenant.setTenantId("tenantId");
988 tenant.setTenantName("tenantName");
990 org.onap.aai.domain.yang.CloudRegion aaiCloudRegion = Mockito.mock(org.onap.aai.domain.yang.CloudRegion.class);
991 org.onap.aai.domain.yang.Tenants aaiTenants = Mockito.mock(org.onap.aai.domain.yang.Tenants.class);
992 org.onap.aai.domain.yang.Tenant aaiTenant = new org.onap.aai.domain.yang.Tenant();
993 aaiTenant.setTenantId("tenantId");
994 List<org.onap.aai.domain.yang.Tenant> tenants = new ArrayList<>();
995 tenants.add(aaiTenant);
997 String requestAction = "createInstance";
999 doReturn(uriKeys).when(SPY_bbInputSetupUtils)
1000 .getURIKeysFromServiceInstance(serviceInstance.getServiceInstanceId());
1001 doReturn(customer).when(SPY_bbInputSetup).mapCustomer(uriKeys.get("global-customer-id"),
1002 uriKeys.get("service-type"));
1003 doReturn(aaiCloudRegion).when(SPY_bbInputSetupUtils).getCloudRegion(requestDetails.getCloudConfiguration());
1004 doReturn(orchestrationContext).when(bbInputSetupMapperLayer).mapOrchestrationContext(requestDetails);
1005 doReturn(requestContext).when(bbInputSetupMapperLayer).mapRequestContext(requestDetails);
1006 doReturn(cloudRegion).when(bbInputSetupMapperLayer).mapCloudRegion(requestDetails.getCloudConfiguration(),
1008 doReturn(tenant).when(bbInputSetupMapperLayer).mapTenant(aaiTenant);
1009 doReturn(aaiTenants).when(aaiCloudRegion).getTenants();
1010 doReturn(tenants).when(aaiTenants).getTenant();
1011 BBInputSetupParameter parameter = new BBInputSetupParameter.Builder().setServiceInstance(serviceInstance)
1012 .setRequestDetails(requestDetails).setExecuteBB(executeBB).setRequestAction(requestAction).build();
1013 GeneralBuildingBlock actual = SPY_bbInputSetup.populateGBBWithSIAndAdditionalInfo(parameter);
1015 assertThat(actual, sameBeanAs(expected));
1019 public void testGetServiceInstanceNOAAI() throws Exception {
1020 ServiceInstance expected =
1021 mapper.readValue(new File(RESOURCE_PATH + "ServiceInstance_getServiceInstanceNOAAIExpected.json"),
1022 ServiceInstance.class);
1023 Service service = mapper.readValue(
1024 new File(RESOURCE_PATH + "CatalogDBService_getServiceInstanceNOAAIInput.json"), Service.class);
1025 Customer customer = mapper.readValue(new File(RESOURCE_PATH + "Customer.json"), Customer.class);
1026 Project project = mapper.readValue(new File(RESOURCE_PATH + "Project.json"), Project.class);
1027 OwningEntity owningEntity = mapper.readValue(new File(RESOURCE_PATH + "OwningEntity.json"), OwningEntity.class);
1028 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
1030 BuildingBlock buildingBlock = new BuildingBlock().setBpmnFlowName(AssignFlows.SERVICE_INSTANCE.toString());
1031 ExecuteBuildingBlock executeBB = new ExecuteBuildingBlock().setaLaCarte(true).setBuildingBlock(buildingBlock);
1032 RequestDetails requestDetails = new RequestDetails();
1033 RequestInfo reqInfo = new RequestInfo();
1034 reqInfo.setInstanceName("serviceInstanceName");
1035 requestDetails.setRequestInfo(reqInfo);
1036 ModelInfo modelInfo = new ModelInfo();
1037 modelInfo.setModelType(ModelType.service);
1038 requestDetails.setModelInfo(modelInfo);
1039 doReturn(null).when(SPY_bbInputSetupUtils)
1040 .getAAIServiceInstanceByName(requestDetails.getRequestInfo().getInstanceName(), customer);
1041 doReturn(expected.getModelInfoServiceInstance()).when(bbInputSetupMapperLayer)
1042 .mapCatalogServiceIntoServiceInstance(service);
1043 doReturn(null).when(SPY_bbInputSetupUtils).getAAIServiceInstanceById(any(String.class));
1044 String serviceInstanceId = "3655a595-05d1-433c-93c0-3afd6b572545";
1045 boolean aLaCarte = true;
1047 ServiceInstance actual =
1048 SPY_bbInputSetup.getALaCarteServiceInstance(service, requestDetails, customer, project, owningEntity,
1049 lookupKeyMap, serviceInstanceId, aLaCarte, executeBB.getBuildingBlock().getBpmnFlowName());
1051 assertThat(actual, sameBeanAs(expected));
1055 public void testGetServiceSubscription() throws IOException {
1056 ServiceSubscription expected = new ServiceSubscription();
1057 RequestDetails requestDetails = new RequestDetails();
1058 RequestParameters params = new RequestParameters();
1059 params.setSubscriptionServiceType("subscriptionServiceType");
1060 requestDetails.setRequestParameters(params);
1061 org.onap.aai.domain.yang.ServiceSubscription aaiServiceSubscription =
1062 new org.onap.aai.domain.yang.ServiceSubscription();
1063 Customer customer = new Customer();
1064 customer.setGlobalCustomerId("globalCustomerId");
1065 doReturn(aaiServiceSubscription).when(SPY_bbInputSetupUtils).getAAIServiceSubscription(
1066 customer.getGlobalCustomerId(), requestDetails.getRequestParameters().getSubscriptionServiceType());
1067 doReturn(expected).when(bbInputSetupMapperLayer).mapAAIServiceSubscription(aaiServiceSubscription);
1069 ServiceSubscription actual = SPY_bbInputSetup.getServiceSubscription(requestDetails, customer);
1070 assertThat(actual, sameBeanAs(expected));
1074 public void testGetCustomer() throws IOException {
1075 Customer expected = new Customer();
1076 RequestDetails requestDetails = new RequestDetails();
1077 SubscriberInfo subscriberInfo = new SubscriberInfo();
1078 subscriberInfo.setGlobalSubscriberId("globalSubscriberId");
1079 requestDetails.setSubscriberInfo(subscriberInfo);
1080 org.onap.aai.domain.yang.Customer aaiCustomer = new org.onap.aai.domain.yang.Customer();
1081 doReturn(aaiCustomer).when(SPY_bbInputSetupUtils)
1082 .getAAICustomer(requestDetails.getSubscriberInfo().getGlobalSubscriberId());
1083 doReturn(expected).when(bbInputSetupMapperLayer).mapAAICustomer(aaiCustomer);
1085 Customer actual = SPY_bbInputSetup.getCustomerFromRequest(requestDetails);
1086 assertThat(actual, sameBeanAs(expected));
1090 public void testGetExistingServiceInstance() throws Exception {
1091 org.onap.aai.domain.yang.ServiceInstance serviceInstanceAAI = new org.onap.aai.domain.yang.ServiceInstance();
1092 ServiceInstance expected = new ServiceInstance();
1094 doReturn(expected).when(bbInputSetupMapperLayer).mapAAIServiceInstanceIntoServiceInstance(serviceInstanceAAI);
1097 ServiceInstance actual = SPY_bbInputSetup.getExistingServiceInstance(serviceInstanceAAI);
1098 assertThat(actual, sameBeanAs(expected));
1102 public void testPopulateNetworkCollectionAndInstanceGroupAssign() throws Exception {
1103 Service service = Mockito.mock(Service.class);
1104 String key = "collectionCustId";
1105 ServiceInstance serviceInstance =
1106 mapper.readValue(new File(RESOURCE_PATH + "ServiceInstance_getServiceInstanceNOAAIExpected.json"),
1107 ServiceInstance.class);
1108 String resourceId = "123";
1109 Collection collection = SPY_bbInputSetup.createCollection(resourceId);
1110 InstanceGroup instanceGroup = SPY_bbInputSetup.createInstanceGroup();
1111 assertNull(serviceInstance.getCollection());
1112 doReturn(true).when(SPY_bbInputSetup).isVlanTagging(service, key);
1114 doReturn(collection).when(SPY_bbInputSetup).createCollection(resourceId);
1115 doReturn(instanceGroup).when(SPY_bbInputSetup).createInstanceGroup();
1116 doNothing().when(SPY_bbInputSetup).mapCatalogCollection(service, collection, key);
1118 NetworkCollectionResourceCustomization networkCollection = new NetworkCollectionResourceCustomization();
1119 networkCollection.setModelCustomizationUUID(key);
1120 networkCollection.setCollectionResource(new CollectionResource());
1121 networkCollection.getCollectionResource().setInstanceGroup(new org.onap.so.db.catalog.beans.InstanceGroup());
1122 networkCollection.getCollectionResource().getInstanceGroup().setToscaNodeType("NetworkCollectionResource");
1123 networkCollection.getCollectionResource().getInstanceGroup().setType(InstanceGroupType.L3_NETWORK);
1124 networkCollection.getCollectionResource().getInstanceGroup()
1125 .setCollectionInstanceGroupCustomizations(new ArrayList<>());
1126 List<CollectionResourceCustomization> customizations = new ArrayList<>();
1127 customizations.add(networkCollection);
1128 doReturn(customizations).when(service).getCollectionResourceCustomizations();
1129 BBInputSetupParameter parameter = new BBInputSetupParameter.Builder().setService(service)
1130 .setServiceInstance(serviceInstance).setResourceId(resourceId).setKey(key)
1131 .setBbName(AssignFlows.NETWORK_COLLECTION.toString()).build();
1133 SPY_bbInputSetup.populateNetworkCollectionAndInstanceGroupAssign(parameter);
1134 assertNotNull(serviceInstance.getCollection());
1135 assertNotNull(serviceInstance.getCollection().getInstanceGroup());
1137 verify(SPY_bbInputSetup, times(1)).mapCatalogCollection(service, serviceInstance.getCollection(), key);
1138 verify(SPY_bbInputSetup, times(1)).mapCatalogNetworkCollectionInstanceGroup(service,
1139 serviceInstance.getCollection().getInstanceGroup(), key);
1143 public void testPopulateInstanceGroup() throws Exception {
1144 ModelInfo modelInfo = Mockito.mock(ModelInfo.class);
1145 Service service = Mockito.mock(Service.class);
1146 List<InstanceGroup> instanceGroups = Mockito.spy(new ArrayList<>());
1147 ServiceInstance serviceInstance = Mockito.spy(new ServiceInstance());
1148 serviceInstance.setServiceInstanceId("si-001");
1149 serviceInstance.setServiceInstanceName("test service instance");
1150 serviceInstance.setInstanceGroups(instanceGroups);
1152 BBInputSetupParameter parameter = new BBInputSetupParameter.Builder().setModelInfo(modelInfo)
1153 .setService(service).setServiceInstance(serviceInstance).setResourceId("instance-group-001")
1154 .setInstanceName("test instance group").build();
1155 SPY_bbInputSetup.populateInstanceGroup(parameter);
1156 verify(SPY_bbInputSetup, times(1)).mapCatalogInstanceGroup(isA(InstanceGroup.class), isA(ModelInfo.class),
1157 isA(Service.class));
1158 verify(instanceGroups, times(1)).add(isA(InstanceGroup.class));
1162 public void testIsVlanTagging() throws Exception {
1163 boolean expected = true;
1164 Service service = Mockito.mock(Service.class);
1165 String key = "collectionCustId";
1166 NetworkCollectionResourceCustomization networkCollection = new NetworkCollectionResourceCustomization();
1167 networkCollection.setModelCustomizationUUID(key);
1168 networkCollection.setCollectionResource(new CollectionResource());
1169 networkCollection.getCollectionResource().setInstanceGroup(new org.onap.so.db.catalog.beans.InstanceGroup());
1170 networkCollection.getCollectionResource().getInstanceGroup()
1171 .setToscaNodeType("org.openecomp.resource.cr.NetworkCollectionResource1806");
1172 List<CollectionResourceCustomization> customizations = new ArrayList<>();
1173 customizations.add(networkCollection);
1174 doReturn(customizations).when(service).getCollectionResourceCustomizations();
1175 boolean actual = SPY_bbInputSetup.isVlanTagging(service, key);
1176 assertEquals("Is Vlan Tagging check.", expected, actual);
1180 public void testPopulateVolumeGroup() throws Exception {
1181 RequestDetails requestDetails = new RequestDetails();
1182 RelatedInstanceList ril = new RelatedInstanceList();
1183 RelatedInstance ri = new RelatedInstance();
1184 ModelInfo mi = new ModelInfo();
1185 mi.setModelType(ModelType.vnf);
1186 mi.setModelCustomizationUuid("vnfModelCustomizationUUID");
1187 mi.setModelCustomizationId("vnfModelCustomizationUUID");
1188 ri.setModelInfo(mi);
1189 ril.setRelatedInstance(ri);
1190 requestDetails.setRelatedInstanceList(new RelatedInstanceList[] {ril});
1192 ModelInfo modelInfo = new ModelInfo();
1193 modelInfo.setModelCustomizationId("volumeGroupCustId");
1195 RequestInfo reqInfo = new RequestInfo();
1196 reqInfo.setInstanceName("volumeGroupName");
1197 requestDetails.setModelInfo(modelInfo);
1198 requestDetails.setRequestInfo(reqInfo);
1200 ServiceInstance serviceInstance = new ServiceInstance();
1201 GenericVnf vnf = new GenericVnf();
1202 vnf.setVnfId("genericVnfId");
1204 VolumeGroup vg = new VolumeGroup();
1205 vg.setVolumeGroupName("volumeGroupName");
1206 vg.setVolumeGroupId("volumeGroupId");
1207 vg.setModelInfoVfModule(new ModelInfoVfModule());
1208 vg.getModelInfoVfModule().setModelCustomizationUUID("volumeGroupCustId");
1209 vnf.getVolumeGroups().add(vg);
1210 serviceInstance.getVnfs().add(vnf);
1212 Service service = mapper.readValue(
1213 new File(RESOURCE_PATH + "CatalogDBService_getServiceInstanceNOAAIInput.json"), Service.class);
1214 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
1215 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "genericVnfId");
1217 ServiceModel serviceModel = new ServiceModel();
1218 serviceModel.setCurrentService(service);
1219 String bbName = AssignFlows.VOLUME_GROUP.toString();
1220 String resourceId = "123";
1221 doNothing().when(SPY_bbInputSetup).mapCatalogVolumeGroup(isA(VolumeGroup.class), eq(modelInfo), eq(service),
1222 eq("vnfModelCustomizationUUID"));
1223 org.onap.aai.domain.yang.GenericVnf aaiGenericVnf = new org.onap.aai.domain.yang.GenericVnf();
1224 aaiGenericVnf.setModelCustomizationId("vnfModelCustomizationUUID");
1225 doReturn(aaiGenericVnf).when(SPY_bbInputSetupUtils).getAAIGenericVnf(vnf.getVnfId());
1227 lookupKeyMap.put(ResourceKey.VOLUME_GROUP_ID, "volumeGroupId");
1228 BBInputSetupParameter parameter = new BBInputSetupParameter.Builder().setRequestId(REQUEST_ID)
1229 .setModelInfo(modelInfo).setService(service).setBbName(bbName).setServiceInstance(serviceInstance)
1230 .setLookupKeyMap(lookupKeyMap).setResourceId(resourceId).setRequestDetails(requestDetails)
1231 .setInstanceName(reqInfo.getInstanceName()).setServiceModel(serviceModel).build();
1232 SPY_bbInputSetup.populateVolumeGroup(parameter);
1233 verify(SPY_bbInputSetup, times(1)).mapCatalogVolumeGroup(eq(vg), isA(ModelInfo.class), eq(service),
1234 eq("vnfModelCustomizationUUID"));
1235 vnf.getVolumeGroups().clear();
1236 SPY_bbInputSetup.populateVolumeGroup(parameter);
1237 verify(SPY_bbInputSetup, times(1)).mapCatalogVolumeGroup(vnf.getVolumeGroups().get(0), modelInfo, service,
1238 "vnfModelCustomizationUUID");
1242 public void testMapCatalogVolumeGroup() {
1243 VolumeGroup volumeGroup = new VolumeGroup();
1244 RequestDetails requestDetails = new RequestDetails();
1245 ModelInfo modelInfo = new ModelInfo();
1246 modelInfo.setModelCustomizationUuid("modelCustomizationUUID");
1247 requestDetails.setModelInfo(modelInfo);
1248 Service service = new Service();
1249 VnfResourceCustomization resourceCust = new VnfResourceCustomization();
1250 resourceCust.setModelCustomizationUUID("vnfModelCustomizationUUID");
1251 service.getVnfCustomizations().add(resourceCust);
1252 VfModuleCustomization vfResourceCust = new VfModuleCustomization();
1253 vfResourceCust.setModelCustomizationUUID("modelCustomizationUUID");
1254 ModelInfoVfModule modelInfoVfModule = new ModelInfoVfModule();
1255 resourceCust.getVfModuleCustomizations().add(vfResourceCust);
1257 doReturn(modelInfoVfModule).when(bbInputSetupMapperLayer).mapCatalogVfModuleToVfModule(vfResourceCust);
1259 SPY_bbInputSetup.mapCatalogVolumeGroup(volumeGroup, modelInfo, service, "vnfModelCustomizationUUID");
1261 assertEquals(modelInfoVfModule, volumeGroup.getModelInfoVfModule());
1265 public void testPopulateL3Network() throws JsonParseException, JsonMappingException, IOException {
1266 String instanceName = "networkName";
1267 ModelInfo modelInfo = new ModelInfo();
1268 modelInfo.setModelType(ModelType.network);
1270 ServiceInstance serviceInstance = new ServiceInstance();
1271 L3Network network = new L3Network();
1272 network.setNetworkId("networkId");
1273 network.setNetworkName("networkName");
1274 serviceInstance.getNetworks().add(network);
1275 String resourceId = "123";
1277 Service service = mapper.readValue(
1278 new File(RESOURCE_PATH + "CatalogDBService_getServiceInstanceNOAAIInput.json"), Service.class);
1279 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
1280 lookupKeyMap.put(ResourceKey.NETWORK_ID, "networkId");
1281 String bbName = AssignFlows.NETWORK_A_LA_CARTE.toString();
1283 doNothing().when(SPY_bbInputSetup).mapCatalogNetwork(network, modelInfo, service);
1285 BBInputSetupParameter parameter = new BBInputSetupParameter.Builder().setRequestId(REQUEST_ID)
1286 .setInstanceName(instanceName).setModelInfo(modelInfo).setService(service).setBbName(bbName)
1287 .setServiceInstance(serviceInstance).setLookupKeyMap(lookupKeyMap).setResourceId(resourceId).build();
1288 SPY_bbInputSetup.populateL3Network(parameter);
1290 lookupKeyMap.put(ResourceKey.NETWORK_ID, null);
1292 SPY_bbInputSetup.populateL3Network(parameter);
1293 verify(SPY_bbInputSetup, times(1)).mapCatalogNetwork(network, modelInfo, service);
1295 instanceName = "networkName2";
1296 L3Network network2 = SPY_bbInputSetup.createNetwork(lookupKeyMap, instanceName, resourceId, null, parameter);
1297 SPY_bbInputSetup.populateL3Network(parameter);
1298 verify(SPY_bbInputSetup, times(2)).mapCatalogNetwork(network2, modelInfo, service);
1302 public void testMapCatalogNetwork() {
1303 ModelInfoNetwork modelInfoNetwork = new ModelInfoNetwork();
1304 L3Network network = new L3Network();
1306 RequestDetails requestDetails = new RequestDetails();
1307 ModelInfo modelInfo = new ModelInfo();
1308 modelInfo.setModelCustomizationUuid("modelCustomizationUUID");
1309 requestDetails.setModelInfo(modelInfo);
1310 Service service = new Service();
1311 NetworkResourceCustomization resourceCust = new NetworkResourceCustomization();
1312 resourceCust.setModelCustomizationUUID("modelCustomizationUUID");
1313 service.setNetworkCustomizations(Arrays.asList(new NetworkResourceCustomization[] {resourceCust}));
1315 doReturn(modelInfoNetwork).when(bbInputSetupMapperLayer).mapCatalogNetworkToNetwork(resourceCust);
1317 SPY_bbInputSetup.mapCatalogNetwork(network, modelInfo, service);
1319 assertEquals(modelInfoNetwork, network.getModelInfoNetwork());
1323 public void testPopulateConfiguration() throws JsonParseException, JsonMappingException, IOException {
1324 String instanceName = "configurationName";
1325 ModelInfo modelInfo = new ModelInfo();
1326 modelInfo.setModelCustomizationUuid("72d9d1cd-f46d-447a-abdb-451d6fb05fa9");
1328 ServiceInstance serviceInstance = new ServiceInstance();
1329 Configuration configuration = new Configuration();
1330 configuration.setConfigurationId("configurationId");
1331 configuration.setConfigurationName("configurationName");
1332 serviceInstance.getConfigurations().add(configuration);
1333 String resourceId = "configurationId";
1334 String vnfcName = "vnfcName";
1336 Service service = mapper.readValue(
1337 new File(RESOURCE_PATH + "CatalogDBService_getServiceInstanceNOAAIInput.json"), Service.class);
1338 ConfigurationResourceCustomization configurationCust = new ConfigurationResourceCustomization();
1339 configurationCust.setModelCustomizationUUID("72d9d1cd-f46d-447a-abdb-451d6fb05fa9");
1340 service.getConfigurationCustomizations().add(configurationCust);
1341 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
1342 lookupKeyMap.put(ResourceKey.CONFIGURATION_ID, "configurationId");
1343 String bbName = AssignFlows.FABRIC_CONFIGURATION.toString();
1345 ServiceModel serviceModel = new ServiceModel();
1346 serviceModel.setCurrentService(service);
1348 ConfigurationResourceKeys configResourceKeys = prepareConfigurationResourceKeys();
1349 configResourceKeys.setVnfcName(vnfcName);
1350 Vnfc vnfc = new Vnfc();
1351 vnfc.setVnfcName(vnfcName);
1352 RequestDetails requestDetails = new RequestDetails();
1353 doNothing().when(SPY_bbInputSetup).mapCatalogConfiguration(configuration, modelInfo, service,
1354 configResourceKeys);
1355 doReturn(vnfc).when(SPY_bbInputSetup).getVnfcToConfiguration(vnfcName);
1356 BBInputSetupParameter parameter = new BBInputSetupParameter.Builder().setRequestId(REQUEST_ID)
1357 .setModelInfo(modelInfo).setService(service).setBbName(bbName).setServiceInstance(serviceInstance)
1358 .setLookupKeyMap(lookupKeyMap).setResourceId(resourceId).setInstanceName(instanceName)
1359 .setConfigurationResourceKeys(configResourceKeys).setRequestDetails(requestDetails)
1360 .setServiceModel(serviceModel).build();
1361 SPY_bbInputSetup.populateConfiguration(parameter);
1362 verify(SPY_bbInputSetup, times(1)).mapCatalogConfiguration(configuration, modelInfo, service,
1363 configResourceKeys);
1365 lookupKeyMap.put(ResourceKey.CONFIGURATION_ID, null);
1367 SPY_bbInputSetup.populateConfiguration(parameter);
1368 verify(SPY_bbInputSetup, times(2)).mapCatalogConfiguration(configuration, modelInfo, service,
1369 configResourceKeys);
1371 instanceName = "configurationName2";
1372 resourceId = "resourceId2";
1373 lookupKeyMap.put(ResourceKey.CONFIGURATION_ID, "configurationId2");
1374 parameter.setInstanceName(instanceName);
1375 parameter.setResourceId(resourceId);
1376 Configuration configuration2 = SPY_bbInputSetup.createConfiguration(lookupKeyMap, instanceName, resourceId);
1377 doReturn(configuration2).when(SPY_bbInputSetup).createConfiguration(lookupKeyMap, instanceName, resourceId);
1378 doNothing().when(SPY_bbInputSetup).mapCatalogConfiguration(configuration2, modelInfo, service,
1379 configResourceKeys);
1380 SPY_bbInputSetup.populateConfiguration(parameter);
1381 verify(SPY_bbInputSetup, times(1)).mapCatalogConfiguration(configuration2, modelInfo, service,
1382 configResourceKeys);
1386 public void testPopulateConfigurationReplace() throws JsonParseException, JsonMappingException, IOException {
1387 String instanceName = "configurationName";
1388 ModelInfo modelInfo = new ModelInfo();
1389 modelInfo.setModelCustomizationUuid("72d9d1cd-f46d-447a-abdb-451d6fb05fa9");
1391 ServiceInstance serviceInstance = new ServiceInstance();
1392 Configuration configuration = new Configuration();
1393 configuration.setConfigurationId("configurationId");
1394 configuration.setConfigurationName("configurationName");
1395 serviceInstance.getConfigurations().add(configuration);
1396 String resourceId = "configurationId";
1397 String vnfcName = "vnfcName";
1399 Service service = mapper.readValue(
1400 new File(RESOURCE_PATH + "CatalogDBService_getServiceInstanceNOAAIInput.json"), Service.class);
1401 ConfigurationResourceCustomization configurationCust = new ConfigurationResourceCustomization();
1402 configurationCust.setModelCustomizationUUID("72d9d1cd-f46d-447a-abdb-451d6fb05fa9");
1403 service.getConfigurationCustomizations().add(configurationCust);
1404 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
1405 lookupKeyMap.put(ResourceKey.CONFIGURATION_ID, "configurationId");
1406 String bbName = AssignFlows.FABRIC_CONFIGURATION.toString();
1408 ServiceModel serviceModel = new ServiceModel();
1409 serviceModel.setNewService(service);
1411 ConfigurationResourceKeys configResourceKeys = prepareConfigurationResourceKeys();
1412 configResourceKeys.setVnfcName(vnfcName);
1413 Vnfc vnfc = new Vnfc();
1414 vnfc.setVnfcName(vnfcName);
1415 RequestDetails requestDetails = mapper.readValue(
1416 new File(RESOURCE_PATH + "RequestDetailsInput_withRelatedInstanceList.json"), RequestDetails.class);
1417 doNothing().when(SPY_bbInputSetup).mapCatalogConfiguration(configuration, modelInfo, service,
1418 configResourceKeys);
1419 doReturn(vnfc).when(SPY_bbInputSetup).getVnfcToConfiguration(vnfcName);
1420 BBInputSetupParameter parameter = new BBInputSetupParameter.Builder().setRequestId(REQUEST_ID)
1421 .setModelInfo(modelInfo).setService(service).setBbName(bbName).setServiceInstance(serviceInstance)
1422 .setLookupKeyMap(lookupKeyMap).setResourceId(resourceId).setInstanceName(instanceName)
1423 .setConfigurationResourceKeys(configResourceKeys).setRequestDetails(requestDetails)
1424 .setServiceModel(serviceModel).setIsReplace(true).build();
1425 SPY_bbInputSetup.populateConfiguration(parameter);
1426 configResourceKeys.setVnfResourceCustomizationUUID("my-test-uuid");
1427 verify(SPY_bbInputSetup, times(1)).mapCatalogConfiguration(configuration, modelInfo, service,
1428 configResourceKeys);
1432 public void testMapCatalogConfiguration() {
1433 ModelInfoNetwork modelInfoNetwork = new ModelInfoNetwork();
1434 L3Network network = new L3Network();
1436 RequestDetails requestDetails = new RequestDetails();
1437 ModelInfo modelInfo = new ModelInfo();
1438 modelInfo.setModelCustomizationUuid("modelCustomizationUUID");
1439 requestDetails.setModelInfo(modelInfo);
1440 Service service = new Service();
1441 NetworkResourceCustomization resourceCust = new NetworkResourceCustomization();
1442 resourceCust.setModelCustomizationUUID("modelCustomizationUUID");
1443 service.setNetworkCustomizations(Arrays.asList(new NetworkResourceCustomization[] {resourceCust}));
1445 doReturn(modelInfoNetwork).when(bbInputSetupMapperLayer).mapCatalogNetworkToNetwork(resourceCust);
1447 SPY_bbInputSetup.mapCatalogNetwork(network, modelInfo, service);
1449 assertEquals(modelInfoNetwork, network.getModelInfoNetwork());
1453 public void testPopulateFabricConfiguration() throws JsonParseException, JsonMappingException, IOException {
1454 String instanceName = "configurationName";
1455 ModelInfo modelInfo = new ModelInfo();
1456 modelInfo.setModelCustomizationUuid("72d9d1cd-f46d-447a-abdb-451d6fb05fa9");
1458 ServiceInstance serviceInstance = new ServiceInstance();
1459 Configuration configuration = new Configuration();
1460 configuration.setConfigurationId("configurationId");
1461 configuration.setConfigurationName("configurationName");
1462 configuration.setConfigurationSubType("Fabric Config");
1463 serviceInstance.getConfigurations().add(configuration);
1464 String resourceId = "configurationId";
1465 String vnfcName = "vnfcName";
1467 Service service = mapper.readValue(
1468 new File(RESOURCE_PATH + "CatalogDBService_getServiceInstanceNOAAIInput.json"), Service.class);
1469 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
1470 lookupKeyMap.put(ResourceKey.CONFIGURATION_ID, "configurationId");
1471 String bbName = AssignFlows.FABRIC_CONFIGURATION.toString();
1472 ConfigurationResourceKeys configResourceKeys = prepareConfigurationResourceKeys();
1473 configResourceKeys.setVnfcName(vnfcName);
1474 Vnfc vnfc = new Vnfc();
1475 vnfc.setVnfcName(vnfcName);
1476 RequestDetails requestDetails = new RequestDetails();
1478 ServiceModel serviceModel = new ServiceModel();
1479 serviceModel.setCurrentService(service);
1481 CvnfcConfigurationCustomization vnfVfmoduleCvnfcConfigurationCustomization =
1482 new CvnfcConfigurationCustomization();
1483 ConfigurationResource configurationResource = new ConfigurationResource();
1484 configurationResource.setModelUUID("modelUUID");
1485 configurationResource.setModelInvariantUUID("modelInvariantUUID");
1486 vnfVfmoduleCvnfcConfigurationCustomization.setConfigurationResource(configurationResource);
1488 doReturn(null).when(SPY_bbInputSetup).findConfigurationResourceCustomization(modelInfo, service);
1489 doReturn(vnfc).when(SPY_bbInputSetup).getVnfcToConfiguration(vnfcName);
1490 BBInputSetupParameter parameter = new BBInputSetupParameter.Builder().setRequestId(REQUEST_ID)
1491 .setModelInfo(modelInfo).setService(service).setBbName(bbName).setServiceInstance(serviceInstance)
1492 .setLookupKeyMap(lookupKeyMap).setResourceId(resourceId).setInstanceName(instanceName)
1493 .setConfigurationResourceKeys(configResourceKeys).setRequestDetails(requestDetails)
1494 .setServiceModel(serviceModel).build();
1495 SPY_bbInputSetup.populateConfiguration(parameter);
1496 verify(SPY_bbInputSetup, times(1)).mapCatalogConfiguration(configuration, modelInfo, service,
1497 configResourceKeys);
1501 public void testPopulateGenericVnf() throws JsonParseException, JsonMappingException, IOException {
1502 org.onap.so.serviceinstancebeans.Platform platform = new org.onap.so.serviceinstancebeans.Platform();
1503 org.onap.so.serviceinstancebeans.LineOfBusiness lineOfBusiness =
1504 new org.onap.so.serviceinstancebeans.LineOfBusiness();
1505 String instanceName = "vnfName";
1506 ModelInfo modelInfo = new ModelInfo();
1507 modelInfo.setModelType(ModelType.vnf);
1508 ServiceInstance serviceInstance = new ServiceInstance();
1509 GenericVnf vnf = new GenericVnf();
1510 vnf.setVnfId("genericVnfId");
1511 vnf.setVnfName("vnfName");
1512 serviceInstance.getVnfs().add(vnf);
1513 String vnfType = "vnfType";
1514 String applicationId = "applicationId";
1515 RequestDetails requestDetails =
1516 mapper.readValue(new File(RESOURCE_PATH + "RequestDetails_CreateVnf.json"), RequestDetails.class);
1518 Service service = mapper.readValue(
1519 new File(RESOURCE_PATH + "CatalogDBService_getServiceInstanceNOAAIInput.json"), Service.class);
1520 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
1521 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "genericVnfId");
1522 String bbName = AssignFlows.VNF.toString();
1525 ServiceModel serviceModel = new ServiceModel();
1526 serviceModel.setCurrentService(service);
1528 Platform expectedPlatform = new Platform();
1529 LineOfBusiness expectedLineOfBusiness = new LineOfBusiness();
1530 String resourceId = "123";
1531 doReturn(expectedPlatform).when(bbInputSetupMapperLayer).mapRequestPlatform(platform);
1532 doReturn(expectedLineOfBusiness).when(bbInputSetupMapperLayer).mapRequestLineOfBusiness(lineOfBusiness);
1533 org.onap.aai.domain.yang.GenericVnf vnfAAI = new org.onap.aai.domain.yang.GenericVnf();
1534 vnfAAI.setModelCustomizationId("modelCustId");
1535 doReturn(vnfAAI).when(SPY_bbInputSetupUtils).getAAIGenericVnf(vnf.getVnfId());
1536 doNothing().when(SPY_bbInputSetup).mapCatalogVnf(vnf, modelInfo, service);
1537 org.onap.aai.domain.yang.InstanceGroup instanceGroupAAI = new org.onap.aai.domain.yang.InstanceGroup();
1538 doReturn(instanceGroupAAI).when(SPY_bbInputSetupUtils).getAAIInstanceGroup(any());
1539 org.onap.so.db.catalog.beans.InstanceGroup catalogInstanceGroup =
1540 new org.onap.so.db.catalog.beans.InstanceGroup();
1541 doReturn(catalogInstanceGroup).when(SPY_bbInputSetupUtils).getCatalogInstanceGroup(any());
1542 BBInputSetupParameter parameter = new BBInputSetupParameter.Builder().setRequestId(REQUEST_ID)
1543 .setModelInfo(modelInfo).setInstanceName(instanceName).setPlatform(platform)
1544 .setLineOfBusiness(lineOfBusiness).setService(service).setBbName(bbName)
1545 .setServiceInstance(serviceInstance).setLookupKeyMap(lookupKeyMap)
1546 .setRelatedInstanceList(requestDetails.getRelatedInstanceList()).setResourceId(resourceId)
1547 .setVnfType(vnfType).setProductFamilyId(requestDetails.getRequestInfo().getProductFamilyId())
1548 .setServiceModel(serviceModel).build();
1549 SPY_bbInputSetup.populateGenericVnf(parameter);
1551 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, null);
1553 SPY_bbInputSetup.populateGenericVnf(parameter);
1554 verify(SPY_bbInputSetup, times(1)).mapCatalogVnf(vnf, modelInfo, service);
1556 instanceName = "vnfName2";
1557 GenericVnf vnf2 = SPY_bbInputSetup.createGenericVnf(lookupKeyMap, instanceName, platform, lineOfBusiness,
1558 resourceId, vnfType, null, requestDetails.getRequestInfo().getProductFamilyId(), applicationId);
1560 doNothing().when(SPY_bbInputSetup).mapNetworkCollectionInstanceGroup(vnf2, "{instanceGroupId}");
1561 doNothing().when(SPY_bbInputSetup).mapVnfcCollectionInstanceGroup(vnf2, modelInfo, service);
1563 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "genericVnfId2");
1565 SPY_bbInputSetup.populateGenericVnf(parameter);
1566 verify(SPY_bbInputSetup, times(2)).mapCatalogVnf(vnf2, modelInfo, service);
1567 verify(SPY_bbInputSetup, times(2)).mapNetworkCollectionInstanceGroup(vnf2, "{instanceGroupId}");
1568 verify(SPY_bbInputSetup, times(2)).mapVnfcCollectionInstanceGroup(vnf2, modelInfo, service);
1570 assertEquals("modelCustId", modelInfo.getModelCustomizationUuid());
1575 public void testPopulateGenericVnfReplace() throws JsonParseException, JsonMappingException, IOException {
1576 org.onap.so.serviceinstancebeans.Platform platform = new org.onap.so.serviceinstancebeans.Platform();
1577 org.onap.so.serviceinstancebeans.LineOfBusiness lineOfBusiness =
1578 new org.onap.so.serviceinstancebeans.LineOfBusiness();
1579 String instanceName = "vnfName";
1580 ModelInfo modelInfo = new ModelInfo();
1581 modelInfo.setModelType(ModelType.vnf);
1582 ServiceInstance serviceInstance = new ServiceInstance();
1583 GenericVnf vnf = new GenericVnf();
1584 vnf.setVnfId("genericVnfId");
1585 vnf.setVnfName("vnfName");
1586 serviceInstance.getVnfs().add(vnf);
1587 String vnfType = "vnfType";
1588 String applicationId = "applicationId";
1589 RequestDetails requestDetails =
1590 mapper.readValue(new File(RESOURCE_PATH + "RequestDetails_CreateVnf.json"), RequestDetails.class);
1592 Service service = mapper.readValue(
1593 new File(RESOURCE_PATH + "CatalogDBService_getServiceInstanceNOAAIInput.json"), Service.class);
1594 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
1595 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "genericVnfId");
1596 String bbName = AssignFlows.VNF.toString();
1598 String resourceId = "123";
1599 org.onap.aai.domain.yang.GenericVnf vnfAAI = new org.onap.aai.domain.yang.GenericVnf();
1600 vnfAAI.setModelCustomizationId("modelCustId");
1601 doReturn(vnfAAI).when(SPY_bbInputSetupUtils).getAAIGenericVnf(vnf.getVnfId());
1602 doNothing().when(SPY_bbInputSetup).mapCatalogVnf(vnf, modelInfo, service);
1603 org.onap.aai.domain.yang.InstanceGroup instanceGroupAAI = new org.onap.aai.domain.yang.InstanceGroup();
1604 doReturn(instanceGroupAAI).when(SPY_bbInputSetupUtils).getAAIInstanceGroup(any());
1605 org.onap.so.db.catalog.beans.InstanceGroup catalogInstanceGroup =
1606 new org.onap.so.db.catalog.beans.InstanceGroup();
1607 doReturn(catalogInstanceGroup).when(SPY_bbInputSetupUtils).getCatalogInstanceGroup(any());
1609 BBInputSetupParameter parameter = new BBInputSetupParameter.Builder().setModelInfo(modelInfo)
1610 .setInstanceName(instanceName).setPlatform(platform).setLineOfBusiness(lineOfBusiness)
1611 .setService(service).setBbName(bbName).setServiceInstance(serviceInstance).setLookupKeyMap(lookupKeyMap)
1612 .setRelatedInstanceList(requestDetails.getRelatedInstanceList()).setResourceId(resourceId)
1613 .setVnfType(vnfType).setProductFamilyId(requestDetails.getRequestInfo().getProductFamilyId())
1614 .setApplicationId(applicationId).setIsReplace(true).build();
1616 SPY_bbInputSetup.populateGenericVnf(parameter);
1618 assertEquals("my-test-uuid", modelInfo.getModelCustomizationUuid());
1623 public void testMapVnfcCollectionInstanceGroup() {
1624 VnfResourceCustomization vnfResourceCust = Mockito.mock(VnfResourceCustomization.class);
1625 GenericVnf genericVnf = new GenericVnf();
1626 ModelInfo modelInfo = Mockito.mock(ModelInfo.class);
1627 Service service = Mockito.mock(Service.class);
1628 org.onap.so.db.catalog.beans.InstanceGroup instanceGroup = new org.onap.so.db.catalog.beans.InstanceGroup();
1629 instanceGroup.setModelUUID("modelUUID");
1630 List<VnfcInstanceGroupCustomization> vnfcInstanceGroups = new ArrayList<>();
1631 VnfcInstanceGroupCustomization vnfcInstanceGroupCust = new VnfcInstanceGroupCustomization();
1632 vnfcInstanceGroupCust.setInstanceGroup(instanceGroup);
1633 vnfcInstanceGroupCust.setFunction("function");
1634 vnfcInstanceGroupCust.setDescription("description");
1635 vnfcInstanceGroups.add(vnfcInstanceGroupCust);
1637 ModelInfoInstanceGroup modelInfoInstanceGroup = new ModelInfoInstanceGroup();
1638 modelInfoInstanceGroup.setModelUUID("modelUUID");
1639 doReturn(vnfResourceCust).when(SPY_bbInputSetup).getVnfResourceCustomizationFromService(modelInfo, service);
1640 doReturn(vnfcInstanceGroups).when(vnfResourceCust).getVnfcInstanceGroupCustomizations();
1641 doReturn(instanceGroup).when(SPY_bbInputSetupUtils).getCatalogInstanceGroup("modelUUID");
1642 doReturn(modelInfoInstanceGroup).when(bbInputSetupMapperLayer).mapCatalogInstanceGroupToInstanceGroup(null,
1645 SPY_bbInputSetup.mapVnfcCollectionInstanceGroup(genericVnf, modelInfo, service);
1647 assertEquals("Instance Group was created", true, genericVnf.getInstanceGroups().size() == 1);
1651 public void testPopulateGenericVnfWhereVnfTypeIsNull()
1652 throws JsonParseException, JsonMappingException, IOException {
1653 org.onap.so.serviceinstancebeans.Platform platform = new org.onap.so.serviceinstancebeans.Platform();
1654 org.onap.so.serviceinstancebeans.LineOfBusiness lineOfBusiness =
1655 new org.onap.so.serviceinstancebeans.LineOfBusiness();
1656 String instanceName = "vnfName";
1657 ModelInfo modelInfo = new ModelInfo();
1658 modelInfo.setModelType(ModelType.vnf);
1660 ServiceInstance serviceInstance = new ServiceInstance();
1661 GenericVnf vnf = new GenericVnf();
1662 vnf.setVnfId("genericVnfId");
1663 vnf.setVnfName("vnfName");
1664 serviceInstance.getVnfs().add(vnf);
1665 String vnfType = null;
1666 RequestDetails requestDetails =
1667 mapper.readValue(new File(RESOURCE_PATH + "RequestDetails_CreateVnf.json"), RequestDetails.class);
1669 Service service = mapper.readValue(
1670 new File(RESOURCE_PATH + "CatalogDBService_getServiceInstanceNOAAIInput.json"), Service.class);
1671 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
1672 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "genericVnfId");
1673 String bbName = AssignFlows.VNF.toString();
1675 Platform expectedPlatform = new Platform();
1676 LineOfBusiness expectedLineOfBusiness = new LineOfBusiness();
1677 String resourceId = "123";
1678 String applicationId = "applicationId";
1679 doReturn(expectedPlatform).when(bbInputSetupMapperLayer).mapRequestPlatform(platform);
1680 doReturn(expectedLineOfBusiness).when(bbInputSetupMapperLayer).mapRequestLineOfBusiness(lineOfBusiness);
1681 org.onap.aai.domain.yang.GenericVnf vnfAAI = new org.onap.aai.domain.yang.GenericVnf();
1682 vnfAAI.setModelCustomizationId("modelCustId");
1683 doReturn(vnfAAI).when(SPY_bbInputSetupUtils).getAAIGenericVnf(vnf.getVnfId());
1684 doNothing().when(SPY_bbInputSetup).mapCatalogVnf(vnf, modelInfo, service);
1685 org.onap.aai.domain.yang.InstanceGroup instanceGroupAAI = new org.onap.aai.domain.yang.InstanceGroup();
1686 doReturn(instanceGroupAAI).when(SPY_bbInputSetupUtils).getAAIInstanceGroup(any());
1687 org.onap.so.db.catalog.beans.InstanceGroup catalogInstanceGroup =
1688 new org.onap.so.db.catalog.beans.InstanceGroup();
1689 doReturn(catalogInstanceGroup).when(SPY_bbInputSetupUtils).getCatalogInstanceGroup(any());
1690 BBInputSetupParameter parameter = new BBInputSetupParameter.Builder().setRequestId(REQUEST_ID)
1691 .setModelInfo(modelInfo).setInstanceName(instanceName).setPlatform(platform)
1692 .setLineOfBusiness(lineOfBusiness).setService(service).setBbName(bbName)
1693 .setServiceInstance(serviceInstance).setLookupKeyMap(lookupKeyMap)
1694 .setRelatedInstanceList(requestDetails.getRelatedInstanceList()).setResourceId(resourceId)
1695 .setVnfType(vnfType).setProductFamilyId(requestDetails.getRequestInfo().getProductFamilyId()).build();
1696 SPY_bbInputSetup.populateGenericVnf(parameter);
1698 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, null);
1700 SPY_bbInputSetup.populateGenericVnf(parameter);
1701 verify(SPY_bbInputSetup, times(1)).mapCatalogVnf(vnf, modelInfo, service);
1703 instanceName = "vnfName2";
1704 GenericVnf vnf2 = SPY_bbInputSetup.createGenericVnf(lookupKeyMap, instanceName, platform, lineOfBusiness,
1705 resourceId, vnfType, null, requestDetails.getRequestInfo().getProductFamilyId(), applicationId);
1707 org.onap.aai.domain.yang.GenericVnf vnf2AAI = new org.onap.aai.domain.yang.GenericVnf();
1708 vnfAAI.setModelCustomizationId("modelCustId2");
1709 doReturn(vnf2AAI).when(SPY_bbInputSetupUtils).getAAIGenericVnf(vnf2.getVnfId());
1710 doNothing().when(SPY_bbInputSetup).mapCatalogVnf(vnf2, modelInfo, service);
1711 doNothing().when(SPY_bbInputSetup).mapNetworkCollectionInstanceGroup(vnf2, "{instanceGroupId}");
1712 SPY_bbInputSetup.populateGenericVnf(parameter);
1713 verify(SPY_bbInputSetup, times(2)).mapCatalogVnf(vnf2, modelInfo, service);
1714 verify(SPY_bbInputSetup, times(2)).mapNetworkCollectionInstanceGroup(vnf2, "{instanceGroupId}");
1715 verify(SPY_bbInputSetup, times(1)).mapVnfcCollectionInstanceGroup(vnf2, modelInfo, service);
1719 public void testMapCatalogVnf() {
1720 ModelInfoGenericVnf modelInfoGenericVnf = new ModelInfoGenericVnf();
1721 GenericVnf genericVnf = new GenericVnf();
1722 RequestDetails requestDetails = new RequestDetails();
1723 ModelInfo modelInfo = new ModelInfo();
1724 modelInfo.setModelCustomizationUuid("modelCustomizationUUID");
1725 requestDetails.setModelInfo(modelInfo);
1726 Service service = new Service();
1727 VnfResourceCustomization resourceCust = new VnfResourceCustomization();
1728 resourceCust.setModelCustomizationUUID("vnfModelCustomizationUUID");
1729 service.getVnfCustomizations().add(resourceCust);
1730 resourceCust.setModelCustomizationUUID("modelCustomizationUUID");
1732 doReturn(modelInfoGenericVnf).when(bbInputSetupMapperLayer).mapCatalogVnfToVnf(resourceCust);
1734 SPY_bbInputSetup.mapCatalogVnf(genericVnf, modelInfo, service);
1736 assertEquals(modelInfoGenericVnf, genericVnf.getModelInfoGenericVnf());
1740 public void testMapCatalogPnf() {
1741 ModelInfoPnf modelInfoPnf = new ModelInfoPnf();
1742 Pnf pnf = new Pnf();
1743 RequestDetails requestDetails = new RequestDetails();
1744 ModelInfo modelInfo = new ModelInfo();
1745 modelInfo.setModelCustomizationUuid("modelCustomizationUUID");
1746 requestDetails.setModelInfo(modelInfo);
1747 Service service = new Service();
1749 PnfResourceCustomization resourceCust = new PnfResourceCustomization();
1750 resourceCust.setModelCustomizationUUID("pnfModelCustomizationUUID");
1751 service.getPnfCustomizations().add(resourceCust);
1752 resourceCust.setModelCustomizationUUID("modelCustomizationUUID");
1754 doReturn(modelInfoPnf).when(bbInputSetupMapperLayer).mapCatalogPnfToPnf(resourceCust);
1756 SPY_bbInputSetup.mapCatalogPnf(pnf, modelInfo, service);
1758 assertEquals(modelInfoPnf, pnf.getModelInfoPnf());
1762 public void testMapCatalogCollectionAndInstanceGroup() {
1763 ModelInfoCollection modelInfoCollection = new ModelInfoCollection();
1764 modelInfoCollection.setCollectionFunction("collectionFunction");
1765 modelInfoCollection.setCollectionRole("collectionRole");
1766 modelInfoCollection.setCollectionType("collectionType");
1767 modelInfoCollection.setDescription("description");
1768 modelInfoCollection.setModelInvariantUUID("modelInvariantUUID");
1769 modelInfoCollection.setQuantity(0);
1771 ModelInfoInstanceGroup modelInfoInstanceGroup = new ModelInfoInstanceGroup();
1772 modelInfoInstanceGroup.setFunction("function");
1773 modelInfoInstanceGroup.setInstanceGroupRole("instanceGroupRole");
1774 modelInfoInstanceGroup.setModelInvariantUUID("modelInvariantUUID");
1775 modelInfoInstanceGroup.setModelUUID("modelUUID");
1776 modelInfoInstanceGroup.setType("VNFC");
1777 modelInfoInstanceGroup.setDescription("description");
1779 InstanceGroup instanceGroup = new InstanceGroup();
1780 Collection collection = new Collection();
1781 collection.setInstanceGroup(instanceGroup);
1783 CollectionResource collectionResource = new CollectionResource();
1784 org.onap.so.db.catalog.beans.InstanceGroup catalogInstanceGroup =
1785 new org.onap.so.db.catalog.beans.InstanceGroup();
1786 collectionResource.setToscaNodeType("NetworkCollection");
1787 collectionResource.setInstanceGroup(catalogInstanceGroup);
1789 CollectionResourceCustomization collectionCust = new NetworkCollectionResourceCustomization();
1790 collectionCust.setModelCustomizationUUID("modelCustomizationUUID");
1791 collectionCust.setCollectionResource(collectionResource);
1793 Service service = new Service();
1794 service.getCollectionResourceCustomizations().add(collectionCust);
1795 ServiceInstance serviceInstance = new ServiceInstance();
1796 serviceInstance.setCollection(collection);
1798 List<CollectionResourceInstanceGroupCustomization> instanceGroupCustList = new ArrayList<>();
1799 CollectionResourceInstanceGroupCustomization instanceGroupCust =
1800 new CollectionResourceInstanceGroupCustomization();
1801 instanceGroupCust.setFunction("function");
1802 instanceGroupCust.setDescription("description");
1804 doReturn(modelInfoCollection).when(bbInputSetupMapperLayer).mapCatalogCollectionToCollection(collectionCust,
1805 collectionResource);
1807 doReturn(modelInfoInstanceGroup).when(bbInputSetupMapperLayer)
1808 .mapCatalogInstanceGroupToInstanceGroup(collectionCust, catalogInstanceGroup);
1810 SPY_bbInputSetup.mapCatalogCollection(service, serviceInstance.getCollection(), "modelCustomizationUUID");
1811 SPY_bbInputSetup.mapCatalogNetworkCollectionInstanceGroup(service,
1812 serviceInstance.getCollection().getInstanceGroup(), collectionCust.getModelCustomizationUUID());
1814 assertThat(collection.getModelInfoCollection(), sameBeanAs(modelInfoCollection));
1815 assertThat(instanceGroup.getModelInfoInstanceGroup(), sameBeanAs(modelInfoInstanceGroup));
1819 public void testAddRelationshipsToSI() throws Exception {
1820 ServiceInstance serviceInstance = new ServiceInstance();
1821 org.onap.aai.domain.yang.ServiceInstance serviceInstanceAAI = new org.onap.aai.domain.yang.ServiceInstance();
1822 serviceInstanceAAI.setServiceInstanceId("serviceInstanceId");
1824 org.onap.aai.domain.yang.RelationshipList relationshipList = new org.onap.aai.domain.yang.RelationshipList();
1825 org.onap.aai.domain.yang.Relationship relationship = new org.onap.aai.domain.yang.Relationship();
1826 relationshipList.getRelationship().add(relationship);
1827 serviceInstanceAAI.setRelationshipList(relationshipList);
1829 Map<String, String> uriKeys = new HashMap<>();
1830 uriKeys.put("global-customer-id", "globalCustomerId");
1831 uriKeys.put("service-type", "serviceType");
1834 doNothing().when(SPY_bbInputSetup).mapProject(any(), eq(serviceInstance));
1835 doNothing().when(SPY_bbInputSetup).mapOwningEntity(any(), eq(serviceInstance));
1836 doNothing().when(SPY_bbInputSetup).mapL3Networks(any(), eq(serviceInstance.getNetworks()));
1837 doNothing().when(SPY_bbInputSetup).mapGenericVnfs(any(), eq(serviceInstance.getVnfs()));
1838 doNothing().when(SPY_bbInputSetup).mapCollection(any(), eq(serviceInstance));
1840 SPY_bbInputSetup.addRelationshipsToSI(serviceInstanceAAI, serviceInstance);
1842 verify(SPY_bbInputSetup, times(1)).mapProject(any(), eq(serviceInstance));
1843 verify(SPY_bbInputSetup, times(1)).mapOwningEntity(any(), eq(serviceInstance));
1844 verify(SPY_bbInputSetup, times(1)).mapL3Networks(any(), eq(serviceInstance.getNetworks()));
1845 verify(SPY_bbInputSetup, times(1)).mapGenericVnfs(any(), eq(serviceInstance.getVnfs()));
1846 verify(SPY_bbInputSetup, times(1)).mapCollection(any(), eq(serviceInstance));
1847 verify(SPY_bbInputSetup, times(1)).mapConfigurations(any(), eq(serviceInstance.getConfigurations()));
1851 public void testMapConfigurations() throws JsonProcessingException {
1852 org.onap.aai.domain.yang.Configuration expectedAAI = new org.onap.aai.domain.yang.Configuration();
1853 org.onap.aai.domain.yang.RelationshipList relationshipList = new org.onap.aai.domain.yang.RelationshipList();
1854 org.onap.aai.domain.yang.Relationship relationship = new org.onap.aai.domain.yang.Relationship();
1855 relationshipList.getRelationship().add(relationship);
1856 expectedAAI.setRelationshipList(relationshipList);
1858 Configuration expected = new Configuration();
1859 AAIResourceUri aaiResourceUri =
1860 AAIUriFactory.createResourceUri(AAIFluentTypeBuilder.network().configuration("configurationId"));
1861 AAIResultWrapper configurationWrapper =
1862 new AAIResultWrapper(new AAICommonObjectMapperProvider().getMapper().writeValueAsString(expectedAAI));
1864 doReturn(configurationWrapper).when(SPY_bbInputSetupUtils).getAAIResourceDepthOne(aaiResourceUri);
1865 doReturn(expected).when(bbInputSetupMapperLayer)
1866 .mapAAIConfiguration(isA(org.onap.aai.domain.yang.Configuration.class));
1868 List<Configuration> configurations = new ArrayList<>();
1870 SPY_bbInputSetup.mapConfigurations(Arrays.asList(new AAIResourceUri[] {aaiResourceUri}), configurations);
1872 assertEquals(expected, configurations.get(0));
1876 public void testMapGenericVnfs() throws JsonProcessingException {
1877 org.onap.aai.domain.yang.GenericVnf expectedAAI = new org.onap.aai.domain.yang.GenericVnf();
1878 org.onap.aai.domain.yang.RelationshipList relationshipList = new org.onap.aai.domain.yang.RelationshipList();
1879 org.onap.aai.domain.yang.Relationship relationship = new org.onap.aai.domain.yang.Relationship();
1880 relationshipList.getRelationship().add(relationship);
1881 expectedAAI.setRelationshipList(relationshipList);
1883 GenericVnf expected = new GenericVnf();
1884 AAIResourceUri aaiResourceUri =
1885 AAIUriFactory.createResourceUri(AAIFluentTypeBuilder.network().genericVnf("vnfId"));
1886 AAIResultWrapper vnfWrapper =
1887 new AAIResultWrapper(new AAICommonObjectMapperProvider().getMapper().writeValueAsString(expectedAAI));
1889 doReturn(vnfWrapper).when(SPY_bbInputSetupUtils).getAAIResourceDepthOne(aaiResourceUri);
1890 doReturn(expected).when(bbInputSetupMapperLayer)
1891 .mapAAIGenericVnfIntoGenericVnf(isA(org.onap.aai.domain.yang.GenericVnf.class));
1892 doNothing().when(SPY_bbInputSetup).mapPlatform(any(), eq(expected));
1893 doNothing().when(SPY_bbInputSetup).mapLineOfBusiness(any(), eq(expected));
1894 doReturn(new ArrayList<>()).when(SPY_bbInputSetup).mapVolumeGroups(any());
1896 List<GenericVnf> genericVnfs = new ArrayList<>();
1898 SPY_bbInputSetup.mapGenericVnfs(Arrays.asList(new AAIResourceUri[] {aaiResourceUri}), genericVnfs);
1900 assertEquals(expected, genericVnfs.get(0));
1901 verify(SPY_bbInputSetup, times(1)).mapPlatform(any(), eq(expected));
1902 verify(SPY_bbInputSetup, times(1)).mapLineOfBusiness(any(), eq(expected));
1903 verify(SPY_bbInputSetup, times(1)).mapVolumeGroups(any());
1907 public void testMapPnfs() throws JsonProcessingException {
1908 org.onap.aai.domain.yang.Pnf expectedAAI = new org.onap.aai.domain.yang.Pnf();
1909 org.onap.aai.domain.yang.RelationshipList relationshipList = new org.onap.aai.domain.yang.RelationshipList();
1910 org.onap.aai.domain.yang.Relationship relationship = new org.onap.aai.domain.yang.Relationship();
1911 relationshipList.getRelationship().add(relationship);
1912 expectedAAI.setRelationshipList(relationshipList);
1914 Pnf expected = new Pnf();
1915 AAIResourceUri aaiResourceUri = AAIUriFactory.createResourceUri(AAIFluentTypeBuilder.network().pnf("pnfId"));
1916 AAIResultWrapper pnfWrapper =
1917 new AAIResultWrapper(new AAICommonObjectMapperProvider().getMapper().writeValueAsString(expectedAAI));
1919 doReturn(pnfWrapper).when(SPY_bbInputSetupUtils).getAAIResourceDepthOne(aaiResourceUri);
1920 doReturn(expected).when(bbInputSetupMapperLayer).mapAAIPnfIntoPnf(isA(org.onap.aai.domain.yang.Pnf.class));
1922 List<Pnf> pnfs = new ArrayList<>();
1924 SPY_bbInputSetup.mapPnfs(Arrays.asList(aaiResourceUri), pnfs);
1926 assertEquals(expected, pnfs.get(0));
1930 public void testMapVolumeGroups() throws JsonProcessingException {
1931 org.onap.aai.domain.yang.VolumeGroup expectedAAI = new org.onap.aai.domain.yang.VolumeGroup();
1933 VolumeGroup expected = new VolumeGroup();
1934 AAIResultWrapper vnfWrapper =
1935 new AAIResultWrapper(new AAICommonObjectMapperProvider().getMapper().writeValueAsString(expectedAAI));
1937 doReturn(expected).when(bbInputSetupMapperLayer)
1938 .mapAAIVolumeGroup(isA(org.onap.aai.domain.yang.VolumeGroup.class));
1940 List<VolumeGroup> volumeGroupsList =
1941 SPY_bbInputSetup.mapVolumeGroups(Arrays.asList(new AAIResultWrapper[] {vnfWrapper}));
1943 assertEquals(expected, volumeGroupsList.get(0));
1947 public void testMapLineOfBusiness() throws JsonProcessingException {
1948 org.onap.aai.domain.yang.LineOfBusiness expectedAAI = new org.onap.aai.domain.yang.LineOfBusiness();
1950 LineOfBusiness expected = new LineOfBusiness();
1951 AAIResultWrapper vnfWrapper =
1952 new AAIResultWrapper(new AAICommonObjectMapperProvider().getMapper().writeValueAsString(expectedAAI));
1954 doReturn(expected).when(bbInputSetupMapperLayer)
1955 .mapAAILineOfBusiness(isA(org.onap.aai.domain.yang.LineOfBusiness.class));
1957 GenericVnf vnf = new GenericVnf();
1959 SPY_bbInputSetup.mapLineOfBusiness(Arrays.asList(new AAIResultWrapper[] {vnfWrapper}), vnf);
1961 assertEquals(expected, vnf.getLineOfBusiness());
1965 public void testMapPlatform() throws JsonProcessingException {
1966 org.onap.aai.domain.yang.Platform expectedAAI = new org.onap.aai.domain.yang.Platform();
1968 Platform expected = new Platform();
1969 AAIResultWrapper vnfWrapper =
1970 new AAIResultWrapper(new AAICommonObjectMapperProvider().getMapper().writeValueAsString(expectedAAI));
1972 doReturn(expected).when(bbInputSetupMapperLayer).mapAAIPlatform(isA(org.onap.aai.domain.yang.Platform.class));
1974 GenericVnf vnf = new GenericVnf();
1976 SPY_bbInputSetup.mapPlatform(Arrays.asList(new AAIResultWrapper[] {vnfWrapper}), vnf);
1978 assertEquals(expected, vnf.getPlatform());
1982 public void testMapCollection() throws JsonProcessingException {
1983 List<AAIResultWrapper> collections = new ArrayList<>();
1984 ServiceInstance serviceInstance = new ServiceInstance();
1986 org.onap.aai.domain.yang.Collection aaiCollection = new org.onap.aai.domain.yang.Collection();
1987 org.onap.aai.domain.yang.RelationshipList collectionRelationshipList =
1988 new org.onap.aai.domain.yang.RelationshipList();
1989 org.onap.aai.domain.yang.Relationship collectionInstanceGroupRelationship =
1990 new org.onap.aai.domain.yang.Relationship();
1991 collectionRelationshipList.getRelationship().add(collectionInstanceGroupRelationship);
1992 aaiCollection.setRelationshipList(collectionRelationshipList);
1994 collections.add(new AAIResultWrapper(
1995 new AAICommonObjectMapperProvider().getMapper().writeValueAsString(aaiCollection)));
1997 Collection collection = new Collection();
1998 ModelInfoCollection modelInfoCollection = new ModelInfoCollection();
1999 List<InstanceGroup> instanceGroupsList = new ArrayList<>();
2000 InstanceGroup instanceGroup = new InstanceGroup();
2001 instanceGroupsList.add(instanceGroup);
2002 NetworkCollectionResourceCustomization networkCollectionCust =
2003 Mockito.mock(NetworkCollectionResourceCustomization.class);
2004 CollectionResource collectionResource = new CollectionResource();
2005 doReturn(collection).when(bbInputSetupMapperLayer)
2006 .mapAAICollectionIntoCollection(isA(org.onap.aai.domain.yang.Collection.class));
2007 doReturn(instanceGroupsList).when(SPY_bbInputSetup).mapInstanceGroups(any());
2008 doReturn(networkCollectionCust).when(SPY_bbInputSetupUtils)
2009 .getCatalogNetworkCollectionResourceCustByID(aaiCollection.getCollectionCustomizationId());
2010 doReturn(collectionResource).when(networkCollectionCust).getCollectionResource();
2011 doReturn(modelInfoCollection).when(bbInputSetupMapperLayer)
2012 .mapCatalogCollectionToCollection(networkCollectionCust, collectionResource);
2014 SPY_bbInputSetup.mapCollection(collections, serviceInstance);
2016 assertEquals(collection, serviceInstance.getCollection());
2017 assertEquals(instanceGroup, collection.getInstanceGroup());
2019 instanceGroupsList.clear();
2020 collection = new Collection();
2022 SPY_bbInputSetup.mapCollection(collections, serviceInstance);
2023 assertEquals(collection, serviceInstance.getCollection());
2024 assertNull(collection.getInstanceGroup());
2028 public void testMapL3Networks() throws JsonProcessingException {
2029 org.onap.aai.domain.yang.L3Network expectedAAI = new org.onap.aai.domain.yang.L3Network();
2030 org.onap.aai.domain.yang.RelationshipList relationshipList = new org.onap.aai.domain.yang.RelationshipList();
2031 org.onap.aai.domain.yang.Relationship relationship = new org.onap.aai.domain.yang.Relationship();
2032 relationshipList.getRelationship().add(relationship);
2033 expectedAAI.setRelationshipList(relationshipList);
2035 L3Network expected = new L3Network();
2036 List<L3Network> l3Networks = new ArrayList<>();
2037 AAIResultWrapper l3NetworksWrapper =
2038 new AAIResultWrapper(new AAICommonObjectMapperProvider().getMapper().writeValueAsString(expectedAAI));
2039 AAIResourceUri aaiResourceUri =
2040 AAIUriFactory.createResourceUri(AAIFluentTypeBuilder.network().l3Network("networkId"));
2042 doReturn(l3NetworksWrapper).when(SPY_bbInputSetupUtils).getAAIResourceDepthTwo(aaiResourceUri);
2043 doReturn(expected).when(bbInputSetupMapperLayer).mapAAIL3Network(isA(org.onap.aai.domain.yang.L3Network.class));
2044 doNothing().when(SPY_bbInputSetup).mapNetworkPolicies(any(), eq(expected.getNetworkPolicies()));
2045 doNothing().when(SPY_bbInputSetup).mapRouteTableReferences(any(),
2046 eq(expected.getContrailNetworkRouteTableReferences()));
2048 SPY_bbInputSetup.mapL3Networks(Arrays.asList(new AAIResourceUri[] {aaiResourceUri}), l3Networks);
2050 assertEquals(expected, l3Networks.get(0));
2051 verify(SPY_bbInputSetup, times(1)).mapNetworkPolicies(any(), eq(expected.getNetworkPolicies()));
2052 verify(SPY_bbInputSetup, times(1)).mapRouteTableReferences(any(),
2053 eq(expected.getContrailNetworkRouteTableReferences()));
2057 public void testMapRouteTableReferences() throws JsonProcessingException {
2058 org.onap.aai.domain.yang.RouteTableReference expectedAAI = new org.onap.aai.domain.yang.RouteTableReference();
2060 RouteTableReference expected = new RouteTableReference();
2061 List<RouteTableReference> contrailNetworkRouteTableReferences = new ArrayList<>();
2062 AAIResultWrapper vnfWrapper =
2063 new AAIResultWrapper(new AAICommonObjectMapperProvider().getMapper().writeValueAsString(expectedAAI));
2065 doReturn(expected).when(bbInputSetupMapperLayer).mapAAIRouteTableReferenceIntoRouteTableReference(
2066 isA(org.onap.aai.domain.yang.RouteTableReference.class));
2068 SPY_bbInputSetup.mapRouteTableReferences(Arrays.asList(new AAIResultWrapper[] {vnfWrapper}),
2069 contrailNetworkRouteTableReferences);
2071 assertEquals(expected, contrailNetworkRouteTableReferences.get(0));
2075 public void testMapOwningEntity() throws JsonProcessingException {
2076 org.onap.aai.domain.yang.OwningEntity expectedAAI = new org.onap.aai.domain.yang.OwningEntity();
2078 OwningEntity expected = new OwningEntity();
2079 AAIResultWrapper vnfWrapper =
2080 new AAIResultWrapper(new AAICommonObjectMapperProvider().getMapper().writeValueAsString(expectedAAI));
2082 doReturn(expected).when(bbInputSetupMapperLayer)
2083 .mapAAIOwningEntity(isA(org.onap.aai.domain.yang.OwningEntity.class));
2085 ServiceInstance serviceInstance = new ServiceInstance();
2087 SPY_bbInputSetup.mapOwningEntity(Arrays.asList(new AAIResultWrapper[] {vnfWrapper}), serviceInstance);
2089 assertEquals(expected, serviceInstance.getOwningEntity());
2093 public void testMapProject() throws JsonProcessingException {
2094 org.onap.aai.domain.yang.Project expectedAAI = new org.onap.aai.domain.yang.Project();
2096 Project expected = new Project();
2097 AAIResultWrapper vnfWrapper =
2098 new AAIResultWrapper(new AAICommonObjectMapperProvider().getMapper().writeValueAsString(expectedAAI));
2100 doReturn(expected).when(bbInputSetupMapperLayer).mapAAIProject(isA(org.onap.aai.domain.yang.Project.class));
2102 ServiceInstance serviceInstance = new ServiceInstance();
2104 SPY_bbInputSetup.mapProject(Arrays.asList(new AAIResultWrapper[] {vnfWrapper}), serviceInstance);
2106 assertEquals(expected, serviceInstance.getProject());
2110 public void testMapCustomer() throws Exception {
2111 org.onap.aai.domain.yang.Customer customerAAI = new org.onap.aai.domain.yang.Customer();
2112 org.onap.aai.domain.yang.ServiceSubscription serviceSubscriptionAAI =
2113 new org.onap.aai.domain.yang.ServiceSubscription();
2115 Customer expected = new Customer();
2116 ServiceSubscription serviceSubscription = new ServiceSubscription();
2118 String globalCustomerId = "globalCustomerId";
2119 String subscriptionServiceType = "subscriptionServiceType";
2121 doReturn(customerAAI).when(SPY_bbInputSetupUtils).getAAICustomer(globalCustomerId);
2122 doReturn(serviceSubscriptionAAI).when(SPY_bbInputSetupUtils).getAAIServiceSubscription(globalCustomerId,
2123 subscriptionServiceType);
2124 doReturn(expected).when(bbInputSetupMapperLayer).mapAAICustomer(isA(org.onap.aai.domain.yang.Customer.class));
2125 doReturn(serviceSubscription).when(bbInputSetupMapperLayer)
2126 .mapAAIServiceSubscription(isA(org.onap.aai.domain.yang.ServiceSubscription.class));
2128 Customer actual = SPY_bbInputSetup.mapCustomer(globalCustomerId, subscriptionServiceType);
2130 assertEquals(expected, actual);
2131 assertEquals(serviceSubscription, expected.getServiceSubscription());
2135 public void testPopulateLookupKeyMapWithIds() {
2136 Map<ResourceKey, String> expected = new HashMap<>();
2137 Map<ResourceKey, String> actual = new HashMap<>();
2138 String serviceInstanceId = "serviceInstanceId";
2139 String networkId = "networkId";
2140 String vnfId = "vnfId";
2141 String pnfId = "pnfId";
2142 String vfModuleId = "vfModuleId";
2143 String volumeGroupId = "volumeGroupId";
2144 String configurationId = "configurationId";
2145 String instanceGroupId = "instancegroupId";
2146 String vnfInstanceName = "vnfInstanceName";
2147 String vfModuleInstanceName = "vfModuleInstanceName";
2148 String childServiceInstanceId = "childServiceInstanceId";
2149 String childServiceInstanceName = "childServiceInstanceName";
2150 String pnfInstanceName = "pnfInstanceName";
2152 expected.put(ResourceKey.SERVICE_INSTANCE_ID, serviceInstanceId);
2153 expected.put(ResourceKey.NETWORK_ID, networkId);
2154 expected.put(ResourceKey.GENERIC_VNF_ID, vnfId);
2155 expected.put(ResourceKey.PNF, pnfId);
2156 expected.put(ResourceKey.VF_MODULE_ID, vfModuleId);
2157 expected.put(ResourceKey.VOLUME_GROUP_ID, volumeGroupId);
2158 expected.put(ResourceKey.CONFIGURATION_ID, configurationId);
2159 expected.put(ResourceKey.INSTANCE_GROUP_ID, instanceGroupId);
2160 expected.put(ResourceKey.VNF_INSTANCE_NAME, vnfInstanceName);
2161 expected.put(ResourceKey.VF_MODULE_INSTANCE_NAME, vfModuleInstanceName);
2162 expected.put(ResourceKey.CHILD_SERVICE_INSTANCE_ID, childServiceInstanceId);
2163 expected.put(ResourceKey.CHILD_SERVICE_INSTANCE_NAME, childServiceInstanceName);
2164 expected.put(ResourceKey.PNF_INSTANCE_NAME, pnfInstanceName);
2166 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2167 workflowResourceIds.setServiceInstanceId(serviceInstanceId);
2168 workflowResourceIds.setNetworkId(networkId);
2169 workflowResourceIds.setVnfId(vnfId);
2170 workflowResourceIds.setPnfId(pnfId);
2171 workflowResourceIds.setVfModuleId(vfModuleId);
2172 workflowResourceIds.setVolumeGroupId(volumeGroupId);
2173 workflowResourceIds.setConfigurationId(configurationId);
2174 workflowResourceIds.setInstanceGroupId(instanceGroupId);
2175 workflowResourceIds.setVnfInstanceName(vnfInstanceName);
2176 workflowResourceIds.setVfModuleInstanceName(vfModuleInstanceName);
2177 workflowResourceIds.setChildServiceInstanceId(childServiceInstanceId);
2178 workflowResourceIds.setChildServiceInstanceName(childServiceInstanceName);
2179 workflowResourceIds.setPnfInstanceName(pnfInstanceName);
2181 SPY_bbInputSetup.populateLookupKeyMapWithIds(workflowResourceIds, actual);
2183 assertThat(actual, sameBeanAs(expected));
2187 public void testGetVfModulesByInstanceName() throws IOException {
2188 org.onap.so.serviceinstancebeans.Service serviceMacro = mapper.readValue(
2189 new File(RESOURCE_PATH + "ServiceMacroVfModules.json"), org.onap.so.serviceinstancebeans.Service.class);
2190 Resources resources = serviceMacro.getResources();
2191 VfModules expectedVfModule = resources.getVnfs().get(0).getVfModules().get(2);
2192 assertEquals(expectedVfModule,
2193 SPY_bbInputSetup.getVfModulesByInstanceName("vmxnjr001_AVPN_base_vRE_BV_expansion_002", resources));
2197 public void testGetVfModulesByKey() throws IOException {
2198 org.onap.so.serviceinstancebeans.Service serviceMacro = mapper.readValue(
2199 new File(RESOURCE_PATH + "ServiceMacroVfModules.json"), org.onap.so.serviceinstancebeans.Service.class);
2200 Resources resources = serviceMacro.getResources();
2201 VfModules expectedVfModule = resources.getVnfs().get(0).getVfModules().get(0);
2202 assertEquals(expectedVfModule,
2203 SPY_bbInputSetup.getVfModulesByKey("a25e8e8c-58b8-4eec-810c-97dcc1f5cb7f", resources));
2207 public void testFindVnfsByInstanceName() throws IOException {
2208 org.onap.so.serviceinstancebeans.Service serviceMacro = mapper.readValue(
2209 new File(RESOURCE_PATH + "ServiceMacroVfModules.json"), org.onap.so.serviceinstancebeans.Service.class);
2210 Resources resources = serviceMacro.getResources();
2211 Vnfs expectedVnf = resources.getVnfs().get(0);
2212 assertEquals(expectedVnf, SPY_bbInputSetup.findVnfsByInstanceName("vmxnjr001", resources));
2216 public void testVnfsByKey() throws IOException {
2217 org.onap.so.serviceinstancebeans.Service serviceMacro = mapper.readValue(
2218 new File(RESOURCE_PATH + "ServiceMacroVfModules.json"), org.onap.so.serviceinstancebeans.Service.class);
2219 Resources resources = serviceMacro.getResources();
2220 Vnfs expectedVnf = resources.getVnfs().get(0);
2221 assertEquals(expectedVnf, SPY_bbInputSetup.findVnfsByKey("ab153b6e-c364-44c0-bef6-1f2982117f04", resources));
2225 public void testGBBMacroNoUserParamsVrfConfiguration() throws Exception {
2226 String resourceId = "123";
2227 String vnfType = "vnfType";
2228 String requestAction = "createInstance";
2229 Service service = Mockito.mock(Service.class);
2230 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
2231 GeneralBuildingBlock.class);
2232 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
2233 ExecuteBuildingBlock.class);
2234 RequestDetails requestDetails = mapper
2235 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacroVrf.json"), RequestDetails.class);
2236 Map<ResourceKey, String> lookupKeyMap = prepareLookupKeyMap();
2238 ConfigurationResourceKeys configResourceKeys = prepareConfigurationResourceKeys();
2239 executeBB.setConfigurationResourceKeys(configResourceKeys).setRequestDetails(requestDetails);
2240 BuildingBlock buildingBlock = executeBB.getBuildingBlock();
2241 buildingBlock.setBpmnFlowName("AssignVrfConfigurationBB");
2242 buildingBlock.setKey("72d9d1cd-f46d-447a-abdb-451d6fb05fa9");
2244 doReturn(gBB).when(SPY_bbInputSetup).getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
2245 requestAction, lookupKeyMap.get(ResourceKey.SERVICE_INSTANCE_ID));
2246 doReturn(service).when(SPY_bbInputSetupUtils)
2247 .getCatalogServiceByModelUUID(gBB.getServiceInstance().getModelInfoServiceInstance().getModelUuid());
2249 RelatedInstance relatedVpnBinding = new RelatedInstance();
2250 relatedVpnBinding.setInstanceId("vpnBindingInstanceId");
2251 RelatedInstance relatedLocalNetwork = new RelatedInstance();
2252 relatedLocalNetwork.setInstanceId("localNetworkInstanceId");
2253 org.onap.aai.domain.yang.VpnBinding aaiVpnBinding = new org.onap.aai.domain.yang.VpnBinding();
2254 aaiVpnBinding.setVpnId("vpnBindingId");
2255 org.onap.aai.domain.yang.L3Network aaiLocalNetwork = new org.onap.aai.domain.yang.L3Network();
2256 aaiLocalNetwork.setNetworkId("localNetworkId");
2257 Optional<org.onap.aai.domain.yang.VpnBinding> aaiAICVpnBindingOp =
2258 Optional.of(new org.onap.aai.domain.yang.VpnBinding());
2259 aaiAICVpnBindingOp.get().setVpnId("AICVpnBindingId");
2260 ServiceProxy proxy = new ServiceProxy();
2261 proxy.setType("transport");
2262 proxy.setServiceInstance(new ServiceInstance());
2263 proxy.getServiceInstance().setModelInfoServiceInstance(new ModelInfoServiceInstance());
2264 proxy.getServiceInstance().getModelInfoServiceInstance().setModelUuid("sourceServiceModelUUID");
2265 doReturn(relatedVpnBinding).when(SPY_bbInputSetupUtils).getRelatedInstanceByType(requestDetails,
2266 ModelType.vpnBinding);
2267 doReturn(relatedLocalNetwork).when(SPY_bbInputSetupUtils).getRelatedInstanceByType(requestDetails,
2269 doReturn(aaiVpnBinding).when(SPY_bbInputSetupUtils).getAAIVpnBinding(relatedVpnBinding.getInstanceId());
2270 doReturn(aaiLocalNetwork).when(SPY_bbInputSetupUtils).getAAIL3Network(relatedLocalNetwork.getInstanceId());
2271 doReturn(aaiAICVpnBindingOp).when(SPY_bbInputSetupUtils).getAICVpnBindingFromNetwork(aaiLocalNetwork);
2272 doReturn(proxy).when(SPY_bbInputSetup).getServiceProxy(service);
2274 Configuration configuration = new Configuration();
2275 configuration.setConfigurationId("configurationId");
2276 gBB.getServiceInstance().getConfigurations().add(configuration);
2277 List<ConfigurationResourceCustomization> configurationCustList = new ArrayList<>();
2278 ConfigurationResourceCustomization configurationCust = new ConfigurationResourceCustomization();
2279 configurationCust.setModelCustomizationUUID("72d9d1cd-f46d-447a-abdb-451d6fb05fa9");
2280 configurationCustList.add(configurationCust);
2281 doNothing().when(SPY_bbInputSetup).populateConfiguration(any(BBInputSetupParameter.class));
2283 gBB = SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
2284 verify(SPY_bbInputSetup, times(1)).populateConfiguration(any(BBInputSetupParameter.class));
2285 assertEquals(gBB.getCustomer().getVpnBindings().get(0).getVpnId(), "vpnBindingId");
2286 assertEquals(gBB.getServiceInstance().getNetworks().get(0).getNetworkId(), "localNetworkId");
2287 assertEquals(gBB.getServiceInstance().getNetworks().get(0).getVpnBindings().get(0).getVpnId(),
2289 assertEquals(gBB.getServiceInstance().getServiceProxies().get(0).getType(), "transport");
2293 public void testGetServiceProxy() {
2294 ServiceProxy expected = new ServiceProxy();
2295 expected.setType("TRANSPORT");
2296 expected.setModelInfoServiceProxy(new ModelInfoServiceProxy());
2297 expected.getModelInfoServiceProxy().setModelUuid("modelUUID");
2298 expected.getModelInfoServiceProxy().setModelInstanceName("modelInstanceName");
2299 expected.setServiceInstance(new ServiceInstance());
2300 expected.getServiceInstance().setModelInfoServiceInstance(new ModelInfoServiceInstance());
2301 expected.getServiceInstance().getModelInfoServiceInstance().setModelUuid("modelUUID");
2302 expected.getServiceInstance().getModelInfoServiceInstance().setServiceType("TRANSPORT");
2303 Service service = new Service();
2304 ServiceProxyResourceCustomization serviceProxyCatalog = new ServiceProxyResourceCustomization();
2305 serviceProxyCatalog.setModelCustomizationUUID("modelCustomizationUUID");
2306 serviceProxyCatalog.setModelInstanceName("modelInstanceName");
2307 Service sourceService = new Service();
2308 sourceService.setModelUUID("modelUUID");
2309 sourceService.setServiceType("TRANSPORT");
2310 serviceProxyCatalog.setSourceService(sourceService);
2311 service.setServiceProxyCustomizations(new ArrayList<ServiceProxyResourceCustomization>());
2312 service.getServiceProxyCustomizations().add(serviceProxyCatalog);
2313 ServiceProxy actual = SPY_bbInputSetup.getServiceProxy(service);
2314 assertThat(actual, sameBeanAs(expected));
2318 public void testgetGBBMacroWithEmptyUserParams() throws Exception {
2319 String resourceId = "123";
2320 String vnfType = "vnfType";
2321 String requestAction = "createInstance";
2322 Service service = Mockito.mock(Service.class);
2323 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
2324 GeneralBuildingBlock.class);
2325 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
2326 ExecuteBuildingBlock.class);
2327 RequestDetails requestDetails = mapper
2328 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
2329 requestDetails.getRequestParameters().getUserParams().clear();
2330 org.onap.aai.domain.yang.GenericVnf aaiVnf = new org.onap.aai.domain.yang.GenericVnf();
2331 aaiVnf.setModelCustomizationId("modelCustId");
2332 Map<ResourceKey, String> lookupKeyMap = prepareLookupKeyMap();
2333 BuildingBlock buildingBlock = executeBB.getBuildingBlock();
2334 buildingBlock.setBpmnFlowName(AssignFlows.NETWORK_MACRO.toString())
2335 .setKey("ab153b6e-c364-44c0-bef6-1f2982117f04").setIsVirtualLink(false);
2337 doReturn(gBB).when(SPY_bbInputSetup).getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
2338 requestAction, lookupKeyMap.get(ResourceKey.SERVICE_INSTANCE_ID));
2339 doReturn(service).when(SPY_bbInputSetupUtils)
2340 .getCatalogServiceByModelUUID(gBB.getServiceInstance().getModelInfoServiceInstance().getModelUuid());
2342 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
2343 verify(SPY_bbInputSetup, times(1)).getGBBMacroNoUserParamsCreate(any(ExecuteBuildingBlock.class), any(),
2344 any(String.class), any(String.class), any(GeneralBuildingBlock.class), any(Service.class));
2347 @Test(expected = Exception.class)
2348 public void testgetGBBMacroException() throws Exception {
2349 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
2350 ExecuteBuildingBlock.class);
2351 RequestDetails requestDetails = mapper
2352 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
2353 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
2354 String resourceId = "123";
2355 String vnfType = "vnfType";
2356 String requestAction = "createInstance";
2358 BuildingBlock buildingBlock = executeBB.getBuildingBlock();
2359 buildingBlock.setBpmnFlowName("Network").setKey("ab153b6e-c364-44c0-bef6-1f2982117f04");
2361 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
2365 public void test_getGBBMacroForVnfTypeNull_populateL3Network_shouldBeCalled() throws Exception {
2367 String resourceId = "123";
2368 String vnfType = "null";
2369 String requestAction = "createInstance";
2370 Service service = Mockito.mock(Service.class);
2371 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
2372 GeneralBuildingBlock.class);
2373 Map<ResourceKey, String> lookupKeyMap = prepareLookupKeyMap();
2375 ConfigurationResourceKeys configResourceKeys = prepareConfigurationResourceKeys();
2376 RequestDetails requestDetails = mapper
2377 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
2378 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
2379 ExecuteBuildingBlock.class);
2380 executeBB.setConfigurationResourceKeys(configResourceKeys).setRequestDetails(requestDetails);
2381 BuildingBlock buildingBlock = executeBB.getBuildingBlock();
2382 buildingBlock.setBpmnFlowName(AssignFlows.NETWORK_MACRO.toString())
2383 .setKey("ab153b6e-c364-44c0-bef6-1f2982117f04");
2385 doReturn(gBB).when(SPY_bbInputSetup).getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
2386 requestAction, lookupKeyMap.get(ResourceKey.SERVICE_INSTANCE_ID));
2387 doReturn(service).when(SPY_bbInputSetupUtils)
2388 .getCatalogServiceByModelUUID(gBB.getServiceInstance().getModelInfoServiceInstance().getModelUuid());
2390 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
2392 verify(SPY_bbInputSetup, times(1)).populateL3Network(any(BBInputSetupParameter.class));
2396 public void testgetGBBMacroNoUserParamsDeactivateInstnace() throws Exception {
2397 String resourceId = "123";
2398 String vnfType = "vnfType";
2399 String requestAction = "deactivateInstance";
2400 Service service = Mockito.mock(Service.class);
2401 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
2402 GeneralBuildingBlock.class);
2403 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
2404 ExecuteBuildingBlock.class);
2405 RequestDetails requestDetails = mapper
2406 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
2407 requestDetails.getRequestParameters().setUserParams(null);
2408 org.onap.aai.domain.yang.GenericVnf aaiVnf = new org.onap.aai.domain.yang.GenericVnf();
2409 aaiVnf.setModelCustomizationId("modelCustId");
2410 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
2411 lookupKeyMap.put(ResourceKey.NETWORK_ID, "networkId");
2412 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "vnfId");
2413 lookupKeyMap.put(ResourceKey.VF_MODULE_ID, "vfModuleId");
2414 lookupKeyMap.put(ResourceKey.VOLUME_GROUP_ID, "volumeGroupId");
2415 lookupKeyMap.put(ResourceKey.SERVICE_INSTANCE_ID, "serviceInstanceId");
2416 BuildingBlock buildingBlock = executeBB.getBuildingBlock();
2417 buildingBlock.setBpmnFlowName("DeactivateServiceInstanceBB").setKey("3c40d244-808e-42ca-b09a-256d83d19d0a");
2419 doReturn(gBB).when(SPY_bbInputSetup).getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
2420 requestAction, lookupKeyMap.get(ResourceKey.SERVICE_INSTANCE_ID));
2421 doReturn(service).when(SPY_bbInputSetupUtils)
2422 .getCatalogServiceByModelUUID(gBB.getServiceInstance().getModelInfoServiceInstance().getModelUuid());
2424 GeneralBuildingBlock actual = SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap,
2425 requestAction, resourceId, vnfType);
2426 assertThat(actual, sameBeanAs(gBB));
2430 public void test_getGBBMacroNoUserParamsCreate_shouldBeCalled() throws Exception {
2432 String resourceId = "123";
2433 String vnfType = "vnfType";
2434 String requestAction = "createInstance";
2435 Service service = Mockito.mock(Service.class);
2436 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
2437 GeneralBuildingBlock.class);
2438 Map<ResourceKey, String> lookupKeyMap = prepareLookupKeyMap();
2439 List<NetworkResourceCustomization> networkCustList = new ArrayList<>();
2440 NetworkResourceCustomization networkCust = Mockito.mock(NetworkResourceCustomization.class);
2441 networkCustList.add(networkCust);
2443 ConfigurationResourceKeys configResourceKeys = prepareConfigurationResourceKeys();
2444 RequestDetails requestDetails = mapper
2445 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
2446 requestDetails.getRequestParameters().setUserParams(null);
2447 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
2448 ExecuteBuildingBlock.class);
2449 executeBB.setConfigurationResourceKeys(configResourceKeys).setRequestDetails(requestDetails);
2450 BuildingBlock buildingBlock = executeBB.getBuildingBlock();
2451 buildingBlock.setBpmnFlowName(AssignFlows.NETWORK_MACRO.toString())
2452 .setKey("ab153b6e-c364-44c0-bef6-1f2982117f04").setIsVirtualLink(false);
2454 doReturn(gBB).when(SPY_bbInputSetup).getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
2455 requestAction, lookupKeyMap.get(ResourceKey.SERVICE_INSTANCE_ID));
2456 doReturn(service).when(SPY_bbInputSetupUtils)
2457 .getCatalogServiceByModelUUID(gBB.getServiceInstance().getModelInfoServiceInstance().getModelUuid());
2458 doReturn(networkCustList).when(service).getNetworkCustomizations();
2459 doReturn("ab153b6e-c364-44c0-bef6-1f2982117f04").when(networkCust).getModelCustomizationUUID();
2460 doNothing().when(SPY_bbInputSetup).populateL3Network(any(BBInputSetupParameter.class));
2462 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
2464 verify(SPY_bbInputSetup, times(1)).getGBBMacroNoUserParamsCreate(executeBB, lookupKeyMap,
2465 executeBB.getBuildingBlock().getBpmnFlowName(), "ab153b6e-c364-44c0-bef6-1f2982117f04", gBB, service);
2469 public void test_getGBBMacroNoUserParamsCreate_shouldBeCalled_whenBBhasVirtualLink() throws Exception {
2471 String resourceId = "123";
2472 String vnfType = "vnfType";
2473 String requestAction = "createInstance";
2474 Service service = Mockito.mock(Service.class);
2475 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
2476 GeneralBuildingBlock.class);
2477 Map<ResourceKey, String> lookupKeyMap = prepareLookupKeyMap();
2478 List<NetworkResourceCustomization> networkCustList = new ArrayList<>();
2479 NetworkResourceCustomization networkCust = Mockito.mock(NetworkResourceCustomization.class);
2480 networkCustList.add(networkCust);
2481 CollectionNetworkResourceCustomization collectionNetworkResourceCust =
2482 Mockito.mock(CollectionNetworkResourceCustomization.class);
2483 org.onap.aai.domain.yang.GenericVnf aaiVnf = new org.onap.aai.domain.yang.GenericVnf();
2484 aaiVnf.setModelCustomizationId("modelCustId");
2485 ModelInfoNetwork modelInfoNetwork = Mockito.mock(ModelInfoNetwork.class);
2486 NetworkResourceCustomization networkResourceCustomization = Mockito.mock(NetworkResourceCustomization.class);
2488 ConfigurationResourceKeys configResourceKeys = prepareConfigurationResourceKeys();
2489 RequestDetails requestDetails = mapper
2490 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
2491 requestDetails.getRequestParameters().setUserParams(null);
2492 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
2493 ExecuteBuildingBlock.class);
2494 executeBB.setConfigurationResourceKeys(configResourceKeys).setRequestDetails(requestDetails);
2495 BuildingBlock buildingBlock = executeBB.getBuildingBlock();
2496 buildingBlock.setBpmnFlowName(AssignFlows.NETWORK_MACRO.toString())
2497 .setKey("ab153b6e-c364-44c0-bef6-1f2982117f04").setIsVirtualLink(true);
2499 doReturn(gBB).when(SPY_bbInputSetup).getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
2500 requestAction, lookupKeyMap.get(ResourceKey.SERVICE_INSTANCE_ID));
2501 doReturn(service).when(SPY_bbInputSetupUtils)
2502 .getCatalogServiceByModelUUID(gBB.getServiceInstance().getModelInfoServiceInstance().getModelUuid());
2503 doReturn(collectionNetworkResourceCust).when(SPY_bbInputSetupUtils)
2504 .getCatalogCollectionNetworkResourceCustByID(any(String.class));
2505 doReturn(networkResourceCustomization).when(bbInputSetupMapperLayer)
2506 .mapCollectionNetworkResourceCustToNetworkResourceCust(collectionNetworkResourceCust);
2507 doReturn(modelInfoNetwork).when(bbInputSetupMapperLayer)
2508 .mapCatalogNetworkToNetwork(networkResourceCustomization);
2510 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
2512 verify(SPY_bbInputSetup, times(1)).getGBBMacroNoUserParamsCreate(executeBB, lookupKeyMap,
2513 executeBB.getBuildingBlock().getBpmnFlowName(), "ab153b6e-c364-44c0-bef6-1f2982117f04", gBB, service);
2517 public void test_getGBBMacroNoUserParamsCreate_shouldBeCalled_whenBBhasVirtualLinkAndOtherFlowName()
2520 String otherFlowName = "CreateNetworkBB";
2521 String resourceId = "123";
2522 String vnfType = "vnfType";
2523 String requestAction = "createInstance";
2524 Service service = Mockito.mock(Service.class);
2525 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
2526 GeneralBuildingBlock.class);
2527 Map<ResourceKey, String> lookupKeyMap = prepareLookupKeyMap();
2528 List<NetworkResourceCustomization> networkCustList = new ArrayList<>();
2529 NetworkResourceCustomization networkCust = Mockito.mock(NetworkResourceCustomization.class);
2530 networkCustList.add(networkCust);
2531 CollectionNetworkResourceCustomization collectionNetworkResourceCust =
2532 Mockito.mock(CollectionNetworkResourceCustomization.class);
2534 ConfigurationResourceKeys configResourceKeys = prepareConfigurationResourceKeys();
2535 RequestDetails requestDetails = mapper
2536 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
2537 requestDetails.getRequestParameters().setUserParams(null);
2538 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
2539 ExecuteBuildingBlock.class);
2540 executeBB.setConfigurationResourceKeys(configResourceKeys).setRequestDetails(requestDetails);
2541 BuildingBlock buildingBlock = executeBB.getBuildingBlock();
2542 buildingBlock.setBpmnFlowName(otherFlowName).setKey("ab153b6e-c364-44c0-bef6-1f2982117f04")
2543 .setIsVirtualLink(true);
2545 doReturn(gBB).when(SPY_bbInputSetup).getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
2546 requestAction, lookupKeyMap.get(ResourceKey.SERVICE_INSTANCE_ID));
2547 doReturn(service).when(SPY_bbInputSetupUtils)
2548 .getCatalogServiceByModelUUID(gBB.getServiceInstance().getModelInfoServiceInstance().getModelUuid());
2549 doReturn(collectionNetworkResourceCust).when(SPY_bbInputSetupUtils)
2550 .getCatalogCollectionNetworkResourceCustByID(any(String.class));
2552 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
2554 verify(SPY_bbInputSetup, times(1)).getGBBMacroNoUserParamsCreate(executeBB, lookupKeyMap,
2555 executeBB.getBuildingBlock().getBpmnFlowName(), "ab153b6e-c364-44c0-bef6-1f2982117f04", gBB, service);
2558 @Test(expected = IllegalArgumentException.class)
2559 public void testgetGBBMacroNoUserParamsOtherException() throws Exception {
2560 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
2561 GeneralBuildingBlock.class);
2562 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
2563 ExecuteBuildingBlock.class);
2564 RequestDetails requestDetails = mapper
2565 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
2566 requestDetails.getRequestParameters().setUserParams(null);
2567 org.onap.aai.domain.yang.GenericVnf aaiVnf = new org.onap.aai.domain.yang.GenericVnf();
2568 aaiVnf.setModelCustomizationId("modelCustId");
2569 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
2570 lookupKeyMap.put(ResourceKey.NETWORK_ID, "networkId");
2571 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "vnfId");
2572 lookupKeyMap.put(ResourceKey.VF_MODULE_ID, "vfModuleId");
2573 lookupKeyMap.put(ResourceKey.VOLUME_GROUP_ID, "volumeGroupId");
2574 lookupKeyMap.put(ResourceKey.SERVICE_INSTANCE_ID, "serviceInstanceId");
2575 String resourceId = "123";
2576 String vnfType = "vnfType";
2577 Service service = Mockito.mock(Service.class);
2578 String requestAction = "assignInstance";
2579 doReturn(gBB).when(SPY_bbInputSetup).getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
2580 requestAction, lookupKeyMap.get(ResourceKey.SERVICE_INSTANCE_ID));
2581 doReturn(service).when(SPY_bbInputSetupUtils)
2582 .getCatalogServiceByModelUUID(gBB.getServiceInstance().getModelInfoServiceInstance().getModelUuid());
2583 String generatedId = "12131";
2585 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
2589 public void test_getGBBMacroNoUserParamsExistingService_forCatalogNetwork() throws Exception {
2591 String requestAction = "unassignInstance";
2592 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
2593 GeneralBuildingBlock.class);
2594 L3Network network = new L3Network();
2595 network.setNetworkId("networkId");
2596 gBB.getServiceInstance().getNetworks().add(network);
2597 ServiceInstance serviceInstance = gBB.getServiceInstance();
2598 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
2599 ExecuteBuildingBlock.class);
2600 RequestDetails requestDetails = mapper
2601 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
2602 requestDetails.getRequestParameters().setUserParams(null);
2603 Map<ResourceKey, String> lookupKeyMap = prepareLookupKeyMap();
2604 Service service = Mockito.mock(Service.class);
2605 CloudConfiguration cloudConfiguration = new CloudConfiguration();
2606 cloudConfiguration.setLcpCloudRegionId("cloudRegionId");
2607 org.onap.aai.domain.yang.ServiceInstance aaiServiceInstance = new org.onap.aai.domain.yang.ServiceInstance();
2608 org.onap.aai.domain.yang.L3Network aaiNetwork = new org.onap.aai.domain.yang.L3Network();
2609 aaiNetwork.setModelCustomizationId("modelCustId");
2611 ConfigurationResourceKeys configResourceKeys = prepareConfigurationResourceKeys();
2612 executeBB.setConfigurationResourceKeys(configResourceKeys).setRequestDetails(requestDetails);
2613 BuildingBlock buildingBlock = executeBB.getBuildingBlock();
2614 buildingBlock.setBpmnFlowName("DeleteNetworkBB").setKey("ab153b6e-c364-44c0-bef6-1f2982117f04");
2616 aaiServiceInstance.setModelVersionId("modelVersionId");
2617 doReturn(service).when(SPY_bbInputSetupUtils)
2618 .getCatalogServiceByModelUUID(aaiServiceInstance.getModelVersionId());
2619 doReturn(aaiServiceInstance).when(SPY_bbInputSetupUtils)
2620 .getAAIServiceInstanceById(lookupKeyMap.get(ResourceKey.SERVICE_INSTANCE_ID));
2621 doReturn(serviceInstance).when(SPY_bbInputSetup).getExistingServiceInstance(aaiServiceInstance);
2622 doReturn(gBB).when(SPY_bbInputSetup).populateGBBWithSIAndAdditionalInfo(any(BBInputSetupParameter.class));
2623 doReturn(aaiNetwork).when(SPY_bbInputSetupUtils).getAAIL3Network(network.getNetworkId());
2624 doNothing().when(SPY_bbInputSetup).mapCatalogNetwork(any(L3Network.class), any(ModelInfo.class),
2625 any(Service.class));
2627 SPY_bbInputSetup.getGBBMacroExistingService(executeBB, lookupKeyMap,
2628 executeBB.getBuildingBlock().getBpmnFlowName(), requestAction, null);
2630 verify(SPY_bbInputSetup, times(1)).mapCatalogNetwork(any(L3Network.class), any(ModelInfo.class),
2631 any(Service.class));
2635 public void test_getGBBMacroNoUserParamsExistingService_forControllerExecutionBB() throws Exception {
2637 String requestAction = "unassignInstance";
2638 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
2639 GeneralBuildingBlock.class);
2640 L3Network network = new L3Network();
2641 network.setNetworkId("networkId");
2642 gBB.getServiceInstance().getNetworks().add(network);
2643 ServiceInstance serviceInstance = gBB.getServiceInstance();
2644 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
2645 ExecuteBuildingBlock.class);
2646 RequestDetails requestDetails = mapper
2647 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
2648 requestDetails.getRequestParameters().setUserParams(null);
2649 Map<ResourceKey, String> lookupKeyMap = prepareLookupKeyMap();
2650 Service service = Mockito.mock(Service.class);
2651 CloudConfiguration cloudConfiguration = new CloudConfiguration();
2652 cloudConfiguration.setLcpCloudRegionId("cloudRegionId");
2653 org.onap.aai.domain.yang.ServiceInstance aaiServiceInstance = new org.onap.aai.domain.yang.ServiceInstance();
2654 org.onap.aai.domain.yang.L3Network aaiNetwork = new org.onap.aai.domain.yang.L3Network();
2655 aaiNetwork.setModelCustomizationId("modelCustId");
2656 GenericVnf vnf = new GenericVnf();
2657 vnf.setVnfId("vnfId");
2658 gBB.getServiceInstance().getVnfs().add(vnf);
2659 org.onap.aai.domain.yang.GenericVnf aaiVnf = new org.onap.aai.domain.yang.GenericVnf();
2660 aaiVnf.setModelCustomizationId("modelCustId");
2662 ConfigurationResourceKeys configResourceKeys = prepareConfigurationResourceKeys();
2663 executeBB.setConfigurationResourceKeys(configResourceKeys).setRequestDetails(requestDetails);
2664 BuildingBlock buildingBlock = executeBB.getBuildingBlock();
2665 buildingBlock.setBpmnFlowName("ControllerExecutionBB").setKey("ab153b6e-c364-44c0-bef6-1f2982117f04");
2666 buildingBlock.setBpmnScope("VNF");
2668 aaiServiceInstance.setModelVersionId("modelVersionId");
2669 doReturn(service).when(SPY_bbInputSetupUtils)
2670 .getCatalogServiceByModelUUID(aaiServiceInstance.getModelVersionId());
2671 doReturn(aaiServiceInstance).when(SPY_bbInputSetupUtils)
2672 .getAAIServiceInstanceById(lookupKeyMap.get(ResourceKey.SERVICE_INSTANCE_ID));
2673 doReturn(serviceInstance).when(SPY_bbInputSetup).getExistingServiceInstance(aaiServiceInstance);
2674 doReturn(gBB).when(SPY_bbInputSetup).populateGBBWithSIAndAdditionalInfo(any(BBInputSetupParameter.class));
2675 doReturn(aaiVnf).when(SPY_bbInputSetupUtils).getAAIGenericVnf(vnf.getVnfId());
2676 doNothing().when(SPY_bbInputSetup).mapCatalogVnf(any(GenericVnf.class), any(ModelInfo.class),
2677 any(Service.class));
2679 SPY_bbInputSetup.getGBBMacroExistingService(executeBB, lookupKeyMap,
2680 executeBB.getBuildingBlock().getBpmnFlowName(), requestAction, cloudConfiguration);
2682 verify(SPY_bbInputSetup, times(1)).mapCatalogVnf(any(GenericVnf.class), any(ModelInfo.class),
2683 any(Service.class));
2687 public void test_getGBBMacroNoUserParamsExistingService_forActivateVnfBB() throws Exception {
2689 String requestAction = "unassignInstance";
2690 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
2691 GeneralBuildingBlock.class);
2692 L3Network network = new L3Network();
2693 network.setNetworkId("networkId");
2694 gBB.getServiceInstance().getNetworks().add(network);
2695 ServiceInstance serviceInstance = gBB.getServiceInstance();
2696 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
2697 ExecuteBuildingBlock.class);
2698 RequestDetails requestDetails = mapper
2699 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
2700 requestDetails.getRequestParameters().setUserParams(null);
2701 Map<ResourceKey, String> lookupKeyMap = prepareLookupKeyMap();
2702 Service service = Mockito.mock(Service.class);
2703 CloudConfiguration cloudConfiguration = new CloudConfiguration();
2704 cloudConfiguration.setLcpCloudRegionId("cloudRegionId");
2705 org.onap.aai.domain.yang.ServiceInstance aaiServiceInstance = new org.onap.aai.domain.yang.ServiceInstance();
2706 org.onap.aai.domain.yang.L3Network aaiNetwork = new org.onap.aai.domain.yang.L3Network();
2707 aaiNetwork.setModelCustomizationId("modelCustId");
2708 GenericVnf vnf = new GenericVnf();
2709 vnf.setVnfId("vnfId");
2710 gBB.getServiceInstance().getVnfs().add(vnf);
2711 org.onap.aai.domain.yang.GenericVnf aaiVnf = new org.onap.aai.domain.yang.GenericVnf();
2712 aaiVnf.setModelCustomizationId("modelCustId");
2714 ConfigurationResourceKeys configResourceKeys = prepareConfigurationResourceKeys();
2715 executeBB.setConfigurationResourceKeys(configResourceKeys).setRequestDetails(requestDetails);
2716 BuildingBlock buildingBlock = executeBB.getBuildingBlock();
2717 buildingBlock.setBpmnFlowName("ActivateVnfBB").setKey("ab153b6e-c364-44c0-bef6-1f2982117f04");
2719 aaiServiceInstance.setModelVersionId("modelVersionId");
2720 doReturn(service).when(SPY_bbInputSetupUtils)
2721 .getCatalogServiceByModelUUID(aaiServiceInstance.getModelVersionId());
2722 doReturn(aaiServiceInstance).when(SPY_bbInputSetupUtils)
2723 .getAAIServiceInstanceById(lookupKeyMap.get(ResourceKey.SERVICE_INSTANCE_ID));
2724 doReturn(serviceInstance).when(SPY_bbInputSetup).getExistingServiceInstance(aaiServiceInstance);
2725 doReturn(gBB).when(SPY_bbInputSetup).populateGBBWithSIAndAdditionalInfo(any(BBInputSetupParameter.class));
2726 doReturn(aaiVnf).when(SPY_bbInputSetupUtils).getAAIGenericVnf(vnf.getVnfId());
2727 doNothing().when(SPY_bbInputSetup).mapCatalogVnf(any(GenericVnf.class), any(ModelInfo.class),
2728 any(Service.class));
2730 SPY_bbInputSetup.getGBBMacroExistingService(executeBB, lookupKeyMap,
2731 executeBB.getBuildingBlock().getBpmnFlowName(), requestAction, cloudConfiguration);
2733 verify(SPY_bbInputSetup, times(1)).mapCatalogVnf(any(GenericVnf.class), any(ModelInfo.class),
2734 any(Service.class));
2738 public void test_getGBBMacroNoUserParamsExistingService_forControllerExecutionBB_VFModule() throws Exception {
2740 String requestAction = "unassignInstance";
2741 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
2742 GeneralBuildingBlock.class);
2743 L3Network network = new L3Network();
2744 network.setNetworkId("networkId");
2745 gBB.getServiceInstance().getNetworks().add(network);
2746 ServiceInstance serviceInstance = gBB.getServiceInstance();
2747 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
2748 ExecuteBuildingBlock.class);
2749 RequestDetails requestDetails = mapper
2750 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
2751 requestDetails.getRequestParameters().setUserParams(null);
2752 Map<ResourceKey, String> lookupKeyMap = prepareLookupKeyMap();
2753 Service service = Mockito.mock(Service.class);
2754 CloudConfiguration cloudConfiguration = new CloudConfiguration();
2755 cloudConfiguration.setLcpCloudRegionId("cloudRegionId");
2756 org.onap.aai.domain.yang.ServiceInstance aaiServiceInstance = new org.onap.aai.domain.yang.ServiceInstance();
2757 org.onap.aai.domain.yang.L3Network aaiNetwork = new org.onap.aai.domain.yang.L3Network();
2758 aaiNetwork.setModelCustomizationId("modelCustId");
2759 GenericVnf vnf = new GenericVnf();
2760 vnf.setVnfId("vnfId");
2761 gBB.getServiceInstance().getVnfs().add(vnf);
2762 org.onap.aai.domain.yang.GenericVnf aaiVnf = new org.onap.aai.domain.yang.GenericVnf();
2763 aaiVnf.setModelCustomizationId("modelCustId");
2764 VfModule vfModule = new VfModule();
2765 vfModule.setVfModuleId("vfModuleId");
2766 gBB.getServiceInstance().getVnfs().get(0).getVfModules().add(vfModule);
2767 org.onap.aai.domain.yang.VfModule aaiVfModule = new org.onap.aai.domain.yang.VfModule();
2768 aaiVfModule.setModelCustomizationId("modelCustId");
2770 ConfigurationResourceKeys configResourceKeys = prepareConfigurationResourceKeys();
2771 executeBB.setConfigurationResourceKeys(configResourceKeys).setRequestDetails(requestDetails);
2772 BuildingBlock buildingBlock = executeBB.getBuildingBlock();
2773 buildingBlock.setBpmnFlowName("ControllerExecutionBB").setKey("a25e8e8c-58b8-4eec-810c-97dcc1f5cb7f");
2774 buildingBlock.setBpmnScope("VfModule");
2776 aaiServiceInstance.setModelVersionId("modelVersionId");
2777 doReturn(service).when(SPY_bbInputSetupUtils)
2778 .getCatalogServiceByModelUUID(aaiServiceInstance.getModelVersionId());
2779 doReturn(aaiServiceInstance).when(SPY_bbInputSetupUtils)
2780 .getAAIServiceInstanceById(lookupKeyMap.get(ResourceKey.SERVICE_INSTANCE_ID));
2781 doReturn(serviceInstance).when(SPY_bbInputSetup).getExistingServiceInstance(aaiServiceInstance);
2782 doReturn(gBB).when(SPY_bbInputSetup).populateGBBWithSIAndAdditionalInfo(any(BBInputSetupParameter.class));
2783 doReturn(aaiVnf).when(SPY_bbInputSetupUtils).getAAIGenericVnf(vnf.getVnfId());
2784 doNothing().when(SPY_bbInputSetup).mapCatalogVnf(any(GenericVnf.class), any(ModelInfo.class),
2785 any(Service.class));
2786 doReturn(aaiVfModule).when(SPY_bbInputSetupUtils).getAAIVfModule(vnf.getVnfId(), vfModule.getVfModuleId());
2788 SPY_bbInputSetup.getGBBMacroExistingService(executeBB, lookupKeyMap,
2789 executeBB.getBuildingBlock().getBpmnFlowName(), requestAction, cloudConfiguration);
2791 verify(SPY_bbInputSetup, times(1)).mapCatalogVnf(any(GenericVnf.class), any(ModelInfo.class),
2792 any(Service.class));
2793 verify(SPY_bbInputSetup, times(1)).mapCatalogVfModule(any(VfModule.class), any(ModelInfo.class),
2794 any(Service.class), any(String.class));
2798 public void test_getGBBMacroNoUserParamsExistingService_forUnassignVfModuleBB() throws Exception {
2800 String requestAction = "unassignInstance";
2801 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
2802 GeneralBuildingBlock.class);
2803 L3Network network = new L3Network();
2804 network.setNetworkId("networkId");
2805 gBB.getServiceInstance().getNetworks().add(network);
2806 ServiceInstance serviceInstance = gBB.getServiceInstance();
2807 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
2808 ExecuteBuildingBlock.class);
2809 RequestDetails requestDetails = mapper
2810 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
2811 requestDetails.getRequestParameters().setUserParams(null);
2812 Map<ResourceKey, String> lookupKeyMap = prepareLookupKeyMap();
2813 Service service = Mockito.mock(Service.class);
2814 CloudConfiguration cloudConfiguration = new CloudConfiguration();
2815 cloudConfiguration.setLcpCloudRegionId("cloudRegionId");
2816 org.onap.aai.domain.yang.ServiceInstance aaiServiceInstance = new org.onap.aai.domain.yang.ServiceInstance();
2817 org.onap.aai.domain.yang.L3Network aaiNetwork = new org.onap.aai.domain.yang.L3Network();
2818 aaiNetwork.setModelCustomizationId("modelCustId");
2819 GenericVnf vnf = new GenericVnf();
2820 vnf.setVnfId("vnfId");
2821 gBB.getServiceInstance().getVnfs().add(vnf);
2822 org.onap.aai.domain.yang.GenericVnf aaiVnf = new org.onap.aai.domain.yang.GenericVnf();
2823 aaiVnf.setModelCustomizationId("modelCustId");
2824 VfModule vfModule = new VfModule();
2825 vfModule.setVfModuleId("vfModuleId");
2826 gBB.getServiceInstance().getVnfs().get(0).getVfModules().add(vfModule);
2827 org.onap.aai.domain.yang.VfModule aaiVfModule = new org.onap.aai.domain.yang.VfModule();
2828 aaiVfModule.setModelCustomizationId("modelCustId");
2830 ConfigurationResourceKeys configResourceKeys = prepareConfigurationResourceKeys();
2831 executeBB.setConfigurationResourceKeys(configResourceKeys).setRequestDetails(requestDetails);
2832 BuildingBlock buildingBlock = executeBB.getBuildingBlock();
2833 buildingBlock.setBpmnFlowName("UnassignVfModuleBB").setKey("a25e8e8c-58b8-4eec-810c-97dcc1f5cb7f");
2835 aaiServiceInstance.setModelVersionId("modelVersionId");
2836 doReturn(service).when(SPY_bbInputSetupUtils)
2837 .getCatalogServiceByModelUUID(aaiServiceInstance.getModelVersionId());
2838 doReturn(aaiServiceInstance).when(SPY_bbInputSetupUtils)
2839 .getAAIServiceInstanceById(lookupKeyMap.get(ResourceKey.SERVICE_INSTANCE_ID));
2840 doReturn(serviceInstance).when(SPY_bbInputSetup).getExistingServiceInstance(aaiServiceInstance);
2841 doReturn(gBB).when(SPY_bbInputSetup).populateGBBWithSIAndAdditionalInfo(any(BBInputSetupParameter.class));
2842 doReturn(aaiVnf).when(SPY_bbInputSetupUtils).getAAIGenericVnf(vnf.getVnfId());
2843 doNothing().when(SPY_bbInputSetup).mapCatalogVnf(any(GenericVnf.class), any(ModelInfo.class),
2844 any(Service.class));
2845 doReturn(aaiVfModule).when(SPY_bbInputSetupUtils).getAAIVfModule(vnf.getVnfId(), vfModule.getVfModuleId());
2847 SPY_bbInputSetup.getGBBMacroExistingService(executeBB, lookupKeyMap,
2848 executeBB.getBuildingBlock().getBpmnFlowName(), requestAction, cloudConfiguration);
2850 verify(SPY_bbInputSetup, times(1)).mapCatalogVnf(any(GenericVnf.class), any(ModelInfo.class),
2851 any(Service.class));
2852 verify(SPY_bbInputSetup, times(1)).mapCatalogVfModule(any(VfModule.class), any(ModelInfo.class),
2853 any(Service.class), any(String.class));
2857 public void test_getGBBMacroNoUserParamsExistingService_forUnassignVolumeGroupBB() throws Exception {
2859 String requestAction = "unassignInstance";
2860 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
2861 GeneralBuildingBlock.class);
2862 L3Network network = new L3Network();
2863 network.setNetworkId("networkId");
2864 gBB.getServiceInstance().getNetworks().add(network);
2865 ServiceInstance serviceInstance = gBB.getServiceInstance();
2866 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
2867 ExecuteBuildingBlock.class);
2868 RequestDetails requestDetails = mapper
2869 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
2870 requestDetails.getRequestParameters().setUserParams(null);
2871 Map<ResourceKey, String> lookupKeyMap = prepareLookupKeyMap();
2872 Service service = Mockito.mock(Service.class);
2873 org.onap.aai.domain.yang.ServiceInstance aaiServiceInstance = new org.onap.aai.domain.yang.ServiceInstance();
2874 GenericVnf vnf = new GenericVnf();
2875 vnf.setVnfId("vnfId");
2876 gBB.getServiceInstance().getVnfs().add(vnf);
2877 org.onap.aai.domain.yang.GenericVnf aaiVnf = new org.onap.aai.domain.yang.GenericVnf();
2878 aaiVnf.setModelCustomizationId("modelCustId");
2879 VfModule vfModule = new VfModule();
2880 vfModule.setVfModuleId("vfModuleId");
2881 gBB.getServiceInstance().getVnfs().get(0).getVfModules().add(vfModule);
2882 CloudRegion cloudRegion = new CloudRegion();
2883 cloudRegion.setLcpCloudRegionId("cloudRegionId");
2884 cloudRegion.setCloudOwner("CloudOwner");
2885 VolumeGroup volumeGroup = new VolumeGroup();
2886 volumeGroup.setVolumeGroupId("volumeGroupId");
2887 gBB.getServiceInstance().getVnfs().get(0).getVolumeGroups().add(volumeGroup);
2888 org.onap.aai.domain.yang.VolumeGroup aaiVolumeGroup = new org.onap.aai.domain.yang.VolumeGroup();
2889 aaiVolumeGroup.setModelCustomizationId("modelCustId");
2891 ConfigurationResourceKeys configResourceKeys = prepareConfigurationResourceKeys();
2892 executeBB.setConfigurationResourceKeys(configResourceKeys).setRequestDetails(requestDetails);
2893 BuildingBlock buildingBlock = executeBB.getBuildingBlock();
2894 buildingBlock.setBpmnFlowName("UnassignVolumeGroupBB").setKey("72d9d1cd-f46d-447a-abdb-451d6fb05fa8");
2896 aaiServiceInstance.setModelVersionId("modelVersionId");
2897 doReturn(service).when(SPY_bbInputSetupUtils)
2898 .getCatalogServiceByModelUUID(aaiServiceInstance.getModelVersionId());
2899 doReturn(aaiServiceInstance).when(SPY_bbInputSetupUtils)
2900 .getAAIServiceInstanceById(lookupKeyMap.get(ResourceKey.SERVICE_INSTANCE_ID));
2901 doReturn(serviceInstance).when(SPY_bbInputSetup).getExistingServiceInstance(aaiServiceInstance);
2902 doReturn(gBB).when(SPY_bbInputSetup).populateGBBWithSIAndAdditionalInfo(any(BBInputSetupParameter.class));
2903 doReturn(aaiVnf).when(SPY_bbInputSetupUtils).getAAIGenericVnf(vnf.getVnfId());
2904 doNothing().when(SPY_bbInputSetup).mapCatalogVnf(any(GenericVnf.class), any(ModelInfo.class),
2905 any(Service.class));
2906 doReturn(aaiVolumeGroup).when(SPY_bbInputSetupUtils).getAAIVolumeGroup(cloudRegion.getCloudOwner(),
2907 cloudRegion.getLcpCloudRegionId(), volumeGroup.getVolumeGroupId());
2908 doReturn(Optional.of(cloudRegion)).when(SPY_cloudInfoFromAAI).getCloudInfoFromAAI(gBB.getServiceInstance());
2911 SPY_bbInputSetup.getGBBMacroExistingService(executeBB, lookupKeyMap,
2912 executeBB.getBuildingBlock().getBpmnFlowName(), requestAction, null);
2914 verify(SPY_bbInputSetup, times(1)).mapCatalogVnf(any(GenericVnf.class), any(ModelInfo.class),
2915 any(Service.class));
2916 verify(SPY_bbInputSetup, times(1)).mapCatalogVolumeGroup(isA(VolumeGroup.class), isA(ModelInfo.class),
2917 isA(Service.class), isA(String.class));
2921 public void test_getGBBMacroNoUserParamsExistingService_forActivateFabricConfigurationBB() throws Exception {
2923 String requestAction = "unassignInstance";
2924 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
2925 GeneralBuildingBlock.class);
2926 L3Network network = new L3Network();
2927 network.setNetworkId("networkId");
2928 gBB.getServiceInstance().getNetworks().add(network);
2929 ServiceInstance serviceInstance = gBB.getServiceInstance();
2930 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
2931 ExecuteBuildingBlock.class);
2932 RequestDetails requestDetails = mapper
2933 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
2934 requestDetails.getRequestParameters().setUserParams(null);
2935 Map<ResourceKey, String> lookupKeyMap = prepareLookupKeyMap();
2936 Service service = Mockito.mock(Service.class);
2937 org.onap.aai.domain.yang.ServiceInstance aaiServiceInstance = new org.onap.aai.domain.yang.ServiceInstance();
2938 GenericVnf vnf = new GenericVnf();
2939 vnf.setVnfId("vnfId");
2940 gBB.getServiceInstance().getVnfs().add(vnf);
2941 org.onap.aai.domain.yang.GenericVnf aaiVnf = new org.onap.aai.domain.yang.GenericVnf();
2942 aaiVnf.setModelCustomizationId("modelCustId");
2943 VfModule vfModule = new VfModule();
2944 vfModule.setVfModuleId("vfModuleId");
2945 gBB.getServiceInstance().getVnfs().get(0).getVfModules().add(vfModule);
2946 VolumeGroup volumeGroup = new VolumeGroup();
2947 volumeGroup.setVolumeGroupId("volumeGroupId");
2948 gBB.getServiceInstance().getVnfs().get(0).getVolumeGroups().add(volumeGroup);
2949 CloudConfiguration cloudConfiguration = new CloudConfiguration();
2950 cloudConfiguration.setLcpCloudRegionId("cloudRegionId");
2951 Configuration configuration = new Configuration();
2952 configuration.setConfigurationId("configurationId");
2953 gBB.getServiceInstance().getConfigurations().add(configuration);
2954 org.onap.aai.domain.yang.Configuration aaiConfiguration = new org.onap.aai.domain.yang.Configuration();
2955 aaiConfiguration.setModelCustomizationId("modelCustId");
2957 ConfigurationResourceKeys configResourceKeys = prepareConfigurationResourceKeys();
2958 executeBB.setConfigurationResourceKeys(configResourceKeys).setRequestDetails(requestDetails);
2959 BuildingBlock buildingBlock = executeBB.getBuildingBlock();
2960 buildingBlock.setBpmnFlowName("ActivateFabricConfigurationBB").setKey("72d9d1cd-f46d-447a-abdb-451d6fb05fa9");
2962 aaiServiceInstance.setModelVersionId("modelVersionId");
2963 doReturn(service).when(SPY_bbInputSetupUtils)
2964 .getCatalogServiceByModelUUID(aaiServiceInstance.getModelVersionId());
2965 doReturn(aaiServiceInstance).when(SPY_bbInputSetupUtils)
2966 .getAAIServiceInstanceById(lookupKeyMap.get(ResourceKey.SERVICE_INSTANCE_ID));
2967 doReturn(serviceInstance).when(SPY_bbInputSetup).getExistingServiceInstance(aaiServiceInstance);
2968 doReturn(gBB).when(SPY_bbInputSetup).populateGBBWithSIAndAdditionalInfo(any(BBInputSetupParameter.class));
2969 doReturn(aaiConfiguration).when(SPY_bbInputSetupUtils).getAAIConfiguration(configuration.getConfigurationId());
2970 doNothing().when(SPY_bbInputSetup).mapCatalogConfiguration(isA(Configuration.class), isA(ModelInfo.class),
2971 isA(Service.class), isA(ConfigurationResourceKeys.class));
2974 SPY_bbInputSetup.getGBBMacroExistingService(executeBB, lookupKeyMap,
2975 executeBB.getBuildingBlock().getBpmnFlowName(), requestAction, cloudConfiguration);
2977 verify(SPY_bbInputSetup, times(1)).mapCatalogConfiguration(any(Configuration.class), any(ModelInfo.class),
2978 any(Service.class), isA(ConfigurationResourceKeys.class));
2982 public void testGetGBBMacroExistingServiceUpgrade() throws Exception {
2983 String requestAction = "upgradeInstance";
2984 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
2985 GeneralBuildingBlock.class);
2986 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
2987 ExecuteBuildingBlock.class);
2988 RequestDetails requestDetails = mapper
2989 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceUpgrade.json"), RequestDetails.class);
2990 Map<ResourceKey, String> lookupKeyMap = prepareLookupKeyMap();
2991 executeBB.setRequestDetails(requestDetails);
2993 doReturn(new Service()).when(SPY_bbInputSetupUtils)
2994 .getCatalogServiceByModelUUID(requestDetails.getModelInfo().getModelVersionId());
2995 doReturn(new org.onap.aai.domain.yang.ServiceInstance()).when(SPY_bbInputSetupUtils)
2996 .getAAIServiceInstanceById(lookupKeyMap.get(ResourceKey.SERVICE_INSTANCE_ID));
2997 doReturn(gBB).when(SPY_bbInputSetup).populateGBBWithSIAndAdditionalInfo(any(BBInputSetupParameter.class));
2999 SPY_bbInputSetup.getGBBMacroExistingService(executeBB, lookupKeyMap,
3000 executeBB.getBuildingBlock().getBpmnFlowName(), requestAction, null);
3002 verify(SPY_bbInputSetupUtils, times(1))
3003 .getCatalogServiceByModelUUID(requestDetails.getModelInfo().getModelVersionId());
3007 public void testGetGBBMacroExistingServiceServiceinstancenotFoundInAai() throws Exception {
3008 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
3009 ExecuteBuildingBlock.class);
3010 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
3011 lookupKeyMap.put(ResourceKey.SERVICE_INSTANCE_ID, "si123");
3013 CloudConfiguration cloudConfiguration = new CloudConfiguration();
3014 cloudConfiguration.setLcpCloudRegionId("cloudRegionId");
3016 doReturn(null).when(SPY_bbInputSetupUtils).getAAIServiceInstanceById("si123");
3018 expectedException.expect(NoServiceInstanceFoundException.class);
3019 expectedException.expectMessage("Related service instance from AAI not found: service-instance-id=si123");
3021 SPY_bbInputSetup.getGBBMacroExistingService(executeBB, lookupKeyMap, "AssignVnfBB", "assign",
3022 cloudConfiguration);
3026 public void testGetGBBMacroExistingServiceServiceModelNotFound() throws Exception {
3027 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
3028 ExecuteBuildingBlock.class);
3029 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
3030 lookupKeyMap.put(ResourceKey.SERVICE_INSTANCE_ID, "si123");
3031 org.onap.aai.domain.yang.ServiceInstance aaiServiceInstance = new org.onap.aai.domain.yang.ServiceInstance();
3032 aaiServiceInstance.setModelVersionId("modelVersionId");
3034 CloudConfiguration cloudConfiguration = new CloudConfiguration();
3035 cloudConfiguration.setLcpCloudRegionId("cloudRegionId");
3037 doReturn(aaiServiceInstance).when(SPY_bbInputSetupUtils).getAAIServiceInstanceById("si123");
3038 doReturn(null).when(SPY_bbInputSetupUtils).getCatalogServiceByModelUUID(aaiServiceInstance.getModelVersionId());
3040 expectedException.expect(ServiceModelNotFoundException.class);
3041 expectedException.expectMessage(
3042 "Related service instance model not found in MSO CatalogDB: model-version-id=modelVersionId");
3044 SPY_bbInputSetup.getGBBMacroExistingService(executeBB, lookupKeyMap, "AssignVnfBB", "assign",
3045 cloudConfiguration);
3049 public void testGetVnfId() {
3050 String expected = "vnfId";
3051 ExecuteBuildingBlock executeBB = new ExecuteBuildingBlock().setRequestId("requestId");
3052 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
3053 InfraActiveRequests request = new InfraActiveRequests();
3054 request.setVnfId(expected);
3055 doReturn(request).when(SPY_bbInputSetupUtils).getInfraActiveRequest(executeBB.getRequestId());
3057 String actual = SPY_bbInputSetup.getVnfId(executeBB, lookupKeyMap);
3059 assertEquals("VnfId is set correctly", expected, actual);
3063 public void testCreateVfModule() {
3064 String vfModuleId = "vfModuleId";
3065 String instanceName = "vfModuleName";
3066 Map<String, String> cloudParams = new HashMap<>();
3067 cloudParams.put("param1", "param1Value");
3068 VfModule expected = new VfModule();
3069 expected.setVfModuleId(vfModuleId);
3070 expected.setVfModuleName(instanceName);
3071 expected.setCloudParams(cloudParams);
3072 expected.setOrchestrationStatus(OrchestrationStatus.PRECREATED);
3073 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
3074 List<Map<String, String>> instanceParams = new ArrayList<>();
3075 instanceParams.add(cloudParams);
3077 VfModule actual = SPY_bbInputSetup.createVfModule(lookupKeyMap, vfModuleId, instanceName, instanceParams);
3079 assertThat(actual, sameBeanAs(expected));
3080 assertEquals("LookupKeyMap is populated", vfModuleId, lookupKeyMap.get(ResourceKey.VF_MODULE_ID));
3082 expected.getCloudParams().clear();
3083 actual = SPY_bbInputSetup.createVfModule(lookupKeyMap, vfModuleId, instanceName, null);
3084 assertThat(actual, sameBeanAs(expected));
3088 public void testCreateVolumeGroup() {
3089 String volumeGroupId = "volumeGroupId";
3090 String instanceName = "vfModuleName";
3091 String vnfType = "vnfType";
3092 Map<String, String> cloudParams = new HashMap<>();
3093 cloudParams.put("param1", "param1Value");
3094 VolumeGroup expected = new VolumeGroup();
3095 expected.setVolumeGroupId(volumeGroupId);
3096 expected.setVolumeGroupName(instanceName);
3097 expected.setCloudParams(cloudParams);
3098 expected.setVnfType(vnfType);
3099 expected.setOrchestrationStatus(OrchestrationStatus.PRECREATED);
3100 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
3101 List<Map<String, String>> instanceParams = new ArrayList<>();
3102 instanceParams.add(cloudParams);
3104 VolumeGroup actual =
3105 SPY_bbInputSetup.createVolumeGroup(lookupKeyMap, volumeGroupId, instanceName, vnfType, instanceParams);
3107 assertThat(actual, sameBeanAs(expected));
3108 assertEquals("LookupKeyMap is populated", volumeGroupId, lookupKeyMap.get(ResourceKey.VOLUME_GROUP_ID));
3110 expected.getCloudParams().clear();
3111 actual = SPY_bbInputSetup.createVolumeGroup(lookupKeyMap, volumeGroupId, instanceName, vnfType, null);
3112 assertThat(actual, sameBeanAs(expected));
3116 public void testCreateNetwork() {
3117 String networkId = "networkId";
3118 String instanceName = "networkName";
3119 Map<String, String> cloudParams = new HashMap<>();
3120 cloudParams.put("param1", "param1Value");
3121 L3Network expected = new L3Network();
3122 expected.setNetworkId(networkId);
3123 expected.setNetworkName(instanceName);
3124 expected.setCloudParams(cloudParams);
3125 Platform platform = new Platform();
3126 platform.setPlatformName("platformName");
3127 expected.setPlatform(platform);
3128 LineOfBusiness lineOfBusiness = new LineOfBusiness();
3129 lineOfBusiness.setLineOfBusinessName("lineOfBusiness");
3130 expected.setLineOfBusiness(lineOfBusiness);
3131 expected.setOrchestrationStatus(OrchestrationStatus.PRECREATED);
3132 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
3133 List<Map<String, String>> instanceParams = new ArrayList<>();
3134 instanceParams.add(cloudParams);
3135 org.onap.so.serviceinstancebeans.Platform platformRequest = new org.onap.so.serviceinstancebeans.Platform();
3136 org.onap.so.serviceinstancebeans.LineOfBusiness lineOfBusinessRequest =
3137 new org.onap.so.serviceinstancebeans.LineOfBusiness();
3138 lineOfBusinessRequest.setLineOfBusinessName("lineOfBusiness");
3139 platformRequest.setPlatformName("platformName");
3140 BBInputSetupParameter parameter = new BBInputSetupParameter.Builder().setRequestId(REQUEST_ID)
3141 .setPlatform(platformRequest).setLineOfBusiness(lineOfBusinessRequest).build();
3143 SPY_bbInputSetup.createNetwork(lookupKeyMap, instanceName, networkId, instanceParams, parameter);
3145 assertThat(actual, sameBeanAs(expected));
3146 assertEquals("LookupKeyMap is populated", networkId, lookupKeyMap.get(ResourceKey.NETWORK_ID));
3148 expected.getCloudParams().clear();
3150 actual = SPY_bbInputSetup.createNetwork(lookupKeyMap, instanceName, networkId, null, parameter);
3151 assertThat(actual, sameBeanAs(expected));
3155 public void testCreateGenericVnf() {
3156 String vnfId = "vnfId";
3157 String instanceName = "vnfName";
3158 String vnfType = "vnfType";
3159 String platformName = "platformName";
3160 String lineOfBusinessName = "lineOfBusinessName";
3161 String productFamilyId = "productFamilyId";
3162 String applicationId = "applicationId";
3163 Platform platform = new Platform();
3164 platform.setPlatformName(platformName);
3165 LineOfBusiness lineOfBusiness = new LineOfBusiness();
3166 lineOfBusiness.setLineOfBusinessName(lineOfBusinessName);
3167 Map<String, String> cloudParams = new HashMap<>();
3168 cloudParams.put("param1", "param1Value");
3169 GenericVnf expected = new GenericVnf();
3170 expected.setVnfId(vnfId);
3171 expected.setVnfName(instanceName);
3172 expected.setVnfType(vnfType);
3173 expected.setCloudParams(cloudParams);
3174 expected.setOrchestrationStatus(OrchestrationStatus.PRECREATED);
3175 expected.setPlatform(platform);
3176 expected.setLineOfBusiness(lineOfBusiness);
3177 expected.setProvStatus("PREPROV");
3178 expected.setServiceId(productFamilyId);
3179 expected.setApplicationId(applicationId);
3180 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
3181 List<Map<String, String>> instanceParams = new ArrayList<>();
3182 instanceParams.add(cloudParams);
3183 org.onap.so.serviceinstancebeans.Platform requestPlatform = new org.onap.so.serviceinstancebeans.Platform();
3184 platform.setPlatformName(platformName);
3185 org.onap.so.serviceinstancebeans.LineOfBusiness requestLineOfBusiness =
3186 new org.onap.so.serviceinstancebeans.LineOfBusiness();
3187 lineOfBusiness.setLineOfBusinessName(lineOfBusinessName);
3189 doReturn(platform).when(bbInputSetupMapperLayer).mapRequestPlatform(requestPlatform);
3190 doReturn(lineOfBusiness).when(bbInputSetupMapperLayer).mapRequestLineOfBusiness(requestLineOfBusiness);
3192 GenericVnf actual = SPY_bbInputSetup.createGenericVnf(lookupKeyMap, instanceName, requestPlatform,
3193 requestLineOfBusiness, vnfId, vnfType, instanceParams, productFamilyId, applicationId);
3195 assertThat(actual, sameBeanAs(expected));
3196 assertEquals("LookupKeyMap is populated", vnfId, lookupKeyMap.get(ResourceKey.GENERIC_VNF_ID));
3198 expected.getCloudParams().clear();
3199 actual = SPY_bbInputSetup.createGenericVnf(lookupKeyMap, instanceName, requestPlatform, requestLineOfBusiness,
3200 vnfId, vnfType, null, productFamilyId, applicationId);
3201 assertThat(actual, sameBeanAs(expected));
3205 public void testMapCatalogVfModule() {
3206 String vnfModelCustomizationUUID = "vnfResourceCustUUID";
3207 String vfModuleCustomizationUUID = "vfModelCustomizationUUID";
3208 VfModule vfModule = new VfModule();
3209 ModelInfo modelInfo = new ModelInfo();
3210 modelInfo.setModelCustomizationUuid(vfModuleCustomizationUUID);
3211 Service service = new Service();
3212 VnfResourceCustomization vnfResourceCust = new VnfResourceCustomization();
3213 vnfResourceCust.setModelCustomizationUUID(vnfModelCustomizationUUID);
3214 VfModuleCustomization vfModuleCust = new VfModuleCustomization();
3215 vfModuleCust.setModelCustomizationUUID(vfModuleCustomizationUUID);
3216 vnfResourceCust.getVfModuleCustomizations().add(vfModuleCust);
3217 service.getVnfCustomizations().add(vnfResourceCust);
3218 ModelInfoVfModule modelInfoVfModule = new ModelInfoVfModule();
3220 doReturn(modelInfoVfModule).when(bbInputSetupMapperLayer).mapCatalogVfModuleToVfModule(vfModuleCust);
3222 SPY_bbInputSetup.mapCatalogVfModule(vfModule, modelInfo, service, vnfModelCustomizationUUID);
3224 assertThat(vfModule.getModelInfoVfModule(), sameBeanAs(modelInfoVfModule));
3226 modelInfo.setModelCustomizationUuid(null);
3227 modelInfo.setModelCustomizationId(vfModuleCustomizationUUID);
3229 SPY_bbInputSetup.mapCatalogVfModule(vfModule, modelInfo, service, vnfModelCustomizationUUID);
3231 assertThat(vfModule.getModelInfoVfModule(), sameBeanAs(modelInfoVfModule));
3235 public void testMapCatalogVfModuleIfNoVfUnderVnf() {
3236 String vnfModelCustomizationUUID = "vnfResourceCustUUID";
3237 String vfModuleCustomizationUUID = "vfModelCustomizationUUID";
3238 VfModule vfModule = new VfModule();
3239 ModelInfo modelInfo = new ModelInfo();
3240 modelInfo.setModelCustomizationUuid(vfModuleCustomizationUUID);
3241 Service service = new Service();
3242 VnfResourceCustomization vnfResourceCust = new VnfResourceCustomization();
3243 vnfResourceCust.setModelCustomizationUUID(vnfModelCustomizationUUID);
3244 VfModuleCustomization vfModuleCust = new VfModuleCustomization();
3245 vfModuleCust.setModelCustomizationUUID(vfModuleCustomizationUUID);
3246 ModelInfoVfModule modelInfoVfModule = new ModelInfoVfModule();
3247 doReturn(vfModuleCust).when(SPY_bbInputSetupUtils)
3248 .getVfModuleCustomizationByModelCuztomizationUUID(vfModuleCustomizationUUID);
3249 doReturn(modelInfoVfModule).when(bbInputSetupMapperLayer).mapCatalogVfModuleToVfModule(vfModuleCust);
3251 SPY_bbInputSetup.mapCatalogVfModule(vfModule, modelInfo, service, vnfModelCustomizationUUID);
3253 assertThat(vfModule.getModelInfoVfModule(), sameBeanAs(modelInfoVfModule));
3255 verify(SPY_bbInputSetupUtils, times(1))
3256 .getVfModuleCustomizationByModelCuztomizationUUID(modelInfo.getModelCustomizationId());
3260 public void testPopulateVfModule() throws Exception {
3261 String vnfId = "vnfId";
3262 String vfModuleId = "vfModuleId";
3263 String volumeGroupId = "volumeGroupId";
3264 String vfModuleCustomizationId = "vfModuleCustomizationId";
3265 ModelInfo modelInfo = new ModelInfo();
3266 modelInfo.setModelCustomizationId(vfModuleCustomizationId);
3267 Service service = new Service();
3268 ServiceModel serviceModel = new ServiceModel();
3269 serviceModel.setCurrentService(service);
3270 String bbName = AssignFlows.VF_MODULE.toString();
3271 ServiceInstance serviceInstance = new ServiceInstance();
3272 GenericVnf vnf = new GenericVnf();
3273 vnf.setVnfId(vnfId);
3274 VolumeGroup volumeGroup = new VolumeGroup();
3275 volumeGroup.setVolumeGroupId(volumeGroupId);
3276 vnf.getVolumeGroups().add(volumeGroup);
3277 serviceInstance.getVnfs().add(vnf);
3278 VfModule vfModule1 = new VfModule();
3279 vfModule1.setVfModuleId("vfModuleId1");
3280 VfModule vfModule2 = new VfModule();
3281 vfModule2.setVfModuleId("vfModuleId2");
3282 vnf.getVfModules().add(vfModule1);
3283 vnf.getVfModules().add(vfModule2);
3284 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
3285 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, vnfId);
3286 String resourceId = vfModuleId;
3287 RelatedInstanceList[] relatedInstanceList = null;
3288 String instanceName = "vfModuleName";
3289 List<Map<String, String>> instanceParams = null;
3290 CloudConfiguration cloudConfiguration = new CloudConfiguration();
3292 org.onap.aai.domain.yang.GenericVnf vnfAAI = new org.onap.aai.domain.yang.GenericVnf();
3293 vnfAAI.setModelCustomizationId("vnfModelCustId");
3294 org.onap.aai.domain.yang.VolumeGroup volumeGroupAAI = new org.onap.aai.domain.yang.VolumeGroup();
3295 volumeGroupAAI.setModelCustomizationId(vfModuleCustomizationId);
3296 org.onap.aai.domain.yang.VfModule vfModuleAAI = new org.onap.aai.domain.yang.VfModule();
3297 vfModuleAAI.setModelCustomizationId(vfModuleCustomizationId);
3299 doReturn(vnfAAI).when(SPY_bbInputSetupUtils).getAAIGenericVnf(vnf.getVnfId());
3300 doReturn(volumeGroupAAI).when(SPY_bbInputSetupUtils).getAAIVolumeGroup(CLOUD_OWNER,
3301 cloudConfiguration.getLcpCloudRegionId(), volumeGroup.getVolumeGroupId());
3302 doReturn(vfModuleAAI).when(SPY_bbInputSetupUtils).getAAIVfModule(isA(String.class), isA(String.class));
3303 doNothing().when(SPY_bbInputSetup).mapCatalogVnf(isA(GenericVnf.class), isA(ModelInfo.class),
3304 isA(Service.class));
3305 doNothing().when(SPY_bbInputSetup).mapCatalogVfModule(isA(VfModule.class), isA(ModelInfo.class),
3306 isA(Service.class), isA(String.class));
3308 SPY_bbInputSetup.populateVfModule(new BBInputSetupParameter.Builder().setRequestId(REQUEST_ID)
3309 .setModelInfo(modelInfo).setService(service).setBbName(bbName).setServiceInstance(serviceInstance)
3310 .setLookupKeyMap(lookupKeyMap).setResourceId(resourceId).setRelatedInstanceList(relatedInstanceList)
3311 .setInstanceName(instanceName).setInstanceParams(instanceParams)
3312 .setCloudConfiguration(cloudConfiguration).setServiceModel(serviceModel).build());
3314 verify(SPY_bbInputSetup, times(3)).mapCatalogVfModule(isA(VfModule.class), isA(ModelInfo.class),
3315 isA(Service.class), isA(String.class));
3316 assertEquals("Lookup Key Map populated with VfModule Id", vfModuleId,
3317 lookupKeyMap.get(ResourceKey.VF_MODULE_ID));
3318 assertEquals("Lookup Key Map populated with VolumeGroup Id", volumeGroupId,
3319 lookupKeyMap.get(ResourceKey.VOLUME_GROUP_ID));
3323 public void testPopulateVfModuleIsReplaceCorrectPopulationOfVfs() throws Exception {
3324 String vnfId = "vnfId";
3325 String vfModuleId = "vfModuleId";
3326 String volumeGroupId = "volumeGroupId";
3327 String vfModuleCustomizationId = "vfModuleCustomizationId";
3328 ModelInfo modelInfo = new ModelInfo();
3329 modelInfo.setModelCustomizationId(vfModuleCustomizationId);
3330 Service currentService = new Service();
3331 currentService.setModelUUID("currentUUID");
3332 Service newService = new Service();
3333 newService.setModelUUID("newUUID");
3334 ServiceModel serviceModel = new ServiceModel();
3335 serviceModel.setCurrentService(currentService);
3336 serviceModel.setNewService(newService);
3337 String bbName = "ActivateVfModuleBB";
3338 ServiceInstance serviceInstance = new ServiceInstance();
3339 GenericVnf vnf = new GenericVnf();
3340 vnf.setVnfId(vnfId);
3341 VolumeGroup volumeGroup = new VolumeGroup();
3342 volumeGroup.setVolumeGroupId(volumeGroupId);
3343 vnf.getVolumeGroups().add(volumeGroup);
3344 serviceInstance.getVnfs().add(vnf);
3345 VfModule vfModule1 = new VfModule();
3346 vfModule1.setVfModuleId("vfModuleId1");
3347 VfModule vfModule2 = new VfModule();
3348 vfModule2.setVfModuleId("vfModuleId2");
3349 vnf.getVfModules().add(vfModule1);
3350 vnf.getVfModules().add(vfModule2);
3351 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
3352 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, vnfId);
3353 lookupKeyMap.put(ResourceKey.VF_MODULE_ID, "vfModuleId1");
3354 String resourceId = vfModuleId;
3355 RelatedInstanceList[] relatedInstanceList = new RelatedInstanceList[1];
3356 RelatedInstanceList relatedInstanceListObj = new RelatedInstanceList();
3357 RelatedInstance relatedInstance = new RelatedInstance();
3358 relatedInstance.setInstanceId(vnfId);
3360 ModelInfo vnfModelInfo = new ModelInfo();
3361 vnfModelInfo.setModelCustomizationId("vnfCustomizationId");
3362 vnfModelInfo.setModelType(ModelType.vnf);
3363 relatedInstance.setModelInfo(vnfModelInfo);
3364 relatedInstanceListObj.setRelatedInstance(relatedInstance);
3365 relatedInstanceList[0] = relatedInstanceListObj;
3367 String instanceName = "vfModuleName";
3368 List<Map<String, String>> instanceParams = null;
3369 CloudConfiguration cloudConfiguration = new CloudConfiguration();
3371 org.onap.aai.domain.yang.GenericVnf vnfAAI = new org.onap.aai.domain.yang.GenericVnf();
3372 vnfAAI.setModelCustomizationId("vnfModelCustId");
3373 org.onap.aai.domain.yang.VolumeGroup volumeGroupAAI = new org.onap.aai.domain.yang.VolumeGroup();
3374 volumeGroupAAI.setModelCustomizationId(vfModuleCustomizationId);
3375 org.onap.aai.domain.yang.VfModule vfModuleAAI = new org.onap.aai.domain.yang.VfModule();
3376 vfModuleAAI.setModelCustomizationId(vfModuleCustomizationId);
3378 doReturn(vnfAAI).when(SPY_bbInputSetupUtils).getAAIGenericVnf(vnf.getVnfId());
3379 doReturn(volumeGroupAAI).when(SPY_bbInputSetupUtils).getAAIVolumeGroup(CLOUD_OWNER,
3380 cloudConfiguration.getLcpCloudRegionId(), volumeGroup.getVolumeGroupId());
3381 doReturn(vfModuleAAI).when(SPY_bbInputSetupUtils).getAAIVfModule(isA(String.class), isA(String.class));
3382 doNothing().when(SPY_bbInputSetup).mapCatalogVnf(isA(GenericVnf.class), isA(ModelInfo.class),
3383 isA(Service.class));
3384 doNothing().when(SPY_bbInputSetup).mapCatalogVfModule(isA(VfModule.class), isA(ModelInfo.class),
3385 isA(Service.class), isA(String.class));
3387 BBInputSetupParameter parameter = new BBInputSetupParameter.Builder().setModelInfo(modelInfo)
3388 .setService(newService).setBbName(bbName).setServiceInstance(serviceInstance)
3389 .setLookupKeyMap(lookupKeyMap).setResourceId(resourceId).setRelatedInstanceList(relatedInstanceList)
3390 .setInstanceName(instanceName).setInstanceParams(instanceParams)
3391 .setCloudConfiguration(cloudConfiguration).setIsReplace(true).setServiceModel(serviceModel).build();
3392 SPY_bbInputSetup.populateVfModule(parameter);
3394 verify(SPY_bbInputSetup, times(1)).mapCatalogVfModule(isA(VfModule.class), isA(ModelInfo.class),
3395 eq(currentService), eq("vnfModelCustId"));
3396 verify(SPY_bbInputSetup, times(1)).mapCatalogVfModule(isA(VfModule.class), isA(ModelInfo.class), eq(newService),
3397 eq("vnfCustomizationId"));
3398 assertEquals("Lookup Key Map populated with VfModule Id", "vfModuleId1",
3399 lookupKeyMap.get(ResourceKey.VF_MODULE_ID));
3400 assertEquals("Lookup Key Map populated with VolumeGroup Id", volumeGroupId,
3401 lookupKeyMap.get(ResourceKey.VOLUME_GROUP_ID));
3405 public void testPopulateVfModuleIsReplace() throws Exception {
3406 String vnfId = "vnfId";
3407 String vfModuleId = "vfModuleId";
3408 String volumeGroupId = "volumeGroupId";
3409 String vfModuleCustomizationId = "vfModuleCustomizationId";
3410 ModelInfo modelInfo = new ModelInfo();
3411 modelInfo.setModelCustomizationId(vfModuleCustomizationId);
3412 Service currentService = new Service();
3413 Service newService = new Service();
3414 ServiceModel serviceModel = new ServiceModel();
3415 serviceModel.setCurrentService(currentService);
3416 currentService.setModelUUID("currentUUID");
3417 serviceModel.setNewService(newService);
3418 currentService.setModelUUID("newUUID");
3419 String bbName = AssignFlows.VF_MODULE.toString();
3420 ServiceInstance serviceInstance = new ServiceInstance();
3421 GenericVnf vnf = new GenericVnf();
3422 vnf.setVnfId(vnfId);
3423 VolumeGroup volumeGroup = new VolumeGroup();
3424 volumeGroup.setVolumeGroupId(volumeGroupId);
3425 vnf.getVolumeGroups().add(volumeGroup);
3426 serviceInstance.getVnfs().add(vnf);
3427 VfModule vfModule1 = new VfModule();
3428 vfModule1.setVfModuleId("vfModuleId1");
3429 VfModule vfModule2 = new VfModule();
3430 vfModule2.setVfModuleId("vfModuleId2");
3431 vnf.getVfModules().add(vfModule1);
3432 vnf.getVfModules().add(vfModule2);
3433 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
3434 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, vnfId);
3435 lookupKeyMap.put(ResourceKey.VF_MODULE_ID, vfModuleId);
3436 String resourceId = vfModuleId;
3437 RelatedInstanceList[] relatedInstanceList = new RelatedInstanceList[1];
3438 RelatedInstanceList relatedInstanceListObj = new RelatedInstanceList();
3439 RelatedInstance relatedInstance = new RelatedInstance();
3440 relatedInstance.setInstanceId(vnfId);
3442 ModelInfo vnfModelInfo = new ModelInfo();
3443 vnfModelInfo.setModelCustomizationId("vnfCustomizationId");
3444 vnfModelInfo.setModelType(ModelType.vnf);
3445 relatedInstance.setModelInfo(vnfModelInfo);
3446 relatedInstanceListObj.setRelatedInstance(relatedInstance);
3447 relatedInstanceList[0] = relatedInstanceListObj;
3449 String instanceName = "vfModuleName";
3450 List<Map<String, String>> instanceParams = null;
3451 CloudConfiguration cloudConfiguration = new CloudConfiguration();
3453 org.onap.aai.domain.yang.GenericVnf vnfAAI = new org.onap.aai.domain.yang.GenericVnf();
3454 vnfAAI.setModelCustomizationId("vnfModelCustId");
3455 org.onap.aai.domain.yang.VolumeGroup volumeGroupAAI = new org.onap.aai.domain.yang.VolumeGroup();
3456 volumeGroupAAI.setModelCustomizationId(vfModuleCustomizationId);
3457 org.onap.aai.domain.yang.VfModule vfModuleAAI = new org.onap.aai.domain.yang.VfModule();
3458 vfModuleAAI.setModelCustomizationId(vfModuleCustomizationId);
3460 doReturn(vnfAAI).when(SPY_bbInputSetupUtils).getAAIGenericVnf(vnf.getVnfId());
3461 doReturn(volumeGroupAAI).when(SPY_bbInputSetupUtils).getAAIVolumeGroup(CLOUD_OWNER,
3462 cloudConfiguration.getLcpCloudRegionId(), volumeGroup.getVolumeGroupId());
3463 doReturn(vfModuleAAI).when(SPY_bbInputSetupUtils).getAAIVfModule(isA(String.class), isA(String.class));
3464 doNothing().when(SPY_bbInputSetup).mapCatalogVnf(isA(GenericVnf.class), isA(ModelInfo.class),
3465 isA(Service.class));
3466 doNothing().when(SPY_bbInputSetup).mapCatalogVfModule(isA(VfModule.class), isA(ModelInfo.class),
3467 isA(Service.class), isA(String.class));
3469 BBInputSetupParameter parameter = new BBInputSetupParameter.Builder().setModelInfo(modelInfo)
3470 .setService(newService).setServiceInstance(serviceInstance).setBbName(bbName)
3471 .setLookupKeyMap(lookupKeyMap).setResourceId(resourceId).setRelatedInstanceList(relatedInstanceList)
3472 .setInstanceName(instanceName).setInstanceParams(instanceParams)
3473 .setCloudConfiguration(cloudConfiguration).setIsReplace(true).setServiceModel(serviceModel).build();
3476 SPY_bbInputSetup.populateVfModule(parameter);
3478 verify(SPY_bbInputSetup, times(2)).mapCatalogVfModule(isA(VfModule.class), isA(ModelInfo.class),
3479 eq(serviceModel.getCurrentService()), isA(String.class));
3480 verify(SPY_bbInputSetup, times(1)).mapCatalogVfModule(isA(VfModule.class), isA(ModelInfo.class),
3481 eq(serviceModel.getNewService()), isA(String.class));
3482 assertEquals("Lookup Key Map populated with VfModule Id", vfModuleId,
3483 lookupKeyMap.get(ResourceKey.VF_MODULE_ID));
3484 assertEquals("Lookup Key Map populated with VolumeGroup Id", volumeGroupId,
3485 lookupKeyMap.get(ResourceKey.VOLUME_GROUP_ID));
3489 public void testGettingVnfcToConfiguration() throws Exception {
3491 String vnfcName = "vnfcName";
3492 org.onap.aai.domain.yang.Configuration expectedAAI = new org.onap.aai.domain.yang.Configuration();
3493 AAIResourceUri aaiResourceUri = AAIUriFactory.createResourceUri(AAIFluentTypeBuilder.network().vnfc(vnfcName));
3494 AAIResultWrapper configurationWrapper =
3495 new AAIResultWrapper(new AAICommonObjectMapperProvider().getMapper().writeValueAsString(expectedAAI));
3497 doReturn(new AAIResultWrapper(null)).when(SPY_bbInputSetupUtils).getAAIResourceDepthOne(aaiResourceUri);
3498 Vnfc vnfc = SPY_bbInputSetup.getVnfcToConfiguration(vnfcName);
3499 Assert.assertNull(vnfc);
3501 doReturn(configurationWrapper).when(SPY_bbInputSetupUtils).getAAIResourceDepthOne(aaiResourceUri);
3502 vnfc = SPY_bbInputSetup.getVnfcToConfiguration(vnfcName);
3503 Assert.assertNotNull(vnfc);