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 org.camunda.bpm.engine.delegate.DelegateExecution;
50 import org.junit.Assert;
51 import org.junit.Rule;
52 import org.junit.Test;
53 import org.junit.rules.ExpectedException;
54 import org.junit.runner.RunWith;
55 import org.mockito.ArgumentMatchers;
56 import org.mockito.InjectMocks;
57 import org.mockito.Mock;
58 import org.mockito.Mockito;
59 import org.mockito.Spy;
60 import org.mockito.junit.MockitoJUnitRunner;
61 import org.onap.aaiclient.client.aai.AAICommonObjectMapperProvider;
62 import org.onap.aaiclient.client.aai.AAIObjectType;
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.Project;
78 import org.onap.so.bpmn.servicedecomposition.bbobjects.RouteTableReference;
79 import org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance;
80 import org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceProxy;
81 import org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceSubscription;
82 import org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule;
83 import org.onap.so.bpmn.servicedecomposition.bbobjects.Vnfc;
84 import org.onap.so.bpmn.servicedecomposition.bbobjects.VolumeGroup;
85 import org.onap.so.bpmn.servicedecomposition.entities.BuildingBlock;
86 import org.onap.so.bpmn.servicedecomposition.entities.ConfigurationResourceKeys;
87 import org.onap.so.bpmn.servicedecomposition.entities.ExecuteBuildingBlock;
88 import org.onap.so.bpmn.servicedecomposition.entities.GeneralBuildingBlock;
89 import org.onap.so.bpmn.servicedecomposition.entities.ResourceKey;
90 import org.onap.so.bpmn.servicedecomposition.entities.ServiceModel;
91 import org.onap.so.bpmn.servicedecomposition.entities.WorkflowResourceIds;
92 import org.onap.so.bpmn.servicedecomposition.generalobjects.OrchestrationContext;
93 import org.onap.so.bpmn.servicedecomposition.generalobjects.RequestContext;
94 import org.onap.so.bpmn.servicedecomposition.modelinfo.ModelInfoCollection;
95 import org.onap.so.bpmn.servicedecomposition.modelinfo.ModelInfoGenericVnf;
96 import org.onap.so.bpmn.servicedecomposition.modelinfo.ModelInfoInstanceGroup;
97 import org.onap.so.bpmn.servicedecomposition.modelinfo.ModelInfoNetwork;
98 import org.onap.so.bpmn.servicedecomposition.modelinfo.ModelInfoServiceInstance;
99 import org.onap.so.bpmn.servicedecomposition.modelinfo.ModelInfoServiceProxy;
100 import org.onap.so.bpmn.servicedecomposition.modelinfo.ModelInfoVfModule;
101 import org.onap.so.bpmn.servicedecomposition.tasks.exceptions.NoServiceInstanceFoundException;
102 import org.onap.so.bpmn.servicedecomposition.tasks.exceptions.ServiceModelNotFoundException;
103 import org.onap.so.db.catalog.beans.CollectionNetworkResourceCustomization;
104 import org.onap.so.db.catalog.beans.CollectionResource;
105 import org.onap.so.db.catalog.beans.CollectionResourceCustomization;
106 import org.onap.so.db.catalog.beans.CollectionResourceInstanceGroupCustomization;
107 import org.onap.so.db.catalog.beans.ConfigurationResource;
108 import org.onap.so.db.catalog.beans.ConfigurationResourceCustomization;
109 import org.onap.so.db.catalog.beans.CvnfcConfigurationCustomization;
110 import org.onap.so.db.catalog.beans.InstanceGroupType;
111 import org.onap.so.db.catalog.beans.NetworkCollectionResourceCustomization;
112 import org.onap.so.db.catalog.beans.NetworkResourceCustomization;
113 import org.onap.so.db.catalog.beans.OrchestrationStatus;
114 import org.onap.so.db.catalog.beans.Service;
115 import org.onap.so.db.catalog.beans.ServiceProxyResourceCustomization;
116 import org.onap.so.db.catalog.beans.VfModuleCustomization;
117 import org.onap.so.db.catalog.beans.VnfResourceCustomization;
118 import org.onap.so.db.catalog.beans.VnfcInstanceGroupCustomization;
119 import org.onap.so.db.request.beans.InfraActiveRequests;
120 import org.onap.so.serviceinstancebeans.CloudConfiguration;
121 import org.onap.so.serviceinstancebeans.ModelInfo;
122 import org.onap.so.serviceinstancebeans.ModelType;
123 import org.onap.so.serviceinstancebeans.RelatedInstance;
124 import org.onap.so.serviceinstancebeans.RelatedInstanceList;
125 import org.onap.so.serviceinstancebeans.RequestDetails;
126 import org.onap.so.serviceinstancebeans.RequestInfo;
127 import org.onap.so.serviceinstancebeans.RequestParameters;
128 import org.onap.so.serviceinstancebeans.Resources;
129 import org.onap.so.serviceinstancebeans.SubscriberInfo;
130 import com.fasterxml.jackson.core.JsonParseException;
131 import com.fasterxml.jackson.core.JsonProcessingException;
132 import com.fasterxml.jackson.databind.JsonMappingException;
133 import com.fasterxml.jackson.databind.ObjectMapper;
135 @RunWith(MockitoJUnitRunner.class)
136 public class BBInputSetupTest {
137 private static final String RESOURCE_PATH = "src/test/resources/__files/ExecuteBuildingBlock/";
139 protected ObjectMapper mapper = new ObjectMapper();
140 private static final String CLOUD_OWNER = "CloudOwner";
141 private static final String REQUEST_ID = "b20bbd26-af25-4a50-a9fe-222a3c0f9771";
145 private BBInputSetup SPY_bbInputSetup = new BBInputSetup();
148 private BBInputSetupUtils SPY_bbInputSetupUtils;
151 private CloudInfoFromAAI SPY_cloudInfoFromAAI;
154 private BBInputSetupMapperLayer bbInputSetupMapperLayer;
157 public ExpectedException expectedException = ExpectedException.none();
160 public void testGetVolumeGroupIdRelatedToVfModule() {
161 String expected = "volumeGroupId";
162 String modelCustomizationId = "modelCustomizationId";
163 ModelInfo modelInfo = new ModelInfo();
164 modelInfo.setModelCustomizationId(modelCustomizationId);
165 String cloudOwner = "cloudOwner";
166 String cloudRegionId = "cloudRegionId";
167 String volumeGroupId = "volumeGroupId";
168 GenericVnf vnf = new GenericVnf();
169 VolumeGroup volumeGroup = new VolumeGroup();
170 volumeGroup.setVolumeGroupId(expected);
171 vnf.getVolumeGroups().add(volumeGroup);
172 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
173 lookupKeyMap.put(ResourceKey.VOLUME_GROUP_ID, null);
174 org.onap.aai.domain.yang.VolumeGroup aaiVolumeGroup = new org.onap.aai.domain.yang.VolumeGroup();
175 aaiVolumeGroup.setModelCustomizationId(modelCustomizationId);
176 doReturn(aaiVolumeGroup).when(SPY_bbInputSetupUtils).getAAIVolumeGroup(cloudOwner, cloudRegionId,
179 Optional<String> actual = SPY_bbInputSetup.getVolumeGroupIdRelatedToVfModule(vnf, modelInfo, cloudOwner,
180 cloudRegionId, lookupKeyMap);
182 assertEquals(expected, actual.get());
186 public void testGetAlaCarteServiceInstance() throws Exception {
187 ServiceInstance expected =
188 mapper.readValue(new File(RESOURCE_PATH + "ServiceInstance_getServiceInstanceNOAAIExpected.json"),
189 ServiceInstance.class);
190 RequestDetails requestDetails = new RequestDetails();
191 RequestInfo requestInfo = new RequestInfo();
192 requestInfo.setInstanceName("SharansInstanceName");
193 requestDetails.setRequestInfo(requestInfo);
194 Customer customer = new Customer();
195 String serviceInstanceId = "SharansInstanceId";
196 boolean aLaCarte = true;
197 Service service = new Service();
198 service.setModelUUID("modelUUID");
199 ModelInfoServiceInstance modelInfoServiceInstance = new ModelInfoServiceInstance();
200 modelInfoServiceInstance.setModelUuid("modelUUID");
201 expected.setModelInfoServiceInstance(modelInfoServiceInstance);
202 org.onap.aai.domain.yang.ServiceInstance serviceInstanceAAI = new org.onap.aai.domain.yang.ServiceInstance();
203 serviceInstanceAAI.setModelVersionId("modelUUIDDifferent");
204 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
205 String bbName = AssignFlows.SERVICE_INSTANCE.toString();
206 Service differentService = new Service();
207 differentService.setModelUUID("modelUUIDDifferent");
209 doReturn(expected).when(SPY_bbInputSetup).getServiceInstanceHelper(requestDetails, customer, null, null,
210 lookupKeyMap, serviceInstanceId, aLaCarte, service, bbName);
211 doReturn(serviceInstanceAAI).when(SPY_bbInputSetupUtils).getAAIServiceInstanceById(serviceInstanceId);
212 doReturn(differentService).when(SPY_bbInputSetupUtils)
213 .getCatalogServiceByModelUUID(serviceInstanceAAI.getModelVersionId());
214 doReturn(expected.getModelInfoServiceInstance()).when(bbInputSetupMapperLayer)
215 .mapCatalogServiceIntoServiceInstance(differentService);
217 ServiceInstance actual = SPY_bbInputSetup.getALaCarteServiceInstance(service, requestDetails, customer, null,
218 null, lookupKeyMap, serviceInstanceId, aLaCarte, bbName);
219 assertThat(actual, sameBeanAs(expected));
222 @Test(expected = Exception.class)
223 public void testGetAlaCarteServiceInstanceException() throws Exception {
224 ServiceInstance expected =
225 mapper.readValue(new File(RESOURCE_PATH + "ServiceInstance_getServiceInstanceNOAAIExpected.json"),
226 ServiceInstance.class);
227 RequestDetails requestDetails = new RequestDetails();
228 RequestInfo requestInfo = new RequestInfo();
229 requestInfo.setInstanceName("SharansInstanceName");
230 requestDetails.setRequestInfo(requestInfo);
231 Customer customer = new Customer();
232 String serviceInstanceId = "SharansInstanceId";
233 boolean aLaCarte = true;
234 Service service = new Service();
235 service.setModelUUID("modelUUID");
236 ModelInfoServiceInstance modelInfoServiceInstance = new ModelInfoServiceInstance();
237 modelInfoServiceInstance.setModelUuid("modelUUID");
238 expected.setModelInfoServiceInstance(modelInfoServiceInstance);
239 org.onap.aai.domain.yang.ServiceInstance serviceInstanceAAI = new org.onap.aai.domain.yang.ServiceInstance();
240 serviceInstanceAAI.setModelVersionId("modelUUIDDifferent");
241 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
242 String bbName = AssignFlows.SERVICE_INSTANCE.toString();
243 Service differentService = new Service();
244 differentService.setModelUUID("modelUUIDDifferent");
246 doReturn(expected).when(SPY_bbInputSetup).getServiceInstanceHelper(requestDetails, customer, null, null,
247 lookupKeyMap, serviceInstanceId, aLaCarte, service, bbName);
248 doReturn(serviceInstanceAAI).when(SPY_bbInputSetupUtils).getAAIServiceInstanceById(serviceInstanceId);
249 doReturn(null).when(SPY_bbInputSetupUtils).getCatalogServiceByModelUUID(serviceInstanceAAI.getModelVersionId());
251 ServiceInstance actual = SPY_bbInputSetup.getALaCarteServiceInstance(service, requestDetails, customer, null,
252 null, lookupKeyMap, serviceInstanceId, aLaCarte, bbName);
253 assertThat(actual, sameBeanAs(expected));
257 public void testGetCustomerAndServiceSubscription() throws JsonParseException, JsonMappingException, IOException {
258 RequestDetails requestDetails = mapper.readValue(
259 new File(RESOURCE_PATH + "RequestDetailsInput_withRelatedInstanceList.json"), RequestDetails.class);
260 SubscriberInfo subscriberInfo = new SubscriberInfo();
261 subscriberInfo.setGlobalSubscriberId("globalSubscriberId");
262 RequestParameters requestParams = new RequestParameters();
263 requestParams.setSubscriptionServiceType("subscriptionServiceType");
264 requestDetails.setRequestParameters(requestParams);
265 requestDetails.setSubscriberInfo(subscriberInfo);
266 String resourceId = "resourceId";
267 Customer expected = new Customer();
268 expected.setGlobalCustomerId("globalCustomerId");
269 ServiceSubscription serviceSubscription = new ServiceSubscription();
270 serviceSubscription.setServiceType("subscriptionServiceType");
272 doReturn(expected).when(this.SPY_bbInputSetup).getCustomerFromRequest(requestDetails);
273 doReturn(serviceSubscription).when(this.SPY_bbInputSetup).getServiceSubscription(requestDetails, expected);
275 Customer actual = this.SPY_bbInputSetup.getCustomerAndServiceSubscription(requestDetails, resourceId);
277 assertThat(actual, sameBeanAs(expected));
279 requestDetails.setSubscriberInfo(null);
282 assertThat(actual, sameBeanAs(expected));
287 public void testSetHomingFlag() throws IOException {
288 GeneralBuildingBlock expected = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
289 GeneralBuildingBlock.class);
290 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
291 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "vnfId");
292 GenericVnf genericVnfExpected = new GenericVnf();
293 genericVnfExpected.setVnfId("vnfId");
294 genericVnfExpected.setCallHoming(true);
295 expected.getCustomer().getServiceSubscription().getServiceInstances().get(0).getVnfs().add(genericVnfExpected);
296 boolean homing = true;
297 GenericVnf genericVnfActual = new GenericVnf();
298 genericVnfActual.setVnfId("vnfId");
299 genericVnfActual.setCallHoming(false);
300 GeneralBuildingBlock actual = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
301 GeneralBuildingBlock.class);
302 actual.getCustomer().getServiceSubscription().getServiceInstances().get(0).getVnfs().add(genericVnfActual);
304 SPY_bbInputSetup.setHomingFlag(actual, homing, lookupKeyMap);
305 assertThat(actual, sameBeanAs(expected));
309 public void testGetExecuteBBFromExecution() throws IOException {
310 BuildingBlock bb = new BuildingBlock().setBpmnFlowName("AssignServiceInstanceBB");
311 ExecuteBuildingBlock expected =
312 new ExecuteBuildingBlock().setBuildingBlock(bb).setRequestId("00032ab7-3fb3-42e5-965d-8ea592502017");
313 DelegateExecution execution = Mockito.mock(DelegateExecution.class);
314 doReturn(expected).when(execution).getVariable(any(String.class));
315 ExecuteBuildingBlock actual = SPY_bbInputSetup.getExecuteBBFromExecution(execution);
316 assertThat(actual, sameBeanAs(expected));
320 public void testGetGBB() throws Exception {
321 GeneralBuildingBlock expected = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
322 GeneralBuildingBlock.class);
324 ExecuteBuildingBlock executeBB = new ExecuteBuildingBlock().setRequestId("requestId");
325 RequestDetails requestDetails = new RequestDetails();
326 ModelInfo modelInfo = new ModelInfo();
327 modelInfo.setModelType(ModelType.service);
328 requestDetails.setModelInfo(modelInfo);
329 RequestParameters requestParams = new RequestParameters();
330 requestParams.setaLaCarte(true);
331 requestDetails.setRequestParameters(requestParams);
332 doReturn(requestDetails).when(SPY_bbInputSetupUtils).getRequestDetails(executeBB.getRequestId());
333 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
334 String resourceId = "123";
335 String requestAction = "createInstance";
336 doReturn(expected).when(SPY_bbInputSetup).getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
337 requestAction, resourceId);
338 doNothing().when(SPY_bbInputSetup).populateLookupKeyMapWithIds(executeBB.getWorkflowResourceIds(),
340 boolean aLaCarte = true;
341 GeneralBuildingBlock actual =
342 SPY_bbInputSetup.getGBB(executeBB, lookupKeyMap, requestAction, aLaCarte, resourceId, null);
344 assertThat(actual, sameBeanAs(expected));
348 public void testGetGBBCM() throws Exception {
349 GeneralBuildingBlock expected = mapper
350 .readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockCMExpected.json"), GeneralBuildingBlock.class);
352 ExecuteBuildingBlock executeBB = new ExecuteBuildingBlock().setRequestId("requestId");
353 RequestDetails requestDetails = new RequestDetails();
354 requestDetails.setModelInfo(null);
355 RequestParameters requestParams = new RequestParameters();
356 requestParams.setaLaCarte(true);
357 requestDetails.setRequestParameters(requestParams);
358 RequestInfo requestInfo = new RequestInfo();
359 requestInfo.setSuppressRollback(true);
360 requestInfo.setSource("VID");
361 requestDetails.setRequestInfo(requestInfo);
362 CloudConfiguration cloudConfiguration = new CloudConfiguration();
363 cloudConfiguration.setLcpCloudRegionId("myRegionId");
364 requestDetails.setCloudConfiguration(cloudConfiguration);
365 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
366 String resourceId = "123";
367 String requestAction = "createInstance";
369 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "vnf-001");
371 doReturn(new org.onap.aai.domain.yang.GenericVnf()).when(SPY_bbInputSetupUtils)
372 .getAAIGenericVnf(ArgumentMatchers.isA(String.class));
373 doReturn(null).when(bbInputSetupMapperLayer)
374 .mapAAIGenericVnfIntoGenericVnf(ArgumentMatchers.isA(org.onap.aai.domain.yang.GenericVnf.class));
375 GeneralBuildingBlock actual =
376 SPY_bbInputSetup.getGBBCM(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId);
377 assertThat(actual, sameBeanAs(expected));
381 public void testGetGBBCMAddMembersAction() throws Exception {
382 GeneralBuildingBlock expected = mapper.readValue(
383 new File(RESOURCE_PATH + "GeneralBuildingBlockInstanceGroupExpected.json"), GeneralBuildingBlock.class);
384 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
385 ExecuteBuildingBlock.class);
386 RequestDetails requestDetails = mapper.readValue(
387 new File(RESOURCE_PATH + "RequestDetailsInput_instanceGroupAddMembers.json"), RequestDetails.class);
388 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
389 String requestAction = "addMembers";
390 String instanceGroupId = "instance-group-001";
392 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
393 workflowResourceIds.setInstanceGroupId(instanceGroupId);
394 executeBB.setWorkflowResourceIds(workflowResourceIds);
396 lookupKeyMap.put(ResourceKey.INSTANCE_GROUP_ID, instanceGroupId);
398 org.onap.aai.domain.yang.InstanceGroup aaiInstanceGroup = new org.onap.aai.domain.yang.InstanceGroup();
399 aaiInstanceGroup.setId(instanceGroupId);
400 aaiInstanceGroup.setInstanceGroupName("test instance group 1");
402 org.onap.aai.domain.yang.ServiceInstance aaiServiceInstance = new org.onap.aai.domain.yang.ServiceInstance();
403 aaiServiceInstance.setServiceInstanceId("service-instance-001");
404 aaiServiceInstance.setServiceInstanceName("test service instance 1");
405 Optional<org.onap.aai.domain.yang.ServiceInstance> optSI = Optional.of(aaiServiceInstance);
407 org.onap.aai.domain.yang.GenericVnf vnf1 = new org.onap.aai.domain.yang.GenericVnf();
408 vnf1.setVnfId("vnf-001");
409 vnf1.setVnfName("test vnf 1");
411 org.onap.aai.domain.yang.GenericVnf vnf2 = new org.onap.aai.domain.yang.GenericVnf();
412 vnf2.setVnfId("vnf-002");
413 vnf2.setVnfName("test vnf 2");
415 doReturn(aaiInstanceGroup).when(SPY_bbInputSetupUtils).getAAIInstanceGroup(instanceGroupId);
416 doReturn(optSI).when(SPY_bbInputSetupUtils).getRelatedServiceInstanceFromInstanceGroup(instanceGroupId);
417 doReturn(vnf1).when(SPY_bbInputSetupUtils).getAAIGenericVnf("vnf-001");
418 doReturn(vnf2).when(SPY_bbInputSetupUtils).getAAIGenericVnf("vnf-002");
420 GeneralBuildingBlock actual =
421 SPY_bbInputSetup.getGBBCM(executeBB, requestDetails, lookupKeyMap, requestAction, instanceGroupId);
423 assertThat(actual, sameBeanAs(expected));
427 public void testGetGBBALaCarteNonService() throws Exception {
428 GeneralBuildingBlock expected = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
429 GeneralBuildingBlock.class);
430 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
431 ExecuteBuildingBlock.class);
432 RequestDetails requestDetails = mapper.readValue(
433 new File(RESOURCE_PATH + "RequestDetailsInput_withRelatedInstanceList.json"), RequestDetails.class);
434 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
435 String requestAction = "createInstance";
436 Service service = Mockito.mock(Service.class);
437 ServiceModel serviceModel = new ServiceModel();
438 serviceModel.setCurrentService(service);
439 ServiceInstance serviceInstance = Mockito.mock(ServiceInstance.class);
440 String resourceId = "123";
441 String vnfType = "vnfType";
442 org.onap.aai.domain.yang.ServiceInstance aaiServiceInstance = new org.onap.aai.domain.yang.ServiceInstance();
443 aaiServiceInstance.setModelVersionId("modelVersionId");
444 org.onap.aai.domain.yang.CloudRegion aaiCloudRegion = Mockito.mock(org.onap.aai.domain.yang.CloudRegion.class);
445 lookupKeyMap.put(ResourceKey.SERVICE_INSTANCE_ID, "instanceId");
446 doReturn(service).when(SPY_bbInputSetupUtils)
447 .getCatalogServiceByModelUUID(aaiServiceInstance.getModelVersionId());
448 doReturn(aaiServiceInstance).when(SPY_bbInputSetupUtils).getAAIServiceInstanceById("instanceId");
449 doNothing().when(SPY_bbInputSetup).populateObjectsOnAssignAndCreateFlows(any(BBInputSetupParameter.class));
450 doReturn(serviceInstance).when(SPY_bbInputSetup).getExistingServiceInstance(aaiServiceInstance);
451 doReturn(expected).when(SPY_bbInputSetup).populateGBBWithSIAndAdditionalInfo(any(BBInputSetupParameter.class));
453 GeneralBuildingBlock actual = SPY_bbInputSetup.getGBBALaCarteNonService(executeBB, requestDetails, lookupKeyMap,
454 requestAction, resourceId, vnfType);
456 assertThat(actual, sameBeanAs(expected));
460 public void testGetGBBALaCarteNonServiceIsReplace() throws Exception {
461 GeneralBuildingBlock expected = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
462 GeneralBuildingBlock.class);
463 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
464 ExecuteBuildingBlock.class);
465 RequestDetails requestDetails = mapper.readValue(
466 new File(RESOURCE_PATH + "RequestDetailsInput_withRelatedInstanceList.json"), RequestDetails.class);
467 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
468 String requestAction = "replaceInstance";
469 Service service = Mockito.mock(Service.class);
470 ServiceModel serviceModel = new ServiceModel();
471 serviceModel.setCurrentService(service);
472 ServiceInstance serviceInstance = Mockito.mock(ServiceInstance.class);
473 String resourceId = "123";
474 String vnfType = "vnfType";
475 org.onap.aai.domain.yang.ServiceInstance aaiServiceInstance = new org.onap.aai.domain.yang.ServiceInstance();
476 aaiServiceInstance.setModelVersionId("modelVersionId");
477 org.onap.aai.domain.yang.CloudRegion aaiCloudRegion = Mockito.mock(org.onap.aai.domain.yang.CloudRegion.class);
478 lookupKeyMap.put(ResourceKey.SERVICE_INSTANCE_ID, "instanceId");
479 doReturn(service).when(SPY_bbInputSetupUtils)
480 .getCatalogServiceByModelUUID(aaiServiceInstance.getModelVersionId());
481 doReturn(service).when(SPY_bbInputSetupUtils).getCatalogServiceByModelUUID("modelUUID");
482 doReturn(aaiServiceInstance).when(SPY_bbInputSetupUtils).getAAIServiceInstanceById("instanceId");
484 doNothing().when(SPY_bbInputSetup).populateObjectsOnAssignAndCreateFlows(any(BBInputSetupParameter.class));
485 doReturn(serviceInstance).when(SPY_bbInputSetup).getExistingServiceInstance(aaiServiceInstance);
486 doReturn(expected).when(SPY_bbInputSetup).populateGBBWithSIAndAdditionalInfo(any(BBInputSetupParameter.class));
488 GeneralBuildingBlock actual = SPY_bbInputSetup.getGBBALaCarteNonService(executeBB, requestDetails, lookupKeyMap,
489 requestAction, resourceId, vnfType);
491 verify(SPY_bbInputSetup, times(1)).populateObjectsOnAssignAndCreateFlows(any(BBInputSetupParameter.class));
493 verify(SPY_bbInputSetupUtils, times(1)).getCatalogServiceByModelUUID(aaiServiceInstance.getModelVersionId());
494 verify(SPY_bbInputSetupUtils, times(1)).getCatalogServiceByModelUUID("modelUUID");
496 assertThat(actual, sameBeanAs(expected));
500 public void testGetGBBALaCarteNonServiceWithoutServiceModelInfo() throws Exception {
501 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
502 ExecuteBuildingBlock.class);
503 RequestDetails requestDetails = mapper.readValue(
504 new File(RESOURCE_PATH + "RequestDetailsInput_withRelatedInstanceList.json"), RequestDetails.class);
505 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
506 lookupKeyMap.put(ResourceKey.SERVICE_INSTANCE_ID, "si123");
507 String requestAction = "createInstance";
508 org.onap.aai.domain.yang.ServiceInstance aaiServiceInstance = new org.onap.aai.domain.yang.ServiceInstance();
509 aaiServiceInstance.setModelVersionId("modelVersionId");
510 String resourceId = "123";
511 String vnfType = "vnfType";
513 doReturn(aaiServiceInstance).when(SPY_bbInputSetupUtils).getAAIServiceInstanceById("si123");
514 doReturn(null).when(SPY_bbInputSetupUtils).getCatalogServiceByModelUUID(aaiServiceInstance.getModelVersionId());
516 expectedException.expect(ServiceModelNotFoundException.class);
517 expectedException.expectMessage(
518 "Related service instance model not found in MSO CatalogDB: model-version-id=modelVersionId");
520 SPY_bbInputSetup.getGBBALaCarteNonService(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId,
525 public void testGetGBBALaCarteNonServiceServiceInstanceNotFoundInAAI() throws Exception {
526 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
527 ExecuteBuildingBlock.class);
528 RequestDetails requestDetails = mapper.readValue(
529 new File(RESOURCE_PATH + "RequestDetailsInput_withRelatedInstanceList.json"), RequestDetails.class);
530 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
531 lookupKeyMap.put(ResourceKey.SERVICE_INSTANCE_ID, "si123");
532 String requestAction = "createInstance";
533 org.onap.aai.domain.yang.ServiceInstance aaiServiceInstance = new org.onap.aai.domain.yang.ServiceInstance();
534 aaiServiceInstance.setModelVersionId("modelVersionId");
535 String resourceId = "123";
536 String vnfType = "vnfType";
538 doReturn(null).when(SPY_bbInputSetupUtils).getAAIServiceInstanceById("si123");
540 expectedException.expect(NoServiceInstanceFoundException.class);
541 expectedException.expectMessage("Related service instance from AAI not found: service-instance-id=si123");
543 SPY_bbInputSetup.getGBBALaCarteNonService(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId,
548 public void testGetGBBALaCarteNonServiceWithoutRelatedInstances() throws Exception {
549 GeneralBuildingBlock expected = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
550 GeneralBuildingBlock.class);
551 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
552 ExecuteBuildingBlock.class);
553 RequestDetails requestDetails = mapper.readValue(
554 new File(RESOURCE_PATH + "RequestDetailsInput_withoutRelatedInstanceList.json"), RequestDetails.class);
555 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
556 String requestAction = "createInstance";
557 Service service = Mockito.mock(Service.class);
558 ServiceModel serviceModel = new ServiceModel();
559 serviceModel.setCurrentService(service);
560 String resourceId = "123";
561 ServiceInstance serviceInstance = Mockito.mock(ServiceInstance.class);
562 org.onap.aai.domain.yang.ServiceInstance aaiServiceInstance = new org.onap.aai.domain.yang.ServiceInstance();
563 aaiServiceInstance.setModelVersionId("modelVersionId");
564 org.onap.aai.domain.yang.CloudRegion aaiCloudRegion = Mockito.mock(org.onap.aai.domain.yang.CloudRegion.class);
565 String vnfType = "vnfType";
566 lookupKeyMap.put(ResourceKey.SERVICE_INSTANCE_ID, "instanceId");
567 doReturn(service).when(SPY_bbInputSetupUtils)
568 .getCatalogServiceByModelUUID(aaiServiceInstance.getModelVersionId());
569 doReturn(aaiServiceInstance).when(SPY_bbInputSetupUtils).getAAIServiceInstanceById("instanceId");
571 doNothing().when(SPY_bbInputSetup).populateObjectsOnAssignAndCreateFlows(any(BBInputSetupParameter.class));
573 doReturn(serviceInstance).when(SPY_bbInputSetup).getExistingServiceInstance(aaiServiceInstance);
574 doReturn(expected).when(SPY_bbInputSetup).populateGBBWithSIAndAdditionalInfo(any(BBInputSetupParameter.class));
576 GeneralBuildingBlock actual = SPY_bbInputSetup.getGBBALaCarteNonService(executeBB, requestDetails, lookupKeyMap,
577 requestAction, resourceId, vnfType);
579 assertThat(actual, sameBeanAs(expected));
583 public void testGetGBBALaCarteService() throws Exception {
584 GeneralBuildingBlock expected = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
585 GeneralBuildingBlock.class);
586 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
587 ExecuteBuildingBlock.class);
588 RequestDetails requestDetails = mapper.readValue(
589 new File(RESOURCE_PATH + "RequestDetailsInput_withRelatedInstanceList.json"), RequestDetails.class);
590 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
592 org.onap.so.serviceinstancebeans.Project requestProject = new org.onap.so.serviceinstancebeans.Project();
593 org.onap.so.serviceinstancebeans.OwningEntity requestOwningEntity =
594 new org.onap.so.serviceinstancebeans.OwningEntity();
595 requestDetails.setProject(requestProject);
596 requestDetails.setOwningEntity(requestOwningEntity);
598 Service service = Mockito.mock(Service.class);
599 Customer customer = Mockito.mock(Customer.class);
600 ServiceSubscription serviceSubscription = Mockito.mock(ServiceSubscription.class);
601 Project project = Mockito.mock(Project.class);
602 OwningEntity owningEntity = Mockito.mock(OwningEntity.class);
603 ServiceInstance serviceInstance = Mockito.mock(ServiceInstance.class);
604 String resourceId = "123";
605 String requestAction = "createInstance";
606 executeBB.setaLaCarte(true);
607 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.SERVICE_INSTANCE.toString());
608 org.onap.aai.domain.yang.CloudRegion aaiCloudRegion = Mockito.mock(org.onap.aai.domain.yang.CloudRegion.class);
610 doReturn(service).when(SPY_bbInputSetupUtils)
611 .getCatalogServiceByModelUUID(requestDetails.getModelInfo().getModelVersionId());
612 doReturn(project).when(bbInputSetupMapperLayer).mapRequestProject(requestDetails.getProject());
613 doReturn(owningEntity).when(bbInputSetupMapperLayer).mapRequestOwningEntity(requestDetails.getOwningEntity());
615 doReturn(customer).when(SPY_bbInputSetup).getCustomerAndServiceSubscription(requestDetails, resourceId);
616 doReturn(serviceInstance).when(SPY_bbInputSetup).getALaCarteServiceInstance(service, requestDetails, customer,
617 project, owningEntity, lookupKeyMap, resourceId, Boolean.TRUE.equals(executeBB.isaLaCarte()),
618 executeBB.getBuildingBlock().getBpmnFlowName());
619 doReturn(expected).when(SPY_bbInputSetup).populateGBBWithSIAndAdditionalInfo(any(BBInputSetupParameter.class));
621 GeneralBuildingBlock actual = SPY_bbInputSetup.getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
622 requestAction, resourceId);
624 assertThat(actual, sameBeanAs(expected));
628 public void testGetGBBALaCarteServiceFindServiceByModelVersionId() throws Exception {
629 GeneralBuildingBlock expected = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
630 GeneralBuildingBlock.class);
631 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
632 ExecuteBuildingBlock.class);
633 RequestDetails requestDetails = mapper.readValue(
634 new File(RESOURCE_PATH + "RequestDetailsInput_withRelatedInstanceList.json"), RequestDetails.class);
635 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
637 org.onap.so.serviceinstancebeans.Project requestProject = new org.onap.so.serviceinstancebeans.Project();
638 org.onap.so.serviceinstancebeans.OwningEntity requestOwningEntity =
639 new org.onap.so.serviceinstancebeans.OwningEntity();
640 requestDetails.setProject(requestProject);
641 requestDetails.setOwningEntity(requestOwningEntity);
643 Service service = Mockito.mock(Service.class);
644 Customer customer = Mockito.mock(Customer.class);
645 ServiceSubscription serviceSubscription = Mockito.mock(ServiceSubscription.class);
646 Project project = Mockito.mock(Project.class);
647 OwningEntity owningEntity = Mockito.mock(OwningEntity.class);
648 ServiceInstance serviceInstance = Mockito.mock(ServiceInstance.class);
649 String resourceId = "123";
650 String requestAction = "createInstance";
651 executeBB.setaLaCarte(true);
652 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.SERVICE_INSTANCE.toString());
653 org.onap.aai.domain.yang.CloudRegion aaiCloudRegion = Mockito.mock(org.onap.aai.domain.yang.CloudRegion.class);
655 doReturn(null).when(SPY_bbInputSetupUtils)
656 .getCatalogServiceByModelUUID(requestDetails.getModelInfo().getModelVersionId());
657 doReturn(service).when(SPY_bbInputSetupUtils).getCatalogServiceByModelVersionAndModelInvariantUUID(
658 requestDetails.getModelInfo().getModelVersion(), requestDetails.getModelInfo().getModelInvariantId());
659 doReturn(project).when(bbInputSetupMapperLayer).mapRequestProject(requestDetails.getProject());
660 doReturn(owningEntity).when(bbInputSetupMapperLayer).mapRequestOwningEntity(requestDetails.getOwningEntity());
662 doReturn(customer).when(SPY_bbInputSetup).getCustomerAndServiceSubscription(requestDetails, resourceId);
663 doReturn(serviceInstance).when(SPY_bbInputSetup).getALaCarteServiceInstance(service, requestDetails, customer,
664 project, owningEntity, lookupKeyMap, resourceId, Boolean.TRUE.equals(executeBB.isaLaCarte()),
665 executeBB.getBuildingBlock().getBpmnFlowName());
666 doReturn(expected).when(SPY_bbInputSetup).populateGBBWithSIAndAdditionalInfo(any(BBInputSetupParameter.class));
668 GeneralBuildingBlock actual = SPY_bbInputSetup.getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
669 requestAction, resourceId);
671 assertThat(actual, sameBeanAs(expected));
675 public void testGetGBBALaCarteServiceNoProjectNoOE() throws Exception {
676 GeneralBuildingBlock expected = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
677 GeneralBuildingBlock.class);
678 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
679 ExecuteBuildingBlock.class);
680 RequestDetails requestDetails = mapper.readValue(
681 new File(RESOURCE_PATH + "RequestDetailsInput_withRelatedInstanceList.json"), RequestDetails.class);
682 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
684 Service service = Mockito.mock(Service.class);
685 Customer customer = Mockito.mock(Customer.class);
686 ServiceSubscription serviceSubscription = Mockito.mock(ServiceSubscription.class);
687 ServiceInstance serviceInstance = Mockito.mock(ServiceInstance.class);
688 String resourceId = "123";
689 String requestAction = "createInstance";
690 executeBB.setaLaCarte(true);
691 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.SERVICE_INSTANCE.toString());
692 org.onap.aai.domain.yang.CloudRegion aaiCloudRegion = Mockito.mock(org.onap.aai.domain.yang.CloudRegion.class);
694 Map<String, String> uriKeys = new HashMap<>();
695 uriKeys.put("global-customer-id", "globalCustomerId");
696 uriKeys.put("service-type", "serviceType");
698 doReturn(service).when(SPY_bbInputSetupUtils)
699 .getCatalogServiceByModelUUID(requestDetails.getModelInfo().getModelVersionId());
701 doReturn(customer).when(SPY_bbInputSetup).getCustomerAndServiceSubscription(requestDetails, resourceId);
703 doReturn(serviceInstance).when(SPY_bbInputSetup).getALaCarteServiceInstance(service, requestDetails, customer,
704 null, null, lookupKeyMap, resourceId, Boolean.TRUE.equals(executeBB.isaLaCarte()),
705 executeBB.getBuildingBlock().getBpmnFlowName());
706 doReturn(expected).when(SPY_bbInputSetup).populateGBBWithSIAndAdditionalInfo(any(BBInputSetupParameter.class));
708 GeneralBuildingBlock actual = SPY_bbInputSetup.getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
709 requestAction, resourceId);
711 assertThat(actual, sameBeanAs(expected));
715 public void testGetServiceInstanceHelperCreateScenario() throws Exception {
716 RequestDetails requestDetails = new RequestDetails();
717 RequestInfo requestInfo = new RequestInfo();
718 requestInfo.setInstanceName("SharansInstanceName");
719 requestDetails.setRequestInfo(requestInfo);
720 Customer customer = new Customer();
721 String serviceInstanceId = "SharansInstanceId";
722 boolean aLaCarte = true;
723 ServiceInstance expected = new ServiceInstance();
724 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
725 Service service = new Service();
726 service.setModelUUID("modelUUID");
727 String bbName = AssignFlows.SERVICE_INSTANCE.toString();
729 doReturn(null).when(SPY_bbInputSetupUtils).getAAIServiceInstanceByName(requestInfo.getInstanceName(), customer);
730 doReturn(null).when(SPY_bbInputSetupUtils).getAAIServiceInstanceById(serviceInstanceId);
733 doReturn(expected).when(SPY_bbInputSetup).createServiceInstance(requestDetails, null, null, lookupKeyMap,
736 ServiceInstance actual = SPY_bbInputSetup.getServiceInstanceHelper(requestDetails, customer, null, null,
737 lookupKeyMap, serviceInstanceId, aLaCarte, service, bbName);
738 assertThat(actual, sameBeanAs(expected));
742 public void testGetServiceInstanceHelperCreateScenarioExisting() throws Exception {
743 RequestDetails requestDetails = new RequestDetails();
744 RequestInfo requestInfo = new RequestInfo();
745 requestInfo.setInstanceName("SharansInstanceName");
746 requestDetails.setRequestInfo(requestInfo);
747 Customer customer = new Customer();
748 String serviceInstanceId = "SharansInstanceId";
749 boolean aLaCarte = true;
750 Service service = new Service();
751 service.setModelUUID("modelUUID");
752 ServiceInstance expected = new ServiceInstance();
753 org.onap.aai.domain.yang.ServiceInstance serviceInstanceAAI = new org.onap.aai.domain.yang.ServiceInstance();
754 serviceInstanceAAI.setModelVersionId("modelUUID");
755 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
756 String bbName = AssignFlows.SERVICE_INSTANCE.toString();
758 doReturn(serviceInstanceAAI).when(SPY_bbInputSetupUtils)
759 .getAAIServiceInstanceByName(requestInfo.getInstanceName(), customer);
760 doReturn(expected).when(SPY_bbInputSetup).getExistingServiceInstance(serviceInstanceAAI);
762 ServiceInstance actual = SPY_bbInputSetup.getServiceInstanceHelper(requestDetails, customer, null, null,
763 lookupKeyMap, serviceInstanceId, aLaCarte, service, bbName);
764 assertThat(actual, sameBeanAs(expected));
768 public void testGetServiceInstanceHelperCreateScenarioExistingNoNameButWithId() throws Exception {
769 RequestDetails requestDetails = new RequestDetails();
770 RequestInfo requestInfo = new RequestInfo();
771 requestInfo.setInstanceName("SharansInstanceName");
772 requestDetails.setRequestInfo(requestInfo);
773 Customer customer = new Customer();
774 String serviceInstanceId = "SharansInstanceId";
775 boolean aLaCarte = true;
776 Service service = new Service();
777 service.setModelUUID("modelUUID");
778 ServiceInstance expected = new ServiceInstance();
779 org.onap.aai.domain.yang.ServiceInstance serviceInstanceAAI = new org.onap.aai.domain.yang.ServiceInstance();
780 serviceInstanceAAI.setModelVersionId("modelUUID");
781 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
782 String bbName = "ActivateServiceInstanceBB";
784 doReturn(serviceInstanceAAI).when(SPY_bbInputSetupUtils).getAAIServiceInstanceById(serviceInstanceId);
785 doReturn(expected).when(SPY_bbInputSetup).getExistingServiceInstance(serviceInstanceAAI);
787 ServiceInstance actual = SPY_bbInputSetup.getServiceInstanceHelper(requestDetails, customer, null, null,
788 lookupKeyMap, serviceInstanceId, aLaCarte, service, bbName);
789 assertThat(actual, sameBeanAs(expected));
793 public void testGetServiceInstanceHelperCreateScenarioExistingNoNameButWithIdDifferentModel() throws Exception {
794 RequestDetails requestDetails = new RequestDetails();
795 RequestInfo requestInfo = new RequestInfo();
796 requestDetails.setRequestInfo(requestInfo);
797 Customer customer = new Customer();
798 String serviceInstanceId = "SharansInstanceId";
799 boolean aLaCarte = true;
800 Service service = new Service();
801 service.setModelUUID("modelUUID");
802 ServiceInstance expected = new ServiceInstance();
803 org.onap.aai.domain.yang.ServiceInstance serviceInstanceAAI = new org.onap.aai.domain.yang.ServiceInstance();
804 serviceInstanceAAI.setModelVersionId("modelUUIDDifferent");
805 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
806 String bbName = "ActivateServiceInstanceBB";
807 Service differentService = new Service();
808 differentService.setModelUUID("modelUUIDDifferent");
810 doReturn(serviceInstanceAAI).when(SPY_bbInputSetupUtils).getAAIServiceInstanceById(serviceInstanceId);
813 ServiceInstance actual = SPY_bbInputSetup.getServiceInstanceHelper(requestDetails, customer, null, null,
814 lookupKeyMap, serviceInstanceId, aLaCarte, service, bbName);
815 assertThat(actual, sameBeanAs(expected));
819 public void testGetServiceInstanceHelperCreateScenarioExistingWithName() throws Exception {
820 RequestDetails requestDetails = new RequestDetails();
821 RequestInfo requestInfo = new RequestInfo();
822 requestDetails.setRequestInfo(requestInfo);
823 ServiceSubscription serviceSub = new ServiceSubscription();
824 Customer customer = new Customer();
825 customer.setServiceSubscription(serviceSub);
826 ServiceInstance expected = new ServiceInstance();
827 expected.setServiceInstanceId("serviceInstanceId");
828 org.onap.aai.domain.yang.ServiceInstance serviceInstanceAAI = new org.onap.aai.domain.yang.ServiceInstance();
829 serviceInstanceAAI.setServiceInstanceId("serviceInstanceId");
831 doReturn(serviceInstanceAAI).when(SPY_bbInputSetupUtils).getAAIServiceInstanceByIdAndCustomer(Mockito.any(),
832 Mockito.any(), Mockito.any());
833 ServiceInstance actual = SPY_bbInputSetup.getServiceInstanceHelper(requestDetails, customer, null, null,
834 new HashMap<>(), "SharansInstanceId", false, new Service(), "ActivateServiceInstanceBB");
835 assertThat(actual, sameBeanAs(expected));
838 @Test(expected = Exception.class)
839 public void testGetServiceInstanceHelperCreateScenarioExistingNoNameButWithIdExceptionThrown() throws Exception {
840 RequestDetails requestDetails = new RequestDetails();
841 RequestInfo requestInfo = new RequestInfo();
842 requestDetails.setRequestInfo(requestInfo);
843 Customer customer = new Customer();
844 String serviceInstanceId = "SharansInstanceId";
845 boolean aLaCarte = true;
846 Service service = new Service();
847 service.setModelUUID("modelUUID");
848 org.onap.aai.domain.yang.ServiceInstance serviceInstanceAAI = new org.onap.aai.domain.yang.ServiceInstance();
849 serviceInstanceAAI.setModelVersionId("modelUUIDDifferent");
850 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
851 String bbName = AssignFlows.SERVICE_INSTANCE.toString();
853 ServiceInstance actual = SPY_bbInputSetup.getServiceInstanceHelper(requestDetails, customer, null, null,
854 lookupKeyMap, serviceInstanceId, aLaCarte, service, bbName);
858 public void testPopulateObjectsOnAssignAndCreateFlows() throws Exception {
859 String bbName = AssignFlows.SERVICE_INSTANCE.toString();
860 String instanceName = "instanceName";
861 String vnfType = "vnfType";
862 String resourceId = "networkId";
863 String productFamilyId = "productFamilyId";
864 String applicationId = "applicationId";
865 Service service = Mockito.mock(Service.class);
866 ServiceModel serviceModel = new ServiceModel();
867 serviceModel.setCurrentService(service);
868 ServiceInstance serviceInstance = Mockito.mock(ServiceInstance.class);
869 RequestDetails requestDetails = Mockito.mock(RequestDetails.class);
870 ModelInfo modelInfo = Mockito.mock(ModelInfo.class);
871 RequestInfo requestInfo = Mockito.mock(RequestInfo.class);
872 RelatedInstanceList[] relatedInstanceList = new RelatedInstanceList[] {};
873 CloudConfiguration cloudConfiguration = new CloudConfiguration();
874 org.onap.so.serviceinstancebeans.Platform platform =
875 Mockito.mock(org.onap.so.serviceinstancebeans.Platform.class);
876 org.onap.so.serviceinstancebeans.LineOfBusiness lineOfBusiness =
877 Mockito.mock(org.onap.so.serviceinstancebeans.LineOfBusiness.class);
878 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
880 doReturn(modelInfo).when(requestDetails).getModelInfo();
881 doReturn(productFamilyId).when(requestInfo).getProductFamilyId();
882 doReturn(requestInfo).when(requestDetails).getRequestInfo();
883 doReturn(instanceName).when(requestInfo).getInstanceName();
884 doReturn(platform).when(requestDetails).getPlatform();
885 doReturn(lineOfBusiness).when(requestDetails).getLineOfBusiness();
886 doReturn(relatedInstanceList).when(requestDetails).getRelatedInstanceList();
887 doReturn(cloudConfiguration).when(requestDetails).getCloudConfiguration();
888 doReturn(applicationId).when(requestInfo).getApplicationId();
890 doReturn(ModelType.network).when(modelInfo).getModelType();
891 BBInputSetupParameter parameter = new BBInputSetupParameter.Builder().setRequestId(REQUEST_ID)
892 .setRequestDetails(requestDetails).setService(service).setBbName(bbName)
893 .setServiceInstance(serviceInstance).setLookupKeyMap(lookupKeyMap).setResourceId(resourceId)
894 .setVnfType(vnfType).setIsReplace(false).setApplicationId(applicationId).build();
896 doNothing().when(SPY_bbInputSetup).populateL3Network(parameter);
897 SPY_bbInputSetup.populateObjectsOnAssignAndCreateFlows(parameter);
898 parameter.setInstanceName(instanceName);
899 parameter.setModelInfo(modelInfo);
900 verify(SPY_bbInputSetup, times(1)).populateL3Network(parameter);
901 assertEquals("NetworkId populated", true,
902 lookupKeyMap.get(ResourceKey.NETWORK_ID).equalsIgnoreCase(resourceId));
904 doReturn(ModelType.vnf).when(modelInfo).getModelType();
905 resourceId = "vnfId";
906 doNothing().when(SPY_bbInputSetup).populateGenericVnf(parameter);
907 parameter.setResourceId(resourceId);
908 SPY_bbInputSetup.populateObjectsOnAssignAndCreateFlows(parameter);
909 verify(SPY_bbInputSetup, times(1)).populateGenericVnf(parameter);
910 assertEquals("VnfId populated", true,
911 lookupKeyMap.get(ResourceKey.GENERIC_VNF_ID).equalsIgnoreCase(resourceId));
912 doReturn(ModelType.volumeGroup).when(modelInfo).getModelType();
913 resourceId = "volumeGroupId";
914 parameter.setResourceId(resourceId);
915 doNothing().when(SPY_bbInputSetup).populateVolumeGroup(parameter);
916 SPY_bbInputSetup.populateObjectsOnAssignAndCreateFlows(parameter);
917 verify(SPY_bbInputSetup, times(1)).populateVolumeGroup(parameter);
918 assertEquals("VolumeGroupId populated", true,
919 lookupKeyMap.get(ResourceKey.VOLUME_GROUP_ID).equalsIgnoreCase(resourceId));
921 doReturn(ModelType.vfModule).when(modelInfo).getModelType();
922 resourceId = "vfModuleId";
923 parameter.setResourceId(resourceId);
924 doNothing().when(SPY_bbInputSetup).populateVfModule(parameter);
925 SPY_bbInputSetup.populateObjectsOnAssignAndCreateFlows(parameter);
926 verify(SPY_bbInputSetup, times(1)).populateVfModule(parameter);
927 assertEquals("VfModuleId populated", true,
928 lookupKeyMap.get(ResourceKey.VF_MODULE_ID).equalsIgnoreCase(resourceId));
930 String bbNameAssignVolume = AssignFlows.VOLUME_GROUP.toString();
931 doReturn(ModelType.vfModule).when(modelInfo).getModelType();
932 resourceId = "vfModuleId";
933 parameter.setResourceId(resourceId);
934 parameter.setBbName(bbNameAssignVolume);
935 doNothing().when(SPY_bbInputSetup).populateVolumeGroup(parameter);
936 SPY_bbInputSetup.populateObjectsOnAssignAndCreateFlows(parameter);
937 verify(SPY_bbInputSetup, times(2)).populateVolumeGroup(parameter);
938 assertEquals(resourceId, lookupKeyMap.get(ResourceKey.VOLUME_GROUP_ID));
942 public void testPopulateGBBWithSIAndAdditionalInfo() throws Exception {
943 GeneralBuildingBlock expected =
944 mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpectedWUserParamsInfo.json"),
945 GeneralBuildingBlock.class);
946 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
947 ExecuteBuildingBlock.class);
948 RequestDetails requestDetails = mapper.readValue(
949 new File(RESOURCE_PATH + "RequestDetailsInput_withRelatedInstanceList.json"), RequestDetails.class);
950 RequestContext requestContext =
951 mapper.readValue(new File(RESOURCE_PATH + "RequestContextExpected.json"), RequestContext.class);
952 ServiceInstance serviceInstance =
953 mapper.readValue(new File(RESOURCE_PATH + "ServiceInstance_getServiceInstanceNOAAIExpected.json"),
954 ServiceInstance.class);
955 CloudConfiguration cloudConfiguration = new CloudConfiguration();
956 cloudConfiguration.setTenantId("tenantId");
957 requestDetails.setCloudConfiguration(cloudConfiguration);
958 OrchestrationContext orchestrationContext = new OrchestrationContext();
959 orchestrationContext.setIsRollbackEnabled(false);
961 CloudRegion cloudRegion = new CloudRegion();
962 cloudRegion.setCloudOwner("test-owner-name");
963 cloudRegion.setLcpCloudRegionId("lcpCloudRegionId");
964 cloudRegion.setComplex("complexName");
965 cloudRegion.setTenantId("tenantId");
967 Map<String, String> uriKeys = new HashMap<>();
968 uriKeys.put(AAIFluentTypeBuilder.Types.CUSTOMER.getUriParams().globalCustomerId, "global-customer-id");
969 uriKeys.put(AAIFluentTypeBuilder.Types.SERVICE_SUBSCRIPTION.getUriParams().serviceType, "service-type");
971 Customer customer = new Customer();
972 ServiceSubscription serviceSubscription = new ServiceSubscription();
973 serviceSubscription.setServiceType("subscriptionServiceType");
974 customer.setGlobalCustomerId("globalCustomerId");
975 customer.setSubscriberName("subscriberName");
976 customer.setSubscriberType("subscriberType");
977 customer.setServiceSubscription(serviceSubscription);
979 org.onap.so.bpmn.servicedecomposition.bbobjects.Tenant tenant =
980 new org.onap.so.bpmn.servicedecomposition.bbobjects.Tenant();
981 tenant.setTenantContext("tenantContext");
982 tenant.setTenantId("tenantId");
983 tenant.setTenantName("tenantName");
985 org.onap.aai.domain.yang.CloudRegion aaiCloudRegion = Mockito.mock(org.onap.aai.domain.yang.CloudRegion.class);
986 org.onap.aai.domain.yang.Tenants aaiTenants = Mockito.mock(org.onap.aai.domain.yang.Tenants.class);
987 org.onap.aai.domain.yang.Tenant aaiTenant = new org.onap.aai.domain.yang.Tenant();
988 aaiTenant.setTenantId("tenantId");
989 List<org.onap.aai.domain.yang.Tenant> tenants = new ArrayList<>();
990 tenants.add(aaiTenant);
992 String requestAction = "createInstance";
994 doReturn(uriKeys).when(SPY_bbInputSetupUtils)
995 .getURIKeysFromServiceInstance(serviceInstance.getServiceInstanceId());
996 doReturn(customer).when(SPY_bbInputSetup).mapCustomer(uriKeys.get("global-customer-id"),
997 uriKeys.get("service-type"));
998 doReturn(aaiCloudRegion).when(SPY_bbInputSetupUtils).getCloudRegion(requestDetails.getCloudConfiguration());
999 doReturn(orchestrationContext).when(bbInputSetupMapperLayer).mapOrchestrationContext(requestDetails);
1000 doReturn(requestContext).when(bbInputSetupMapperLayer).mapRequestContext(requestDetails);
1001 doReturn(cloudRegion).when(bbInputSetupMapperLayer).mapCloudRegion(requestDetails.getCloudConfiguration(),
1003 doReturn(tenant).when(bbInputSetupMapperLayer).mapTenant(aaiTenant);
1004 doReturn(aaiTenants).when(aaiCloudRegion).getTenants();
1005 doReturn(tenants).when(aaiTenants).getTenant();
1006 BBInputSetupParameter parameter = new BBInputSetupParameter.Builder().setServiceInstance(serviceInstance)
1007 .setRequestDetails(requestDetails).setExecuteBB(executeBB).setRequestAction(requestAction).build();
1008 GeneralBuildingBlock actual = SPY_bbInputSetup.populateGBBWithSIAndAdditionalInfo(parameter);
1010 assertThat(actual, sameBeanAs(expected));
1014 public void testGetServiceInstanceNOAAI() throws Exception {
1015 ServiceInstance expected =
1016 mapper.readValue(new File(RESOURCE_PATH + "ServiceInstance_getServiceInstanceNOAAIExpected.json"),
1017 ServiceInstance.class);
1018 Service service = mapper.readValue(
1019 new File(RESOURCE_PATH + "CatalogDBService_getServiceInstanceNOAAIInput.json"), Service.class);
1020 Customer customer = mapper.readValue(new File(RESOURCE_PATH + "Customer.json"), Customer.class);
1021 Project project = mapper.readValue(new File(RESOURCE_PATH + "Project.json"), Project.class);
1022 OwningEntity owningEntity = mapper.readValue(new File(RESOURCE_PATH + "OwningEntity.json"), OwningEntity.class);
1023 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
1025 BuildingBlock buildingBlock = new BuildingBlock().setBpmnFlowName(AssignFlows.SERVICE_INSTANCE.toString());
1026 ExecuteBuildingBlock executeBB = new ExecuteBuildingBlock().setaLaCarte(true).setBuildingBlock(buildingBlock);
1027 RequestDetails requestDetails = new RequestDetails();
1028 RequestInfo reqInfo = new RequestInfo();
1029 reqInfo.setInstanceName("serviceInstanceName");
1030 requestDetails.setRequestInfo(reqInfo);
1031 ModelInfo modelInfo = new ModelInfo();
1032 modelInfo.setModelType(ModelType.service);
1033 requestDetails.setModelInfo(modelInfo);
1034 doReturn(null).when(SPY_bbInputSetupUtils)
1035 .getAAIServiceInstanceByName(requestDetails.getRequestInfo().getInstanceName(), customer);
1036 doReturn(expected.getModelInfoServiceInstance()).when(bbInputSetupMapperLayer)
1037 .mapCatalogServiceIntoServiceInstance(service);
1038 doReturn(null).when(SPY_bbInputSetupUtils).getAAIServiceInstanceById(any(String.class));
1039 String serviceInstanceId = "3655a595-05d1-433c-93c0-3afd6b572545";
1040 boolean aLaCarte = true;
1042 ServiceInstance actual =
1043 SPY_bbInputSetup.getALaCarteServiceInstance(service, requestDetails, customer, project, owningEntity,
1044 lookupKeyMap, serviceInstanceId, aLaCarte, executeBB.getBuildingBlock().getBpmnFlowName());
1046 assertThat(actual, sameBeanAs(expected));
1050 public void testGetServiceSubscription() throws IOException {
1051 ServiceSubscription expected = new ServiceSubscription();
1052 RequestDetails requestDetails = new RequestDetails();
1053 RequestParameters params = new RequestParameters();
1054 params.setSubscriptionServiceType("subscriptionServiceType");
1055 requestDetails.setRequestParameters(params);
1056 org.onap.aai.domain.yang.ServiceSubscription aaiServiceSubscription =
1057 new org.onap.aai.domain.yang.ServiceSubscription();
1058 Customer customer = new Customer();
1059 customer.setGlobalCustomerId("globalCustomerId");
1060 doReturn(aaiServiceSubscription).when(SPY_bbInputSetupUtils).getAAIServiceSubscription(
1061 customer.getGlobalCustomerId(), requestDetails.getRequestParameters().getSubscriptionServiceType());
1062 doReturn(expected).when(bbInputSetupMapperLayer).mapAAIServiceSubscription(aaiServiceSubscription);
1064 ServiceSubscription actual = SPY_bbInputSetup.getServiceSubscription(requestDetails, customer);
1065 assertThat(actual, sameBeanAs(expected));
1069 public void testGetCustomer() throws IOException {
1070 Customer expected = new Customer();
1071 RequestDetails requestDetails = new RequestDetails();
1072 SubscriberInfo subscriberInfo = new SubscriberInfo();
1073 subscriberInfo.setGlobalSubscriberId("globalSubscriberId");
1074 requestDetails.setSubscriberInfo(subscriberInfo);
1075 org.onap.aai.domain.yang.Customer aaiCustomer = new org.onap.aai.domain.yang.Customer();
1076 doReturn(aaiCustomer).when(SPY_bbInputSetupUtils)
1077 .getAAICustomer(requestDetails.getSubscriberInfo().getGlobalSubscriberId());
1078 doReturn(expected).when(bbInputSetupMapperLayer).mapAAICustomer(aaiCustomer);
1080 Customer actual = SPY_bbInputSetup.getCustomerFromRequest(requestDetails);
1081 assertThat(actual, sameBeanAs(expected));
1085 public void testGetExistingServiceInstance() throws Exception {
1086 org.onap.aai.domain.yang.ServiceInstance serviceInstanceAAI = new org.onap.aai.domain.yang.ServiceInstance();
1087 ServiceInstance expected = new ServiceInstance();
1089 doReturn(expected).when(bbInputSetupMapperLayer).mapAAIServiceInstanceIntoServiceInstance(serviceInstanceAAI);
1092 ServiceInstance actual = SPY_bbInputSetup.getExistingServiceInstance(serviceInstanceAAI);
1093 assertThat(actual, sameBeanAs(expected));
1097 public void testPopulateNetworkCollectionAndInstanceGroupAssign() throws Exception {
1098 Service service = Mockito.mock(Service.class);
1099 String key = "collectionCustId";
1100 ServiceInstance serviceInstance =
1101 mapper.readValue(new File(RESOURCE_PATH + "ServiceInstance_getServiceInstanceNOAAIExpected.json"),
1102 ServiceInstance.class);
1103 String resourceId = "123";
1104 Collection collection = SPY_bbInputSetup.createCollection(resourceId);
1105 InstanceGroup instanceGroup = SPY_bbInputSetup.createInstanceGroup();
1106 assertNull(serviceInstance.getCollection());
1107 doReturn(true).when(SPY_bbInputSetup).isVlanTagging(service, key);
1109 doReturn(collection).when(SPY_bbInputSetup).createCollection(resourceId);
1110 doReturn(instanceGroup).when(SPY_bbInputSetup).createInstanceGroup();
1111 doNothing().when(SPY_bbInputSetup).mapCatalogCollection(service, collection, key);
1113 NetworkCollectionResourceCustomization networkCollection = new NetworkCollectionResourceCustomization();
1114 networkCollection.setModelCustomizationUUID(key);
1115 networkCollection.setCollectionResource(new CollectionResource());
1116 networkCollection.getCollectionResource().setInstanceGroup(new org.onap.so.db.catalog.beans.InstanceGroup());
1117 networkCollection.getCollectionResource().getInstanceGroup().setToscaNodeType("NetworkCollectionResource");
1118 networkCollection.getCollectionResource().getInstanceGroup().setType(InstanceGroupType.L3_NETWORK);
1119 networkCollection.getCollectionResource().getInstanceGroup()
1120 .setCollectionInstanceGroupCustomizations(new ArrayList<>());
1121 List<CollectionResourceCustomization> customizations = new ArrayList<>();
1122 customizations.add(networkCollection);
1123 doReturn(customizations).when(service).getCollectionResourceCustomizations();
1124 BBInputSetupParameter parameter = new BBInputSetupParameter.Builder().setService(service)
1125 .setServiceInstance(serviceInstance).setResourceId(resourceId).setKey(key)
1126 .setBbName(AssignFlows.NETWORK_COLLECTION.toString()).build();
1128 SPY_bbInputSetup.populateNetworkCollectionAndInstanceGroupAssign(parameter);
1129 assertNotNull(serviceInstance.getCollection());
1130 assertNotNull(serviceInstance.getCollection().getInstanceGroup());
1132 verify(SPY_bbInputSetup, times(1)).mapCatalogCollection(service, serviceInstance.getCollection(), key);
1133 verify(SPY_bbInputSetup, times(1)).mapCatalogNetworkCollectionInstanceGroup(service,
1134 serviceInstance.getCollection().getInstanceGroup(), key);
1138 public void testPopulateInstanceGroup() throws Exception {
1139 ModelInfo modelInfo = Mockito.mock(ModelInfo.class);
1140 Service service = Mockito.mock(Service.class);
1141 List<InstanceGroup> instanceGroups = Mockito.spy(new ArrayList<>());
1142 ServiceInstance serviceInstance = Mockito.spy(new ServiceInstance());
1143 serviceInstance.setServiceInstanceId("si-001");
1144 serviceInstance.setServiceInstanceName("test service instance");
1145 serviceInstance.setInstanceGroups(instanceGroups);
1147 BBInputSetupParameter parameter = new BBInputSetupParameter.Builder().setModelInfo(modelInfo)
1148 .setService(service).setServiceInstance(serviceInstance).setResourceId("instance-group-001")
1149 .setInstanceName("test instance group").build();
1150 SPY_bbInputSetup.populateInstanceGroup(parameter);
1151 verify(SPY_bbInputSetup, times(1)).mapCatalogInstanceGroup(isA(InstanceGroup.class), isA(ModelInfo.class),
1152 isA(Service.class));
1153 verify(instanceGroups, times(1)).add(isA(InstanceGroup.class));
1157 public void testIsVlanTagging() throws Exception {
1158 boolean expected = true;
1159 Service service = Mockito.mock(Service.class);
1160 String key = "collectionCustId";
1161 NetworkCollectionResourceCustomization networkCollection = new NetworkCollectionResourceCustomization();
1162 networkCollection.setModelCustomizationUUID(key);
1163 networkCollection.setCollectionResource(new CollectionResource());
1164 networkCollection.getCollectionResource().setInstanceGroup(new org.onap.so.db.catalog.beans.InstanceGroup());
1165 networkCollection.getCollectionResource().getInstanceGroup()
1166 .setToscaNodeType("org.openecomp.resource.cr.NetworkCollectionResource1806");
1167 List<CollectionResourceCustomization> customizations = new ArrayList<>();
1168 customizations.add(networkCollection);
1169 doReturn(customizations).when(service).getCollectionResourceCustomizations();
1170 boolean actual = SPY_bbInputSetup.isVlanTagging(service, key);
1171 assertEquals("Is Vlan Tagging check.", expected, actual);
1175 public void testPopulateVolumeGroup() throws Exception {
1176 RequestDetails requestDetails = new RequestDetails();
1177 RelatedInstanceList ril = new RelatedInstanceList();
1178 RelatedInstance ri = new RelatedInstance();
1179 ModelInfo mi = new ModelInfo();
1180 mi.setModelType(ModelType.vnf);
1181 mi.setModelCustomizationUuid("vnfModelCustomizationUUID");
1182 mi.setModelCustomizationId("vnfModelCustomizationUUID");
1183 ri.setModelInfo(mi);
1184 ril.setRelatedInstance(ri);
1185 requestDetails.setRelatedInstanceList(new RelatedInstanceList[] {ril});
1187 ModelInfo modelInfo = new ModelInfo();
1188 modelInfo.setModelCustomizationId("volumeGroupCustId");
1190 RequestInfo reqInfo = new RequestInfo();
1191 reqInfo.setInstanceName("volumeGroupName");
1192 requestDetails.setModelInfo(modelInfo);
1193 requestDetails.setRequestInfo(reqInfo);
1195 ServiceInstance serviceInstance = new ServiceInstance();
1196 GenericVnf vnf = new GenericVnf();
1197 vnf.setVnfId("genericVnfId");
1199 VolumeGroup vg = new VolumeGroup();
1200 vg.setVolumeGroupName("volumeGroupName");
1201 vg.setVolumeGroupId("volumeGroupId");
1202 vg.setModelInfoVfModule(new ModelInfoVfModule());
1203 vg.getModelInfoVfModule().setModelCustomizationUUID("volumeGroupCustId");
1204 vnf.getVolumeGroups().add(vg);
1205 serviceInstance.getVnfs().add(vnf);
1207 Service service = mapper.readValue(
1208 new File(RESOURCE_PATH + "CatalogDBService_getServiceInstanceNOAAIInput.json"), Service.class);
1209 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
1210 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "genericVnfId");
1212 ServiceModel serviceModel = new ServiceModel();
1213 serviceModel.setCurrentService(service);
1214 String bbName = AssignFlows.VOLUME_GROUP.toString();
1215 String resourceId = "123";
1216 doNothing().when(SPY_bbInputSetup).mapCatalogVolumeGroup(isA(VolumeGroup.class), eq(modelInfo), eq(service),
1217 eq("vnfModelCustomizationUUID"));
1218 org.onap.aai.domain.yang.GenericVnf aaiGenericVnf = new org.onap.aai.domain.yang.GenericVnf();
1219 aaiGenericVnf.setModelCustomizationId("vnfModelCustomizationUUID");
1220 doReturn(aaiGenericVnf).when(SPY_bbInputSetupUtils).getAAIGenericVnf(vnf.getVnfId());
1222 lookupKeyMap.put(ResourceKey.VOLUME_GROUP_ID, "volumeGroupId");
1223 BBInputSetupParameter parameter = new BBInputSetupParameter.Builder().setRequestId(REQUEST_ID)
1224 .setModelInfo(modelInfo).setService(service).setBbName(bbName).setServiceInstance(serviceInstance)
1225 .setLookupKeyMap(lookupKeyMap).setResourceId(resourceId).setRequestDetails(requestDetails)
1226 .setInstanceName(reqInfo.getInstanceName()).setServiceModel(serviceModel).build();
1227 SPY_bbInputSetup.populateVolumeGroup(parameter);
1228 verify(SPY_bbInputSetup, times(1)).mapCatalogVolumeGroup(eq(vg), isA(ModelInfo.class), eq(service),
1229 eq("vnfModelCustomizationUUID"));
1230 vnf.getVolumeGroups().clear();
1231 SPY_bbInputSetup.populateVolumeGroup(parameter);
1232 verify(SPY_bbInputSetup, times(1)).mapCatalogVolumeGroup(vnf.getVolumeGroups().get(0), modelInfo, service,
1233 "vnfModelCustomizationUUID");
1237 public void testMapCatalogVolumeGroup() {
1238 VolumeGroup volumeGroup = new VolumeGroup();
1239 RequestDetails requestDetails = new RequestDetails();
1240 ModelInfo modelInfo = new ModelInfo();
1241 modelInfo.setModelCustomizationUuid("modelCustomizationUUID");
1242 requestDetails.setModelInfo(modelInfo);
1243 Service service = new Service();
1244 VnfResourceCustomization resourceCust = new VnfResourceCustomization();
1245 resourceCust.setModelCustomizationUUID("vnfModelCustomizationUUID");
1246 service.getVnfCustomizations().add(resourceCust);
1247 VfModuleCustomization vfResourceCust = new VfModuleCustomization();
1248 vfResourceCust.setModelCustomizationUUID("modelCustomizationUUID");
1249 ModelInfoVfModule modelInfoVfModule = new ModelInfoVfModule();
1250 resourceCust.getVfModuleCustomizations().add(vfResourceCust);
1252 doReturn(modelInfoVfModule).when(bbInputSetupMapperLayer).mapCatalogVfModuleToVfModule(vfResourceCust);
1254 SPY_bbInputSetup.mapCatalogVolumeGroup(volumeGroup, modelInfo, service, "vnfModelCustomizationUUID");
1256 assertEquals(modelInfoVfModule, volumeGroup.getModelInfoVfModule());
1260 public void testPopulateL3Network() throws JsonParseException, JsonMappingException, IOException {
1261 String instanceName = "networkName";
1262 ModelInfo modelInfo = new ModelInfo();
1263 modelInfo.setModelType(ModelType.network);
1265 ServiceInstance serviceInstance = new ServiceInstance();
1266 L3Network network = new L3Network();
1267 network.setNetworkId("networkId");
1268 network.setNetworkName("networkName");
1269 serviceInstance.getNetworks().add(network);
1270 String resourceId = "123";
1272 Service service = mapper.readValue(
1273 new File(RESOURCE_PATH + "CatalogDBService_getServiceInstanceNOAAIInput.json"), Service.class);
1274 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
1275 lookupKeyMap.put(ResourceKey.NETWORK_ID, "networkId");
1276 String bbName = AssignFlows.NETWORK_A_LA_CARTE.toString();
1278 doNothing().when(SPY_bbInputSetup).mapCatalogNetwork(network, modelInfo, service);
1280 BBInputSetupParameter parameter = new BBInputSetupParameter.Builder().setRequestId(REQUEST_ID)
1281 .setInstanceName(instanceName).setModelInfo(modelInfo).setService(service).setBbName(bbName)
1282 .setServiceInstance(serviceInstance).setLookupKeyMap(lookupKeyMap).setResourceId(resourceId).build();
1283 SPY_bbInputSetup.populateL3Network(parameter);
1285 lookupKeyMap.put(ResourceKey.NETWORK_ID, null);
1287 SPY_bbInputSetup.populateL3Network(parameter);
1288 verify(SPY_bbInputSetup, times(1)).mapCatalogNetwork(network, modelInfo, service);
1290 instanceName = "networkName2";
1291 L3Network network2 = SPY_bbInputSetup.createNetwork(lookupKeyMap, instanceName, resourceId, null, parameter);
1292 SPY_bbInputSetup.populateL3Network(parameter);
1293 verify(SPY_bbInputSetup, times(2)).mapCatalogNetwork(network2, modelInfo, service);
1297 public void testMapCatalogNetwork() {
1298 ModelInfoNetwork modelInfoNetwork = new ModelInfoNetwork();
1299 L3Network network = new L3Network();
1301 RequestDetails requestDetails = new RequestDetails();
1302 ModelInfo modelInfo = new ModelInfo();
1303 modelInfo.setModelCustomizationUuid("modelCustomizationUUID");
1304 requestDetails.setModelInfo(modelInfo);
1305 Service service = new Service();
1306 NetworkResourceCustomization resourceCust = new NetworkResourceCustomization();
1307 resourceCust.setModelCustomizationUUID("modelCustomizationUUID");
1308 service.setNetworkCustomizations(Arrays.asList(new NetworkResourceCustomization[] {resourceCust}));
1310 doReturn(modelInfoNetwork).when(bbInputSetupMapperLayer).mapCatalogNetworkToNetwork(resourceCust);
1312 SPY_bbInputSetup.mapCatalogNetwork(network, modelInfo, service);
1314 assertEquals(modelInfoNetwork, network.getModelInfoNetwork());
1318 public void testPopulateConfiguration() throws JsonParseException, JsonMappingException, IOException {
1319 String instanceName = "configurationName";
1320 ModelInfo modelInfo = new ModelInfo();
1321 modelInfo.setModelCustomizationUuid("72d9d1cd-f46d-447a-abdb-451d6fb05fa9");
1323 ServiceInstance serviceInstance = new ServiceInstance();
1324 Configuration configuration = new Configuration();
1325 configuration.setConfigurationId("configurationId");
1326 configuration.setConfigurationName("configurationName");
1327 serviceInstance.getConfigurations().add(configuration);
1328 String resourceId = "configurationId";
1329 String vnfcName = "vnfcName";
1331 Service service = mapper.readValue(
1332 new File(RESOURCE_PATH + "CatalogDBService_getServiceInstanceNOAAIInput.json"), Service.class);
1333 ConfigurationResourceCustomization configurationCust = new ConfigurationResourceCustomization();
1334 configurationCust.setModelCustomizationUUID("72d9d1cd-f46d-447a-abdb-451d6fb05fa9");
1335 service.getConfigurationCustomizations().add(configurationCust);
1336 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
1337 lookupKeyMap.put(ResourceKey.CONFIGURATION_ID, "configurationId");
1338 String bbName = AssignFlows.FABRIC_CONFIGURATION.toString();
1339 ConfigurationResourceKeys configResourceKeys = prepareConfigurationResourceKeys();
1340 configResourceKeys.setVnfcName(vnfcName);
1341 Vnfc vnfc = new Vnfc();
1342 vnfc.setVnfcName(vnfcName);
1343 RequestDetails requestDetails = new RequestDetails();
1344 doNothing().when(SPY_bbInputSetup).mapCatalogConfiguration(configuration, modelInfo, service,
1345 configResourceKeys);
1346 doReturn(vnfc).when(SPY_bbInputSetup).getVnfcToConfiguration(vnfcName);
1347 BBInputSetupParameter parameter = new BBInputSetupParameter.Builder().setRequestId(REQUEST_ID)
1348 .setModelInfo(modelInfo).setService(service).setBbName(bbName).setServiceInstance(serviceInstance)
1349 .setLookupKeyMap(lookupKeyMap).setResourceId(resourceId).setInstanceName(instanceName)
1350 .setConfigurationResourceKeys(configResourceKeys).setRequestDetails(requestDetails).build();
1351 SPY_bbInputSetup.populateConfiguration(parameter);
1352 verify(SPY_bbInputSetup, times(1)).mapCatalogConfiguration(configuration, modelInfo, service,
1353 configResourceKeys);
1355 lookupKeyMap.put(ResourceKey.CONFIGURATION_ID, null);
1357 SPY_bbInputSetup.populateConfiguration(parameter);
1358 verify(SPY_bbInputSetup, times(2)).mapCatalogConfiguration(configuration, modelInfo, service,
1359 configResourceKeys);
1361 instanceName = "configurationName2";
1362 resourceId = "resourceId2";
1363 lookupKeyMap.put(ResourceKey.CONFIGURATION_ID, "configurationId2");
1364 parameter.setInstanceName(instanceName);
1365 parameter.setResourceId(resourceId);
1366 Configuration configuration2 = SPY_bbInputSetup.createConfiguration(lookupKeyMap, instanceName, resourceId);
1367 doReturn(configuration2).when(SPY_bbInputSetup).createConfiguration(lookupKeyMap, instanceName, resourceId);
1368 doNothing().when(SPY_bbInputSetup).mapCatalogConfiguration(configuration2, modelInfo, service,
1369 configResourceKeys);
1370 SPY_bbInputSetup.populateConfiguration(parameter);
1371 verify(SPY_bbInputSetup, times(1)).mapCatalogConfiguration(configuration2, modelInfo, service,
1372 configResourceKeys);
1376 public void testMapCatalogConfiguration() {
1377 ModelInfoNetwork modelInfoNetwork = new ModelInfoNetwork();
1378 L3Network network = new L3Network();
1380 RequestDetails requestDetails = new RequestDetails();
1381 ModelInfo modelInfo = new ModelInfo();
1382 modelInfo.setModelCustomizationUuid("modelCustomizationUUID");
1383 requestDetails.setModelInfo(modelInfo);
1384 Service service = new Service();
1385 NetworkResourceCustomization resourceCust = new NetworkResourceCustomization();
1386 resourceCust.setModelCustomizationUUID("modelCustomizationUUID");
1387 service.setNetworkCustomizations(Arrays.asList(new NetworkResourceCustomization[] {resourceCust}));
1389 doReturn(modelInfoNetwork).when(bbInputSetupMapperLayer).mapCatalogNetworkToNetwork(resourceCust);
1391 SPY_bbInputSetup.mapCatalogNetwork(network, modelInfo, service);
1393 assertEquals(modelInfoNetwork, network.getModelInfoNetwork());
1397 public void testPopulateFabricConfiguration() throws JsonParseException, JsonMappingException, IOException {
1398 String instanceName = "configurationName";
1399 ModelInfo modelInfo = new ModelInfo();
1400 modelInfo.setModelCustomizationUuid("72d9d1cd-f46d-447a-abdb-451d6fb05fa9");
1402 ServiceInstance serviceInstance = new ServiceInstance();
1403 Configuration configuration = new Configuration();
1404 configuration.setConfigurationId("configurationId");
1405 configuration.setConfigurationName("configurationName");
1406 configuration.setConfigurationSubType("Fabric Config");
1407 serviceInstance.getConfigurations().add(configuration);
1408 String resourceId = "configurationId";
1409 String vnfcName = "vnfcName";
1411 Service service = mapper.readValue(
1412 new File(RESOURCE_PATH + "CatalogDBService_getServiceInstanceNOAAIInput.json"), Service.class);
1413 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
1414 lookupKeyMap.put(ResourceKey.CONFIGURATION_ID, "configurationId");
1415 String bbName = AssignFlows.FABRIC_CONFIGURATION.toString();
1416 ConfigurationResourceKeys configResourceKeys = prepareConfigurationResourceKeys();
1417 configResourceKeys.setVnfcName(vnfcName);
1418 Vnfc vnfc = new Vnfc();
1419 vnfc.setVnfcName(vnfcName);
1420 RequestDetails requestDetails = new RequestDetails();
1422 CvnfcConfigurationCustomization vnfVfmoduleCvnfcConfigurationCustomization =
1423 new CvnfcConfigurationCustomization();
1424 ConfigurationResource configurationResource = new ConfigurationResource();
1425 configurationResource.setModelUUID("modelUUID");
1426 configurationResource.setModelInvariantUUID("modelInvariantUUID");
1427 vnfVfmoduleCvnfcConfigurationCustomization.setConfigurationResource(configurationResource);
1429 doReturn(null).when(SPY_bbInputSetup).findConfigurationResourceCustomization(modelInfo, service);
1430 doReturn(vnfc).when(SPY_bbInputSetup).getVnfcToConfiguration(vnfcName);
1431 BBInputSetupParameter parameter = new BBInputSetupParameter.Builder().setRequestId(REQUEST_ID)
1432 .setModelInfo(modelInfo).setService(service).setBbName(bbName).setServiceInstance(serviceInstance)
1433 .setLookupKeyMap(lookupKeyMap).setResourceId(resourceId).setInstanceName(instanceName)
1434 .setConfigurationResourceKeys(configResourceKeys).setRequestDetails(requestDetails).build();
1435 SPY_bbInputSetup.populateConfiguration(parameter);
1436 verify(SPY_bbInputSetup, times(1)).mapCatalogConfiguration(configuration, modelInfo, service,
1437 configResourceKeys);
1441 public void testPopulateGenericVnf() throws JsonParseException, JsonMappingException, IOException {
1442 org.onap.so.serviceinstancebeans.Platform platform = new org.onap.so.serviceinstancebeans.Platform();
1443 org.onap.so.serviceinstancebeans.LineOfBusiness lineOfBusiness =
1444 new org.onap.so.serviceinstancebeans.LineOfBusiness();
1445 String instanceName = "vnfName";
1446 ModelInfo modelInfo = new ModelInfo();
1447 modelInfo.setModelType(ModelType.vnf);
1448 ServiceInstance serviceInstance = new ServiceInstance();
1449 GenericVnf vnf = new GenericVnf();
1450 vnf.setVnfId("genericVnfId");
1451 vnf.setVnfName("vnfName");
1452 serviceInstance.getVnfs().add(vnf);
1453 String vnfType = "vnfType";
1454 String applicationId = "applicationId";
1455 RequestDetails requestDetails =
1456 mapper.readValue(new File(RESOURCE_PATH + "RequestDetails_CreateVnf.json"), RequestDetails.class);
1458 Service service = mapper.readValue(
1459 new File(RESOURCE_PATH + "CatalogDBService_getServiceInstanceNOAAIInput.json"), Service.class);
1460 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
1461 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "genericVnfId");
1462 String bbName = AssignFlows.VNF.toString();
1464 Platform expectedPlatform = new Platform();
1465 LineOfBusiness expectedLineOfBusiness = new LineOfBusiness();
1466 String resourceId = "123";
1467 doReturn(expectedPlatform).when(bbInputSetupMapperLayer).mapRequestPlatform(platform);
1468 doReturn(expectedLineOfBusiness).when(bbInputSetupMapperLayer).mapRequestLineOfBusiness(lineOfBusiness);
1469 org.onap.aai.domain.yang.GenericVnf vnfAAI = new org.onap.aai.domain.yang.GenericVnf();
1470 vnfAAI.setModelCustomizationId("modelCustId");
1471 doReturn(vnfAAI).when(SPY_bbInputSetupUtils).getAAIGenericVnf(vnf.getVnfId());
1472 doNothing().when(SPY_bbInputSetup).mapCatalogVnf(vnf, modelInfo, service);
1473 org.onap.aai.domain.yang.InstanceGroup instanceGroupAAI = new org.onap.aai.domain.yang.InstanceGroup();
1474 doReturn(instanceGroupAAI).when(SPY_bbInputSetupUtils).getAAIInstanceGroup(any());
1475 org.onap.so.db.catalog.beans.InstanceGroup catalogInstanceGroup =
1476 new org.onap.so.db.catalog.beans.InstanceGroup();
1477 doReturn(catalogInstanceGroup).when(SPY_bbInputSetupUtils).getCatalogInstanceGroup(any());
1478 BBInputSetupParameter parameter = new BBInputSetupParameter.Builder().setRequestId(REQUEST_ID)
1479 .setModelInfo(modelInfo).setInstanceName(instanceName).setPlatform(platform)
1480 .setLineOfBusiness(lineOfBusiness).setService(service).setBbName(bbName)
1481 .setServiceInstance(serviceInstance).setLookupKeyMap(lookupKeyMap)
1482 .setRelatedInstanceList(requestDetails.getRelatedInstanceList()).setResourceId(resourceId)
1483 .setVnfType(vnfType).setProductFamilyId(requestDetails.getRequestInfo().getProductFamilyId()).build();
1484 SPY_bbInputSetup.populateGenericVnf(parameter);
1486 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, null);
1488 SPY_bbInputSetup.populateGenericVnf(parameter);
1489 verify(SPY_bbInputSetup, times(1)).mapCatalogVnf(vnf, modelInfo, service);
1491 instanceName = "vnfName2";
1492 GenericVnf vnf2 = SPY_bbInputSetup.createGenericVnf(lookupKeyMap, instanceName, platform, lineOfBusiness,
1493 resourceId, vnfType, null, requestDetails.getRequestInfo().getProductFamilyId(), applicationId);
1495 doNothing().when(SPY_bbInputSetup).mapNetworkCollectionInstanceGroup(vnf2, "{instanceGroupId}");
1496 doNothing().when(SPY_bbInputSetup).mapVnfcCollectionInstanceGroup(vnf2, modelInfo, service);
1498 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "genericVnfId2");
1500 SPY_bbInputSetup.populateGenericVnf(parameter);
1501 verify(SPY_bbInputSetup, times(2)).mapCatalogVnf(vnf2, modelInfo, service);
1502 verify(SPY_bbInputSetup, times(2)).mapNetworkCollectionInstanceGroup(vnf2, "{instanceGroupId}");
1503 verify(SPY_bbInputSetup, times(2)).mapVnfcCollectionInstanceGroup(vnf2, modelInfo, service);
1505 assertEquals("modelCustId", modelInfo.getModelCustomizationUuid());
1510 public void testPopulateGenericVnfReplace() throws JsonParseException, JsonMappingException, IOException {
1511 org.onap.so.serviceinstancebeans.Platform platform = new org.onap.so.serviceinstancebeans.Platform();
1512 org.onap.so.serviceinstancebeans.LineOfBusiness lineOfBusiness =
1513 new org.onap.so.serviceinstancebeans.LineOfBusiness();
1514 String instanceName = "vnfName";
1515 ModelInfo modelInfo = new ModelInfo();
1516 modelInfo.setModelType(ModelType.vnf);
1517 ServiceInstance serviceInstance = new ServiceInstance();
1518 GenericVnf vnf = new GenericVnf();
1519 vnf.setVnfId("genericVnfId");
1520 vnf.setVnfName("vnfName");
1521 serviceInstance.getVnfs().add(vnf);
1522 String vnfType = "vnfType";
1523 String applicationId = "applicationId";
1524 RequestDetails requestDetails =
1525 mapper.readValue(new File(RESOURCE_PATH + "RequestDetails_CreateVnf.json"), RequestDetails.class);
1527 Service service = mapper.readValue(
1528 new File(RESOURCE_PATH + "CatalogDBService_getServiceInstanceNOAAIInput.json"), Service.class);
1529 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
1530 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "genericVnfId");
1531 String bbName = AssignFlows.VNF.toString();
1533 String resourceId = "123";
1534 org.onap.aai.domain.yang.GenericVnf vnfAAI = new org.onap.aai.domain.yang.GenericVnf();
1535 vnfAAI.setModelCustomizationId("modelCustId");
1536 doReturn(vnfAAI).when(SPY_bbInputSetupUtils).getAAIGenericVnf(vnf.getVnfId());
1537 doNothing().when(SPY_bbInputSetup).mapCatalogVnf(vnf, modelInfo, service);
1538 org.onap.aai.domain.yang.InstanceGroup instanceGroupAAI = new org.onap.aai.domain.yang.InstanceGroup();
1539 doReturn(instanceGroupAAI).when(SPY_bbInputSetupUtils).getAAIInstanceGroup(any());
1540 org.onap.so.db.catalog.beans.InstanceGroup catalogInstanceGroup =
1541 new org.onap.so.db.catalog.beans.InstanceGroup();
1542 doReturn(catalogInstanceGroup).when(SPY_bbInputSetupUtils).getCatalogInstanceGroup(any());
1544 BBInputSetupParameter parameter = new BBInputSetupParameter.Builder().setModelInfo(modelInfo)
1545 .setInstanceName(instanceName).setPlatform(platform).setLineOfBusiness(lineOfBusiness)
1546 .setService(service).setBbName(bbName).setServiceInstance(serviceInstance).setLookupKeyMap(lookupKeyMap)
1547 .setRelatedInstanceList(requestDetails.getRelatedInstanceList()).setResourceId(resourceId)
1548 .setVnfType(vnfType).setProductFamilyId(requestDetails.getRequestInfo().getProductFamilyId())
1549 .setApplicationId(applicationId).setIsReplace(true).build();
1551 SPY_bbInputSetup.populateGenericVnf(parameter);
1553 assertEquals("my-test-uuid", modelInfo.getModelCustomizationUuid());
1558 public void testMapVnfcCollectionInstanceGroup() {
1559 VnfResourceCustomization vnfResourceCust = Mockito.mock(VnfResourceCustomization.class);
1560 GenericVnf genericVnf = new GenericVnf();
1561 ModelInfo modelInfo = Mockito.mock(ModelInfo.class);
1562 Service service = Mockito.mock(Service.class);
1563 org.onap.so.db.catalog.beans.InstanceGroup instanceGroup = new org.onap.so.db.catalog.beans.InstanceGroup();
1564 instanceGroup.setModelUUID("modelUUID");
1565 List<VnfcInstanceGroupCustomization> vnfcInstanceGroups = new ArrayList<>();
1566 VnfcInstanceGroupCustomization vnfcInstanceGroupCust = new VnfcInstanceGroupCustomization();
1567 vnfcInstanceGroupCust.setInstanceGroup(instanceGroup);
1568 vnfcInstanceGroupCust.setFunction("function");
1569 vnfcInstanceGroupCust.setDescription("description");
1570 vnfcInstanceGroups.add(vnfcInstanceGroupCust);
1572 ModelInfoInstanceGroup modelInfoInstanceGroup = new ModelInfoInstanceGroup();
1573 modelInfoInstanceGroup.setModelUUID("modelUUID");
1574 doReturn(vnfResourceCust).when(SPY_bbInputSetup).getVnfResourceCustomizationFromService(modelInfo, service);
1575 doReturn(vnfcInstanceGroups).when(vnfResourceCust).getVnfcInstanceGroupCustomizations();
1576 doReturn(instanceGroup).when(SPY_bbInputSetupUtils).getCatalogInstanceGroup("modelUUID");
1577 doReturn(modelInfoInstanceGroup).when(bbInputSetupMapperLayer).mapCatalogInstanceGroupToInstanceGroup(null,
1580 SPY_bbInputSetup.mapVnfcCollectionInstanceGroup(genericVnf, modelInfo, service);
1582 assertEquals("Instance Group was created", true, genericVnf.getInstanceGroups().size() == 1);
1586 public void testPopulateGenericVnfWhereVnfTypeIsNull()
1587 throws JsonParseException, JsonMappingException, IOException {
1588 org.onap.so.serviceinstancebeans.Platform platform = new org.onap.so.serviceinstancebeans.Platform();
1589 org.onap.so.serviceinstancebeans.LineOfBusiness lineOfBusiness =
1590 new org.onap.so.serviceinstancebeans.LineOfBusiness();
1591 String instanceName = "vnfName";
1592 ModelInfo modelInfo = new ModelInfo();
1593 modelInfo.setModelType(ModelType.vnf);
1595 ServiceInstance serviceInstance = new ServiceInstance();
1596 GenericVnf vnf = new GenericVnf();
1597 vnf.setVnfId("genericVnfId");
1598 vnf.setVnfName("vnfName");
1599 serviceInstance.getVnfs().add(vnf);
1600 String vnfType = null;
1601 RequestDetails requestDetails =
1602 mapper.readValue(new File(RESOURCE_PATH + "RequestDetails_CreateVnf.json"), RequestDetails.class);
1604 Service service = mapper.readValue(
1605 new File(RESOURCE_PATH + "CatalogDBService_getServiceInstanceNOAAIInput.json"), Service.class);
1606 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
1607 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "genericVnfId");
1608 String bbName = AssignFlows.VNF.toString();
1610 Platform expectedPlatform = new Platform();
1611 LineOfBusiness expectedLineOfBusiness = new LineOfBusiness();
1612 String resourceId = "123";
1613 String applicationId = "applicationId";
1614 doReturn(expectedPlatform).when(bbInputSetupMapperLayer).mapRequestPlatform(platform);
1615 doReturn(expectedLineOfBusiness).when(bbInputSetupMapperLayer).mapRequestLineOfBusiness(lineOfBusiness);
1616 org.onap.aai.domain.yang.GenericVnf vnfAAI = new org.onap.aai.domain.yang.GenericVnf();
1617 vnfAAI.setModelCustomizationId("modelCustId");
1618 doReturn(vnfAAI).when(SPY_bbInputSetupUtils).getAAIGenericVnf(vnf.getVnfId());
1619 doNothing().when(SPY_bbInputSetup).mapCatalogVnf(vnf, modelInfo, service);
1620 org.onap.aai.domain.yang.InstanceGroup instanceGroupAAI = new org.onap.aai.domain.yang.InstanceGroup();
1621 doReturn(instanceGroupAAI).when(SPY_bbInputSetupUtils).getAAIInstanceGroup(any());
1622 org.onap.so.db.catalog.beans.InstanceGroup catalogInstanceGroup =
1623 new org.onap.so.db.catalog.beans.InstanceGroup();
1624 doReturn(catalogInstanceGroup).when(SPY_bbInputSetupUtils).getCatalogInstanceGroup(any());
1625 BBInputSetupParameter parameter = new BBInputSetupParameter.Builder().setRequestId(REQUEST_ID)
1626 .setModelInfo(modelInfo).setInstanceName(instanceName).setPlatform(platform)
1627 .setLineOfBusiness(lineOfBusiness).setService(service).setBbName(bbName)
1628 .setServiceInstance(serviceInstance).setLookupKeyMap(lookupKeyMap)
1629 .setRelatedInstanceList(requestDetails.getRelatedInstanceList()).setResourceId(resourceId)
1630 .setVnfType(vnfType).setProductFamilyId(requestDetails.getRequestInfo().getProductFamilyId()).build();
1631 SPY_bbInputSetup.populateGenericVnf(parameter);
1633 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, null);
1635 SPY_bbInputSetup.populateGenericVnf(parameter);
1636 verify(SPY_bbInputSetup, times(1)).mapCatalogVnf(vnf, modelInfo, service);
1638 instanceName = "vnfName2";
1639 GenericVnf vnf2 = SPY_bbInputSetup.createGenericVnf(lookupKeyMap, instanceName, platform, lineOfBusiness,
1640 resourceId, vnfType, null, requestDetails.getRequestInfo().getProductFamilyId(), applicationId);
1642 org.onap.aai.domain.yang.GenericVnf vnf2AAI = new org.onap.aai.domain.yang.GenericVnf();
1643 vnfAAI.setModelCustomizationId("modelCustId2");
1644 doReturn(vnf2AAI).when(SPY_bbInputSetupUtils).getAAIGenericVnf(vnf2.getVnfId());
1645 doNothing().when(SPY_bbInputSetup).mapCatalogVnf(vnf2, modelInfo, service);
1646 doNothing().when(SPY_bbInputSetup).mapNetworkCollectionInstanceGroup(vnf2, "{instanceGroupId}");
1647 SPY_bbInputSetup.populateGenericVnf(parameter);
1648 verify(SPY_bbInputSetup, times(2)).mapCatalogVnf(vnf2, modelInfo, service);
1649 verify(SPY_bbInputSetup, times(2)).mapNetworkCollectionInstanceGroup(vnf2, "{instanceGroupId}");
1650 verify(SPY_bbInputSetup, times(1)).mapVnfcCollectionInstanceGroup(vnf2, modelInfo, service);
1654 public void testMapCatalogVnf() {
1655 ModelInfoGenericVnf modelInfoGenericVnf = new ModelInfoGenericVnf();
1656 GenericVnf genericVnf = new GenericVnf();
1657 RequestDetails requestDetails = new RequestDetails();
1658 ModelInfo modelInfo = new ModelInfo();
1659 modelInfo.setModelCustomizationUuid("modelCustomizationUUID");
1660 requestDetails.setModelInfo(modelInfo);
1661 Service service = new Service();
1662 VnfResourceCustomization resourceCust = new VnfResourceCustomization();
1663 resourceCust.setModelCustomizationUUID("vnfModelCustomizationUUID");
1664 service.getVnfCustomizations().add(resourceCust);
1665 resourceCust.setModelCustomizationUUID("modelCustomizationUUID");
1667 doReturn(modelInfoGenericVnf).when(bbInputSetupMapperLayer).mapCatalogVnfToVnf(resourceCust);
1669 SPY_bbInputSetup.mapCatalogVnf(genericVnf, modelInfo, service);
1671 assertEquals(modelInfoGenericVnf, genericVnf.getModelInfoGenericVnf());
1675 public void testMapCatalogCollectionAndInstanceGroup() {
1676 ModelInfoCollection modelInfoCollection = new ModelInfoCollection();
1677 modelInfoCollection.setCollectionFunction("collectionFunction");
1678 modelInfoCollection.setCollectionRole("collectionRole");
1679 modelInfoCollection.setCollectionType("collectionType");
1680 modelInfoCollection.setDescription("description");
1681 modelInfoCollection.setModelInvariantUUID("modelInvariantUUID");
1682 modelInfoCollection.setQuantity(0);
1684 ModelInfoInstanceGroup modelInfoInstanceGroup = new ModelInfoInstanceGroup();
1685 modelInfoInstanceGroup.setFunction("function");
1686 modelInfoInstanceGroup.setInstanceGroupRole("instanceGroupRole");
1687 modelInfoInstanceGroup.setModelInvariantUUID("modelInvariantUUID");
1688 modelInfoInstanceGroup.setModelUUID("modelUUID");
1689 modelInfoInstanceGroup.setType("VNFC");
1690 modelInfoInstanceGroup.setDescription("description");
1692 InstanceGroup instanceGroup = new InstanceGroup();
1693 Collection collection = new Collection();
1694 collection.setInstanceGroup(instanceGroup);
1696 CollectionResource collectionResource = new CollectionResource();
1697 org.onap.so.db.catalog.beans.InstanceGroup catalogInstanceGroup =
1698 new org.onap.so.db.catalog.beans.InstanceGroup();
1699 collectionResource.setToscaNodeType("NetworkCollection");
1700 collectionResource.setInstanceGroup(catalogInstanceGroup);
1702 CollectionResourceCustomization collectionCust = new NetworkCollectionResourceCustomization();
1703 collectionCust.setModelCustomizationUUID("modelCustomizationUUID");
1704 collectionCust.setCollectionResource(collectionResource);
1706 Service service = new Service();
1707 service.getCollectionResourceCustomizations().add(collectionCust);
1708 ServiceInstance serviceInstance = new ServiceInstance();
1709 serviceInstance.setCollection(collection);
1711 List<CollectionResourceInstanceGroupCustomization> instanceGroupCustList = new ArrayList<>();
1712 CollectionResourceInstanceGroupCustomization instanceGroupCust =
1713 new CollectionResourceInstanceGroupCustomization();
1714 instanceGroupCust.setFunction("function");
1715 instanceGroupCust.setDescription("description");
1717 doReturn(modelInfoCollection).when(bbInputSetupMapperLayer).mapCatalogCollectionToCollection(collectionCust,
1718 collectionResource);
1720 doReturn(modelInfoInstanceGroup).when(bbInputSetupMapperLayer)
1721 .mapCatalogInstanceGroupToInstanceGroup(collectionCust, catalogInstanceGroup);
1723 SPY_bbInputSetup.mapCatalogCollection(service, serviceInstance.getCollection(), "modelCustomizationUUID");
1724 SPY_bbInputSetup.mapCatalogNetworkCollectionInstanceGroup(service,
1725 serviceInstance.getCollection().getInstanceGroup(), collectionCust.getModelCustomizationUUID());
1727 assertThat(collection.getModelInfoCollection(), sameBeanAs(modelInfoCollection));
1728 assertThat(instanceGroup.getModelInfoInstanceGroup(), sameBeanAs(modelInfoInstanceGroup));
1732 public void testAddRelationshipsToSI() throws Exception {
1733 ServiceInstance serviceInstance = new ServiceInstance();
1734 org.onap.aai.domain.yang.ServiceInstance serviceInstanceAAI = new org.onap.aai.domain.yang.ServiceInstance();
1735 serviceInstanceAAI.setServiceInstanceId("serviceInstanceId");
1737 org.onap.aai.domain.yang.RelationshipList relationshipList = new org.onap.aai.domain.yang.RelationshipList();
1738 org.onap.aai.domain.yang.Relationship relationship = new org.onap.aai.domain.yang.Relationship();
1739 relationshipList.getRelationship().add(relationship);
1740 serviceInstanceAAI.setRelationshipList(relationshipList);
1742 Map<String, String> uriKeys = new HashMap<>();
1743 uriKeys.put("global-customer-id", "globalCustomerId");
1744 uriKeys.put("service-type", "serviceType");
1747 doNothing().when(SPY_bbInputSetup).mapProject(any(), eq(serviceInstance));
1748 doNothing().when(SPY_bbInputSetup).mapOwningEntity(any(), eq(serviceInstance));
1749 doNothing().when(SPY_bbInputSetup).mapL3Networks(any(), eq(serviceInstance.getNetworks()));
1750 doNothing().when(SPY_bbInputSetup).mapGenericVnfs(any(), eq(serviceInstance.getVnfs()));
1751 doNothing().when(SPY_bbInputSetup).mapCollection(any(), eq(serviceInstance));
1753 SPY_bbInputSetup.addRelationshipsToSI(serviceInstanceAAI, serviceInstance);
1755 verify(SPY_bbInputSetup, times(1)).mapProject(any(), eq(serviceInstance));
1756 verify(SPY_bbInputSetup, times(1)).mapOwningEntity(any(), eq(serviceInstance));
1757 verify(SPY_bbInputSetup, times(1)).mapL3Networks(any(), eq(serviceInstance.getNetworks()));
1758 verify(SPY_bbInputSetup, times(1)).mapGenericVnfs(any(), eq(serviceInstance.getVnfs()));
1759 verify(SPY_bbInputSetup, times(1)).mapCollection(any(), eq(serviceInstance));
1760 verify(SPY_bbInputSetup, times(1)).mapConfigurations(any(), eq(serviceInstance.getConfigurations()));
1764 public void testMapConfigurations() throws JsonProcessingException {
1765 org.onap.aai.domain.yang.Configuration expectedAAI = new org.onap.aai.domain.yang.Configuration();
1766 org.onap.aai.domain.yang.RelationshipList relationshipList = new org.onap.aai.domain.yang.RelationshipList();
1767 org.onap.aai.domain.yang.Relationship relationship = new org.onap.aai.domain.yang.Relationship();
1768 relationshipList.getRelationship().add(relationship);
1769 expectedAAI.setRelationshipList(relationshipList);
1771 Configuration expected = new Configuration();
1772 AAIResourceUri aaiResourceUri = AAIUriFactory.createResourceUri(AAIObjectType.CONFIGURATION, "configurationId");
1773 AAIResultWrapper configurationWrapper =
1774 new AAIResultWrapper(new AAICommonObjectMapperProvider().getMapper().writeValueAsString(expectedAAI));
1776 doReturn(configurationWrapper).when(SPY_bbInputSetupUtils).getAAIResourceDepthOne(aaiResourceUri);
1777 doReturn(expected).when(bbInputSetupMapperLayer)
1778 .mapAAIConfiguration(isA(org.onap.aai.domain.yang.Configuration.class));
1780 List<Configuration> configurations = new ArrayList<>();
1782 SPY_bbInputSetup.mapConfigurations(Arrays.asList(new AAIResourceUri[] {aaiResourceUri}), configurations);
1784 assertEquals(expected, configurations.get(0));
1788 public void testMapGenericVnfs() throws JsonProcessingException {
1789 org.onap.aai.domain.yang.GenericVnf expectedAAI = new org.onap.aai.domain.yang.GenericVnf();
1790 org.onap.aai.domain.yang.RelationshipList relationshipList = new org.onap.aai.domain.yang.RelationshipList();
1791 org.onap.aai.domain.yang.Relationship relationship = new org.onap.aai.domain.yang.Relationship();
1792 relationshipList.getRelationship().add(relationship);
1793 expectedAAI.setRelationshipList(relationshipList);
1795 GenericVnf expected = new GenericVnf();
1796 AAIResourceUri aaiResourceUri = AAIUriFactory.createResourceUri(AAIObjectType.GENERIC_VNF, "vnfId");
1797 AAIResultWrapper vnfWrapper =
1798 new AAIResultWrapper(new AAICommonObjectMapperProvider().getMapper().writeValueAsString(expectedAAI));
1800 doReturn(vnfWrapper).when(SPY_bbInputSetupUtils).getAAIResourceDepthOne(aaiResourceUri);
1801 doReturn(expected).when(bbInputSetupMapperLayer)
1802 .mapAAIGenericVnfIntoGenericVnf(isA(org.onap.aai.domain.yang.GenericVnf.class));
1803 doNothing().when(SPY_bbInputSetup).mapPlatform(any(), eq(expected));
1804 doNothing().when(SPY_bbInputSetup).mapLineOfBusiness(any(), eq(expected));
1805 doReturn(new ArrayList<>()).when(SPY_bbInputSetup).mapVolumeGroups(any());
1807 List<GenericVnf> genericVnfs = new ArrayList<>();
1809 SPY_bbInputSetup.mapGenericVnfs(Arrays.asList(new AAIResourceUri[] {aaiResourceUri}), genericVnfs);
1811 assertEquals(expected, genericVnfs.get(0));
1812 verify(SPY_bbInputSetup, times(1)).mapPlatform(any(), eq(expected));
1813 verify(SPY_bbInputSetup, times(1)).mapLineOfBusiness(any(), eq(expected));
1814 verify(SPY_bbInputSetup, times(1)).mapVolumeGroups(any());
1818 public void testMapVolumeGroups() throws JsonProcessingException {
1819 org.onap.aai.domain.yang.VolumeGroup expectedAAI = new org.onap.aai.domain.yang.VolumeGroup();
1821 VolumeGroup expected = new VolumeGroup();
1822 AAIResultWrapper vnfWrapper =
1823 new AAIResultWrapper(new AAICommonObjectMapperProvider().getMapper().writeValueAsString(expectedAAI));
1825 doReturn(expected).when(bbInputSetupMapperLayer)
1826 .mapAAIVolumeGroup(isA(org.onap.aai.domain.yang.VolumeGroup.class));
1828 List<VolumeGroup> volumeGroupsList =
1829 SPY_bbInputSetup.mapVolumeGroups(Arrays.asList(new AAIResultWrapper[] {vnfWrapper}));
1831 assertEquals(expected, volumeGroupsList.get(0));
1835 public void testMapLineOfBusiness() throws JsonProcessingException {
1836 org.onap.aai.domain.yang.LineOfBusiness expectedAAI = new org.onap.aai.domain.yang.LineOfBusiness();
1838 LineOfBusiness expected = new LineOfBusiness();
1839 AAIResultWrapper vnfWrapper =
1840 new AAIResultWrapper(new AAICommonObjectMapperProvider().getMapper().writeValueAsString(expectedAAI));
1842 doReturn(expected).when(bbInputSetupMapperLayer)
1843 .mapAAILineOfBusiness(isA(org.onap.aai.domain.yang.LineOfBusiness.class));
1845 GenericVnf vnf = new GenericVnf();
1847 SPY_bbInputSetup.mapLineOfBusiness(Arrays.asList(new AAIResultWrapper[] {vnfWrapper}), vnf);
1849 assertEquals(expected, vnf.getLineOfBusiness());
1853 public void testMapPlatform() throws JsonProcessingException {
1854 org.onap.aai.domain.yang.Platform expectedAAI = new org.onap.aai.domain.yang.Platform();
1856 Platform expected = new Platform();
1857 AAIResultWrapper vnfWrapper =
1858 new AAIResultWrapper(new AAICommonObjectMapperProvider().getMapper().writeValueAsString(expectedAAI));
1860 doReturn(expected).when(bbInputSetupMapperLayer).mapAAIPlatform(isA(org.onap.aai.domain.yang.Platform.class));
1862 GenericVnf vnf = new GenericVnf();
1864 SPY_bbInputSetup.mapPlatform(Arrays.asList(new AAIResultWrapper[] {vnfWrapper}), vnf);
1866 assertEquals(expected, vnf.getPlatform());
1870 public void testMapCollection() throws JsonProcessingException {
1871 List<AAIResultWrapper> collections = new ArrayList<>();
1872 ServiceInstance serviceInstance = new ServiceInstance();
1874 org.onap.aai.domain.yang.Collection aaiCollection = new org.onap.aai.domain.yang.Collection();
1875 org.onap.aai.domain.yang.RelationshipList collectionRelationshipList =
1876 new org.onap.aai.domain.yang.RelationshipList();
1877 org.onap.aai.domain.yang.Relationship collectionInstanceGroupRelationship =
1878 new org.onap.aai.domain.yang.Relationship();
1879 collectionRelationshipList.getRelationship().add(collectionInstanceGroupRelationship);
1880 aaiCollection.setRelationshipList(collectionRelationshipList);
1882 collections.add(new AAIResultWrapper(
1883 new AAICommonObjectMapperProvider().getMapper().writeValueAsString(aaiCollection)));
1885 Collection collection = new Collection();
1886 ModelInfoCollection modelInfoCollection = new ModelInfoCollection();
1887 List<InstanceGroup> instanceGroupsList = new ArrayList<>();
1888 InstanceGroup instanceGroup = new InstanceGroup();
1889 instanceGroupsList.add(instanceGroup);
1890 NetworkCollectionResourceCustomization networkCollectionCust =
1891 Mockito.mock(NetworkCollectionResourceCustomization.class);
1892 CollectionResource collectionResource = new CollectionResource();
1893 doReturn(collection).when(bbInputSetupMapperLayer)
1894 .mapAAICollectionIntoCollection(isA(org.onap.aai.domain.yang.Collection.class));
1895 doReturn(instanceGroupsList).when(SPY_bbInputSetup).mapInstanceGroups(any());
1896 doReturn(networkCollectionCust).when(SPY_bbInputSetupUtils)
1897 .getCatalogNetworkCollectionResourceCustByID(aaiCollection.getCollectionCustomizationId());
1898 doReturn(collectionResource).when(networkCollectionCust).getCollectionResource();
1899 doReturn(modelInfoCollection).when(bbInputSetupMapperLayer)
1900 .mapCatalogCollectionToCollection(networkCollectionCust, collectionResource);
1902 SPY_bbInputSetup.mapCollection(collections, serviceInstance);
1904 assertEquals(collection, serviceInstance.getCollection());
1905 assertEquals(instanceGroup, collection.getInstanceGroup());
1907 instanceGroupsList.clear();
1908 collection = new Collection();
1910 SPY_bbInputSetup.mapCollection(collections, serviceInstance);
1911 assertEquals(collection, serviceInstance.getCollection());
1912 assertNull(collection.getInstanceGroup());
1916 public void testMapL3Networks() throws JsonProcessingException {
1917 org.onap.aai.domain.yang.L3Network expectedAAI = new org.onap.aai.domain.yang.L3Network();
1918 org.onap.aai.domain.yang.RelationshipList relationshipList = new org.onap.aai.domain.yang.RelationshipList();
1919 org.onap.aai.domain.yang.Relationship relationship = new org.onap.aai.domain.yang.Relationship();
1920 relationshipList.getRelationship().add(relationship);
1921 expectedAAI.setRelationshipList(relationshipList);
1923 L3Network expected = new L3Network();
1924 List<L3Network> l3Networks = new ArrayList<>();
1925 AAIResultWrapper l3NetworksWrapper =
1926 new AAIResultWrapper(new AAICommonObjectMapperProvider().getMapper().writeValueAsString(expectedAAI));
1927 AAIResourceUri aaiResourceUri = AAIUriFactory.createResourceUri(AAIObjectType.L3_NETWORK, "networkId");
1929 doReturn(l3NetworksWrapper).when(SPY_bbInputSetupUtils).getAAIResourceDepthTwo(aaiResourceUri);
1930 doReturn(expected).when(bbInputSetupMapperLayer).mapAAIL3Network(isA(org.onap.aai.domain.yang.L3Network.class));
1931 doNothing().when(SPY_bbInputSetup).mapNetworkPolicies(any(), eq(expected.getNetworkPolicies()));
1932 doNothing().when(SPY_bbInputSetup).mapRouteTableReferences(any(),
1933 eq(expected.getContrailNetworkRouteTableReferences()));
1935 SPY_bbInputSetup.mapL3Networks(Arrays.asList(new AAIResourceUri[] {aaiResourceUri}), l3Networks);
1937 assertEquals(expected, l3Networks.get(0));
1938 verify(SPY_bbInputSetup, times(1)).mapNetworkPolicies(any(), eq(expected.getNetworkPolicies()));
1939 verify(SPY_bbInputSetup, times(1)).mapRouteTableReferences(any(),
1940 eq(expected.getContrailNetworkRouteTableReferences()));
1944 public void testMapRouteTableReferences() throws JsonProcessingException {
1945 org.onap.aai.domain.yang.RouteTableReference expectedAAI = new org.onap.aai.domain.yang.RouteTableReference();
1947 RouteTableReference expected = new RouteTableReference();
1948 List<RouteTableReference> contrailNetworkRouteTableReferences = new ArrayList<>();
1949 AAIResultWrapper vnfWrapper =
1950 new AAIResultWrapper(new AAICommonObjectMapperProvider().getMapper().writeValueAsString(expectedAAI));
1952 doReturn(expected).when(bbInputSetupMapperLayer).mapAAIRouteTableReferenceIntoRouteTableReference(
1953 isA(org.onap.aai.domain.yang.RouteTableReference.class));
1955 SPY_bbInputSetup.mapRouteTableReferences(Arrays.asList(new AAIResultWrapper[] {vnfWrapper}),
1956 contrailNetworkRouteTableReferences);
1958 assertEquals(expected, contrailNetworkRouteTableReferences.get(0));
1962 public void testMapOwningEntity() throws JsonProcessingException {
1963 org.onap.aai.domain.yang.OwningEntity expectedAAI = new org.onap.aai.domain.yang.OwningEntity();
1965 OwningEntity expected = new OwningEntity();
1966 AAIResultWrapper vnfWrapper =
1967 new AAIResultWrapper(new AAICommonObjectMapperProvider().getMapper().writeValueAsString(expectedAAI));
1969 doReturn(expected).when(bbInputSetupMapperLayer)
1970 .mapAAIOwningEntity(isA(org.onap.aai.domain.yang.OwningEntity.class));
1972 ServiceInstance serviceInstance = new ServiceInstance();
1974 SPY_bbInputSetup.mapOwningEntity(Arrays.asList(new AAIResultWrapper[] {vnfWrapper}), serviceInstance);
1976 assertEquals(expected, serviceInstance.getOwningEntity());
1980 public void testMapProject() throws JsonProcessingException {
1981 org.onap.aai.domain.yang.Project expectedAAI = new org.onap.aai.domain.yang.Project();
1983 Project expected = new Project();
1984 AAIResultWrapper vnfWrapper =
1985 new AAIResultWrapper(new AAICommonObjectMapperProvider().getMapper().writeValueAsString(expectedAAI));
1987 doReturn(expected).when(bbInputSetupMapperLayer).mapAAIProject(isA(org.onap.aai.domain.yang.Project.class));
1989 ServiceInstance serviceInstance = new ServiceInstance();
1991 SPY_bbInputSetup.mapProject(Arrays.asList(new AAIResultWrapper[] {vnfWrapper}), serviceInstance);
1993 assertEquals(expected, serviceInstance.getProject());
1997 public void testMapCustomer() throws Exception {
1998 org.onap.aai.domain.yang.Customer customerAAI = new org.onap.aai.domain.yang.Customer();
1999 org.onap.aai.domain.yang.ServiceSubscription serviceSubscriptionAAI =
2000 new org.onap.aai.domain.yang.ServiceSubscription();
2002 Customer expected = new Customer();
2003 ServiceSubscription serviceSubscription = new ServiceSubscription();
2005 String globalCustomerId = "globalCustomerId";
2006 String subscriptionServiceType = "subscriptionServiceType";
2008 doReturn(customerAAI).when(SPY_bbInputSetupUtils).getAAICustomer(globalCustomerId);
2009 doReturn(serviceSubscriptionAAI).when(SPY_bbInputSetupUtils).getAAIServiceSubscription(globalCustomerId,
2010 subscriptionServiceType);
2011 doReturn(expected).when(bbInputSetupMapperLayer).mapAAICustomer(isA(org.onap.aai.domain.yang.Customer.class));
2012 doReturn(serviceSubscription).when(bbInputSetupMapperLayer)
2013 .mapAAIServiceSubscription(isA(org.onap.aai.domain.yang.ServiceSubscription.class));
2015 Customer actual = SPY_bbInputSetup.mapCustomer(globalCustomerId, subscriptionServiceType);
2017 assertEquals(expected, actual);
2018 assertEquals(serviceSubscription, expected.getServiceSubscription());
2022 public void testPopulateLookupKeyMapWithIds() {
2023 Map<ResourceKey, String> expected = new HashMap<>();
2024 Map<ResourceKey, String> actual = new HashMap<>();
2025 String serviceInstanceId = "serviceInstanceId";
2026 String networkId = "networkId";
2027 String vnfId = "vnfId";
2028 String pnfId = "pnfId";
2029 String vfModuleId = "vfModuleId";
2030 String volumeGroupId = "volumeGroupId";
2031 String configurationId = "configurationId";
2032 String instanceGroupId = "instancegroupId";
2034 expected.put(ResourceKey.SERVICE_INSTANCE_ID, serviceInstanceId);
2035 expected.put(ResourceKey.NETWORK_ID, networkId);
2036 expected.put(ResourceKey.GENERIC_VNF_ID, vnfId);
2037 expected.put(ResourceKey.PNF, pnfId);
2038 expected.put(ResourceKey.VF_MODULE_ID, vfModuleId);
2039 expected.put(ResourceKey.VOLUME_GROUP_ID, volumeGroupId);
2040 expected.put(ResourceKey.CONFIGURATION_ID, configurationId);
2041 expected.put(ResourceKey.INSTANCE_GROUP_ID, instanceGroupId);
2043 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2044 workflowResourceIds.setServiceInstanceId(serviceInstanceId);
2045 workflowResourceIds.setNetworkId(networkId);
2046 workflowResourceIds.setVnfId(vnfId);
2047 workflowResourceIds.setPnfId(pnfId);
2048 workflowResourceIds.setVfModuleId(vfModuleId);
2049 workflowResourceIds.setVolumeGroupId(volumeGroupId);
2050 workflowResourceIds.setConfigurationId(configurationId);
2051 workflowResourceIds.setInstanceGroupId(instanceGroupId);
2053 SPY_bbInputSetup.populateLookupKeyMapWithIds(workflowResourceIds, actual);
2055 assertThat(actual, sameBeanAs(expected));
2059 public void testGBBMacroNoUserParamsVrfConfiguration() throws Exception {
2060 String resourceId = "123";
2061 String vnfType = "vnfType";
2062 String requestAction = "createInstance";
2063 Service service = Mockito.mock(Service.class);
2064 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
2065 GeneralBuildingBlock.class);
2066 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
2067 ExecuteBuildingBlock.class);
2068 RequestDetails requestDetails = mapper
2069 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacroVrf.json"), RequestDetails.class);
2070 Map<ResourceKey, String> lookupKeyMap = prepareLookupKeyMap();
2072 ConfigurationResourceKeys configResourceKeys = prepareConfigurationResourceKeys();
2073 executeBB.setConfigurationResourceKeys(configResourceKeys).setRequestDetails(requestDetails);
2074 BuildingBlock buildingBlock = executeBB.getBuildingBlock();
2075 buildingBlock.setBpmnFlowName("AssignVrfConfigurationBB");
2076 buildingBlock.setKey("72d9d1cd-f46d-447a-abdb-451d6fb05fa9");
2078 doReturn(gBB).when(SPY_bbInputSetup).getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
2079 requestAction, lookupKeyMap.get(ResourceKey.SERVICE_INSTANCE_ID));
2080 doReturn(service).when(SPY_bbInputSetupUtils)
2081 .getCatalogServiceByModelUUID(gBB.getServiceInstance().getModelInfoServiceInstance().getModelUuid());
2083 RelatedInstance relatedVpnBinding = new RelatedInstance();
2084 relatedVpnBinding.setInstanceId("vpnBindingInstanceId");
2085 RelatedInstance relatedLocalNetwork = new RelatedInstance();
2086 relatedLocalNetwork.setInstanceId("localNetworkInstanceId");
2087 org.onap.aai.domain.yang.VpnBinding aaiVpnBinding = new org.onap.aai.domain.yang.VpnBinding();
2088 aaiVpnBinding.setVpnId("vpnBindingId");
2089 org.onap.aai.domain.yang.L3Network aaiLocalNetwork = new org.onap.aai.domain.yang.L3Network();
2090 aaiLocalNetwork.setNetworkId("localNetworkId");
2091 Optional<org.onap.aai.domain.yang.VpnBinding> aaiAICVpnBindingOp =
2092 Optional.of(new org.onap.aai.domain.yang.VpnBinding());
2093 aaiAICVpnBindingOp.get().setVpnId("AICVpnBindingId");
2094 ServiceProxy proxy = new ServiceProxy();
2095 proxy.setType("transport");
2096 proxy.setServiceInstance(new ServiceInstance());
2097 proxy.getServiceInstance().setModelInfoServiceInstance(new ModelInfoServiceInstance());
2098 proxy.getServiceInstance().getModelInfoServiceInstance().setModelUuid("sourceServiceModelUUID");
2099 doReturn(relatedVpnBinding).when(SPY_bbInputSetupUtils).getRelatedInstanceByType(requestDetails,
2100 ModelType.vpnBinding);
2101 doReturn(relatedLocalNetwork).when(SPY_bbInputSetupUtils).getRelatedInstanceByType(requestDetails,
2103 doReturn(aaiVpnBinding).when(SPY_bbInputSetupUtils).getAAIVpnBinding(relatedVpnBinding.getInstanceId());
2104 doReturn(aaiLocalNetwork).when(SPY_bbInputSetupUtils).getAAIL3Network(relatedLocalNetwork.getInstanceId());
2105 doReturn(aaiAICVpnBindingOp).when(SPY_bbInputSetupUtils).getAICVpnBindingFromNetwork(aaiLocalNetwork);
2106 doReturn(proxy).when(SPY_bbInputSetup).getServiceProxy(service);
2108 Configuration configuration = new Configuration();
2109 configuration.setConfigurationId("configurationId");
2110 gBB.getServiceInstance().getConfigurations().add(configuration);
2111 List<ConfigurationResourceCustomization> configurationCustList = new ArrayList<>();
2112 ConfigurationResourceCustomization configurationCust = new ConfigurationResourceCustomization();
2113 configurationCust.setModelCustomizationUUID("72d9d1cd-f46d-447a-abdb-451d6fb05fa9");
2114 configurationCustList.add(configurationCust);
2115 doNothing().when(SPY_bbInputSetup).populateConfiguration(any(BBInputSetupParameter.class));
2117 gBB = SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
2118 verify(SPY_bbInputSetup, times(1)).populateConfiguration(any(BBInputSetupParameter.class));
2119 assertEquals(gBB.getCustomer().getVpnBindings().get(0).getVpnId(), "vpnBindingId");
2120 assertEquals(gBB.getServiceInstance().getNetworks().get(0).getNetworkId(), "localNetworkId");
2121 assertEquals(gBB.getServiceInstance().getNetworks().get(0).getVpnBindings().get(0).getVpnId(),
2123 assertEquals(gBB.getServiceInstance().getServiceProxies().get(0).getType(), "transport");
2127 public void testGetServiceProxy() {
2128 ServiceProxy expected = new ServiceProxy();
2129 expected.setType("TRANSPORT");
2130 expected.setModelInfoServiceProxy(new ModelInfoServiceProxy());
2131 expected.getModelInfoServiceProxy().setModelUuid("modelUUID");
2132 expected.getModelInfoServiceProxy().setModelInstanceName("modelInstanceName");
2133 expected.setServiceInstance(new ServiceInstance());
2134 expected.getServiceInstance().setModelInfoServiceInstance(new ModelInfoServiceInstance());
2135 expected.getServiceInstance().getModelInfoServiceInstance().setModelUuid("modelUUID");
2136 expected.getServiceInstance().getModelInfoServiceInstance().setServiceType("TRANSPORT");
2137 Service service = new Service();
2138 ServiceProxyResourceCustomization serviceProxyCatalog = new ServiceProxyResourceCustomization();
2139 serviceProxyCatalog.setModelCustomizationUUID("modelCustomizationUUID");
2140 serviceProxyCatalog.setModelInstanceName("modelInstanceName");
2141 Service sourceService = new Service();
2142 sourceService.setModelUUID("modelUUID");
2143 sourceService.setServiceType("TRANSPORT");
2144 serviceProxyCatalog.setSourceService(sourceService);
2145 service.setServiceProxyCustomizations(new ArrayList<ServiceProxyResourceCustomization>());
2146 service.getServiceProxyCustomizations().add(serviceProxyCatalog);
2147 ServiceProxy actual = SPY_bbInputSetup.getServiceProxy(service);
2148 assertThat(actual, sameBeanAs(expected));
2152 public void testgetGBBMacroCloudConfiguration() throws Exception {
2153 org.onap.so.serviceinstancebeans.Service serviceMacro = mapper.readValue(
2154 new File(RESOURCE_PATH + "ServiceMacroVfModules.json"), org.onap.so.serviceinstancebeans.Service.class);
2155 CloudConfiguration cloudConfig = null;
2156 org.onap.aai.domain.yang.CloudRegion aaiCloudRegion = new org.onap.aai.domain.yang.CloudRegion();
2157 aaiCloudRegion.setCloudOwner("test-owner-name");
2158 Resources resources = serviceMacro.getResources();
2159 doReturn(aaiCloudRegion).when(SPY_bbInputSetupUtils).getCloudRegion(any(CloudConfiguration.class));
2160 CloudRegion expected = new CloudRegion();
2161 expected.setLcpCloudRegionId("mdt1");
2162 expected.setCloudOwner("test-owner-name");
2163 expected.setTenantId("88a6ca3ee0394ade9403f075db23167e");
2165 CloudRegion actual = SPY_bbInputSetup.getCloudRegionFromMacroRequest(cloudConfig, resources);
2166 assertThat(actual, sameBeanAs(expected));
2168 serviceMacro = mapper.readValue(new File(RESOURCE_PATH + "ServiceMacroVnfs.json"),
2169 org.onap.so.serviceinstancebeans.Service.class);
2170 resources = serviceMacro.getResources();
2172 actual = SPY_bbInputSetup.getCloudRegionFromMacroRequest(cloudConfig, resources);
2173 assertThat(actual, sameBeanAs(expected));
2175 serviceMacro = mapper.readValue(new File(RESOURCE_PATH + "ServiceMacroNetworks.json"),
2176 org.onap.so.serviceinstancebeans.Service.class);
2177 resources = serviceMacro.getResources();
2179 actual = SPY_bbInputSetup.getCloudRegionFromMacroRequest(cloudConfig, resources);
2180 assertThat(actual, sameBeanAs(expected));
2182 serviceMacro = mapper.readValue(new File(RESOURCE_PATH + "ServiceMacroNoCloudConfig.json"),
2183 org.onap.so.serviceinstancebeans.Service.class);
2184 resources = serviceMacro.getResources();
2186 actual = SPY_bbInputSetup.getCloudRegionFromMacroRequest(cloudConfig, resources);
2191 public void testgetGBBMacroWithEmptyUserParams() throws Exception {
2192 String resourceId = "123";
2193 String vnfType = "vnfType";
2194 String requestAction = "createInstance";
2195 Service service = Mockito.mock(Service.class);
2196 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
2197 GeneralBuildingBlock.class);
2198 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
2199 ExecuteBuildingBlock.class);
2200 RequestDetails requestDetails = mapper
2201 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
2202 requestDetails.getRequestParameters().getUserParams().clear();
2203 org.onap.aai.domain.yang.GenericVnf aaiVnf = new org.onap.aai.domain.yang.GenericVnf();
2204 aaiVnf.setModelCustomizationId("modelCustId");
2205 Map<ResourceKey, String> lookupKeyMap = prepareLookupKeyMap();
2206 BuildingBlock buildingBlock = executeBB.getBuildingBlock();
2207 buildingBlock.setBpmnFlowName(AssignFlows.NETWORK_MACRO.toString())
2208 .setKey("ab153b6e-c364-44c0-bef6-1f2982117f04").setIsVirtualLink(false);
2210 doReturn(gBB).when(SPY_bbInputSetup).getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
2211 requestAction, lookupKeyMap.get(ResourceKey.SERVICE_INSTANCE_ID));
2212 doReturn(service).when(SPY_bbInputSetupUtils)
2213 .getCatalogServiceByModelUUID(gBB.getServiceInstance().getModelInfoServiceInstance().getModelUuid());
2215 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
2216 verify(SPY_bbInputSetup, times(1)).getGBBMacroNoUserParamsCreate(any(ExecuteBuildingBlock.class), any(),
2217 any(String.class), any(String.class), any(GeneralBuildingBlock.class), any(Service.class));
2220 @Test(expected = Exception.class)
2221 public void testgetGBBMacroException() throws Exception {
2222 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
2223 ExecuteBuildingBlock.class);
2224 RequestDetails requestDetails = mapper
2225 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
2226 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
2227 String resourceId = "123";
2228 String vnfType = "vnfType";
2229 String requestAction = "createInstance";
2231 BuildingBlock buildingBlock = executeBB.getBuildingBlock();
2232 buildingBlock.setBpmnFlowName("Network").setKey("ab153b6e-c364-44c0-bef6-1f2982117f04");
2234 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
2238 public void test_getGBBMacroForVnfTypeNull_populateL3Network_shouldBeCalled() throws Exception {
2240 String resourceId = "123";
2241 String vnfType = "null";
2242 String requestAction = "createInstance";
2243 Service service = Mockito.mock(Service.class);
2244 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
2245 GeneralBuildingBlock.class);
2246 Map<ResourceKey, String> lookupKeyMap = prepareLookupKeyMap();
2248 ConfigurationResourceKeys configResourceKeys = prepareConfigurationResourceKeys();
2249 RequestDetails requestDetails = mapper
2250 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
2251 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
2252 ExecuteBuildingBlock.class);
2253 executeBB.setConfigurationResourceKeys(configResourceKeys).setRequestDetails(requestDetails);
2254 BuildingBlock buildingBlock = executeBB.getBuildingBlock();
2255 buildingBlock.setBpmnFlowName(AssignFlows.NETWORK_MACRO.toString())
2256 .setKey("ab153b6e-c364-44c0-bef6-1f2982117f04");
2258 doReturn(gBB).when(SPY_bbInputSetup).getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
2259 requestAction, lookupKeyMap.get(ResourceKey.SERVICE_INSTANCE_ID));
2260 doReturn(service).when(SPY_bbInputSetupUtils)
2261 .getCatalogServiceByModelUUID(gBB.getServiceInstance().getModelInfoServiceInstance().getModelUuid());
2263 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
2265 verify(SPY_bbInputSetup, times(1)).populateL3Network(any(BBInputSetupParameter.class));
2269 public void testgetGBBMacroNoUserParamsDeactivateInstnace() throws Exception {
2270 String resourceId = "123";
2271 String vnfType = "vnfType";
2272 String requestAction = "deactivateInstance";
2273 Service service = Mockito.mock(Service.class);
2274 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
2275 GeneralBuildingBlock.class);
2276 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
2277 ExecuteBuildingBlock.class);
2278 RequestDetails requestDetails = mapper
2279 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
2280 requestDetails.getRequestParameters().setUserParams(null);
2281 org.onap.aai.domain.yang.GenericVnf aaiVnf = new org.onap.aai.domain.yang.GenericVnf();
2282 aaiVnf.setModelCustomizationId("modelCustId");
2283 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
2284 lookupKeyMap.put(ResourceKey.NETWORK_ID, "networkId");
2285 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "vnfId");
2286 lookupKeyMap.put(ResourceKey.VF_MODULE_ID, "vfModuleId");
2287 lookupKeyMap.put(ResourceKey.VOLUME_GROUP_ID, "volumeGroupId");
2288 lookupKeyMap.put(ResourceKey.SERVICE_INSTANCE_ID, "serviceInstanceId");
2289 BuildingBlock buildingBlock = executeBB.getBuildingBlock();
2290 buildingBlock.setBpmnFlowName("DeactivateServiceInstanceBB").setKey("3c40d244-808e-42ca-b09a-256d83d19d0a");
2292 doReturn(gBB).when(SPY_bbInputSetup).getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
2293 requestAction, lookupKeyMap.get(ResourceKey.SERVICE_INSTANCE_ID));
2294 doReturn(service).when(SPY_bbInputSetupUtils)
2295 .getCatalogServiceByModelUUID(gBB.getServiceInstance().getModelInfoServiceInstance().getModelUuid());
2297 GeneralBuildingBlock actual = SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap,
2298 requestAction, resourceId, vnfType);
2299 assertThat(actual, sameBeanAs(gBB));
2303 public void test_getGBBMacroNoUserParamsCreate_shouldBeCalled() throws Exception {
2305 String resourceId = "123";
2306 String vnfType = "vnfType";
2307 String requestAction = "createInstance";
2308 Service service = Mockito.mock(Service.class);
2309 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
2310 GeneralBuildingBlock.class);
2311 Map<ResourceKey, String> lookupKeyMap = prepareLookupKeyMap();
2312 List<NetworkResourceCustomization> networkCustList = new ArrayList<>();
2313 NetworkResourceCustomization networkCust = Mockito.mock(NetworkResourceCustomization.class);
2314 networkCustList.add(networkCust);
2316 ConfigurationResourceKeys configResourceKeys = prepareConfigurationResourceKeys();
2317 RequestDetails requestDetails = mapper
2318 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
2319 requestDetails.getRequestParameters().setUserParams(null);
2320 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
2321 ExecuteBuildingBlock.class);
2322 executeBB.setConfigurationResourceKeys(configResourceKeys).setRequestDetails(requestDetails);
2323 BuildingBlock buildingBlock = executeBB.getBuildingBlock();
2324 buildingBlock.setBpmnFlowName(AssignFlows.NETWORK_MACRO.toString())
2325 .setKey("ab153b6e-c364-44c0-bef6-1f2982117f04").setIsVirtualLink(false);
2327 doReturn(gBB).when(SPY_bbInputSetup).getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
2328 requestAction, lookupKeyMap.get(ResourceKey.SERVICE_INSTANCE_ID));
2329 doReturn(service).when(SPY_bbInputSetupUtils)
2330 .getCatalogServiceByModelUUID(gBB.getServiceInstance().getModelInfoServiceInstance().getModelUuid());
2331 doReturn(networkCustList).when(service).getNetworkCustomizations();
2332 doReturn("ab153b6e-c364-44c0-bef6-1f2982117f04").when(networkCust).getModelCustomizationUUID();
2333 doNothing().when(SPY_bbInputSetup).populateL3Network(any(BBInputSetupParameter.class));
2335 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
2337 verify(SPY_bbInputSetup, times(1)).getGBBMacroNoUserParamsCreate(executeBB, lookupKeyMap,
2338 executeBB.getBuildingBlock().getBpmnFlowName(), "ab153b6e-c364-44c0-bef6-1f2982117f04", gBB, service);
2342 public void test_getGBBMacroNoUserParamsCreate_shouldBeCalled_whenBBhasVirtualLink() throws Exception {
2344 String resourceId = "123";
2345 String vnfType = "vnfType";
2346 String requestAction = "createInstance";
2347 Service service = Mockito.mock(Service.class);
2348 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
2349 GeneralBuildingBlock.class);
2350 Map<ResourceKey, String> lookupKeyMap = prepareLookupKeyMap();
2351 List<NetworkResourceCustomization> networkCustList = new ArrayList<>();
2352 NetworkResourceCustomization networkCust = Mockito.mock(NetworkResourceCustomization.class);
2353 networkCustList.add(networkCust);
2354 CollectionNetworkResourceCustomization collectionNetworkResourceCust =
2355 Mockito.mock(CollectionNetworkResourceCustomization.class);
2356 org.onap.aai.domain.yang.GenericVnf aaiVnf = new org.onap.aai.domain.yang.GenericVnf();
2357 aaiVnf.setModelCustomizationId("modelCustId");
2358 ModelInfoNetwork modelInfoNetwork = Mockito.mock(ModelInfoNetwork.class);
2359 NetworkResourceCustomization networkResourceCustomization = Mockito.mock(NetworkResourceCustomization.class);
2361 ConfigurationResourceKeys configResourceKeys = prepareConfigurationResourceKeys();
2362 RequestDetails requestDetails = mapper
2363 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
2364 requestDetails.getRequestParameters().setUserParams(null);
2365 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
2366 ExecuteBuildingBlock.class);
2367 executeBB.setConfigurationResourceKeys(configResourceKeys).setRequestDetails(requestDetails);
2368 BuildingBlock buildingBlock = executeBB.getBuildingBlock();
2369 buildingBlock.setBpmnFlowName(AssignFlows.NETWORK_MACRO.toString())
2370 .setKey("ab153b6e-c364-44c0-bef6-1f2982117f04").setIsVirtualLink(true);
2372 doReturn(gBB).when(SPY_bbInputSetup).getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
2373 requestAction, lookupKeyMap.get(ResourceKey.SERVICE_INSTANCE_ID));
2374 doReturn(service).when(SPY_bbInputSetupUtils)
2375 .getCatalogServiceByModelUUID(gBB.getServiceInstance().getModelInfoServiceInstance().getModelUuid());
2376 doReturn(collectionNetworkResourceCust).when(SPY_bbInputSetupUtils)
2377 .getCatalogCollectionNetworkResourceCustByID(any(String.class));
2378 doReturn(networkResourceCustomization).when(bbInputSetupMapperLayer)
2379 .mapCollectionNetworkResourceCustToNetworkResourceCust(collectionNetworkResourceCust);
2380 doReturn(modelInfoNetwork).when(bbInputSetupMapperLayer)
2381 .mapCatalogNetworkToNetwork(networkResourceCustomization);
2383 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
2385 verify(SPY_bbInputSetup, times(1)).getGBBMacroNoUserParamsCreate(executeBB, lookupKeyMap,
2386 executeBB.getBuildingBlock().getBpmnFlowName(), "ab153b6e-c364-44c0-bef6-1f2982117f04", gBB, service);
2390 public void test_getGBBMacroNoUserParamsCreate_shouldBeCalled_whenBBhasVirtualLinkAndOtherFlowName()
2393 String otherFlowName = "CreateNetworkBB";
2394 String resourceId = "123";
2395 String vnfType = "vnfType";
2396 String requestAction = "createInstance";
2397 Service service = Mockito.mock(Service.class);
2398 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
2399 GeneralBuildingBlock.class);
2400 Map<ResourceKey, String> lookupKeyMap = prepareLookupKeyMap();
2401 List<NetworkResourceCustomization> networkCustList = new ArrayList<>();
2402 NetworkResourceCustomization networkCust = Mockito.mock(NetworkResourceCustomization.class);
2403 networkCustList.add(networkCust);
2404 CollectionNetworkResourceCustomization collectionNetworkResourceCust =
2405 Mockito.mock(CollectionNetworkResourceCustomization.class);
2407 ConfigurationResourceKeys configResourceKeys = prepareConfigurationResourceKeys();
2408 RequestDetails requestDetails = mapper
2409 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
2410 requestDetails.getRequestParameters().setUserParams(null);
2411 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
2412 ExecuteBuildingBlock.class);
2413 executeBB.setConfigurationResourceKeys(configResourceKeys).setRequestDetails(requestDetails);
2414 BuildingBlock buildingBlock = executeBB.getBuildingBlock();
2415 buildingBlock.setBpmnFlowName(otherFlowName).setKey("ab153b6e-c364-44c0-bef6-1f2982117f04")
2416 .setIsVirtualLink(true);
2418 doReturn(gBB).when(SPY_bbInputSetup).getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
2419 requestAction, lookupKeyMap.get(ResourceKey.SERVICE_INSTANCE_ID));
2420 doReturn(service).when(SPY_bbInputSetupUtils)
2421 .getCatalogServiceByModelUUID(gBB.getServiceInstance().getModelInfoServiceInstance().getModelUuid());
2422 doReturn(collectionNetworkResourceCust).when(SPY_bbInputSetupUtils)
2423 .getCatalogCollectionNetworkResourceCustByID(any(String.class));
2425 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
2427 verify(SPY_bbInputSetup, times(1)).getGBBMacroNoUserParamsCreate(executeBB, lookupKeyMap,
2428 executeBB.getBuildingBlock().getBpmnFlowName(), "ab153b6e-c364-44c0-bef6-1f2982117f04", gBB, service);
2431 @Test(expected = IllegalArgumentException.class)
2432 public void testgetGBBMacroNoUserParamsOtherException() throws Exception {
2433 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
2434 GeneralBuildingBlock.class);
2435 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
2436 ExecuteBuildingBlock.class);
2437 RequestDetails requestDetails = mapper
2438 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
2439 requestDetails.getRequestParameters().setUserParams(null);
2440 org.onap.aai.domain.yang.GenericVnf aaiVnf = new org.onap.aai.domain.yang.GenericVnf();
2441 aaiVnf.setModelCustomizationId("modelCustId");
2442 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
2443 lookupKeyMap.put(ResourceKey.NETWORK_ID, "networkId");
2444 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "vnfId");
2445 lookupKeyMap.put(ResourceKey.VF_MODULE_ID, "vfModuleId");
2446 lookupKeyMap.put(ResourceKey.VOLUME_GROUP_ID, "volumeGroupId");
2447 lookupKeyMap.put(ResourceKey.SERVICE_INSTANCE_ID, "serviceInstanceId");
2448 String resourceId = "123";
2449 String vnfType = "vnfType";
2450 Service service = Mockito.mock(Service.class);
2451 String requestAction = "assignInstance";
2452 doReturn(gBB).when(SPY_bbInputSetup).getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
2453 requestAction, lookupKeyMap.get(ResourceKey.SERVICE_INSTANCE_ID));
2454 doReturn(service).when(SPY_bbInputSetupUtils)
2455 .getCatalogServiceByModelUUID(gBB.getServiceInstance().getModelInfoServiceInstance().getModelUuid());
2456 String generatedId = "12131";
2458 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
2462 public void test_getGBBMacroNoUserParamsExistingService_forCatalogNetwork() throws Exception {
2464 String requestAction = "unassignInstance";
2465 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
2466 GeneralBuildingBlock.class);
2467 L3Network network = new L3Network();
2468 network.setNetworkId("networkId");
2469 gBB.getServiceInstance().getNetworks().add(network);
2470 ServiceInstance serviceInstance = gBB.getServiceInstance();
2471 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
2472 ExecuteBuildingBlock.class);
2473 RequestDetails requestDetails = mapper
2474 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
2475 requestDetails.getRequestParameters().setUserParams(null);
2476 Map<ResourceKey, String> lookupKeyMap = prepareLookupKeyMap();
2477 Service service = Mockito.mock(Service.class);
2478 CloudConfiguration cloudConfiguration = new CloudConfiguration();
2479 cloudConfiguration.setLcpCloudRegionId("cloudRegionId");
2480 org.onap.aai.domain.yang.ServiceInstance aaiServiceInstance = new org.onap.aai.domain.yang.ServiceInstance();
2481 org.onap.aai.domain.yang.L3Network aaiNetwork = new org.onap.aai.domain.yang.L3Network();
2482 aaiNetwork.setModelCustomizationId("modelCustId");
2484 ConfigurationResourceKeys configResourceKeys = prepareConfigurationResourceKeys();
2485 executeBB.setConfigurationResourceKeys(configResourceKeys).setRequestDetails(requestDetails);
2486 BuildingBlock buildingBlock = executeBB.getBuildingBlock();
2487 buildingBlock.setBpmnFlowName("DeleteNetworkBB").setKey("ab153b6e-c364-44c0-bef6-1f2982117f04");
2489 aaiServiceInstance.setModelVersionId("modelVersionId");
2490 doReturn(service).when(SPY_bbInputSetupUtils)
2491 .getCatalogServiceByModelUUID(aaiServiceInstance.getModelVersionId());
2492 doReturn(aaiServiceInstance).when(SPY_bbInputSetupUtils)
2493 .getAAIServiceInstanceById(lookupKeyMap.get(ResourceKey.SERVICE_INSTANCE_ID));
2494 doReturn(serviceInstance).when(SPY_bbInputSetup).getExistingServiceInstance(aaiServiceInstance);
2495 doReturn(gBB).when(SPY_bbInputSetup).populateGBBWithSIAndAdditionalInfo(any(BBInputSetupParameter.class));
2496 doReturn(aaiNetwork).when(SPY_bbInputSetupUtils).getAAIL3Network(network.getNetworkId());
2497 doNothing().when(SPY_bbInputSetup).mapCatalogNetwork(any(L3Network.class), any(ModelInfo.class),
2498 any(Service.class));
2500 SPY_bbInputSetup.getGBBMacroExistingService(executeBB, lookupKeyMap,
2501 executeBB.getBuildingBlock().getBpmnFlowName(), requestAction, null);
2503 verify(SPY_bbInputSetup, times(1)).mapCatalogNetwork(any(L3Network.class), any(ModelInfo.class),
2504 any(Service.class));
2508 public void test_getGBBMacroNoUserParamsExistingService_forControllerExecutionBB() throws Exception {
2510 String requestAction = "unassignInstance";
2511 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
2512 GeneralBuildingBlock.class);
2513 L3Network network = new L3Network();
2514 network.setNetworkId("networkId");
2515 gBB.getServiceInstance().getNetworks().add(network);
2516 ServiceInstance serviceInstance = gBB.getServiceInstance();
2517 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
2518 ExecuteBuildingBlock.class);
2519 RequestDetails requestDetails = mapper
2520 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
2521 requestDetails.getRequestParameters().setUserParams(null);
2522 Map<ResourceKey, String> lookupKeyMap = prepareLookupKeyMap();
2523 Service service = Mockito.mock(Service.class);
2524 CloudConfiguration cloudConfiguration = new CloudConfiguration();
2525 cloudConfiguration.setLcpCloudRegionId("cloudRegionId");
2526 org.onap.aai.domain.yang.ServiceInstance aaiServiceInstance = new org.onap.aai.domain.yang.ServiceInstance();
2527 org.onap.aai.domain.yang.L3Network aaiNetwork = new org.onap.aai.domain.yang.L3Network();
2528 aaiNetwork.setModelCustomizationId("modelCustId");
2529 GenericVnf vnf = new GenericVnf();
2530 vnf.setVnfId("vnfId");
2531 gBB.getServiceInstance().getVnfs().add(vnf);
2532 org.onap.aai.domain.yang.GenericVnf aaiVnf = new org.onap.aai.domain.yang.GenericVnf();
2533 aaiVnf.setModelCustomizationId("modelCustId");
2535 ConfigurationResourceKeys configResourceKeys = prepareConfigurationResourceKeys();
2536 executeBB.setConfigurationResourceKeys(configResourceKeys).setRequestDetails(requestDetails);
2537 BuildingBlock buildingBlock = executeBB.getBuildingBlock();
2538 buildingBlock.setBpmnFlowName("ControllerExecutionBB").setKey("ab153b6e-c364-44c0-bef6-1f2982117f04");
2539 buildingBlock.setBpmnScope("VNF");
2541 aaiServiceInstance.setModelVersionId("modelVersionId");
2542 doReturn(service).when(SPY_bbInputSetupUtils)
2543 .getCatalogServiceByModelUUID(aaiServiceInstance.getModelVersionId());
2544 doReturn(aaiServiceInstance).when(SPY_bbInputSetupUtils)
2545 .getAAIServiceInstanceById(lookupKeyMap.get(ResourceKey.SERVICE_INSTANCE_ID));
2546 doReturn(serviceInstance).when(SPY_bbInputSetup).getExistingServiceInstance(aaiServiceInstance);
2547 doReturn(gBB).when(SPY_bbInputSetup).populateGBBWithSIAndAdditionalInfo(any(BBInputSetupParameter.class));
2548 doReturn(aaiVnf).when(SPY_bbInputSetupUtils).getAAIGenericVnf(vnf.getVnfId());
2549 doNothing().when(SPY_bbInputSetup).mapCatalogVnf(any(GenericVnf.class), any(ModelInfo.class),
2550 any(Service.class));
2552 SPY_bbInputSetup.getGBBMacroExistingService(executeBB, lookupKeyMap,
2553 executeBB.getBuildingBlock().getBpmnFlowName(), requestAction, cloudConfiguration);
2555 verify(SPY_bbInputSetup, times(1)).mapCatalogVnf(any(GenericVnf.class), any(ModelInfo.class),
2556 any(Service.class));
2560 public void test_getGBBMacroNoUserParamsExistingService_forActivateVnfBB() throws Exception {
2562 String requestAction = "unassignInstance";
2563 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
2564 GeneralBuildingBlock.class);
2565 L3Network network = new L3Network();
2566 network.setNetworkId("networkId");
2567 gBB.getServiceInstance().getNetworks().add(network);
2568 ServiceInstance serviceInstance = gBB.getServiceInstance();
2569 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
2570 ExecuteBuildingBlock.class);
2571 RequestDetails requestDetails = mapper
2572 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
2573 requestDetails.getRequestParameters().setUserParams(null);
2574 Map<ResourceKey, String> lookupKeyMap = prepareLookupKeyMap();
2575 Service service = Mockito.mock(Service.class);
2576 CloudConfiguration cloudConfiguration = new CloudConfiguration();
2577 cloudConfiguration.setLcpCloudRegionId("cloudRegionId");
2578 org.onap.aai.domain.yang.ServiceInstance aaiServiceInstance = new org.onap.aai.domain.yang.ServiceInstance();
2579 org.onap.aai.domain.yang.L3Network aaiNetwork = new org.onap.aai.domain.yang.L3Network();
2580 aaiNetwork.setModelCustomizationId("modelCustId");
2581 GenericVnf vnf = new GenericVnf();
2582 vnf.setVnfId("vnfId");
2583 gBB.getServiceInstance().getVnfs().add(vnf);
2584 org.onap.aai.domain.yang.GenericVnf aaiVnf = new org.onap.aai.domain.yang.GenericVnf();
2585 aaiVnf.setModelCustomizationId("modelCustId");
2587 ConfigurationResourceKeys configResourceKeys = prepareConfigurationResourceKeys();
2588 executeBB.setConfigurationResourceKeys(configResourceKeys).setRequestDetails(requestDetails);
2589 BuildingBlock buildingBlock = executeBB.getBuildingBlock();
2590 buildingBlock.setBpmnFlowName("ActivateVnfBB").setKey("ab153b6e-c364-44c0-bef6-1f2982117f04");
2592 aaiServiceInstance.setModelVersionId("modelVersionId");
2593 doReturn(service).when(SPY_bbInputSetupUtils)
2594 .getCatalogServiceByModelUUID(aaiServiceInstance.getModelVersionId());
2595 doReturn(aaiServiceInstance).when(SPY_bbInputSetupUtils)
2596 .getAAIServiceInstanceById(lookupKeyMap.get(ResourceKey.SERVICE_INSTANCE_ID));
2597 doReturn(serviceInstance).when(SPY_bbInputSetup).getExistingServiceInstance(aaiServiceInstance);
2598 doReturn(gBB).when(SPY_bbInputSetup).populateGBBWithSIAndAdditionalInfo(any(BBInputSetupParameter.class));
2599 doReturn(aaiVnf).when(SPY_bbInputSetupUtils).getAAIGenericVnf(vnf.getVnfId());
2600 doNothing().when(SPY_bbInputSetup).mapCatalogVnf(any(GenericVnf.class), any(ModelInfo.class),
2601 any(Service.class));
2603 SPY_bbInputSetup.getGBBMacroExistingService(executeBB, lookupKeyMap,
2604 executeBB.getBuildingBlock().getBpmnFlowName(), requestAction, cloudConfiguration);
2606 verify(SPY_bbInputSetup, times(1)).mapCatalogVnf(any(GenericVnf.class), any(ModelInfo.class),
2607 any(Service.class));
2611 public void test_getGBBMacroNoUserParamsExistingService_forControllerExecutionBB_VFModule() throws Exception {
2613 String requestAction = "unassignInstance";
2614 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
2615 GeneralBuildingBlock.class);
2616 L3Network network = new L3Network();
2617 network.setNetworkId("networkId");
2618 gBB.getServiceInstance().getNetworks().add(network);
2619 ServiceInstance serviceInstance = gBB.getServiceInstance();
2620 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
2621 ExecuteBuildingBlock.class);
2622 RequestDetails requestDetails = mapper
2623 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
2624 requestDetails.getRequestParameters().setUserParams(null);
2625 Map<ResourceKey, String> lookupKeyMap = prepareLookupKeyMap();
2626 Service service = Mockito.mock(Service.class);
2627 CloudConfiguration cloudConfiguration = new CloudConfiguration();
2628 cloudConfiguration.setLcpCloudRegionId("cloudRegionId");
2629 org.onap.aai.domain.yang.ServiceInstance aaiServiceInstance = new org.onap.aai.domain.yang.ServiceInstance();
2630 org.onap.aai.domain.yang.L3Network aaiNetwork = new org.onap.aai.domain.yang.L3Network();
2631 aaiNetwork.setModelCustomizationId("modelCustId");
2632 GenericVnf vnf = new GenericVnf();
2633 vnf.setVnfId("vnfId");
2634 gBB.getServiceInstance().getVnfs().add(vnf);
2635 org.onap.aai.domain.yang.GenericVnf aaiVnf = new org.onap.aai.domain.yang.GenericVnf();
2636 aaiVnf.setModelCustomizationId("modelCustId");
2637 VfModule vfModule = new VfModule();
2638 vfModule.setVfModuleId("vfModuleId");
2639 gBB.getServiceInstance().getVnfs().get(0).getVfModules().add(vfModule);
2640 org.onap.aai.domain.yang.VfModule aaiVfModule = new org.onap.aai.domain.yang.VfModule();
2641 aaiVfModule.setModelCustomizationId("modelCustId");
2643 ConfigurationResourceKeys configResourceKeys = prepareConfigurationResourceKeys();
2644 executeBB.setConfigurationResourceKeys(configResourceKeys).setRequestDetails(requestDetails);
2645 BuildingBlock buildingBlock = executeBB.getBuildingBlock();
2646 buildingBlock.setBpmnFlowName("ControllerExecutionBB").setKey("a25e8e8c-58b8-4eec-810c-97dcc1f5cb7f");
2647 buildingBlock.setBpmnScope("VfModule");
2649 aaiServiceInstance.setModelVersionId("modelVersionId");
2650 doReturn(service).when(SPY_bbInputSetupUtils)
2651 .getCatalogServiceByModelUUID(aaiServiceInstance.getModelVersionId());
2652 doReturn(aaiServiceInstance).when(SPY_bbInputSetupUtils)
2653 .getAAIServiceInstanceById(lookupKeyMap.get(ResourceKey.SERVICE_INSTANCE_ID));
2654 doReturn(serviceInstance).when(SPY_bbInputSetup).getExistingServiceInstance(aaiServiceInstance);
2655 doReturn(gBB).when(SPY_bbInputSetup).populateGBBWithSIAndAdditionalInfo(any(BBInputSetupParameter.class));
2656 doReturn(aaiVnf).when(SPY_bbInputSetupUtils).getAAIGenericVnf(vnf.getVnfId());
2657 doNothing().when(SPY_bbInputSetup).mapCatalogVnf(any(GenericVnf.class), any(ModelInfo.class),
2658 any(Service.class));
2659 doReturn(aaiVfModule).when(SPY_bbInputSetupUtils).getAAIVfModule(vnf.getVnfId(), vfModule.getVfModuleId());
2661 SPY_bbInputSetup.getGBBMacroExistingService(executeBB, lookupKeyMap,
2662 executeBB.getBuildingBlock().getBpmnFlowName(), requestAction, cloudConfiguration);
2664 verify(SPY_bbInputSetup, times(1)).mapCatalogVnf(any(GenericVnf.class), any(ModelInfo.class),
2665 any(Service.class));
2666 verify(SPY_bbInputSetup, times(1)).mapCatalogVfModule(any(VfModule.class), any(ModelInfo.class),
2667 any(Service.class), any(String.class));
2671 public void test_getGBBMacroNoUserParamsExistingService_forUnassignVfModuleBB() throws Exception {
2673 String requestAction = "unassignInstance";
2674 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
2675 GeneralBuildingBlock.class);
2676 L3Network network = new L3Network();
2677 network.setNetworkId("networkId");
2678 gBB.getServiceInstance().getNetworks().add(network);
2679 ServiceInstance serviceInstance = gBB.getServiceInstance();
2680 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
2681 ExecuteBuildingBlock.class);
2682 RequestDetails requestDetails = mapper
2683 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
2684 requestDetails.getRequestParameters().setUserParams(null);
2685 Map<ResourceKey, String> lookupKeyMap = prepareLookupKeyMap();
2686 Service service = Mockito.mock(Service.class);
2687 CloudConfiguration cloudConfiguration = new CloudConfiguration();
2688 cloudConfiguration.setLcpCloudRegionId("cloudRegionId");
2689 org.onap.aai.domain.yang.ServiceInstance aaiServiceInstance = new org.onap.aai.domain.yang.ServiceInstance();
2690 org.onap.aai.domain.yang.L3Network aaiNetwork = new org.onap.aai.domain.yang.L3Network();
2691 aaiNetwork.setModelCustomizationId("modelCustId");
2692 GenericVnf vnf = new GenericVnf();
2693 vnf.setVnfId("vnfId");
2694 gBB.getServiceInstance().getVnfs().add(vnf);
2695 org.onap.aai.domain.yang.GenericVnf aaiVnf = new org.onap.aai.domain.yang.GenericVnf();
2696 aaiVnf.setModelCustomizationId("modelCustId");
2697 VfModule vfModule = new VfModule();
2698 vfModule.setVfModuleId("vfModuleId");
2699 gBB.getServiceInstance().getVnfs().get(0).getVfModules().add(vfModule);
2700 org.onap.aai.domain.yang.VfModule aaiVfModule = new org.onap.aai.domain.yang.VfModule();
2701 aaiVfModule.setModelCustomizationId("modelCustId");
2703 ConfigurationResourceKeys configResourceKeys = prepareConfigurationResourceKeys();
2704 executeBB.setConfigurationResourceKeys(configResourceKeys).setRequestDetails(requestDetails);
2705 BuildingBlock buildingBlock = executeBB.getBuildingBlock();
2706 buildingBlock.setBpmnFlowName("UnassignVfModuleBB").setKey("a25e8e8c-58b8-4eec-810c-97dcc1f5cb7f");
2708 aaiServiceInstance.setModelVersionId("modelVersionId");
2709 doReturn(service).when(SPY_bbInputSetupUtils)
2710 .getCatalogServiceByModelUUID(aaiServiceInstance.getModelVersionId());
2711 doReturn(aaiServiceInstance).when(SPY_bbInputSetupUtils)
2712 .getAAIServiceInstanceById(lookupKeyMap.get(ResourceKey.SERVICE_INSTANCE_ID));
2713 doReturn(serviceInstance).when(SPY_bbInputSetup).getExistingServiceInstance(aaiServiceInstance);
2714 doReturn(gBB).when(SPY_bbInputSetup).populateGBBWithSIAndAdditionalInfo(any(BBInputSetupParameter.class));
2715 doReturn(aaiVnf).when(SPY_bbInputSetupUtils).getAAIGenericVnf(vnf.getVnfId());
2716 doNothing().when(SPY_bbInputSetup).mapCatalogVnf(any(GenericVnf.class), any(ModelInfo.class),
2717 any(Service.class));
2718 doReturn(aaiVfModule).when(SPY_bbInputSetupUtils).getAAIVfModule(vnf.getVnfId(), vfModule.getVfModuleId());
2720 SPY_bbInputSetup.getGBBMacroExistingService(executeBB, lookupKeyMap,
2721 executeBB.getBuildingBlock().getBpmnFlowName(), requestAction, cloudConfiguration);
2723 verify(SPY_bbInputSetup, times(1)).mapCatalogVnf(any(GenericVnf.class), any(ModelInfo.class),
2724 any(Service.class));
2725 verify(SPY_bbInputSetup, times(1)).mapCatalogVfModule(any(VfModule.class), any(ModelInfo.class),
2726 any(Service.class), any(String.class));
2730 public void test_getGBBMacroNoUserParamsExistingService_forUnassignVolumeGroupBB() throws Exception {
2732 String requestAction = "unassignInstance";
2733 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
2734 GeneralBuildingBlock.class);
2735 L3Network network = new L3Network();
2736 network.setNetworkId("networkId");
2737 gBB.getServiceInstance().getNetworks().add(network);
2738 ServiceInstance serviceInstance = gBB.getServiceInstance();
2739 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
2740 ExecuteBuildingBlock.class);
2741 RequestDetails requestDetails = mapper
2742 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
2743 requestDetails.getRequestParameters().setUserParams(null);
2744 Map<ResourceKey, String> lookupKeyMap = prepareLookupKeyMap();
2745 Service service = Mockito.mock(Service.class);
2746 org.onap.aai.domain.yang.ServiceInstance aaiServiceInstance = new org.onap.aai.domain.yang.ServiceInstance();
2747 GenericVnf vnf = new GenericVnf();
2748 vnf.setVnfId("vnfId");
2749 gBB.getServiceInstance().getVnfs().add(vnf);
2750 org.onap.aai.domain.yang.GenericVnf aaiVnf = new org.onap.aai.domain.yang.GenericVnf();
2751 aaiVnf.setModelCustomizationId("modelCustId");
2752 VfModule vfModule = new VfModule();
2753 vfModule.setVfModuleId("vfModuleId");
2754 gBB.getServiceInstance().getVnfs().get(0).getVfModules().add(vfModule);
2755 CloudRegion cloudRegion = new CloudRegion();
2756 cloudRegion.setLcpCloudRegionId("cloudRegionId");
2757 cloudRegion.setCloudOwner("CloudOwner");
2758 VolumeGroup volumeGroup = new VolumeGroup();
2759 volumeGroup.setVolumeGroupId("volumeGroupId");
2760 gBB.getServiceInstance().getVnfs().get(0).getVolumeGroups().add(volumeGroup);
2761 org.onap.aai.domain.yang.VolumeGroup aaiVolumeGroup = new org.onap.aai.domain.yang.VolumeGroup();
2762 aaiVolumeGroup.setModelCustomizationId("modelCustId");
2764 ConfigurationResourceKeys configResourceKeys = prepareConfigurationResourceKeys();
2765 executeBB.setConfigurationResourceKeys(configResourceKeys).setRequestDetails(requestDetails);
2766 BuildingBlock buildingBlock = executeBB.getBuildingBlock();
2767 buildingBlock.setBpmnFlowName("UnassignVolumeGroupBB").setKey("72d9d1cd-f46d-447a-abdb-451d6fb05fa8");
2769 aaiServiceInstance.setModelVersionId("modelVersionId");
2770 doReturn(service).when(SPY_bbInputSetupUtils)
2771 .getCatalogServiceByModelUUID(aaiServiceInstance.getModelVersionId());
2772 doReturn(aaiServiceInstance).when(SPY_bbInputSetupUtils)
2773 .getAAIServiceInstanceById(lookupKeyMap.get(ResourceKey.SERVICE_INSTANCE_ID));
2774 doReturn(serviceInstance).when(SPY_bbInputSetup).getExistingServiceInstance(aaiServiceInstance);
2775 doReturn(gBB).when(SPY_bbInputSetup).populateGBBWithSIAndAdditionalInfo(any(BBInputSetupParameter.class));
2776 doReturn(aaiVnf).when(SPY_bbInputSetupUtils).getAAIGenericVnf(vnf.getVnfId());
2777 doNothing().when(SPY_bbInputSetup).mapCatalogVnf(any(GenericVnf.class), any(ModelInfo.class),
2778 any(Service.class));
2779 doReturn(aaiVolumeGroup).when(SPY_bbInputSetupUtils).getAAIVolumeGroup(cloudRegion.getCloudOwner(),
2780 cloudRegion.getLcpCloudRegionId(), volumeGroup.getVolumeGroupId());
2781 doReturn(Optional.of(cloudRegion)).when(SPY_cloudInfoFromAAI).getCloudInfoFromAAI(gBB.getServiceInstance());
2784 SPY_bbInputSetup.getGBBMacroExistingService(executeBB, lookupKeyMap,
2785 executeBB.getBuildingBlock().getBpmnFlowName(), requestAction, null);
2787 verify(SPY_bbInputSetup, times(1)).mapCatalogVnf(any(GenericVnf.class), any(ModelInfo.class),
2788 any(Service.class));
2789 verify(SPY_bbInputSetup, times(1)).mapCatalogVolumeGroup(isA(VolumeGroup.class), isA(ModelInfo.class),
2790 isA(Service.class), isA(String.class));
2794 public void test_getGBBMacroNoUserParamsExistingService_forActivateFabricConfigurationBB() throws Exception {
2796 String requestAction = "unassignInstance";
2797 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
2798 GeneralBuildingBlock.class);
2799 L3Network network = new L3Network();
2800 network.setNetworkId("networkId");
2801 gBB.getServiceInstance().getNetworks().add(network);
2802 ServiceInstance serviceInstance = gBB.getServiceInstance();
2803 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
2804 ExecuteBuildingBlock.class);
2805 RequestDetails requestDetails = mapper
2806 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
2807 requestDetails.getRequestParameters().setUserParams(null);
2808 Map<ResourceKey, String> lookupKeyMap = prepareLookupKeyMap();
2809 Service service = Mockito.mock(Service.class);
2810 org.onap.aai.domain.yang.ServiceInstance aaiServiceInstance = new org.onap.aai.domain.yang.ServiceInstance();
2811 GenericVnf vnf = new GenericVnf();
2812 vnf.setVnfId("vnfId");
2813 gBB.getServiceInstance().getVnfs().add(vnf);
2814 org.onap.aai.domain.yang.GenericVnf aaiVnf = new org.onap.aai.domain.yang.GenericVnf();
2815 aaiVnf.setModelCustomizationId("modelCustId");
2816 VfModule vfModule = new VfModule();
2817 vfModule.setVfModuleId("vfModuleId");
2818 gBB.getServiceInstance().getVnfs().get(0).getVfModules().add(vfModule);
2819 VolumeGroup volumeGroup = new VolumeGroup();
2820 volumeGroup.setVolumeGroupId("volumeGroupId");
2821 gBB.getServiceInstance().getVnfs().get(0).getVolumeGroups().add(volumeGroup);
2822 CloudConfiguration cloudConfiguration = new CloudConfiguration();
2823 cloudConfiguration.setLcpCloudRegionId("cloudRegionId");
2824 Configuration configuration = new Configuration();
2825 configuration.setConfigurationId("configurationId");
2826 gBB.getServiceInstance().getConfigurations().add(configuration);
2827 org.onap.aai.domain.yang.Configuration aaiConfiguration = new org.onap.aai.domain.yang.Configuration();
2828 aaiConfiguration.setModelCustomizationId("modelCustId");
2830 ConfigurationResourceKeys configResourceKeys = prepareConfigurationResourceKeys();
2831 executeBB.setConfigurationResourceKeys(configResourceKeys).setRequestDetails(requestDetails);
2832 BuildingBlock buildingBlock = executeBB.getBuildingBlock();
2833 buildingBlock.setBpmnFlowName("ActivateFabricConfigurationBB").setKey("72d9d1cd-f46d-447a-abdb-451d6fb05fa9");
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(aaiConfiguration).when(SPY_bbInputSetupUtils).getAAIConfiguration(configuration.getConfigurationId());
2843 doNothing().when(SPY_bbInputSetup).mapCatalogConfiguration(isA(Configuration.class), isA(ModelInfo.class),
2844 isA(Service.class), isA(ConfigurationResourceKeys.class));
2847 SPY_bbInputSetup.getGBBMacroExistingService(executeBB, lookupKeyMap,
2848 executeBB.getBuildingBlock().getBpmnFlowName(), requestAction, cloudConfiguration);
2850 verify(SPY_bbInputSetup, times(1)).mapCatalogConfiguration(any(Configuration.class), any(ModelInfo.class),
2851 any(Service.class), isA(ConfigurationResourceKeys.class));
2855 public void testGetGBBMacroExistingServiceServiceinstancenotFoundInAai() throws Exception {
2856 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
2857 ExecuteBuildingBlock.class);
2858 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
2859 lookupKeyMap.put(ResourceKey.SERVICE_INSTANCE_ID, "si123");
2861 CloudConfiguration cloudConfiguration = new CloudConfiguration();
2862 cloudConfiguration.setLcpCloudRegionId("cloudRegionId");
2864 doReturn(null).when(SPY_bbInputSetupUtils).getAAIServiceInstanceById("si123");
2866 expectedException.expect(NoServiceInstanceFoundException.class);
2867 expectedException.expectMessage("Related service instance from AAI not found: service-instance-id=si123");
2869 SPY_bbInputSetup.getGBBMacroExistingService(executeBB, lookupKeyMap, "AssignVnfBB", "assign",
2870 cloudConfiguration);
2874 public void testGetGBBMacroExistingServiceServiceModelNotFound() throws Exception {
2875 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
2876 ExecuteBuildingBlock.class);
2877 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
2878 lookupKeyMap.put(ResourceKey.SERVICE_INSTANCE_ID, "si123");
2879 org.onap.aai.domain.yang.ServiceInstance aaiServiceInstance = new org.onap.aai.domain.yang.ServiceInstance();
2880 aaiServiceInstance.setModelVersionId("modelVersionId");
2882 CloudConfiguration cloudConfiguration = new CloudConfiguration();
2883 cloudConfiguration.setLcpCloudRegionId("cloudRegionId");
2885 doReturn(aaiServiceInstance).when(SPY_bbInputSetupUtils).getAAIServiceInstanceById("si123");
2886 doReturn(null).when(SPY_bbInputSetupUtils).getCatalogServiceByModelUUID(aaiServiceInstance.getModelVersionId());
2888 expectedException.expect(ServiceModelNotFoundException.class);
2889 expectedException.expectMessage(
2890 "Related service instance model not found in MSO CatalogDB: model-version-id=modelVersionId");
2892 SPY_bbInputSetup.getGBBMacroExistingService(executeBB, lookupKeyMap, "AssignVnfBB", "assign",
2893 cloudConfiguration);
2897 public void testGetVnfId() {
2898 String expected = "vnfId";
2899 ExecuteBuildingBlock executeBB = new ExecuteBuildingBlock().setRequestId("requestId");
2900 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
2901 InfraActiveRequests request = new InfraActiveRequests();
2902 request.setVnfId(expected);
2903 doReturn(request).when(SPY_bbInputSetupUtils).getInfraActiveRequest(executeBB.getRequestId());
2905 String actual = SPY_bbInputSetup.getVnfId(executeBB, lookupKeyMap);
2907 assertEquals("VnfId is set correctly", expected, actual);
2911 public void testCreateVfModule() {
2912 String vfModuleId = "vfModuleId";
2913 String instanceName = "vfModuleName";
2914 Map<String, String> cloudParams = new HashMap<>();
2915 cloudParams.put("param1", "param1Value");
2916 VfModule expected = new VfModule();
2917 expected.setVfModuleId(vfModuleId);
2918 expected.setVfModuleName(instanceName);
2919 expected.setCloudParams(cloudParams);
2920 expected.setOrchestrationStatus(OrchestrationStatus.PRECREATED);
2921 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
2922 List<Map<String, String>> instanceParams = new ArrayList<>();
2923 instanceParams.add(cloudParams);
2925 VfModule actual = SPY_bbInputSetup.createVfModule(lookupKeyMap, vfModuleId, instanceName, instanceParams);
2927 assertThat(actual, sameBeanAs(expected));
2928 assertEquals("LookupKeyMap is populated", vfModuleId, lookupKeyMap.get(ResourceKey.VF_MODULE_ID));
2930 expected.getCloudParams().clear();
2931 actual = SPY_bbInputSetup.createVfModule(lookupKeyMap, vfModuleId, instanceName, null);
2932 assertThat(actual, sameBeanAs(expected));
2936 public void testCreateVolumeGroup() {
2937 String volumeGroupId = "volumeGroupId";
2938 String instanceName = "vfModuleName";
2939 String vnfType = "vnfType";
2940 Map<String, String> cloudParams = new HashMap<>();
2941 cloudParams.put("param1", "param1Value");
2942 VolumeGroup expected = new VolumeGroup();
2943 expected.setVolumeGroupId(volumeGroupId);
2944 expected.setVolumeGroupName(instanceName);
2945 expected.setCloudParams(cloudParams);
2946 expected.setVnfType(vnfType);
2947 expected.setOrchestrationStatus(OrchestrationStatus.PRECREATED);
2948 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
2949 List<Map<String, String>> instanceParams = new ArrayList<>();
2950 instanceParams.add(cloudParams);
2952 VolumeGroup actual =
2953 SPY_bbInputSetup.createVolumeGroup(lookupKeyMap, volumeGroupId, instanceName, vnfType, instanceParams);
2955 assertThat(actual, sameBeanAs(expected));
2956 assertEquals("LookupKeyMap is populated", volumeGroupId, lookupKeyMap.get(ResourceKey.VOLUME_GROUP_ID));
2958 expected.getCloudParams().clear();
2959 actual = SPY_bbInputSetup.createVolumeGroup(lookupKeyMap, volumeGroupId, instanceName, vnfType, null);
2960 assertThat(actual, sameBeanAs(expected));
2964 public void testCreateNetwork() {
2965 String networkId = "networkId";
2966 String instanceName = "networkName";
2967 Map<String, String> cloudParams = new HashMap<>();
2968 cloudParams.put("param1", "param1Value");
2969 L3Network expected = new L3Network();
2970 expected.setNetworkId(networkId);
2971 expected.setNetworkName(instanceName);
2972 expected.setCloudParams(cloudParams);
2973 Platform platform = new Platform();
2974 platform.setPlatformName("platformName");
2975 expected.setPlatform(platform);
2976 LineOfBusiness lineOfBusiness = new LineOfBusiness();
2977 lineOfBusiness.setLineOfBusinessName("lineOfBusiness");
2978 expected.setLineOfBusiness(lineOfBusiness);
2979 expected.setOrchestrationStatus(OrchestrationStatus.PRECREATED);
2980 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
2981 List<Map<String, String>> instanceParams = new ArrayList<>();
2982 instanceParams.add(cloudParams);
2983 org.onap.so.serviceinstancebeans.Platform platformRequest = new org.onap.so.serviceinstancebeans.Platform();
2984 org.onap.so.serviceinstancebeans.LineOfBusiness lineOfBusinessRequest =
2985 new org.onap.so.serviceinstancebeans.LineOfBusiness();
2986 lineOfBusinessRequest.setLineOfBusinessName("lineOfBusiness");
2987 platformRequest.setPlatformName("platformName");
2988 BBInputSetupParameter parameter = new BBInputSetupParameter.Builder().setRequestId(REQUEST_ID)
2989 .setPlatform(platformRequest).setLineOfBusiness(lineOfBusinessRequest).build();
2991 SPY_bbInputSetup.createNetwork(lookupKeyMap, instanceName, networkId, instanceParams, parameter);
2993 assertThat(actual, sameBeanAs(expected));
2994 assertEquals("LookupKeyMap is populated", networkId, lookupKeyMap.get(ResourceKey.NETWORK_ID));
2996 expected.getCloudParams().clear();
2998 actual = SPY_bbInputSetup.createNetwork(lookupKeyMap, instanceName, networkId, null, parameter);
2999 assertThat(actual, sameBeanAs(expected));
3003 public void testCreateGenericVnf() {
3004 String vnfId = "vnfId";
3005 String instanceName = "vnfName";
3006 String vnfType = "vnfType";
3007 String platformName = "platformName";
3008 String lineOfBusinessName = "lineOfBusinessName";
3009 String productFamilyId = "productFamilyId";
3010 String applicationId = "applicationId";
3011 Platform platform = new Platform();
3012 platform.setPlatformName(platformName);
3013 LineOfBusiness lineOfBusiness = new LineOfBusiness();
3014 lineOfBusiness.setLineOfBusinessName(lineOfBusinessName);
3015 Map<String, String> cloudParams = new HashMap<>();
3016 cloudParams.put("param1", "param1Value");
3017 GenericVnf expected = new GenericVnf();
3018 expected.setVnfId(vnfId);
3019 expected.setVnfName(instanceName);
3020 expected.setVnfType(vnfType);
3021 expected.setCloudParams(cloudParams);
3022 expected.setOrchestrationStatus(OrchestrationStatus.PRECREATED);
3023 expected.setPlatform(platform);
3024 expected.setLineOfBusiness(lineOfBusiness);
3025 expected.setProvStatus("PREPROV");
3026 expected.setServiceId(productFamilyId);
3027 expected.setApplicationId(applicationId);
3028 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
3029 List<Map<String, String>> instanceParams = new ArrayList<>();
3030 instanceParams.add(cloudParams);
3031 org.onap.so.serviceinstancebeans.Platform requestPlatform = new org.onap.so.serviceinstancebeans.Platform();
3032 platform.setPlatformName(platformName);
3033 org.onap.so.serviceinstancebeans.LineOfBusiness requestLineOfBusiness =
3034 new org.onap.so.serviceinstancebeans.LineOfBusiness();
3035 lineOfBusiness.setLineOfBusinessName(lineOfBusinessName);
3037 doReturn(platform).when(bbInputSetupMapperLayer).mapRequestPlatform(requestPlatform);
3038 doReturn(lineOfBusiness).when(bbInputSetupMapperLayer).mapRequestLineOfBusiness(requestLineOfBusiness);
3040 GenericVnf actual = SPY_bbInputSetup.createGenericVnf(lookupKeyMap, instanceName, requestPlatform,
3041 requestLineOfBusiness, vnfId, vnfType, instanceParams, productFamilyId, applicationId);
3043 assertThat(actual, sameBeanAs(expected));
3044 assertEquals("LookupKeyMap is populated", vnfId, lookupKeyMap.get(ResourceKey.GENERIC_VNF_ID));
3046 expected.getCloudParams().clear();
3047 actual = SPY_bbInputSetup.createGenericVnf(lookupKeyMap, instanceName, requestPlatform, requestLineOfBusiness,
3048 vnfId, vnfType, null, productFamilyId, applicationId);
3049 assertThat(actual, sameBeanAs(expected));
3053 public void testMapCatalogVfModule() {
3054 String vnfModelCustomizationUUID = "vnfResourceCustUUID";
3055 String vfModuleCustomizationUUID = "vfModelCustomizationUUID";
3056 VfModule vfModule = new VfModule();
3057 ModelInfo modelInfo = new ModelInfo();
3058 modelInfo.setModelCustomizationUuid(vfModuleCustomizationUUID);
3059 Service service = new Service();
3060 VnfResourceCustomization vnfResourceCust = new VnfResourceCustomization();
3061 vnfResourceCust.setModelCustomizationUUID(vnfModelCustomizationUUID);
3062 VfModuleCustomization vfModuleCust = new VfModuleCustomization();
3063 vfModuleCust.setModelCustomizationUUID(vfModuleCustomizationUUID);
3064 vnfResourceCust.getVfModuleCustomizations().add(vfModuleCust);
3065 service.getVnfCustomizations().add(vnfResourceCust);
3066 ModelInfoVfModule modelInfoVfModule = new ModelInfoVfModule();
3068 doReturn(modelInfoVfModule).when(bbInputSetupMapperLayer).mapCatalogVfModuleToVfModule(vfModuleCust);
3070 SPY_bbInputSetup.mapCatalogVfModule(vfModule, modelInfo, service, vnfModelCustomizationUUID);
3072 assertThat(vfModule.getModelInfoVfModule(), sameBeanAs(modelInfoVfModule));
3074 modelInfo.setModelCustomizationUuid(null);
3075 modelInfo.setModelCustomizationId(vfModuleCustomizationUUID);
3077 SPY_bbInputSetup.mapCatalogVfModule(vfModule, modelInfo, service, vnfModelCustomizationUUID);
3079 assertThat(vfModule.getModelInfoVfModule(), sameBeanAs(modelInfoVfModule));
3083 public void testMapCatalogVfModuleIfNoVfUnderVnf() {
3084 String vnfModelCustomizationUUID = "vnfResourceCustUUID";
3085 String vfModuleCustomizationUUID = "vfModelCustomizationUUID";
3086 VfModule vfModule = new VfModule();
3087 ModelInfo modelInfo = new ModelInfo();
3088 modelInfo.setModelCustomizationUuid(vfModuleCustomizationUUID);
3089 Service service = new Service();
3090 VnfResourceCustomization vnfResourceCust = new VnfResourceCustomization();
3091 vnfResourceCust.setModelCustomizationUUID(vnfModelCustomizationUUID);
3092 VfModuleCustomization vfModuleCust = new VfModuleCustomization();
3093 vfModuleCust.setModelCustomizationUUID(vfModuleCustomizationUUID);
3094 ModelInfoVfModule modelInfoVfModule = new ModelInfoVfModule();
3095 doReturn(vfModuleCust).when(SPY_bbInputSetupUtils)
3096 .getVfModuleCustomizationByModelCuztomizationUUID(vfModuleCustomizationUUID);
3097 doReturn(modelInfoVfModule).when(bbInputSetupMapperLayer).mapCatalogVfModuleToVfModule(vfModuleCust);
3099 SPY_bbInputSetup.mapCatalogVfModule(vfModule, modelInfo, service, vnfModelCustomizationUUID);
3101 assertThat(vfModule.getModelInfoVfModule(), sameBeanAs(modelInfoVfModule));
3103 verify(SPY_bbInputSetupUtils, times(1))
3104 .getVfModuleCustomizationByModelCuztomizationUUID(modelInfo.getModelCustomizationId());
3108 public void testPopulateVfModule() throws Exception {
3109 String vnfId = "vnfId";
3110 String vfModuleId = "vfModuleId";
3111 String volumeGroupId = "volumeGroupId";
3112 String vfModuleCustomizationId = "vfModuleCustomizationId";
3113 ModelInfo modelInfo = new ModelInfo();
3114 modelInfo.setModelCustomizationId(vfModuleCustomizationId);
3115 Service service = new Service();
3116 ServiceModel serviceModel = new ServiceModel();
3117 serviceModel.setCurrentService(service);
3118 String bbName = AssignFlows.VF_MODULE.toString();
3119 ServiceInstance serviceInstance = new ServiceInstance();
3120 GenericVnf vnf = new GenericVnf();
3121 vnf.setVnfId(vnfId);
3122 VolumeGroup volumeGroup = new VolumeGroup();
3123 volumeGroup.setVolumeGroupId(volumeGroupId);
3124 vnf.getVolumeGroups().add(volumeGroup);
3125 serviceInstance.getVnfs().add(vnf);
3126 VfModule vfModule1 = new VfModule();
3127 vfModule1.setVfModuleId("vfModuleId1");
3128 VfModule vfModule2 = new VfModule();
3129 vfModule2.setVfModuleId("vfModuleId2");
3130 vnf.getVfModules().add(vfModule1);
3131 vnf.getVfModules().add(vfModule2);
3132 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
3133 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, vnfId);
3134 String resourceId = vfModuleId;
3135 RelatedInstanceList[] relatedInstanceList = null;
3136 String instanceName = "vfModuleName";
3137 List<Map<String, String>> instanceParams = null;
3138 CloudConfiguration cloudConfiguration = new CloudConfiguration();
3140 org.onap.aai.domain.yang.GenericVnf vnfAAI = new org.onap.aai.domain.yang.GenericVnf();
3141 vnfAAI.setModelCustomizationId("vnfModelCustId");
3142 org.onap.aai.domain.yang.VolumeGroup volumeGroupAAI = new org.onap.aai.domain.yang.VolumeGroup();
3143 volumeGroupAAI.setModelCustomizationId(vfModuleCustomizationId);
3144 org.onap.aai.domain.yang.VfModule vfModuleAAI = new org.onap.aai.domain.yang.VfModule();
3145 vfModuleAAI.setModelCustomizationId(vfModuleCustomizationId);
3147 doReturn(vnfAAI).when(SPY_bbInputSetupUtils).getAAIGenericVnf(vnf.getVnfId());
3148 doReturn(volumeGroupAAI).when(SPY_bbInputSetupUtils).getAAIVolumeGroup(CLOUD_OWNER,
3149 cloudConfiguration.getLcpCloudRegionId(), volumeGroup.getVolumeGroupId());
3150 doReturn(vfModuleAAI).when(SPY_bbInputSetupUtils).getAAIVfModule(isA(String.class), isA(String.class));
3151 doNothing().when(SPY_bbInputSetup).mapCatalogVnf(isA(GenericVnf.class), isA(ModelInfo.class),
3152 isA(Service.class));
3153 doNothing().when(SPY_bbInputSetup).mapCatalogVfModule(isA(VfModule.class), isA(ModelInfo.class),
3154 isA(Service.class), isA(String.class));
3156 SPY_bbInputSetup.populateVfModule(new BBInputSetupParameter.Builder().setRequestId(REQUEST_ID)
3157 .setModelInfo(modelInfo).setService(service).setBbName(bbName).setServiceInstance(serviceInstance)
3158 .setLookupKeyMap(lookupKeyMap).setResourceId(resourceId).setRelatedInstanceList(relatedInstanceList)
3159 .setInstanceName(instanceName).setInstanceParams(instanceParams)
3160 .setCloudConfiguration(cloudConfiguration).setServiceModel(serviceModel).build());
3162 verify(SPY_bbInputSetup, times(3)).mapCatalogVfModule(isA(VfModule.class), isA(ModelInfo.class),
3163 isA(Service.class), isA(String.class));
3164 assertEquals("Lookup Key Map populated with VfModule Id", vfModuleId,
3165 lookupKeyMap.get(ResourceKey.VF_MODULE_ID));
3166 assertEquals("Lookup Key Map populated with VolumeGroup Id", volumeGroupId,
3167 lookupKeyMap.get(ResourceKey.VOLUME_GROUP_ID));
3171 public void testPopulateVfModuleIsReplaceCorrectPopulationOfVfs() throws Exception {
3172 String vnfId = "vnfId";
3173 String vfModuleId = "vfModuleId";
3174 String volumeGroupId = "volumeGroupId";
3175 String vfModuleCustomizationId = "vfModuleCustomizationId";
3176 ModelInfo modelInfo = new ModelInfo();
3177 modelInfo.setModelCustomizationId(vfModuleCustomizationId);
3178 Service currentService = new Service();
3179 currentService.setModelUUID("currentUUID");
3180 Service newService = new Service();
3181 newService.setModelUUID("newUUID");
3182 ServiceModel serviceModel = new ServiceModel();
3183 serviceModel.setCurrentService(currentService);
3184 serviceModel.setNewService(newService);
3185 String bbName = "ActivateVfModuleBB";
3186 ServiceInstance serviceInstance = new ServiceInstance();
3187 GenericVnf vnf = new GenericVnf();
3188 vnf.setVnfId(vnfId);
3189 VolumeGroup volumeGroup = new VolumeGroup();
3190 volumeGroup.setVolumeGroupId(volumeGroupId);
3191 vnf.getVolumeGroups().add(volumeGroup);
3192 serviceInstance.getVnfs().add(vnf);
3193 VfModule vfModule1 = new VfModule();
3194 vfModule1.setVfModuleId("vfModuleId1");
3195 VfModule vfModule2 = new VfModule();
3196 vfModule2.setVfModuleId("vfModuleId2");
3197 vnf.getVfModules().add(vfModule1);
3198 vnf.getVfModules().add(vfModule2);
3199 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
3200 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, vnfId);
3201 lookupKeyMap.put(ResourceKey.VF_MODULE_ID, "vfModuleId1");
3202 String resourceId = vfModuleId;
3203 RelatedInstanceList[] relatedInstanceList = new RelatedInstanceList[1];
3204 RelatedInstanceList relatedInstanceListObj = new RelatedInstanceList();
3205 RelatedInstance relatedInstance = new RelatedInstance();
3206 relatedInstance.setInstanceId(vnfId);
3208 ModelInfo vnfModelInfo = new ModelInfo();
3209 vnfModelInfo.setModelCustomizationId("vnfCustomizationId");
3210 vnfModelInfo.setModelType(ModelType.vnf);
3211 relatedInstance.setModelInfo(vnfModelInfo);
3212 relatedInstanceListObj.setRelatedInstance(relatedInstance);
3213 relatedInstanceList[0] = relatedInstanceListObj;
3215 String instanceName = "vfModuleName";
3216 List<Map<String, String>> instanceParams = null;
3217 CloudConfiguration cloudConfiguration = new CloudConfiguration();
3219 org.onap.aai.domain.yang.GenericVnf vnfAAI = new org.onap.aai.domain.yang.GenericVnf();
3220 vnfAAI.setModelCustomizationId("vnfModelCustId");
3221 org.onap.aai.domain.yang.VolumeGroup volumeGroupAAI = new org.onap.aai.domain.yang.VolumeGroup();
3222 volumeGroupAAI.setModelCustomizationId(vfModuleCustomizationId);
3223 org.onap.aai.domain.yang.VfModule vfModuleAAI = new org.onap.aai.domain.yang.VfModule();
3224 vfModuleAAI.setModelCustomizationId(vfModuleCustomizationId);
3226 doReturn(vnfAAI).when(SPY_bbInputSetupUtils).getAAIGenericVnf(vnf.getVnfId());
3227 doReturn(volumeGroupAAI).when(SPY_bbInputSetupUtils).getAAIVolumeGroup(CLOUD_OWNER,
3228 cloudConfiguration.getLcpCloudRegionId(), volumeGroup.getVolumeGroupId());
3229 doReturn(vfModuleAAI).when(SPY_bbInputSetupUtils).getAAIVfModule(isA(String.class), isA(String.class));
3230 doNothing().when(SPY_bbInputSetup).mapCatalogVnf(isA(GenericVnf.class), isA(ModelInfo.class),
3231 isA(Service.class));
3232 doNothing().when(SPY_bbInputSetup).mapCatalogVfModule(isA(VfModule.class), isA(ModelInfo.class),
3233 isA(Service.class), isA(String.class));
3235 BBInputSetupParameter parameter = new BBInputSetupParameter.Builder().setModelInfo(modelInfo)
3236 .setService(newService).setBbName(bbName).setServiceInstance(serviceInstance)
3237 .setLookupKeyMap(lookupKeyMap).setResourceId(resourceId).setRelatedInstanceList(relatedInstanceList)
3238 .setInstanceName(instanceName).setInstanceParams(instanceParams)
3239 .setCloudConfiguration(cloudConfiguration).setIsReplace(true).setServiceModel(serviceModel).build();
3240 SPY_bbInputSetup.populateVfModule(parameter);
3242 verify(SPY_bbInputSetup, times(1)).mapCatalogVfModule(isA(VfModule.class), isA(ModelInfo.class),
3243 eq(currentService), eq("vnfModelCustId"));
3244 verify(SPY_bbInputSetup, times(1)).mapCatalogVfModule(isA(VfModule.class), isA(ModelInfo.class), eq(newService),
3245 eq("vnfCustomizationId"));
3246 assertEquals("Lookup Key Map populated with VfModule Id", "vfModuleId1",
3247 lookupKeyMap.get(ResourceKey.VF_MODULE_ID));
3248 assertEquals("Lookup Key Map populated with VolumeGroup Id", volumeGroupId,
3249 lookupKeyMap.get(ResourceKey.VOLUME_GROUP_ID));
3253 public void testPopulateVfModuleIsReplace() throws Exception {
3254 String vnfId = "vnfId";
3255 String vfModuleId = "vfModuleId";
3256 String volumeGroupId = "volumeGroupId";
3257 String vfModuleCustomizationId = "vfModuleCustomizationId";
3258 ModelInfo modelInfo = new ModelInfo();
3259 modelInfo.setModelCustomizationId(vfModuleCustomizationId);
3260 Service currentService = new Service();
3261 Service newService = new Service();
3262 ServiceModel serviceModel = new ServiceModel();
3263 serviceModel.setCurrentService(currentService);
3264 currentService.setModelUUID("currentUUID");
3265 serviceModel.setNewService(newService);
3266 currentService.setModelUUID("newUUID");
3267 String bbName = AssignFlows.VF_MODULE.toString();
3268 ServiceInstance serviceInstance = new ServiceInstance();
3269 GenericVnf vnf = new GenericVnf();
3270 vnf.setVnfId(vnfId);
3271 VolumeGroup volumeGroup = new VolumeGroup();
3272 volumeGroup.setVolumeGroupId(volumeGroupId);
3273 vnf.getVolumeGroups().add(volumeGroup);
3274 serviceInstance.getVnfs().add(vnf);
3275 VfModule vfModule1 = new VfModule();
3276 vfModule1.setVfModuleId("vfModuleId1");
3277 VfModule vfModule2 = new VfModule();
3278 vfModule2.setVfModuleId("vfModuleId2");
3279 vnf.getVfModules().add(vfModule1);
3280 vnf.getVfModules().add(vfModule2);
3281 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
3282 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, vnfId);
3283 lookupKeyMap.put(ResourceKey.VF_MODULE_ID, vfModuleId);
3284 String resourceId = vfModuleId;
3285 RelatedInstanceList[] relatedInstanceList = new RelatedInstanceList[1];
3286 RelatedInstanceList relatedInstanceListObj = new RelatedInstanceList();
3287 RelatedInstance relatedInstance = new RelatedInstance();
3288 relatedInstance.setInstanceId(vnfId);
3290 ModelInfo vnfModelInfo = new ModelInfo();
3291 vnfModelInfo.setModelCustomizationId("vnfCustomizationId");
3292 vnfModelInfo.setModelType(ModelType.vnf);
3293 relatedInstance.setModelInfo(vnfModelInfo);
3294 relatedInstanceListObj.setRelatedInstance(relatedInstance);
3295 relatedInstanceList[0] = relatedInstanceListObj;
3297 String instanceName = "vfModuleName";
3298 List<Map<String, String>> instanceParams = null;
3299 CloudConfiguration cloudConfiguration = new CloudConfiguration();
3301 org.onap.aai.domain.yang.GenericVnf vnfAAI = new org.onap.aai.domain.yang.GenericVnf();
3302 vnfAAI.setModelCustomizationId("vnfModelCustId");
3303 org.onap.aai.domain.yang.VolumeGroup volumeGroupAAI = new org.onap.aai.domain.yang.VolumeGroup();
3304 volumeGroupAAI.setModelCustomizationId(vfModuleCustomizationId);
3305 org.onap.aai.domain.yang.VfModule vfModuleAAI = new org.onap.aai.domain.yang.VfModule();
3306 vfModuleAAI.setModelCustomizationId(vfModuleCustomizationId);
3308 doReturn(vnfAAI).when(SPY_bbInputSetupUtils).getAAIGenericVnf(vnf.getVnfId());
3309 doReturn(volumeGroupAAI).when(SPY_bbInputSetupUtils).getAAIVolumeGroup(CLOUD_OWNER,
3310 cloudConfiguration.getLcpCloudRegionId(), volumeGroup.getVolumeGroupId());
3311 doReturn(vfModuleAAI).when(SPY_bbInputSetupUtils).getAAIVfModule(isA(String.class), isA(String.class));
3312 doNothing().when(SPY_bbInputSetup).mapCatalogVnf(isA(GenericVnf.class), isA(ModelInfo.class),
3313 isA(Service.class));
3314 doNothing().when(SPY_bbInputSetup).mapCatalogVfModule(isA(VfModule.class), isA(ModelInfo.class),
3315 isA(Service.class), isA(String.class));
3317 BBInputSetupParameter parameter = new BBInputSetupParameter.Builder().setModelInfo(modelInfo)
3318 .setService(newService).setServiceInstance(serviceInstance).setBbName(bbName)
3319 .setLookupKeyMap(lookupKeyMap).setResourceId(resourceId).setRelatedInstanceList(relatedInstanceList)
3320 .setInstanceName(instanceName).setInstanceParams(instanceParams)
3321 .setCloudConfiguration(cloudConfiguration).setIsReplace(true).setServiceModel(serviceModel).build();
3324 SPY_bbInputSetup.populateVfModule(parameter);
3326 verify(SPY_bbInputSetup, times(2)).mapCatalogVfModule(isA(VfModule.class), isA(ModelInfo.class),
3327 eq(serviceModel.getCurrentService()), isA(String.class));
3328 verify(SPY_bbInputSetup, times(1)).mapCatalogVfModule(isA(VfModule.class), isA(ModelInfo.class),
3329 eq(serviceModel.getNewService()), isA(String.class));
3330 assertEquals("Lookup Key Map populated with VfModule Id", vfModuleId,
3331 lookupKeyMap.get(ResourceKey.VF_MODULE_ID));
3332 assertEquals("Lookup Key Map populated with VolumeGroup Id", volumeGroupId,
3333 lookupKeyMap.get(ResourceKey.VOLUME_GROUP_ID));
3337 public void testGettingVnfcToConfiguration() throws Exception {
3339 String vnfcName = "vnfcName";
3340 org.onap.aai.domain.yang.Configuration expectedAAI = new org.onap.aai.domain.yang.Configuration();
3341 AAIResourceUri aaiResourceUri = AAIUriFactory.createResourceUri(AAIObjectType.VNFC, vnfcName);
3342 AAIResultWrapper configurationWrapper =
3343 new AAIResultWrapper(new AAICommonObjectMapperProvider().getMapper().writeValueAsString(expectedAAI));
3345 doReturn(new AAIResultWrapper(null)).when(SPY_bbInputSetupUtils).getAAIResourceDepthOne(aaiResourceUri);
3346 Vnfc vnfc = SPY_bbInputSetup.getVnfcToConfiguration(vnfcName);
3347 Assert.assertNull(vnfc);
3349 doReturn(configurationWrapper).when(SPY_bbInputSetupUtils).getAAIResourceDepthOne(aaiResourceUri);
3350 vnfc = SPY_bbInputSetup.getVnfcToConfiguration(vnfcName);
3351 Assert.assertNotNull(vnfc);