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.entities.AAIResultWrapper;
63 import org.onap.aaiclient.client.aai.entities.uri.AAIResourceUri;
64 import org.onap.aaiclient.client.aai.entities.uri.AAIUriFactory;
65 import org.onap.aaiclient.client.generated.fluentbuilders.AAIFluentTypeBuilder;
66 import org.onap.so.bpmn.servicedecomposition.bbobjects.CloudRegion;
67 import org.onap.so.bpmn.servicedecomposition.bbobjects.Collection;
68 import org.onap.so.bpmn.servicedecomposition.bbobjects.Configuration;
69 import org.onap.so.bpmn.servicedecomposition.bbobjects.Customer;
70 import org.onap.so.bpmn.servicedecomposition.bbobjects.GenericVnf;
71 import org.onap.so.bpmn.servicedecomposition.bbobjects.InstanceGroup;
72 import org.onap.so.bpmn.servicedecomposition.bbobjects.L3Network;
73 import org.onap.so.bpmn.servicedecomposition.bbobjects.LineOfBusiness;
74 import org.onap.so.bpmn.servicedecomposition.bbobjects.OwningEntity;
75 import org.onap.so.bpmn.servicedecomposition.bbobjects.Platform;
76 import org.onap.so.bpmn.servicedecomposition.bbobjects.Pnf;
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;
134 import org.onap.so.serviceinstancebeans.VfModules;
135 import org.onap.so.serviceinstancebeans.Vnfs;
137 @RunWith(MockitoJUnitRunner.class)
138 public class BBInputSetupTest {
139 private static final String RESOURCE_PATH = "src/test/resources/__files/ExecuteBuildingBlock/";
141 protected ObjectMapper mapper = new ObjectMapper();
142 private static final String CLOUD_OWNER = "CloudOwner";
143 private static final String REQUEST_ID = "b20bbd26-af25-4a50-a9fe-222a3c0f9771";
147 private BBInputSetup SPY_bbInputSetup = new BBInputSetup();
150 private BBInputSetupUtils SPY_bbInputSetupUtils;
153 private CloudInfoFromAAI SPY_cloudInfoFromAAI;
156 private BBInputSetupMapperLayer bbInputSetupMapperLayer;
159 public ExpectedException expectedException = ExpectedException.none();
162 public void testGetVolumeGroupIdRelatedToVfModule() {
163 String expected = "volumeGroupId";
164 String modelCustomizationId = "modelCustomizationId";
165 ModelInfo modelInfo = new ModelInfo();
166 modelInfo.setModelCustomizationId(modelCustomizationId);
167 String cloudOwner = "cloudOwner";
168 String cloudRegionId = "cloudRegionId";
169 String volumeGroupId = "volumeGroupId";
170 GenericVnf vnf = new GenericVnf();
171 VolumeGroup volumeGroup = new VolumeGroup();
172 volumeGroup.setVolumeGroupId(expected);
173 vnf.getVolumeGroups().add(volumeGroup);
174 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
175 lookupKeyMap.put(ResourceKey.VOLUME_GROUP_ID, null);
176 org.onap.aai.domain.yang.VolumeGroup aaiVolumeGroup = new org.onap.aai.domain.yang.VolumeGroup();
177 aaiVolumeGroup.setModelCustomizationId(modelCustomizationId);
178 doReturn(aaiVolumeGroup).when(SPY_bbInputSetupUtils).getAAIVolumeGroup(cloudOwner, cloudRegionId,
181 Optional<String> actual = SPY_bbInputSetup.getVolumeGroupIdRelatedToVfModule(vnf, modelInfo, cloudOwner,
182 cloudRegionId, lookupKeyMap);
184 assertEquals(expected, actual.get());
188 public void testGetAlaCarteServiceInstance() throws Exception {
189 ServiceInstance expected =
190 mapper.readValue(new File(RESOURCE_PATH + "ServiceInstance_getServiceInstanceNOAAIExpected.json"),
191 ServiceInstance.class);
192 RequestDetails requestDetails = new RequestDetails();
193 RequestInfo requestInfo = new RequestInfo();
194 requestInfo.setInstanceName("SharansInstanceName");
195 requestDetails.setRequestInfo(requestInfo);
196 Customer customer = new Customer();
197 String serviceInstanceId = "SharansInstanceId";
198 boolean aLaCarte = true;
199 Service service = new Service();
200 service.setModelUUID("modelUUID");
201 ModelInfoServiceInstance modelInfoServiceInstance = new ModelInfoServiceInstance();
202 modelInfoServiceInstance.setModelUuid("modelUUID");
203 expected.setModelInfoServiceInstance(modelInfoServiceInstance);
204 org.onap.aai.domain.yang.ServiceInstance serviceInstanceAAI = new org.onap.aai.domain.yang.ServiceInstance();
205 serviceInstanceAAI.setModelVersionId("modelUUIDDifferent");
206 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
207 String bbName = AssignFlows.SERVICE_INSTANCE.toString();
208 Service differentService = new Service();
209 differentService.setModelUUID("modelUUIDDifferent");
211 doReturn(expected).when(SPY_bbInputSetup).getServiceInstanceHelper(requestDetails, customer, null, null,
212 lookupKeyMap, serviceInstanceId, aLaCarte, service, bbName);
213 doReturn(serviceInstanceAAI).when(SPY_bbInputSetupUtils).getAAIServiceInstanceById(serviceInstanceId);
214 doReturn(differentService).when(SPY_bbInputSetupUtils)
215 .getCatalogServiceByModelUUID(serviceInstanceAAI.getModelVersionId());
216 doReturn(expected.getModelInfoServiceInstance()).when(bbInputSetupMapperLayer)
217 .mapCatalogServiceIntoServiceInstance(differentService);
219 ServiceInstance actual = SPY_bbInputSetup.getALaCarteServiceInstance(service, requestDetails, customer, null,
220 null, lookupKeyMap, serviceInstanceId, aLaCarte, bbName);
221 assertThat(actual, sameBeanAs(expected));
224 @Test(expected = Exception.class)
225 public void testGetAlaCarteServiceInstanceException() throws Exception {
226 ServiceInstance expected =
227 mapper.readValue(new File(RESOURCE_PATH + "ServiceInstance_getServiceInstanceNOAAIExpected.json"),
228 ServiceInstance.class);
229 RequestDetails requestDetails = new RequestDetails();
230 RequestInfo requestInfo = new RequestInfo();
231 requestInfo.setInstanceName("SharansInstanceName");
232 requestDetails.setRequestInfo(requestInfo);
233 Customer customer = new Customer();
234 String serviceInstanceId = "SharansInstanceId";
235 boolean aLaCarte = true;
236 Service service = new Service();
237 service.setModelUUID("modelUUID");
238 ModelInfoServiceInstance modelInfoServiceInstance = new ModelInfoServiceInstance();
239 modelInfoServiceInstance.setModelUuid("modelUUID");
240 expected.setModelInfoServiceInstance(modelInfoServiceInstance);
241 org.onap.aai.domain.yang.ServiceInstance serviceInstanceAAI = new org.onap.aai.domain.yang.ServiceInstance();
242 serviceInstanceAAI.setModelVersionId("modelUUIDDifferent");
243 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
244 String bbName = AssignFlows.SERVICE_INSTANCE.toString();
245 Service differentService = new Service();
246 differentService.setModelUUID("modelUUIDDifferent");
248 doReturn(expected).when(SPY_bbInputSetup).getServiceInstanceHelper(requestDetails, customer, null, null,
249 lookupKeyMap, serviceInstanceId, aLaCarte, service, bbName);
250 doReturn(serviceInstanceAAI).when(SPY_bbInputSetupUtils).getAAIServiceInstanceById(serviceInstanceId);
251 doReturn(null).when(SPY_bbInputSetupUtils).getCatalogServiceByModelUUID(serviceInstanceAAI.getModelVersionId());
253 ServiceInstance actual = SPY_bbInputSetup.getALaCarteServiceInstance(service, requestDetails, customer, null,
254 null, lookupKeyMap, serviceInstanceId, aLaCarte, bbName);
255 assertThat(actual, sameBeanAs(expected));
259 public void testGetCustomerAndServiceSubscription() throws JsonParseException, JsonMappingException, IOException {
260 RequestDetails requestDetails = mapper.readValue(
261 new File(RESOURCE_PATH + "RequestDetailsInput_withRelatedInstanceList.json"), RequestDetails.class);
262 SubscriberInfo subscriberInfo = new SubscriberInfo();
263 subscriberInfo.setGlobalSubscriberId("globalSubscriberId");
264 RequestParameters requestParams = new RequestParameters();
265 requestParams.setSubscriptionServiceType("subscriptionServiceType");
266 requestDetails.setRequestParameters(requestParams);
267 requestDetails.setSubscriberInfo(subscriberInfo);
268 String resourceId = "resourceId";
269 Customer expected = new Customer();
270 expected.setGlobalCustomerId("globalCustomerId");
271 ServiceSubscription serviceSubscription = new ServiceSubscription();
272 serviceSubscription.setServiceType("subscriptionServiceType");
274 doReturn(expected).when(this.SPY_bbInputSetup).getCustomerFromRequest(requestDetails);
275 doReturn(serviceSubscription).when(this.SPY_bbInputSetup).getServiceSubscription(requestDetails, expected);
277 Customer actual = this.SPY_bbInputSetup.getCustomerAndServiceSubscription(requestDetails, resourceId);
279 assertThat(actual, sameBeanAs(expected));
281 requestDetails.setSubscriberInfo(null);
284 assertThat(actual, sameBeanAs(expected));
289 public void testSetHomingFlag() throws IOException {
290 GeneralBuildingBlock expected = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
291 GeneralBuildingBlock.class);
292 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
293 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "vnfId");
294 GenericVnf genericVnfExpected = new GenericVnf();
295 genericVnfExpected.setVnfId("vnfId");
296 genericVnfExpected.setCallHoming(true);
297 expected.getCustomer().getServiceSubscription().getServiceInstances().get(0).getVnfs().add(genericVnfExpected);
298 boolean homing = true;
299 GenericVnf genericVnfActual = new GenericVnf();
300 genericVnfActual.setVnfId("vnfId");
301 genericVnfActual.setCallHoming(false);
302 GeneralBuildingBlock actual = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
303 GeneralBuildingBlock.class);
304 actual.getCustomer().getServiceSubscription().getServiceInstances().get(0).getVnfs().add(genericVnfActual);
306 SPY_bbInputSetup.setHomingFlag(actual, homing, lookupKeyMap);
307 assertThat(actual, sameBeanAs(expected));
311 public void testGetExecuteBBFromExecution() throws IOException {
312 BuildingBlock bb = new BuildingBlock().setBpmnFlowName("AssignServiceInstanceBB");
313 ExecuteBuildingBlock expected =
314 new ExecuteBuildingBlock().setBuildingBlock(bb).setRequestId("00032ab7-3fb3-42e5-965d-8ea592502017");
315 DelegateExecution execution = Mockito.mock(DelegateExecution.class);
316 doReturn(expected).when(execution).getVariable(any(String.class));
317 ExecuteBuildingBlock actual = SPY_bbInputSetup.getExecuteBBFromExecution(execution);
318 assertThat(actual, sameBeanAs(expected));
322 public void testGetGBB() throws Exception {
323 GeneralBuildingBlock expected = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
324 GeneralBuildingBlock.class);
326 ExecuteBuildingBlock executeBB = new ExecuteBuildingBlock().setRequestId("requestId");
327 RequestDetails requestDetails = new RequestDetails();
328 ModelInfo modelInfo = new ModelInfo();
329 modelInfo.setModelType(ModelType.service);
330 requestDetails.setModelInfo(modelInfo);
331 RequestParameters requestParams = new RequestParameters();
332 requestParams.setaLaCarte(true);
333 requestDetails.setRequestParameters(requestParams);
334 doReturn(requestDetails).when(SPY_bbInputSetupUtils).getRequestDetails(executeBB.getRequestId());
335 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
336 String resourceId = "123";
337 String requestAction = "createInstance";
338 doReturn(expected).when(SPY_bbInputSetup).getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
339 requestAction, resourceId);
340 doNothing().when(SPY_bbInputSetup).populateLookupKeyMapWithIds(executeBB.getWorkflowResourceIds(),
342 boolean aLaCarte = true;
343 GeneralBuildingBlock actual =
344 SPY_bbInputSetup.getGBB(executeBB, lookupKeyMap, requestAction, aLaCarte, resourceId, null);
346 assertThat(actual, sameBeanAs(expected));
350 public void testGetGBBCM() throws Exception {
351 GeneralBuildingBlock expected = mapper
352 .readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockCMExpected.json"), GeneralBuildingBlock.class);
354 ExecuteBuildingBlock executeBB = new ExecuteBuildingBlock().setRequestId("requestId");
355 RequestDetails requestDetails = new RequestDetails();
356 requestDetails.setModelInfo(null);
357 RequestParameters requestParams = new RequestParameters();
358 requestParams.setaLaCarte(true);
359 requestDetails.setRequestParameters(requestParams);
360 RequestInfo requestInfo = new RequestInfo();
361 requestInfo.setSuppressRollback(true);
362 requestInfo.setSource("VID");
363 requestDetails.setRequestInfo(requestInfo);
364 CloudConfiguration cloudConfiguration = new CloudConfiguration();
365 cloudConfiguration.setLcpCloudRegionId("myRegionId");
366 requestDetails.setCloudConfiguration(cloudConfiguration);
367 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
368 String resourceId = "123";
369 String requestAction = "createInstance";
371 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "vnf-001");
373 doReturn(new org.onap.aai.domain.yang.GenericVnf()).when(SPY_bbInputSetupUtils)
374 .getAAIGenericVnf(ArgumentMatchers.isA(String.class));
375 doReturn(null).when(bbInputSetupMapperLayer)
376 .mapAAIGenericVnfIntoGenericVnf(ArgumentMatchers.isA(org.onap.aai.domain.yang.GenericVnf.class));
377 GeneralBuildingBlock actual =
378 SPY_bbInputSetup.getGBBCM(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId);
379 assertThat(actual, sameBeanAs(expected));
383 public void testGetGBBCMAddMembersAction() throws Exception {
384 GeneralBuildingBlock expected = mapper.readValue(
385 new File(RESOURCE_PATH + "GeneralBuildingBlockInstanceGroupExpected.json"), GeneralBuildingBlock.class);
386 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
387 ExecuteBuildingBlock.class);
388 RequestDetails requestDetails = mapper.readValue(
389 new File(RESOURCE_PATH + "RequestDetailsInput_instanceGroupAddMembers.json"), RequestDetails.class);
390 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
391 String requestAction = "addMembers";
392 String instanceGroupId = "instance-group-001";
394 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
395 workflowResourceIds.setInstanceGroupId(instanceGroupId);
396 executeBB.setWorkflowResourceIds(workflowResourceIds);
398 lookupKeyMap.put(ResourceKey.INSTANCE_GROUP_ID, instanceGroupId);
400 org.onap.aai.domain.yang.InstanceGroup aaiInstanceGroup = new org.onap.aai.domain.yang.InstanceGroup();
401 aaiInstanceGroup.setId(instanceGroupId);
402 aaiInstanceGroup.setInstanceGroupName("test instance group 1");
404 org.onap.aai.domain.yang.ServiceInstance aaiServiceInstance = new org.onap.aai.domain.yang.ServiceInstance();
405 aaiServiceInstance.setServiceInstanceId("service-instance-001");
406 aaiServiceInstance.setServiceInstanceName("test service instance 1");
407 Optional<org.onap.aai.domain.yang.ServiceInstance> optSI = Optional.of(aaiServiceInstance);
409 org.onap.aai.domain.yang.GenericVnf vnf1 = new org.onap.aai.domain.yang.GenericVnf();
410 vnf1.setVnfId("vnf-001");
411 vnf1.setVnfName("test vnf 1");
413 org.onap.aai.domain.yang.GenericVnf vnf2 = new org.onap.aai.domain.yang.GenericVnf();
414 vnf2.setVnfId("vnf-002");
415 vnf2.setVnfName("test vnf 2");
417 doReturn(aaiInstanceGroup).when(SPY_bbInputSetupUtils).getAAIInstanceGroup(instanceGroupId);
418 doReturn(optSI).when(SPY_bbInputSetupUtils).getRelatedServiceInstanceFromInstanceGroup(instanceGroupId);
419 doReturn(vnf1).when(SPY_bbInputSetupUtils).getAAIGenericVnf("vnf-001");
420 doReturn(vnf2).when(SPY_bbInputSetupUtils).getAAIGenericVnf("vnf-002");
422 GeneralBuildingBlock actual =
423 SPY_bbInputSetup.getGBBCM(executeBB, requestDetails, lookupKeyMap, requestAction, instanceGroupId);
425 assertThat(actual, sameBeanAs(expected));
429 public void testGetGBBALaCarteNonService() throws Exception {
430 GeneralBuildingBlock expected = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
431 GeneralBuildingBlock.class);
432 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
433 ExecuteBuildingBlock.class);
434 RequestDetails requestDetails = mapper.readValue(
435 new File(RESOURCE_PATH + "RequestDetailsInput_withRelatedInstanceList.json"), RequestDetails.class);
436 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
437 String requestAction = "createInstance";
438 Service service = Mockito.mock(Service.class);
439 ServiceModel serviceModel = new ServiceModel();
440 serviceModel.setCurrentService(service);
441 ServiceInstance serviceInstance = Mockito.mock(ServiceInstance.class);
442 String resourceId = "123";
443 String vnfType = "vnfType";
444 org.onap.aai.domain.yang.ServiceInstance aaiServiceInstance = new org.onap.aai.domain.yang.ServiceInstance();
445 aaiServiceInstance.setModelVersionId("modelVersionId");
446 org.onap.aai.domain.yang.CloudRegion aaiCloudRegion = Mockito.mock(org.onap.aai.domain.yang.CloudRegion.class);
447 lookupKeyMap.put(ResourceKey.SERVICE_INSTANCE_ID, "instanceId");
448 doReturn(service).when(SPY_bbInputSetupUtils)
449 .getCatalogServiceByModelUUID(aaiServiceInstance.getModelVersionId());
450 doReturn(aaiServiceInstance).when(SPY_bbInputSetupUtils).getAAIServiceInstanceById("instanceId");
451 doNothing().when(SPY_bbInputSetup).populateObjectsOnAssignAndCreateFlows(any(BBInputSetupParameter.class));
452 doReturn(serviceInstance).when(SPY_bbInputSetup).getExistingServiceInstance(aaiServiceInstance);
453 doReturn(expected).when(SPY_bbInputSetup).populateGBBWithSIAndAdditionalInfo(any(BBInputSetupParameter.class));
455 GeneralBuildingBlock actual = SPY_bbInputSetup.getGBBALaCarteNonService(executeBB, requestDetails, lookupKeyMap,
456 requestAction, resourceId, vnfType);
458 assertThat(actual, sameBeanAs(expected));
462 public void testGetGBBALaCarteNonServiceIsReplace() throws Exception {
463 GeneralBuildingBlock expected = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
464 GeneralBuildingBlock.class);
465 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
466 ExecuteBuildingBlock.class);
467 RequestDetails requestDetails = mapper.readValue(
468 new File(RESOURCE_PATH + "RequestDetailsInput_withRelatedInstanceList.json"), RequestDetails.class);
469 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
470 String requestAction = "replaceInstance";
471 Service service = Mockito.mock(Service.class);
472 ServiceModel serviceModel = new ServiceModel();
473 serviceModel.setCurrentService(service);
474 ServiceInstance serviceInstance = Mockito.mock(ServiceInstance.class);
475 String resourceId = "123";
476 String vnfType = "vnfType";
477 org.onap.aai.domain.yang.ServiceInstance aaiServiceInstance = new org.onap.aai.domain.yang.ServiceInstance();
478 aaiServiceInstance.setModelVersionId("modelVersionId");
479 org.onap.aai.domain.yang.CloudRegion aaiCloudRegion = Mockito.mock(org.onap.aai.domain.yang.CloudRegion.class);
480 lookupKeyMap.put(ResourceKey.SERVICE_INSTANCE_ID, "instanceId");
481 doReturn(service).when(SPY_bbInputSetupUtils)
482 .getCatalogServiceByModelUUID(aaiServiceInstance.getModelVersionId());
483 doReturn(service).when(SPY_bbInputSetupUtils).getCatalogServiceByModelUUID("modelUUID");
484 doReturn(aaiServiceInstance).when(SPY_bbInputSetupUtils).getAAIServiceInstanceById("instanceId");
486 doNothing().when(SPY_bbInputSetup).populateObjectsOnAssignAndCreateFlows(any(BBInputSetupParameter.class));
487 doReturn(serviceInstance).when(SPY_bbInputSetup).getExistingServiceInstance(aaiServiceInstance);
488 doReturn(expected).when(SPY_bbInputSetup).populateGBBWithSIAndAdditionalInfo(any(BBInputSetupParameter.class));
490 GeneralBuildingBlock actual = SPY_bbInputSetup.getGBBALaCarteNonService(executeBB, requestDetails, lookupKeyMap,
491 requestAction, resourceId, vnfType);
493 verify(SPY_bbInputSetup, times(1)).populateObjectsOnAssignAndCreateFlows(any(BBInputSetupParameter.class));
495 verify(SPY_bbInputSetupUtils, times(1)).getCatalogServiceByModelUUID(aaiServiceInstance.getModelVersionId());
496 verify(SPY_bbInputSetupUtils, times(1)).getCatalogServiceByModelUUID("modelUUID");
498 assertThat(actual, sameBeanAs(expected));
502 public void testGetGBBALaCarteNonServiceWithoutServiceModelInfo() throws Exception {
503 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
504 ExecuteBuildingBlock.class);
505 RequestDetails requestDetails = mapper.readValue(
506 new File(RESOURCE_PATH + "RequestDetailsInput_withRelatedInstanceList.json"), RequestDetails.class);
507 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
508 lookupKeyMap.put(ResourceKey.SERVICE_INSTANCE_ID, "si123");
509 String requestAction = "createInstance";
510 org.onap.aai.domain.yang.ServiceInstance aaiServiceInstance = new org.onap.aai.domain.yang.ServiceInstance();
511 aaiServiceInstance.setModelVersionId("modelVersionId");
512 String resourceId = "123";
513 String vnfType = "vnfType";
515 doReturn(aaiServiceInstance).when(SPY_bbInputSetupUtils).getAAIServiceInstanceById("si123");
516 doReturn(null).when(SPY_bbInputSetupUtils).getCatalogServiceByModelUUID(aaiServiceInstance.getModelVersionId());
518 expectedException.expect(ServiceModelNotFoundException.class);
519 expectedException.expectMessage(
520 "Related service instance model not found in MSO CatalogDB: model-version-id=modelVersionId");
522 SPY_bbInputSetup.getGBBALaCarteNonService(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId,
527 public void testGetGBBALaCarteNonServiceServiceInstanceNotFoundInAAI() throws Exception {
528 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
529 ExecuteBuildingBlock.class);
530 RequestDetails requestDetails = mapper.readValue(
531 new File(RESOURCE_PATH + "RequestDetailsInput_withRelatedInstanceList.json"), RequestDetails.class);
532 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
533 lookupKeyMap.put(ResourceKey.SERVICE_INSTANCE_ID, "si123");
534 String requestAction = "createInstance";
535 org.onap.aai.domain.yang.ServiceInstance aaiServiceInstance = new org.onap.aai.domain.yang.ServiceInstance();
536 aaiServiceInstance.setModelVersionId("modelVersionId");
537 String resourceId = "123";
538 String vnfType = "vnfType";
540 doReturn(null).when(SPY_bbInputSetupUtils).getAAIServiceInstanceById("si123");
542 expectedException.expect(NoServiceInstanceFoundException.class);
543 expectedException.expectMessage("Related service instance from AAI not found: service-instance-id=si123");
545 SPY_bbInputSetup.getGBBALaCarteNonService(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId,
550 public void testGetGBBALaCarteNonServiceWithoutRelatedInstances() throws Exception {
551 GeneralBuildingBlock expected = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
552 GeneralBuildingBlock.class);
553 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
554 ExecuteBuildingBlock.class);
555 RequestDetails requestDetails = mapper.readValue(
556 new File(RESOURCE_PATH + "RequestDetailsInput_withoutRelatedInstanceList.json"), RequestDetails.class);
557 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
558 String requestAction = "createInstance";
559 Service service = Mockito.mock(Service.class);
560 ServiceModel serviceModel = new ServiceModel();
561 serviceModel.setCurrentService(service);
562 String resourceId = "123";
563 ServiceInstance serviceInstance = Mockito.mock(ServiceInstance.class);
564 org.onap.aai.domain.yang.ServiceInstance aaiServiceInstance = new org.onap.aai.domain.yang.ServiceInstance();
565 aaiServiceInstance.setModelVersionId("modelVersionId");
566 org.onap.aai.domain.yang.CloudRegion aaiCloudRegion = Mockito.mock(org.onap.aai.domain.yang.CloudRegion.class);
567 String vnfType = "vnfType";
568 lookupKeyMap.put(ResourceKey.SERVICE_INSTANCE_ID, "instanceId");
569 doReturn(service).when(SPY_bbInputSetupUtils)
570 .getCatalogServiceByModelUUID(aaiServiceInstance.getModelVersionId());
571 doReturn(aaiServiceInstance).when(SPY_bbInputSetupUtils).getAAIServiceInstanceById("instanceId");
573 doNothing().when(SPY_bbInputSetup).populateObjectsOnAssignAndCreateFlows(any(BBInputSetupParameter.class));
575 doReturn(serviceInstance).when(SPY_bbInputSetup).getExistingServiceInstance(aaiServiceInstance);
576 doReturn(expected).when(SPY_bbInputSetup).populateGBBWithSIAndAdditionalInfo(any(BBInputSetupParameter.class));
578 GeneralBuildingBlock actual = SPY_bbInputSetup.getGBBALaCarteNonService(executeBB, requestDetails, lookupKeyMap,
579 requestAction, resourceId, vnfType);
581 assertThat(actual, sameBeanAs(expected));
585 public void testGetGBBALaCarteService() throws Exception {
586 GeneralBuildingBlock expected = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
587 GeneralBuildingBlock.class);
588 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
589 ExecuteBuildingBlock.class);
590 RequestDetails requestDetails = mapper.readValue(
591 new File(RESOURCE_PATH + "RequestDetailsInput_withRelatedInstanceList.json"), RequestDetails.class);
592 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
594 org.onap.so.serviceinstancebeans.Project requestProject = new org.onap.so.serviceinstancebeans.Project();
595 org.onap.so.serviceinstancebeans.OwningEntity requestOwningEntity =
596 new org.onap.so.serviceinstancebeans.OwningEntity();
597 requestDetails.setProject(requestProject);
598 requestDetails.setOwningEntity(requestOwningEntity);
600 Service service = Mockito.mock(Service.class);
601 Customer customer = Mockito.mock(Customer.class);
602 ServiceSubscription serviceSubscription = Mockito.mock(ServiceSubscription.class);
603 Project project = Mockito.mock(Project.class);
604 OwningEntity owningEntity = Mockito.mock(OwningEntity.class);
605 ServiceInstance serviceInstance = Mockito.mock(ServiceInstance.class);
606 String resourceId = "123";
607 String requestAction = "createInstance";
608 executeBB.setaLaCarte(true);
609 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.SERVICE_INSTANCE.toString());
610 org.onap.aai.domain.yang.CloudRegion aaiCloudRegion = Mockito.mock(org.onap.aai.domain.yang.CloudRegion.class);
612 doReturn(service).when(SPY_bbInputSetupUtils)
613 .getCatalogServiceByModelUUID(requestDetails.getModelInfo().getModelVersionId());
614 doReturn(project).when(bbInputSetupMapperLayer).mapRequestProject(requestDetails.getProject());
615 doReturn(owningEntity).when(bbInputSetupMapperLayer).mapRequestOwningEntity(requestDetails.getOwningEntity());
617 doReturn(customer).when(SPY_bbInputSetup).getCustomerAndServiceSubscription(requestDetails, resourceId);
618 doReturn(serviceInstance).when(SPY_bbInputSetup).getALaCarteServiceInstance(service, requestDetails, customer,
619 project, owningEntity, lookupKeyMap, resourceId, Boolean.TRUE.equals(executeBB.isaLaCarte()),
620 executeBB.getBuildingBlock().getBpmnFlowName());
621 doReturn(expected).when(SPY_bbInputSetup).populateGBBWithSIAndAdditionalInfo(any(BBInputSetupParameter.class));
623 GeneralBuildingBlock actual = SPY_bbInputSetup.getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
624 requestAction, resourceId);
626 assertThat(actual, sameBeanAs(expected));
630 public void testGetGBBALaCarteServiceFindServiceByModelVersionId() throws Exception {
631 GeneralBuildingBlock expected = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
632 GeneralBuildingBlock.class);
633 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
634 ExecuteBuildingBlock.class);
635 RequestDetails requestDetails = mapper.readValue(
636 new File(RESOURCE_PATH + "RequestDetailsInput_withRelatedInstanceList.json"), RequestDetails.class);
637 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
639 org.onap.so.serviceinstancebeans.Project requestProject = new org.onap.so.serviceinstancebeans.Project();
640 org.onap.so.serviceinstancebeans.OwningEntity requestOwningEntity =
641 new org.onap.so.serviceinstancebeans.OwningEntity();
642 requestDetails.setProject(requestProject);
643 requestDetails.setOwningEntity(requestOwningEntity);
645 Service service = Mockito.mock(Service.class);
646 Customer customer = Mockito.mock(Customer.class);
647 ServiceSubscription serviceSubscription = Mockito.mock(ServiceSubscription.class);
648 Project project = Mockito.mock(Project.class);
649 OwningEntity owningEntity = Mockito.mock(OwningEntity.class);
650 ServiceInstance serviceInstance = Mockito.mock(ServiceInstance.class);
651 String resourceId = "123";
652 String requestAction = "createInstance";
653 executeBB.setaLaCarte(true);
654 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.SERVICE_INSTANCE.toString());
655 org.onap.aai.domain.yang.CloudRegion aaiCloudRegion = Mockito.mock(org.onap.aai.domain.yang.CloudRegion.class);
657 doReturn(null).when(SPY_bbInputSetupUtils)
658 .getCatalogServiceByModelUUID(requestDetails.getModelInfo().getModelVersionId());
659 doReturn(service).when(SPY_bbInputSetupUtils).getCatalogServiceByModelVersionAndModelInvariantUUID(
660 requestDetails.getModelInfo().getModelVersion(), requestDetails.getModelInfo().getModelInvariantId());
661 doReturn(project).when(bbInputSetupMapperLayer).mapRequestProject(requestDetails.getProject());
662 doReturn(owningEntity).when(bbInputSetupMapperLayer).mapRequestOwningEntity(requestDetails.getOwningEntity());
664 doReturn(customer).when(SPY_bbInputSetup).getCustomerAndServiceSubscription(requestDetails, resourceId);
665 doReturn(serviceInstance).when(SPY_bbInputSetup).getALaCarteServiceInstance(service, requestDetails, customer,
666 project, owningEntity, lookupKeyMap, resourceId, Boolean.TRUE.equals(executeBB.isaLaCarte()),
667 executeBB.getBuildingBlock().getBpmnFlowName());
668 doReturn(expected).when(SPY_bbInputSetup).populateGBBWithSIAndAdditionalInfo(any(BBInputSetupParameter.class));
670 GeneralBuildingBlock actual = SPY_bbInputSetup.getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
671 requestAction, resourceId);
673 assertThat(actual, sameBeanAs(expected));
677 public void testGetGBBALaCarteServiceNoProjectNoOE() throws Exception {
678 GeneralBuildingBlock expected = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
679 GeneralBuildingBlock.class);
680 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
681 ExecuteBuildingBlock.class);
682 RequestDetails requestDetails = mapper.readValue(
683 new File(RESOURCE_PATH + "RequestDetailsInput_withRelatedInstanceList.json"), RequestDetails.class);
684 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
686 Service service = Mockito.mock(Service.class);
687 Customer customer = Mockito.mock(Customer.class);
688 ServiceSubscription serviceSubscription = Mockito.mock(ServiceSubscription.class);
689 ServiceInstance serviceInstance = Mockito.mock(ServiceInstance.class);
690 String resourceId = "123";
691 String requestAction = "createInstance";
692 executeBB.setaLaCarte(true);
693 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.SERVICE_INSTANCE.toString());
694 org.onap.aai.domain.yang.CloudRegion aaiCloudRegion = Mockito.mock(org.onap.aai.domain.yang.CloudRegion.class);
696 Map<String, String> uriKeys = new HashMap<>();
697 uriKeys.put("global-customer-id", "globalCustomerId");
698 uriKeys.put("service-type", "serviceType");
700 doReturn(service).when(SPY_bbInputSetupUtils)
701 .getCatalogServiceByModelUUID(requestDetails.getModelInfo().getModelVersionId());
703 doReturn(customer).when(SPY_bbInputSetup).getCustomerAndServiceSubscription(requestDetails, resourceId);
705 doReturn(serviceInstance).when(SPY_bbInputSetup).getALaCarteServiceInstance(service, requestDetails, customer,
706 null, null, lookupKeyMap, resourceId, Boolean.TRUE.equals(executeBB.isaLaCarte()),
707 executeBB.getBuildingBlock().getBpmnFlowName());
708 doReturn(expected).when(SPY_bbInputSetup).populateGBBWithSIAndAdditionalInfo(any(BBInputSetupParameter.class));
710 GeneralBuildingBlock actual = SPY_bbInputSetup.getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
711 requestAction, resourceId);
713 assertThat(actual, sameBeanAs(expected));
717 public void testGetServiceInstanceHelperCreateScenario() throws Exception {
718 RequestDetails requestDetails = new RequestDetails();
719 RequestInfo requestInfo = new RequestInfo();
720 requestInfo.setInstanceName("SharansInstanceName");
721 requestDetails.setRequestInfo(requestInfo);
722 Customer customer = new Customer();
723 String serviceInstanceId = "SharansInstanceId";
724 boolean aLaCarte = true;
725 ServiceInstance expected = new ServiceInstance();
726 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
727 Service service = new Service();
728 service.setModelUUID("modelUUID");
729 String bbName = AssignFlows.SERVICE_INSTANCE.toString();
731 doReturn(null).when(SPY_bbInputSetupUtils).getAAIServiceInstanceByName(requestInfo.getInstanceName(), customer);
732 doReturn(null).when(SPY_bbInputSetupUtils).getAAIServiceInstanceById(serviceInstanceId);
735 doReturn(expected).when(SPY_bbInputSetup).createServiceInstance(requestDetails, null, null, lookupKeyMap,
738 ServiceInstance actual = SPY_bbInputSetup.getServiceInstanceHelper(requestDetails, customer, null, null,
739 lookupKeyMap, serviceInstanceId, aLaCarte, service, bbName);
740 assertThat(actual, sameBeanAs(expected));
744 public void testGetServiceInstanceHelperCreateScenarioExisting() throws Exception {
745 RequestDetails requestDetails = new RequestDetails();
746 RequestInfo requestInfo = new RequestInfo();
747 requestInfo.setInstanceName("SharansInstanceName");
748 requestDetails.setRequestInfo(requestInfo);
749 Customer customer = new Customer();
750 String serviceInstanceId = "SharansInstanceId";
751 boolean aLaCarte = true;
752 Service service = new Service();
753 service.setModelUUID("modelUUID");
754 ServiceInstance expected = new ServiceInstance();
755 org.onap.aai.domain.yang.ServiceInstance serviceInstanceAAI = new org.onap.aai.domain.yang.ServiceInstance();
756 serviceInstanceAAI.setModelVersionId("modelUUID");
757 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
758 String bbName = AssignFlows.SERVICE_INSTANCE.toString();
760 doReturn(serviceInstanceAAI).when(SPY_bbInputSetupUtils)
761 .getAAIServiceInstanceByName(requestInfo.getInstanceName(), customer);
762 doReturn(expected).when(SPY_bbInputSetup).getExistingServiceInstance(serviceInstanceAAI);
764 ServiceInstance actual = SPY_bbInputSetup.getServiceInstanceHelper(requestDetails, customer, null, null,
765 lookupKeyMap, serviceInstanceId, aLaCarte, service, bbName);
766 assertThat(actual, sameBeanAs(expected));
770 public void testGetServiceInstanceHelperCreateScenarioExistingNoNameButWithId() throws Exception {
771 RequestDetails requestDetails = new RequestDetails();
772 RequestInfo requestInfo = new RequestInfo();
773 requestInfo.setInstanceName("SharansInstanceName");
774 requestDetails.setRequestInfo(requestInfo);
775 Customer customer = new Customer();
776 String serviceInstanceId = "SharansInstanceId";
777 boolean aLaCarte = true;
778 Service service = new Service();
779 service.setModelUUID("modelUUID");
780 ServiceInstance expected = new ServiceInstance();
781 org.onap.aai.domain.yang.ServiceInstance serviceInstanceAAI = new org.onap.aai.domain.yang.ServiceInstance();
782 serviceInstanceAAI.setModelVersionId("modelUUID");
783 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
784 String bbName = "ActivateServiceInstanceBB";
786 doReturn(serviceInstanceAAI).when(SPY_bbInputSetupUtils).getAAIServiceInstanceById(serviceInstanceId);
787 doReturn(expected).when(SPY_bbInputSetup).getExistingServiceInstance(serviceInstanceAAI);
789 ServiceInstance actual = SPY_bbInputSetup.getServiceInstanceHelper(requestDetails, customer, null, null,
790 lookupKeyMap, serviceInstanceId, aLaCarte, service, bbName);
791 assertThat(actual, sameBeanAs(expected));
795 public void testGetServiceInstanceHelperCreateScenarioExistingNoNameButWithIdDifferentModel() throws Exception {
796 RequestDetails requestDetails = new RequestDetails();
797 RequestInfo requestInfo = new RequestInfo();
798 requestDetails.setRequestInfo(requestInfo);
799 Customer customer = new Customer();
800 String serviceInstanceId = "SharansInstanceId";
801 boolean aLaCarte = true;
802 Service service = new Service();
803 service.setModelUUID("modelUUID");
804 ServiceInstance expected = new ServiceInstance();
805 org.onap.aai.domain.yang.ServiceInstance serviceInstanceAAI = new org.onap.aai.domain.yang.ServiceInstance();
806 serviceInstanceAAI.setModelVersionId("modelUUIDDifferent");
807 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
808 String bbName = "ActivateServiceInstanceBB";
809 Service differentService = new Service();
810 differentService.setModelUUID("modelUUIDDifferent");
812 doReturn(serviceInstanceAAI).when(SPY_bbInputSetupUtils).getAAIServiceInstanceById(serviceInstanceId);
815 ServiceInstance actual = SPY_bbInputSetup.getServiceInstanceHelper(requestDetails, customer, null, null,
816 lookupKeyMap, serviceInstanceId, aLaCarte, service, bbName);
817 assertThat(actual, sameBeanAs(expected));
821 public void testGetServiceInstanceHelperCreateScenarioExistingWithName() throws Exception {
822 RequestDetails requestDetails = new RequestDetails();
823 RequestInfo requestInfo = new RequestInfo();
824 requestDetails.setRequestInfo(requestInfo);
825 ServiceSubscription serviceSub = new ServiceSubscription();
826 Customer customer = new Customer();
827 customer.setServiceSubscription(serviceSub);
828 ServiceInstance expected = new ServiceInstance();
829 expected.setServiceInstanceId("serviceInstanceId");
830 org.onap.aai.domain.yang.ServiceInstance serviceInstanceAAI = new org.onap.aai.domain.yang.ServiceInstance();
831 serviceInstanceAAI.setServiceInstanceId("serviceInstanceId");
833 doReturn(serviceInstanceAAI).when(SPY_bbInputSetupUtils).getAAIServiceInstanceByIdAndCustomer(Mockito.any(),
834 Mockito.any(), Mockito.any());
835 ServiceInstance actual = SPY_bbInputSetup.getServiceInstanceHelper(requestDetails, customer, null, null,
836 new HashMap<>(), "SharansInstanceId", false, new Service(), "ActivateServiceInstanceBB");
837 assertThat(actual, sameBeanAs(expected));
840 @Test(expected = Exception.class)
841 public void testGetServiceInstanceHelperCreateScenarioExistingNoNameButWithIdExceptionThrown() throws Exception {
842 RequestDetails requestDetails = new RequestDetails();
843 RequestInfo requestInfo = new RequestInfo();
844 requestDetails.setRequestInfo(requestInfo);
845 Customer customer = new Customer();
846 String serviceInstanceId = "SharansInstanceId";
847 boolean aLaCarte = true;
848 Service service = new Service();
849 service.setModelUUID("modelUUID");
850 org.onap.aai.domain.yang.ServiceInstance serviceInstanceAAI = new org.onap.aai.domain.yang.ServiceInstance();
851 serviceInstanceAAI.setModelVersionId("modelUUIDDifferent");
852 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
853 String bbName = AssignFlows.SERVICE_INSTANCE.toString();
855 ServiceInstance actual = SPY_bbInputSetup.getServiceInstanceHelper(requestDetails, customer, null, null,
856 lookupKeyMap, serviceInstanceId, aLaCarte, service, bbName);
860 public void testPopulateObjectsOnAssignAndCreateFlows() throws Exception {
861 String bbName = AssignFlows.SERVICE_INSTANCE.toString();
862 String instanceName = "instanceName";
863 String vnfType = "vnfType";
864 String resourceId = "networkId";
865 String productFamilyId = "productFamilyId";
866 String applicationId = "applicationId";
867 Service service = Mockito.mock(Service.class);
868 ServiceModel serviceModel = new ServiceModel();
869 serviceModel.setCurrentService(service);
870 ServiceInstance serviceInstance = Mockito.mock(ServiceInstance.class);
871 RequestDetails requestDetails = Mockito.mock(RequestDetails.class);
872 ModelInfo modelInfo = Mockito.mock(ModelInfo.class);
873 RequestInfo requestInfo = Mockito.mock(RequestInfo.class);
874 RelatedInstanceList[] relatedInstanceList = new RelatedInstanceList[] {};
875 CloudConfiguration cloudConfiguration = new CloudConfiguration();
876 org.onap.so.serviceinstancebeans.Platform platform =
877 Mockito.mock(org.onap.so.serviceinstancebeans.Platform.class);
878 org.onap.so.serviceinstancebeans.LineOfBusiness lineOfBusiness =
879 Mockito.mock(org.onap.so.serviceinstancebeans.LineOfBusiness.class);
880 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
882 doReturn(modelInfo).when(requestDetails).getModelInfo();
883 doReturn(productFamilyId).when(requestInfo).getProductFamilyId();
884 doReturn(requestInfo).when(requestDetails).getRequestInfo();
885 doReturn(instanceName).when(requestInfo).getInstanceName();
886 doReturn(platform).when(requestDetails).getPlatform();
887 doReturn(lineOfBusiness).when(requestDetails).getLineOfBusiness();
888 doReturn(relatedInstanceList).when(requestDetails).getRelatedInstanceList();
889 doReturn(cloudConfiguration).when(requestDetails).getCloudConfiguration();
890 doReturn(applicationId).when(requestInfo).getApplicationId();
892 doReturn(ModelType.network).when(modelInfo).getModelType();
893 BBInputSetupParameter parameter = new BBInputSetupParameter.Builder().setRequestId(REQUEST_ID)
894 .setRequestDetails(requestDetails).setService(service).setBbName(bbName)
895 .setServiceInstance(serviceInstance).setLookupKeyMap(lookupKeyMap).setResourceId(resourceId)
896 .setVnfType(vnfType).setIsReplace(false).setApplicationId(applicationId).build();
898 doNothing().when(SPY_bbInputSetup).populateL3Network(parameter);
899 SPY_bbInputSetup.populateObjectsOnAssignAndCreateFlows(parameter);
900 parameter.setInstanceName(instanceName);
901 parameter.setModelInfo(modelInfo);
902 verify(SPY_bbInputSetup, times(1)).populateL3Network(parameter);
903 assertEquals("NetworkId populated", true,
904 lookupKeyMap.get(ResourceKey.NETWORK_ID).equalsIgnoreCase(resourceId));
906 doReturn(ModelType.vnf).when(modelInfo).getModelType();
907 resourceId = "vnfId";
908 doNothing().when(SPY_bbInputSetup).populateGenericVnf(parameter);
909 parameter.setResourceId(resourceId);
910 SPY_bbInputSetup.populateObjectsOnAssignAndCreateFlows(parameter);
911 verify(SPY_bbInputSetup, times(1)).populateGenericVnf(parameter);
912 assertEquals("VnfId populated", true,
913 lookupKeyMap.get(ResourceKey.GENERIC_VNF_ID).equalsIgnoreCase(resourceId));
914 doReturn(ModelType.volumeGroup).when(modelInfo).getModelType();
915 resourceId = "volumeGroupId";
916 parameter.setResourceId(resourceId);
917 doNothing().when(SPY_bbInputSetup).populateVolumeGroup(parameter);
918 SPY_bbInputSetup.populateObjectsOnAssignAndCreateFlows(parameter);
919 verify(SPY_bbInputSetup, times(1)).populateVolumeGroup(parameter);
920 assertEquals("VolumeGroupId populated", true,
921 lookupKeyMap.get(ResourceKey.VOLUME_GROUP_ID).equalsIgnoreCase(resourceId));
923 doReturn(ModelType.vfModule).when(modelInfo).getModelType();
924 resourceId = "vfModuleId";
925 parameter.setResourceId(resourceId);
926 doNothing().when(SPY_bbInputSetup).populateVfModule(parameter);
927 SPY_bbInputSetup.populateObjectsOnAssignAndCreateFlows(parameter);
928 verify(SPY_bbInputSetup, times(1)).populateVfModule(parameter);
929 assertEquals("VfModuleId populated", true,
930 lookupKeyMap.get(ResourceKey.VF_MODULE_ID).equalsIgnoreCase(resourceId));
932 String bbNameAssignVolume = AssignFlows.VOLUME_GROUP.toString();
933 doReturn(ModelType.vfModule).when(modelInfo).getModelType();
934 resourceId = "vfModuleId";
935 parameter.setResourceId(resourceId);
936 parameter.setBbName(bbNameAssignVolume);
937 doNothing().when(SPY_bbInputSetup).populateVolumeGroup(parameter);
938 SPY_bbInputSetup.populateObjectsOnAssignAndCreateFlows(parameter);
939 verify(SPY_bbInputSetup, times(2)).populateVolumeGroup(parameter);
940 assertEquals(resourceId, lookupKeyMap.get(ResourceKey.VOLUME_GROUP_ID));
944 public void testPopulateGBBWithSIAndAdditionalInfo() throws Exception {
945 GeneralBuildingBlock expected =
946 mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpectedWUserParamsInfo.json"),
947 GeneralBuildingBlock.class);
948 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
949 ExecuteBuildingBlock.class);
950 RequestDetails requestDetails = mapper.readValue(
951 new File(RESOURCE_PATH + "RequestDetailsInput_withRelatedInstanceList.json"), RequestDetails.class);
952 RequestContext requestContext =
953 mapper.readValue(new File(RESOURCE_PATH + "RequestContextExpected.json"), RequestContext.class);
954 ServiceInstance serviceInstance =
955 mapper.readValue(new File(RESOURCE_PATH + "ServiceInstance_getServiceInstanceNOAAIExpected.json"),
956 ServiceInstance.class);
957 CloudConfiguration cloudConfiguration = new CloudConfiguration();
958 cloudConfiguration.setTenantId("tenantId");
959 requestDetails.setCloudConfiguration(cloudConfiguration);
960 OrchestrationContext orchestrationContext = new OrchestrationContext();
961 orchestrationContext.setIsRollbackEnabled(false);
963 CloudRegion cloudRegion = new CloudRegion();
964 cloudRegion.setCloudOwner("test-owner-name");
965 cloudRegion.setLcpCloudRegionId("lcpCloudRegionId");
966 cloudRegion.setComplex("complexName");
967 cloudRegion.setTenantId("tenantId");
969 Map<String, String> uriKeys = new HashMap<>();
970 uriKeys.put(AAIFluentTypeBuilder.Types.CUSTOMER.getUriParams().globalCustomerId, "global-customer-id");
971 uriKeys.put(AAIFluentTypeBuilder.Types.SERVICE_SUBSCRIPTION.getUriParams().serviceType, "service-type");
973 Customer customer = new Customer();
974 ServiceSubscription serviceSubscription = new ServiceSubscription();
975 serviceSubscription.setServiceType("subscriptionServiceType");
976 customer.setGlobalCustomerId("globalCustomerId");
977 customer.setSubscriberName("subscriberName");
978 customer.setSubscriberType("subscriberType");
979 customer.setServiceSubscription(serviceSubscription);
981 org.onap.so.bpmn.servicedecomposition.bbobjects.Tenant tenant =
982 new org.onap.so.bpmn.servicedecomposition.bbobjects.Tenant();
983 tenant.setTenantContext("tenantContext");
984 tenant.setTenantId("tenantId");
985 tenant.setTenantName("tenantName");
987 org.onap.aai.domain.yang.CloudRegion aaiCloudRegion = Mockito.mock(org.onap.aai.domain.yang.CloudRegion.class);
988 org.onap.aai.domain.yang.Tenants aaiTenants = Mockito.mock(org.onap.aai.domain.yang.Tenants.class);
989 org.onap.aai.domain.yang.Tenant aaiTenant = new org.onap.aai.domain.yang.Tenant();
990 aaiTenant.setTenantId("tenantId");
991 List<org.onap.aai.domain.yang.Tenant> tenants = new ArrayList<>();
992 tenants.add(aaiTenant);
994 String requestAction = "createInstance";
996 doReturn(uriKeys).when(SPY_bbInputSetupUtils)
997 .getURIKeysFromServiceInstance(serviceInstance.getServiceInstanceId());
998 doReturn(customer).when(SPY_bbInputSetup).mapCustomer(uriKeys.get("global-customer-id"),
999 uriKeys.get("service-type"));
1000 doReturn(aaiCloudRegion).when(SPY_bbInputSetupUtils).getCloudRegion(requestDetails.getCloudConfiguration());
1001 doReturn(orchestrationContext).when(bbInputSetupMapperLayer).mapOrchestrationContext(requestDetails);
1002 doReturn(requestContext).when(bbInputSetupMapperLayer).mapRequestContext(requestDetails);
1003 doReturn(cloudRegion).when(bbInputSetupMapperLayer).mapCloudRegion(requestDetails.getCloudConfiguration(),
1005 doReturn(tenant).when(bbInputSetupMapperLayer).mapTenant(aaiTenant);
1006 doReturn(aaiTenants).when(aaiCloudRegion).getTenants();
1007 doReturn(tenants).when(aaiTenants).getTenant();
1008 BBInputSetupParameter parameter = new BBInputSetupParameter.Builder().setServiceInstance(serviceInstance)
1009 .setRequestDetails(requestDetails).setExecuteBB(executeBB).setRequestAction(requestAction).build();
1010 GeneralBuildingBlock actual = SPY_bbInputSetup.populateGBBWithSIAndAdditionalInfo(parameter);
1012 assertThat(actual, sameBeanAs(expected));
1016 public void testGetServiceInstanceNOAAI() throws Exception {
1017 ServiceInstance expected =
1018 mapper.readValue(new File(RESOURCE_PATH + "ServiceInstance_getServiceInstanceNOAAIExpected.json"),
1019 ServiceInstance.class);
1020 Service service = mapper.readValue(
1021 new File(RESOURCE_PATH + "CatalogDBService_getServiceInstanceNOAAIInput.json"), Service.class);
1022 Customer customer = mapper.readValue(new File(RESOURCE_PATH + "Customer.json"), Customer.class);
1023 Project project = mapper.readValue(new File(RESOURCE_PATH + "Project.json"), Project.class);
1024 OwningEntity owningEntity = mapper.readValue(new File(RESOURCE_PATH + "OwningEntity.json"), OwningEntity.class);
1025 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
1027 BuildingBlock buildingBlock = new BuildingBlock().setBpmnFlowName(AssignFlows.SERVICE_INSTANCE.toString());
1028 ExecuteBuildingBlock executeBB = new ExecuteBuildingBlock().setaLaCarte(true).setBuildingBlock(buildingBlock);
1029 RequestDetails requestDetails = new RequestDetails();
1030 RequestInfo reqInfo = new RequestInfo();
1031 reqInfo.setInstanceName("serviceInstanceName");
1032 requestDetails.setRequestInfo(reqInfo);
1033 ModelInfo modelInfo = new ModelInfo();
1034 modelInfo.setModelType(ModelType.service);
1035 requestDetails.setModelInfo(modelInfo);
1036 doReturn(null).when(SPY_bbInputSetupUtils)
1037 .getAAIServiceInstanceByName(requestDetails.getRequestInfo().getInstanceName(), customer);
1038 doReturn(expected.getModelInfoServiceInstance()).when(bbInputSetupMapperLayer)
1039 .mapCatalogServiceIntoServiceInstance(service);
1040 doReturn(null).when(SPY_bbInputSetupUtils).getAAIServiceInstanceById(any(String.class));
1041 String serviceInstanceId = "3655a595-05d1-433c-93c0-3afd6b572545";
1042 boolean aLaCarte = true;
1044 ServiceInstance actual =
1045 SPY_bbInputSetup.getALaCarteServiceInstance(service, requestDetails, customer, project, owningEntity,
1046 lookupKeyMap, serviceInstanceId, aLaCarte, executeBB.getBuildingBlock().getBpmnFlowName());
1048 assertThat(actual, sameBeanAs(expected));
1052 public void testGetServiceSubscription() throws IOException {
1053 ServiceSubscription expected = new ServiceSubscription();
1054 RequestDetails requestDetails = new RequestDetails();
1055 RequestParameters params = new RequestParameters();
1056 params.setSubscriptionServiceType("subscriptionServiceType");
1057 requestDetails.setRequestParameters(params);
1058 org.onap.aai.domain.yang.ServiceSubscription aaiServiceSubscription =
1059 new org.onap.aai.domain.yang.ServiceSubscription();
1060 Customer customer = new Customer();
1061 customer.setGlobalCustomerId("globalCustomerId");
1062 doReturn(aaiServiceSubscription).when(SPY_bbInputSetupUtils).getAAIServiceSubscription(
1063 customer.getGlobalCustomerId(), requestDetails.getRequestParameters().getSubscriptionServiceType());
1064 doReturn(expected).when(bbInputSetupMapperLayer).mapAAIServiceSubscription(aaiServiceSubscription);
1066 ServiceSubscription actual = SPY_bbInputSetup.getServiceSubscription(requestDetails, customer);
1067 assertThat(actual, sameBeanAs(expected));
1071 public void testGetCustomer() throws IOException {
1072 Customer expected = new Customer();
1073 RequestDetails requestDetails = new RequestDetails();
1074 SubscriberInfo subscriberInfo = new SubscriberInfo();
1075 subscriberInfo.setGlobalSubscriberId("globalSubscriberId");
1076 requestDetails.setSubscriberInfo(subscriberInfo);
1077 org.onap.aai.domain.yang.Customer aaiCustomer = new org.onap.aai.domain.yang.Customer();
1078 doReturn(aaiCustomer).when(SPY_bbInputSetupUtils)
1079 .getAAICustomer(requestDetails.getSubscriberInfo().getGlobalSubscriberId());
1080 doReturn(expected).when(bbInputSetupMapperLayer).mapAAICustomer(aaiCustomer);
1082 Customer actual = SPY_bbInputSetup.getCustomerFromRequest(requestDetails);
1083 assertThat(actual, sameBeanAs(expected));
1087 public void testGetExistingServiceInstance() throws Exception {
1088 org.onap.aai.domain.yang.ServiceInstance serviceInstanceAAI = new org.onap.aai.domain.yang.ServiceInstance();
1089 ServiceInstance expected = new ServiceInstance();
1091 doReturn(expected).when(bbInputSetupMapperLayer).mapAAIServiceInstanceIntoServiceInstance(serviceInstanceAAI);
1094 ServiceInstance actual = SPY_bbInputSetup.getExistingServiceInstance(serviceInstanceAAI);
1095 assertThat(actual, sameBeanAs(expected));
1099 public void testPopulateNetworkCollectionAndInstanceGroupAssign() throws Exception {
1100 Service service = Mockito.mock(Service.class);
1101 String key = "collectionCustId";
1102 ServiceInstance serviceInstance =
1103 mapper.readValue(new File(RESOURCE_PATH + "ServiceInstance_getServiceInstanceNOAAIExpected.json"),
1104 ServiceInstance.class);
1105 String resourceId = "123";
1106 Collection collection = SPY_bbInputSetup.createCollection(resourceId);
1107 InstanceGroup instanceGroup = SPY_bbInputSetup.createInstanceGroup();
1108 assertNull(serviceInstance.getCollection());
1109 doReturn(true).when(SPY_bbInputSetup).isVlanTagging(service, key);
1111 doReturn(collection).when(SPY_bbInputSetup).createCollection(resourceId);
1112 doReturn(instanceGroup).when(SPY_bbInputSetup).createInstanceGroup();
1113 doNothing().when(SPY_bbInputSetup).mapCatalogCollection(service, collection, key);
1115 NetworkCollectionResourceCustomization networkCollection = new NetworkCollectionResourceCustomization();
1116 networkCollection.setModelCustomizationUUID(key);
1117 networkCollection.setCollectionResource(new CollectionResource());
1118 networkCollection.getCollectionResource().setInstanceGroup(new org.onap.so.db.catalog.beans.InstanceGroup());
1119 networkCollection.getCollectionResource().getInstanceGroup().setToscaNodeType("NetworkCollectionResource");
1120 networkCollection.getCollectionResource().getInstanceGroup().setType(InstanceGroupType.L3_NETWORK);
1121 networkCollection.getCollectionResource().getInstanceGroup()
1122 .setCollectionInstanceGroupCustomizations(new ArrayList<>());
1123 List<CollectionResourceCustomization> customizations = new ArrayList<>();
1124 customizations.add(networkCollection);
1125 doReturn(customizations).when(service).getCollectionResourceCustomizations();
1126 BBInputSetupParameter parameter = new BBInputSetupParameter.Builder().setService(service)
1127 .setServiceInstance(serviceInstance).setResourceId(resourceId).setKey(key)
1128 .setBbName(AssignFlows.NETWORK_COLLECTION.toString()).build();
1130 SPY_bbInputSetup.populateNetworkCollectionAndInstanceGroupAssign(parameter);
1131 assertNotNull(serviceInstance.getCollection());
1132 assertNotNull(serviceInstance.getCollection().getInstanceGroup());
1134 verify(SPY_bbInputSetup, times(1)).mapCatalogCollection(service, serviceInstance.getCollection(), key);
1135 verify(SPY_bbInputSetup, times(1)).mapCatalogNetworkCollectionInstanceGroup(service,
1136 serviceInstance.getCollection().getInstanceGroup(), key);
1140 public void testPopulateInstanceGroup() throws Exception {
1141 ModelInfo modelInfo = Mockito.mock(ModelInfo.class);
1142 Service service = Mockito.mock(Service.class);
1143 List<InstanceGroup> instanceGroups = Mockito.spy(new ArrayList<>());
1144 ServiceInstance serviceInstance = Mockito.spy(new ServiceInstance());
1145 serviceInstance.setServiceInstanceId("si-001");
1146 serviceInstance.setServiceInstanceName("test service instance");
1147 serviceInstance.setInstanceGroups(instanceGroups);
1149 BBInputSetupParameter parameter = new BBInputSetupParameter.Builder().setModelInfo(modelInfo)
1150 .setService(service).setServiceInstance(serviceInstance).setResourceId("instance-group-001")
1151 .setInstanceName("test instance group").build();
1152 SPY_bbInputSetup.populateInstanceGroup(parameter);
1153 verify(SPY_bbInputSetup, times(1)).mapCatalogInstanceGroup(isA(InstanceGroup.class), isA(ModelInfo.class),
1154 isA(Service.class));
1155 verify(instanceGroups, times(1)).add(isA(InstanceGroup.class));
1159 public void testIsVlanTagging() throws Exception {
1160 boolean expected = true;
1161 Service service = Mockito.mock(Service.class);
1162 String key = "collectionCustId";
1163 NetworkCollectionResourceCustomization networkCollection = new NetworkCollectionResourceCustomization();
1164 networkCollection.setModelCustomizationUUID(key);
1165 networkCollection.setCollectionResource(new CollectionResource());
1166 networkCollection.getCollectionResource().setInstanceGroup(new org.onap.so.db.catalog.beans.InstanceGroup());
1167 networkCollection.getCollectionResource().getInstanceGroup()
1168 .setToscaNodeType("org.openecomp.resource.cr.NetworkCollectionResource1806");
1169 List<CollectionResourceCustomization> customizations = new ArrayList<>();
1170 customizations.add(networkCollection);
1171 doReturn(customizations).when(service).getCollectionResourceCustomizations();
1172 boolean actual = SPY_bbInputSetup.isVlanTagging(service, key);
1173 assertEquals("Is Vlan Tagging check.", expected, actual);
1177 public void testPopulateVolumeGroup() throws Exception {
1178 RequestDetails requestDetails = new RequestDetails();
1179 RelatedInstanceList ril = new RelatedInstanceList();
1180 RelatedInstance ri = new RelatedInstance();
1181 ModelInfo mi = new ModelInfo();
1182 mi.setModelType(ModelType.vnf);
1183 mi.setModelCustomizationUuid("vnfModelCustomizationUUID");
1184 mi.setModelCustomizationId("vnfModelCustomizationUUID");
1185 ri.setModelInfo(mi);
1186 ril.setRelatedInstance(ri);
1187 requestDetails.setRelatedInstanceList(new RelatedInstanceList[] {ril});
1189 ModelInfo modelInfo = new ModelInfo();
1190 modelInfo.setModelCustomizationId("volumeGroupCustId");
1192 RequestInfo reqInfo = new RequestInfo();
1193 reqInfo.setInstanceName("volumeGroupName");
1194 requestDetails.setModelInfo(modelInfo);
1195 requestDetails.setRequestInfo(reqInfo);
1197 ServiceInstance serviceInstance = new ServiceInstance();
1198 GenericVnf vnf = new GenericVnf();
1199 vnf.setVnfId("genericVnfId");
1201 VolumeGroup vg = new VolumeGroup();
1202 vg.setVolumeGroupName("volumeGroupName");
1203 vg.setVolumeGroupId("volumeGroupId");
1204 vg.setModelInfoVfModule(new ModelInfoVfModule());
1205 vg.getModelInfoVfModule().setModelCustomizationUUID("volumeGroupCustId");
1206 vnf.getVolumeGroups().add(vg);
1207 serviceInstance.getVnfs().add(vnf);
1209 Service service = mapper.readValue(
1210 new File(RESOURCE_PATH + "CatalogDBService_getServiceInstanceNOAAIInput.json"), Service.class);
1211 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
1212 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "genericVnfId");
1214 ServiceModel serviceModel = new ServiceModel();
1215 serviceModel.setCurrentService(service);
1216 String bbName = AssignFlows.VOLUME_GROUP.toString();
1217 String resourceId = "123";
1218 doNothing().when(SPY_bbInputSetup).mapCatalogVolumeGroup(isA(VolumeGroup.class), eq(modelInfo), eq(service),
1219 eq("vnfModelCustomizationUUID"));
1220 org.onap.aai.domain.yang.GenericVnf aaiGenericVnf = new org.onap.aai.domain.yang.GenericVnf();
1221 aaiGenericVnf.setModelCustomizationId("vnfModelCustomizationUUID");
1222 doReturn(aaiGenericVnf).when(SPY_bbInputSetupUtils).getAAIGenericVnf(vnf.getVnfId());
1224 lookupKeyMap.put(ResourceKey.VOLUME_GROUP_ID, "volumeGroupId");
1225 BBInputSetupParameter parameter = new BBInputSetupParameter.Builder().setRequestId(REQUEST_ID)
1226 .setModelInfo(modelInfo).setService(service).setBbName(bbName).setServiceInstance(serviceInstance)
1227 .setLookupKeyMap(lookupKeyMap).setResourceId(resourceId).setRequestDetails(requestDetails)
1228 .setInstanceName(reqInfo.getInstanceName()).setServiceModel(serviceModel).build();
1229 SPY_bbInputSetup.populateVolumeGroup(parameter);
1230 verify(SPY_bbInputSetup, times(1)).mapCatalogVolumeGroup(eq(vg), isA(ModelInfo.class), eq(service),
1231 eq("vnfModelCustomizationUUID"));
1232 vnf.getVolumeGroups().clear();
1233 SPY_bbInputSetup.populateVolumeGroup(parameter);
1234 verify(SPY_bbInputSetup, times(1)).mapCatalogVolumeGroup(vnf.getVolumeGroups().get(0), modelInfo, service,
1235 "vnfModelCustomizationUUID");
1239 public void testMapCatalogVolumeGroup() {
1240 VolumeGroup volumeGroup = new VolumeGroup();
1241 RequestDetails requestDetails = new RequestDetails();
1242 ModelInfo modelInfo = new ModelInfo();
1243 modelInfo.setModelCustomizationUuid("modelCustomizationUUID");
1244 requestDetails.setModelInfo(modelInfo);
1245 Service service = new Service();
1246 VnfResourceCustomization resourceCust = new VnfResourceCustomization();
1247 resourceCust.setModelCustomizationUUID("vnfModelCustomizationUUID");
1248 service.getVnfCustomizations().add(resourceCust);
1249 VfModuleCustomization vfResourceCust = new VfModuleCustomization();
1250 vfResourceCust.setModelCustomizationUUID("modelCustomizationUUID");
1251 ModelInfoVfModule modelInfoVfModule = new ModelInfoVfModule();
1252 resourceCust.getVfModuleCustomizations().add(vfResourceCust);
1254 doReturn(modelInfoVfModule).when(bbInputSetupMapperLayer).mapCatalogVfModuleToVfModule(vfResourceCust);
1256 SPY_bbInputSetup.mapCatalogVolumeGroup(volumeGroup, modelInfo, service, "vnfModelCustomizationUUID");
1258 assertEquals(modelInfoVfModule, volumeGroup.getModelInfoVfModule());
1262 public void testPopulateL3Network() throws JsonParseException, JsonMappingException, IOException {
1263 String instanceName = "networkName";
1264 ModelInfo modelInfo = new ModelInfo();
1265 modelInfo.setModelType(ModelType.network);
1267 ServiceInstance serviceInstance = new ServiceInstance();
1268 L3Network network = new L3Network();
1269 network.setNetworkId("networkId");
1270 network.setNetworkName("networkName");
1271 serviceInstance.getNetworks().add(network);
1272 String resourceId = "123";
1274 Service service = mapper.readValue(
1275 new File(RESOURCE_PATH + "CatalogDBService_getServiceInstanceNOAAIInput.json"), Service.class);
1276 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
1277 lookupKeyMap.put(ResourceKey.NETWORK_ID, "networkId");
1278 String bbName = AssignFlows.NETWORK_A_LA_CARTE.toString();
1280 doNothing().when(SPY_bbInputSetup).mapCatalogNetwork(network, modelInfo, service);
1282 BBInputSetupParameter parameter = new BBInputSetupParameter.Builder().setRequestId(REQUEST_ID)
1283 .setInstanceName(instanceName).setModelInfo(modelInfo).setService(service).setBbName(bbName)
1284 .setServiceInstance(serviceInstance).setLookupKeyMap(lookupKeyMap).setResourceId(resourceId).build();
1285 SPY_bbInputSetup.populateL3Network(parameter);
1287 lookupKeyMap.put(ResourceKey.NETWORK_ID, null);
1289 SPY_bbInputSetup.populateL3Network(parameter);
1290 verify(SPY_bbInputSetup, times(1)).mapCatalogNetwork(network, modelInfo, service);
1292 instanceName = "networkName2";
1293 L3Network network2 = SPY_bbInputSetup.createNetwork(lookupKeyMap, instanceName, resourceId, null, parameter);
1294 SPY_bbInputSetup.populateL3Network(parameter);
1295 verify(SPY_bbInputSetup, times(2)).mapCatalogNetwork(network2, modelInfo, service);
1299 public void testMapCatalogNetwork() {
1300 ModelInfoNetwork modelInfoNetwork = new ModelInfoNetwork();
1301 L3Network network = new L3Network();
1303 RequestDetails requestDetails = new RequestDetails();
1304 ModelInfo modelInfo = new ModelInfo();
1305 modelInfo.setModelCustomizationUuid("modelCustomizationUUID");
1306 requestDetails.setModelInfo(modelInfo);
1307 Service service = new Service();
1308 NetworkResourceCustomization resourceCust = new NetworkResourceCustomization();
1309 resourceCust.setModelCustomizationUUID("modelCustomizationUUID");
1310 service.setNetworkCustomizations(Arrays.asList(new NetworkResourceCustomization[] {resourceCust}));
1312 doReturn(modelInfoNetwork).when(bbInputSetupMapperLayer).mapCatalogNetworkToNetwork(resourceCust);
1314 SPY_bbInputSetup.mapCatalogNetwork(network, modelInfo, service);
1316 assertEquals(modelInfoNetwork, network.getModelInfoNetwork());
1320 public void testPopulateConfiguration() throws JsonParseException, JsonMappingException, IOException {
1321 String instanceName = "configurationName";
1322 ModelInfo modelInfo = new ModelInfo();
1323 modelInfo.setModelCustomizationUuid("72d9d1cd-f46d-447a-abdb-451d6fb05fa9");
1325 ServiceInstance serviceInstance = new ServiceInstance();
1326 Configuration configuration = new Configuration();
1327 configuration.setConfigurationId("configurationId");
1328 configuration.setConfigurationName("configurationName");
1329 serviceInstance.getConfigurations().add(configuration);
1330 String resourceId = "configurationId";
1331 String vnfcName = "vnfcName";
1333 Service service = mapper.readValue(
1334 new File(RESOURCE_PATH + "CatalogDBService_getServiceInstanceNOAAIInput.json"), Service.class);
1335 ConfigurationResourceCustomization configurationCust = new ConfigurationResourceCustomization();
1336 configurationCust.setModelCustomizationUUID("72d9d1cd-f46d-447a-abdb-451d6fb05fa9");
1337 service.getConfigurationCustomizations().add(configurationCust);
1338 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
1339 lookupKeyMap.put(ResourceKey.CONFIGURATION_ID, "configurationId");
1340 String bbName = AssignFlows.FABRIC_CONFIGURATION.toString();
1342 ServiceModel serviceModel = new ServiceModel();
1343 serviceModel.setCurrentService(service);
1345 ConfigurationResourceKeys configResourceKeys = prepareConfigurationResourceKeys();
1346 configResourceKeys.setVnfcName(vnfcName);
1347 Vnfc vnfc = new Vnfc();
1348 vnfc.setVnfcName(vnfcName);
1349 RequestDetails requestDetails = new RequestDetails();
1350 doNothing().when(SPY_bbInputSetup).mapCatalogConfiguration(configuration, modelInfo, service,
1351 configResourceKeys);
1352 doReturn(vnfc).when(SPY_bbInputSetup).getVnfcToConfiguration(vnfcName);
1353 BBInputSetupParameter parameter = new BBInputSetupParameter.Builder().setRequestId(REQUEST_ID)
1354 .setModelInfo(modelInfo).setService(service).setBbName(bbName).setServiceInstance(serviceInstance)
1355 .setLookupKeyMap(lookupKeyMap).setResourceId(resourceId).setInstanceName(instanceName)
1356 .setConfigurationResourceKeys(configResourceKeys).setRequestDetails(requestDetails)
1357 .setServiceModel(serviceModel).build();
1358 SPY_bbInputSetup.populateConfiguration(parameter);
1359 verify(SPY_bbInputSetup, times(1)).mapCatalogConfiguration(configuration, modelInfo, service,
1360 configResourceKeys);
1362 lookupKeyMap.put(ResourceKey.CONFIGURATION_ID, null);
1364 SPY_bbInputSetup.populateConfiguration(parameter);
1365 verify(SPY_bbInputSetup, times(2)).mapCatalogConfiguration(configuration, modelInfo, service,
1366 configResourceKeys);
1368 instanceName = "configurationName2";
1369 resourceId = "resourceId2";
1370 lookupKeyMap.put(ResourceKey.CONFIGURATION_ID, "configurationId2");
1371 parameter.setInstanceName(instanceName);
1372 parameter.setResourceId(resourceId);
1373 Configuration configuration2 = SPY_bbInputSetup.createConfiguration(lookupKeyMap, instanceName, resourceId);
1374 doReturn(configuration2).when(SPY_bbInputSetup).createConfiguration(lookupKeyMap, instanceName, resourceId);
1375 doNothing().when(SPY_bbInputSetup).mapCatalogConfiguration(configuration2, modelInfo, service,
1376 configResourceKeys);
1377 SPY_bbInputSetup.populateConfiguration(parameter);
1378 verify(SPY_bbInputSetup, times(1)).mapCatalogConfiguration(configuration2, modelInfo, service,
1379 configResourceKeys);
1383 public void testPopulateConfigurationReplace() throws JsonParseException, JsonMappingException, IOException {
1384 String instanceName = "configurationName";
1385 ModelInfo modelInfo = new ModelInfo();
1386 modelInfo.setModelCustomizationUuid("72d9d1cd-f46d-447a-abdb-451d6fb05fa9");
1388 ServiceInstance serviceInstance = new ServiceInstance();
1389 Configuration configuration = new Configuration();
1390 configuration.setConfigurationId("configurationId");
1391 configuration.setConfigurationName("configurationName");
1392 serviceInstance.getConfigurations().add(configuration);
1393 String resourceId = "configurationId";
1394 String vnfcName = "vnfcName";
1396 Service service = mapper.readValue(
1397 new File(RESOURCE_PATH + "CatalogDBService_getServiceInstanceNOAAIInput.json"), Service.class);
1398 ConfigurationResourceCustomization configurationCust = new ConfigurationResourceCustomization();
1399 configurationCust.setModelCustomizationUUID("72d9d1cd-f46d-447a-abdb-451d6fb05fa9");
1400 service.getConfigurationCustomizations().add(configurationCust);
1401 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
1402 lookupKeyMap.put(ResourceKey.CONFIGURATION_ID, "configurationId");
1403 String bbName = AssignFlows.FABRIC_CONFIGURATION.toString();
1405 ServiceModel serviceModel = new ServiceModel();
1406 serviceModel.setNewService(service);
1408 ConfigurationResourceKeys configResourceKeys = prepareConfigurationResourceKeys();
1409 configResourceKeys.setVnfcName(vnfcName);
1410 Vnfc vnfc = new Vnfc();
1411 vnfc.setVnfcName(vnfcName);
1412 RequestDetails requestDetails = mapper.readValue(
1413 new File(RESOURCE_PATH + "RequestDetailsInput_withRelatedInstanceList.json"), RequestDetails.class);
1414 doNothing().when(SPY_bbInputSetup).mapCatalogConfiguration(configuration, modelInfo, service,
1415 configResourceKeys);
1416 doReturn(vnfc).when(SPY_bbInputSetup).getVnfcToConfiguration(vnfcName);
1417 BBInputSetupParameter parameter = new BBInputSetupParameter.Builder().setRequestId(REQUEST_ID)
1418 .setModelInfo(modelInfo).setService(service).setBbName(bbName).setServiceInstance(serviceInstance)
1419 .setLookupKeyMap(lookupKeyMap).setResourceId(resourceId).setInstanceName(instanceName)
1420 .setConfigurationResourceKeys(configResourceKeys).setRequestDetails(requestDetails)
1421 .setServiceModel(serviceModel).setIsReplace(true).build();
1422 SPY_bbInputSetup.populateConfiguration(parameter);
1423 configResourceKeys.setVnfResourceCustomizationUUID("my-test-uuid");
1424 verify(SPY_bbInputSetup, times(1)).mapCatalogConfiguration(configuration, modelInfo, service,
1425 configResourceKeys);
1429 public void testMapCatalogConfiguration() {
1430 ModelInfoNetwork modelInfoNetwork = new ModelInfoNetwork();
1431 L3Network network = new L3Network();
1433 RequestDetails requestDetails = new RequestDetails();
1434 ModelInfo modelInfo = new ModelInfo();
1435 modelInfo.setModelCustomizationUuid("modelCustomizationUUID");
1436 requestDetails.setModelInfo(modelInfo);
1437 Service service = new Service();
1438 NetworkResourceCustomization resourceCust = new NetworkResourceCustomization();
1439 resourceCust.setModelCustomizationUUID("modelCustomizationUUID");
1440 service.setNetworkCustomizations(Arrays.asList(new NetworkResourceCustomization[] {resourceCust}));
1442 doReturn(modelInfoNetwork).when(bbInputSetupMapperLayer).mapCatalogNetworkToNetwork(resourceCust);
1444 SPY_bbInputSetup.mapCatalogNetwork(network, modelInfo, service);
1446 assertEquals(modelInfoNetwork, network.getModelInfoNetwork());
1450 public void testPopulateFabricConfiguration() throws JsonParseException, JsonMappingException, IOException {
1451 String instanceName = "configurationName";
1452 ModelInfo modelInfo = new ModelInfo();
1453 modelInfo.setModelCustomizationUuid("72d9d1cd-f46d-447a-abdb-451d6fb05fa9");
1455 ServiceInstance serviceInstance = new ServiceInstance();
1456 Configuration configuration = new Configuration();
1457 configuration.setConfigurationId("configurationId");
1458 configuration.setConfigurationName("configurationName");
1459 configuration.setConfigurationSubType("Fabric Config");
1460 serviceInstance.getConfigurations().add(configuration);
1461 String resourceId = "configurationId";
1462 String vnfcName = "vnfcName";
1464 Service service = mapper.readValue(
1465 new File(RESOURCE_PATH + "CatalogDBService_getServiceInstanceNOAAIInput.json"), Service.class);
1466 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
1467 lookupKeyMap.put(ResourceKey.CONFIGURATION_ID, "configurationId");
1468 String bbName = AssignFlows.FABRIC_CONFIGURATION.toString();
1469 ConfigurationResourceKeys configResourceKeys = prepareConfigurationResourceKeys();
1470 configResourceKeys.setVnfcName(vnfcName);
1471 Vnfc vnfc = new Vnfc();
1472 vnfc.setVnfcName(vnfcName);
1473 RequestDetails requestDetails = new RequestDetails();
1475 ServiceModel serviceModel = new ServiceModel();
1476 serviceModel.setCurrentService(service);
1478 CvnfcConfigurationCustomization vnfVfmoduleCvnfcConfigurationCustomization =
1479 new CvnfcConfigurationCustomization();
1480 ConfigurationResource configurationResource = new ConfigurationResource();
1481 configurationResource.setModelUUID("modelUUID");
1482 configurationResource.setModelInvariantUUID("modelInvariantUUID");
1483 vnfVfmoduleCvnfcConfigurationCustomization.setConfigurationResource(configurationResource);
1485 doReturn(null).when(SPY_bbInputSetup).findConfigurationResourceCustomization(modelInfo, service);
1486 doReturn(vnfc).when(SPY_bbInputSetup).getVnfcToConfiguration(vnfcName);
1487 BBInputSetupParameter parameter = new BBInputSetupParameter.Builder().setRequestId(REQUEST_ID)
1488 .setModelInfo(modelInfo).setService(service).setBbName(bbName).setServiceInstance(serviceInstance)
1489 .setLookupKeyMap(lookupKeyMap).setResourceId(resourceId).setInstanceName(instanceName)
1490 .setConfigurationResourceKeys(configResourceKeys).setRequestDetails(requestDetails)
1491 .setServiceModel(serviceModel).build();
1492 SPY_bbInputSetup.populateConfiguration(parameter);
1493 verify(SPY_bbInputSetup, times(1)).mapCatalogConfiguration(configuration, modelInfo, service,
1494 configResourceKeys);
1498 public void testPopulateGenericVnf() throws JsonParseException, JsonMappingException, IOException {
1499 org.onap.so.serviceinstancebeans.Platform platform = new org.onap.so.serviceinstancebeans.Platform();
1500 org.onap.so.serviceinstancebeans.LineOfBusiness lineOfBusiness =
1501 new org.onap.so.serviceinstancebeans.LineOfBusiness();
1502 String instanceName = "vnfName";
1503 ModelInfo modelInfo = new ModelInfo();
1504 modelInfo.setModelType(ModelType.vnf);
1505 ServiceInstance serviceInstance = new ServiceInstance();
1506 GenericVnf vnf = new GenericVnf();
1507 vnf.setVnfId("genericVnfId");
1508 vnf.setVnfName("vnfName");
1509 serviceInstance.getVnfs().add(vnf);
1510 String vnfType = "vnfType";
1511 String applicationId = "applicationId";
1512 RequestDetails requestDetails =
1513 mapper.readValue(new File(RESOURCE_PATH + "RequestDetails_CreateVnf.json"), RequestDetails.class);
1515 Service service = mapper.readValue(
1516 new File(RESOURCE_PATH + "CatalogDBService_getServiceInstanceNOAAIInput.json"), Service.class);
1517 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
1518 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "genericVnfId");
1519 String bbName = AssignFlows.VNF.toString();
1522 ServiceModel serviceModel = new ServiceModel();
1523 serviceModel.setCurrentService(service);
1525 Platform expectedPlatform = new Platform();
1526 LineOfBusiness expectedLineOfBusiness = new LineOfBusiness();
1527 String resourceId = "123";
1528 doReturn(expectedPlatform).when(bbInputSetupMapperLayer).mapRequestPlatform(platform);
1529 doReturn(expectedLineOfBusiness).when(bbInputSetupMapperLayer).mapRequestLineOfBusiness(lineOfBusiness);
1530 org.onap.aai.domain.yang.GenericVnf vnfAAI = new org.onap.aai.domain.yang.GenericVnf();
1531 vnfAAI.setModelCustomizationId("modelCustId");
1532 doReturn(vnfAAI).when(SPY_bbInputSetupUtils).getAAIGenericVnf(vnf.getVnfId());
1533 doNothing().when(SPY_bbInputSetup).mapCatalogVnf(vnf, modelInfo, service);
1534 org.onap.aai.domain.yang.InstanceGroup instanceGroupAAI = new org.onap.aai.domain.yang.InstanceGroup();
1535 doReturn(instanceGroupAAI).when(SPY_bbInputSetupUtils).getAAIInstanceGroup(any());
1536 org.onap.so.db.catalog.beans.InstanceGroup catalogInstanceGroup =
1537 new org.onap.so.db.catalog.beans.InstanceGroup();
1538 doReturn(catalogInstanceGroup).when(SPY_bbInputSetupUtils).getCatalogInstanceGroup(any());
1539 BBInputSetupParameter parameter = new BBInputSetupParameter.Builder().setRequestId(REQUEST_ID)
1540 .setModelInfo(modelInfo).setInstanceName(instanceName).setPlatform(platform)
1541 .setLineOfBusiness(lineOfBusiness).setService(service).setBbName(bbName)
1542 .setServiceInstance(serviceInstance).setLookupKeyMap(lookupKeyMap)
1543 .setRelatedInstanceList(requestDetails.getRelatedInstanceList()).setResourceId(resourceId)
1544 .setVnfType(vnfType).setProductFamilyId(requestDetails.getRequestInfo().getProductFamilyId())
1545 .setServiceModel(serviceModel).build();
1546 SPY_bbInputSetup.populateGenericVnf(parameter);
1548 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, null);
1550 SPY_bbInputSetup.populateGenericVnf(parameter);
1551 verify(SPY_bbInputSetup, times(1)).mapCatalogVnf(vnf, modelInfo, service);
1553 instanceName = "vnfName2";
1554 GenericVnf vnf2 = SPY_bbInputSetup.createGenericVnf(lookupKeyMap, instanceName, platform, lineOfBusiness,
1555 resourceId, vnfType, null, requestDetails.getRequestInfo().getProductFamilyId(), applicationId);
1557 doNothing().when(SPY_bbInputSetup).mapNetworkCollectionInstanceGroup(vnf2, "{instanceGroupId}");
1558 doNothing().when(SPY_bbInputSetup).mapVnfcCollectionInstanceGroup(vnf2, modelInfo, service);
1560 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "genericVnfId2");
1562 SPY_bbInputSetup.populateGenericVnf(parameter);
1563 verify(SPY_bbInputSetup, times(2)).mapCatalogVnf(vnf2, modelInfo, service);
1564 verify(SPY_bbInputSetup, times(2)).mapNetworkCollectionInstanceGroup(vnf2, "{instanceGroupId}");
1565 verify(SPY_bbInputSetup, times(2)).mapVnfcCollectionInstanceGroup(vnf2, modelInfo, service);
1567 assertEquals("modelCustId", modelInfo.getModelCustomizationUuid());
1572 public void testPopulateGenericVnfReplace() throws JsonParseException, JsonMappingException, IOException {
1573 org.onap.so.serviceinstancebeans.Platform platform = new org.onap.so.serviceinstancebeans.Platform();
1574 org.onap.so.serviceinstancebeans.LineOfBusiness lineOfBusiness =
1575 new org.onap.so.serviceinstancebeans.LineOfBusiness();
1576 String instanceName = "vnfName";
1577 ModelInfo modelInfo = new ModelInfo();
1578 modelInfo.setModelType(ModelType.vnf);
1579 ServiceInstance serviceInstance = new ServiceInstance();
1580 GenericVnf vnf = new GenericVnf();
1581 vnf.setVnfId("genericVnfId");
1582 vnf.setVnfName("vnfName");
1583 serviceInstance.getVnfs().add(vnf);
1584 String vnfType = "vnfType";
1585 String applicationId = "applicationId";
1586 RequestDetails requestDetails =
1587 mapper.readValue(new File(RESOURCE_PATH + "RequestDetails_CreateVnf.json"), RequestDetails.class);
1589 Service service = mapper.readValue(
1590 new File(RESOURCE_PATH + "CatalogDBService_getServiceInstanceNOAAIInput.json"), Service.class);
1591 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
1592 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "genericVnfId");
1593 String bbName = AssignFlows.VNF.toString();
1595 String resourceId = "123";
1596 org.onap.aai.domain.yang.GenericVnf vnfAAI = new org.onap.aai.domain.yang.GenericVnf();
1597 vnfAAI.setModelCustomizationId("modelCustId");
1598 doReturn(vnfAAI).when(SPY_bbInputSetupUtils).getAAIGenericVnf(vnf.getVnfId());
1599 doNothing().when(SPY_bbInputSetup).mapCatalogVnf(vnf, modelInfo, service);
1600 org.onap.aai.domain.yang.InstanceGroup instanceGroupAAI = new org.onap.aai.domain.yang.InstanceGroup();
1601 doReturn(instanceGroupAAI).when(SPY_bbInputSetupUtils).getAAIInstanceGroup(any());
1602 org.onap.so.db.catalog.beans.InstanceGroup catalogInstanceGroup =
1603 new org.onap.so.db.catalog.beans.InstanceGroup();
1604 doReturn(catalogInstanceGroup).when(SPY_bbInputSetupUtils).getCatalogInstanceGroup(any());
1606 BBInputSetupParameter parameter = new BBInputSetupParameter.Builder().setModelInfo(modelInfo)
1607 .setInstanceName(instanceName).setPlatform(platform).setLineOfBusiness(lineOfBusiness)
1608 .setService(service).setBbName(bbName).setServiceInstance(serviceInstance).setLookupKeyMap(lookupKeyMap)
1609 .setRelatedInstanceList(requestDetails.getRelatedInstanceList()).setResourceId(resourceId)
1610 .setVnfType(vnfType).setProductFamilyId(requestDetails.getRequestInfo().getProductFamilyId())
1611 .setApplicationId(applicationId).setIsReplace(true).build();
1613 SPY_bbInputSetup.populateGenericVnf(parameter);
1615 assertEquals("my-test-uuid", modelInfo.getModelCustomizationUuid());
1620 public void testMapVnfcCollectionInstanceGroup() {
1621 VnfResourceCustomization vnfResourceCust = Mockito.mock(VnfResourceCustomization.class);
1622 GenericVnf genericVnf = new GenericVnf();
1623 ModelInfo modelInfo = Mockito.mock(ModelInfo.class);
1624 Service service = Mockito.mock(Service.class);
1625 org.onap.so.db.catalog.beans.InstanceGroup instanceGroup = new org.onap.so.db.catalog.beans.InstanceGroup();
1626 instanceGroup.setModelUUID("modelUUID");
1627 List<VnfcInstanceGroupCustomization> vnfcInstanceGroups = new ArrayList<>();
1628 VnfcInstanceGroupCustomization vnfcInstanceGroupCust = new VnfcInstanceGroupCustomization();
1629 vnfcInstanceGroupCust.setInstanceGroup(instanceGroup);
1630 vnfcInstanceGroupCust.setFunction("function");
1631 vnfcInstanceGroupCust.setDescription("description");
1632 vnfcInstanceGroups.add(vnfcInstanceGroupCust);
1634 ModelInfoInstanceGroup modelInfoInstanceGroup = new ModelInfoInstanceGroup();
1635 modelInfoInstanceGroup.setModelUUID("modelUUID");
1636 doReturn(vnfResourceCust).when(SPY_bbInputSetup).getVnfResourceCustomizationFromService(modelInfo, service);
1637 doReturn(vnfcInstanceGroups).when(vnfResourceCust).getVnfcInstanceGroupCustomizations();
1638 doReturn(instanceGroup).when(SPY_bbInputSetupUtils).getCatalogInstanceGroup("modelUUID");
1639 doReturn(modelInfoInstanceGroup).when(bbInputSetupMapperLayer).mapCatalogInstanceGroupToInstanceGroup(null,
1642 SPY_bbInputSetup.mapVnfcCollectionInstanceGroup(genericVnf, modelInfo, service);
1644 assertEquals("Instance Group was created", true, genericVnf.getInstanceGroups().size() == 1);
1648 public void testPopulateGenericVnfWhereVnfTypeIsNull()
1649 throws JsonParseException, JsonMappingException, IOException {
1650 org.onap.so.serviceinstancebeans.Platform platform = new org.onap.so.serviceinstancebeans.Platform();
1651 org.onap.so.serviceinstancebeans.LineOfBusiness lineOfBusiness =
1652 new org.onap.so.serviceinstancebeans.LineOfBusiness();
1653 String instanceName = "vnfName";
1654 ModelInfo modelInfo = new ModelInfo();
1655 modelInfo.setModelType(ModelType.vnf);
1657 ServiceInstance serviceInstance = new ServiceInstance();
1658 GenericVnf vnf = new GenericVnf();
1659 vnf.setVnfId("genericVnfId");
1660 vnf.setVnfName("vnfName");
1661 serviceInstance.getVnfs().add(vnf);
1662 String vnfType = null;
1663 RequestDetails requestDetails =
1664 mapper.readValue(new File(RESOURCE_PATH + "RequestDetails_CreateVnf.json"), RequestDetails.class);
1666 Service service = mapper.readValue(
1667 new File(RESOURCE_PATH + "CatalogDBService_getServiceInstanceNOAAIInput.json"), Service.class);
1668 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
1669 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "genericVnfId");
1670 String bbName = AssignFlows.VNF.toString();
1672 Platform expectedPlatform = new Platform();
1673 LineOfBusiness expectedLineOfBusiness = new LineOfBusiness();
1674 String resourceId = "123";
1675 String applicationId = "applicationId";
1676 doReturn(expectedPlatform).when(bbInputSetupMapperLayer).mapRequestPlatform(platform);
1677 doReturn(expectedLineOfBusiness).when(bbInputSetupMapperLayer).mapRequestLineOfBusiness(lineOfBusiness);
1678 org.onap.aai.domain.yang.GenericVnf vnfAAI = new org.onap.aai.domain.yang.GenericVnf();
1679 vnfAAI.setModelCustomizationId("modelCustId");
1680 doReturn(vnfAAI).when(SPY_bbInputSetupUtils).getAAIGenericVnf(vnf.getVnfId());
1681 doNothing().when(SPY_bbInputSetup).mapCatalogVnf(vnf, modelInfo, service);
1682 org.onap.aai.domain.yang.InstanceGroup instanceGroupAAI = new org.onap.aai.domain.yang.InstanceGroup();
1683 doReturn(instanceGroupAAI).when(SPY_bbInputSetupUtils).getAAIInstanceGroup(any());
1684 org.onap.so.db.catalog.beans.InstanceGroup catalogInstanceGroup =
1685 new org.onap.so.db.catalog.beans.InstanceGroup();
1686 doReturn(catalogInstanceGroup).when(SPY_bbInputSetupUtils).getCatalogInstanceGroup(any());
1687 BBInputSetupParameter parameter = new BBInputSetupParameter.Builder().setRequestId(REQUEST_ID)
1688 .setModelInfo(modelInfo).setInstanceName(instanceName).setPlatform(platform)
1689 .setLineOfBusiness(lineOfBusiness).setService(service).setBbName(bbName)
1690 .setServiceInstance(serviceInstance).setLookupKeyMap(lookupKeyMap)
1691 .setRelatedInstanceList(requestDetails.getRelatedInstanceList()).setResourceId(resourceId)
1692 .setVnfType(vnfType).setProductFamilyId(requestDetails.getRequestInfo().getProductFamilyId()).build();
1693 SPY_bbInputSetup.populateGenericVnf(parameter);
1695 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, null);
1697 SPY_bbInputSetup.populateGenericVnf(parameter);
1698 verify(SPY_bbInputSetup, times(1)).mapCatalogVnf(vnf, modelInfo, service);
1700 instanceName = "vnfName2";
1701 GenericVnf vnf2 = SPY_bbInputSetup.createGenericVnf(lookupKeyMap, instanceName, platform, lineOfBusiness,
1702 resourceId, vnfType, null, requestDetails.getRequestInfo().getProductFamilyId(), applicationId);
1704 org.onap.aai.domain.yang.GenericVnf vnf2AAI = new org.onap.aai.domain.yang.GenericVnf();
1705 vnfAAI.setModelCustomizationId("modelCustId2");
1706 doReturn(vnf2AAI).when(SPY_bbInputSetupUtils).getAAIGenericVnf(vnf2.getVnfId());
1707 doNothing().when(SPY_bbInputSetup).mapCatalogVnf(vnf2, modelInfo, service);
1708 doNothing().when(SPY_bbInputSetup).mapNetworkCollectionInstanceGroup(vnf2, "{instanceGroupId}");
1709 SPY_bbInputSetup.populateGenericVnf(parameter);
1710 verify(SPY_bbInputSetup, times(2)).mapCatalogVnf(vnf2, modelInfo, service);
1711 verify(SPY_bbInputSetup, times(2)).mapNetworkCollectionInstanceGroup(vnf2, "{instanceGroupId}");
1712 verify(SPY_bbInputSetup, times(1)).mapVnfcCollectionInstanceGroup(vnf2, modelInfo, service);
1716 public void testMapCatalogVnf() {
1717 ModelInfoGenericVnf modelInfoGenericVnf = new ModelInfoGenericVnf();
1718 GenericVnf genericVnf = new GenericVnf();
1719 RequestDetails requestDetails = new RequestDetails();
1720 ModelInfo modelInfo = new ModelInfo();
1721 modelInfo.setModelCustomizationUuid("modelCustomizationUUID");
1722 requestDetails.setModelInfo(modelInfo);
1723 Service service = new Service();
1724 VnfResourceCustomization resourceCust = new VnfResourceCustomization();
1725 resourceCust.setModelCustomizationUUID("vnfModelCustomizationUUID");
1726 service.getVnfCustomizations().add(resourceCust);
1727 resourceCust.setModelCustomizationUUID("modelCustomizationUUID");
1729 doReturn(modelInfoGenericVnf).when(bbInputSetupMapperLayer).mapCatalogVnfToVnf(resourceCust);
1731 SPY_bbInputSetup.mapCatalogVnf(genericVnf, modelInfo, service);
1733 assertEquals(modelInfoGenericVnf, genericVnf.getModelInfoGenericVnf());
1737 public void testMapCatalogCollectionAndInstanceGroup() {
1738 ModelInfoCollection modelInfoCollection = new ModelInfoCollection();
1739 modelInfoCollection.setCollectionFunction("collectionFunction");
1740 modelInfoCollection.setCollectionRole("collectionRole");
1741 modelInfoCollection.setCollectionType("collectionType");
1742 modelInfoCollection.setDescription("description");
1743 modelInfoCollection.setModelInvariantUUID("modelInvariantUUID");
1744 modelInfoCollection.setQuantity(0);
1746 ModelInfoInstanceGroup modelInfoInstanceGroup = new ModelInfoInstanceGroup();
1747 modelInfoInstanceGroup.setFunction("function");
1748 modelInfoInstanceGroup.setInstanceGroupRole("instanceGroupRole");
1749 modelInfoInstanceGroup.setModelInvariantUUID("modelInvariantUUID");
1750 modelInfoInstanceGroup.setModelUUID("modelUUID");
1751 modelInfoInstanceGroup.setType("VNFC");
1752 modelInfoInstanceGroup.setDescription("description");
1754 InstanceGroup instanceGroup = new InstanceGroup();
1755 Collection collection = new Collection();
1756 collection.setInstanceGroup(instanceGroup);
1758 CollectionResource collectionResource = new CollectionResource();
1759 org.onap.so.db.catalog.beans.InstanceGroup catalogInstanceGroup =
1760 new org.onap.so.db.catalog.beans.InstanceGroup();
1761 collectionResource.setToscaNodeType("NetworkCollection");
1762 collectionResource.setInstanceGroup(catalogInstanceGroup);
1764 CollectionResourceCustomization collectionCust = new NetworkCollectionResourceCustomization();
1765 collectionCust.setModelCustomizationUUID("modelCustomizationUUID");
1766 collectionCust.setCollectionResource(collectionResource);
1768 Service service = new Service();
1769 service.getCollectionResourceCustomizations().add(collectionCust);
1770 ServiceInstance serviceInstance = new ServiceInstance();
1771 serviceInstance.setCollection(collection);
1773 List<CollectionResourceInstanceGroupCustomization> instanceGroupCustList = new ArrayList<>();
1774 CollectionResourceInstanceGroupCustomization instanceGroupCust =
1775 new CollectionResourceInstanceGroupCustomization();
1776 instanceGroupCust.setFunction("function");
1777 instanceGroupCust.setDescription("description");
1779 doReturn(modelInfoCollection).when(bbInputSetupMapperLayer).mapCatalogCollectionToCollection(collectionCust,
1780 collectionResource);
1782 doReturn(modelInfoInstanceGroup).when(bbInputSetupMapperLayer)
1783 .mapCatalogInstanceGroupToInstanceGroup(collectionCust, catalogInstanceGroup);
1785 SPY_bbInputSetup.mapCatalogCollection(service, serviceInstance.getCollection(), "modelCustomizationUUID");
1786 SPY_bbInputSetup.mapCatalogNetworkCollectionInstanceGroup(service,
1787 serviceInstance.getCollection().getInstanceGroup(), collectionCust.getModelCustomizationUUID());
1789 assertThat(collection.getModelInfoCollection(), sameBeanAs(modelInfoCollection));
1790 assertThat(instanceGroup.getModelInfoInstanceGroup(), sameBeanAs(modelInfoInstanceGroup));
1794 public void testAddRelationshipsToSI() throws Exception {
1795 ServiceInstance serviceInstance = new ServiceInstance();
1796 org.onap.aai.domain.yang.ServiceInstance serviceInstanceAAI = new org.onap.aai.domain.yang.ServiceInstance();
1797 serviceInstanceAAI.setServiceInstanceId("serviceInstanceId");
1799 org.onap.aai.domain.yang.RelationshipList relationshipList = new org.onap.aai.domain.yang.RelationshipList();
1800 org.onap.aai.domain.yang.Relationship relationship = new org.onap.aai.domain.yang.Relationship();
1801 relationshipList.getRelationship().add(relationship);
1802 serviceInstanceAAI.setRelationshipList(relationshipList);
1804 Map<String, String> uriKeys = new HashMap<>();
1805 uriKeys.put("global-customer-id", "globalCustomerId");
1806 uriKeys.put("service-type", "serviceType");
1809 doNothing().when(SPY_bbInputSetup).mapProject(any(), eq(serviceInstance));
1810 doNothing().when(SPY_bbInputSetup).mapOwningEntity(any(), eq(serviceInstance));
1811 doNothing().when(SPY_bbInputSetup).mapL3Networks(any(), eq(serviceInstance.getNetworks()));
1812 doNothing().when(SPY_bbInputSetup).mapGenericVnfs(any(), eq(serviceInstance.getVnfs()));
1813 doNothing().when(SPY_bbInputSetup).mapCollection(any(), eq(serviceInstance));
1815 SPY_bbInputSetup.addRelationshipsToSI(serviceInstanceAAI, serviceInstance);
1817 verify(SPY_bbInputSetup, times(1)).mapProject(any(), eq(serviceInstance));
1818 verify(SPY_bbInputSetup, times(1)).mapOwningEntity(any(), eq(serviceInstance));
1819 verify(SPY_bbInputSetup, times(1)).mapL3Networks(any(), eq(serviceInstance.getNetworks()));
1820 verify(SPY_bbInputSetup, times(1)).mapGenericVnfs(any(), eq(serviceInstance.getVnfs()));
1821 verify(SPY_bbInputSetup, times(1)).mapCollection(any(), eq(serviceInstance));
1822 verify(SPY_bbInputSetup, times(1)).mapConfigurations(any(), eq(serviceInstance.getConfigurations()));
1826 public void testMapConfigurations() throws JsonProcessingException {
1827 org.onap.aai.domain.yang.Configuration expectedAAI = new org.onap.aai.domain.yang.Configuration();
1828 org.onap.aai.domain.yang.RelationshipList relationshipList = new org.onap.aai.domain.yang.RelationshipList();
1829 org.onap.aai.domain.yang.Relationship relationship = new org.onap.aai.domain.yang.Relationship();
1830 relationshipList.getRelationship().add(relationship);
1831 expectedAAI.setRelationshipList(relationshipList);
1833 Configuration expected = new Configuration();
1834 AAIResourceUri aaiResourceUri =
1835 AAIUriFactory.createResourceUri(AAIFluentTypeBuilder.network().configuration("configurationId"));
1836 AAIResultWrapper configurationWrapper =
1837 new AAIResultWrapper(new AAICommonObjectMapperProvider().getMapper().writeValueAsString(expectedAAI));
1839 doReturn(configurationWrapper).when(SPY_bbInputSetupUtils).getAAIResourceDepthOne(aaiResourceUri);
1840 doReturn(expected).when(bbInputSetupMapperLayer)
1841 .mapAAIConfiguration(isA(org.onap.aai.domain.yang.Configuration.class));
1843 List<Configuration> configurations = new ArrayList<>();
1845 SPY_bbInputSetup.mapConfigurations(Arrays.asList(new AAIResourceUri[] {aaiResourceUri}), configurations);
1847 assertEquals(expected, configurations.get(0));
1851 public void testMapGenericVnfs() throws JsonProcessingException {
1852 org.onap.aai.domain.yang.GenericVnf expectedAAI = new org.onap.aai.domain.yang.GenericVnf();
1853 org.onap.aai.domain.yang.RelationshipList relationshipList = new org.onap.aai.domain.yang.RelationshipList();
1854 org.onap.aai.domain.yang.Relationship relationship = new org.onap.aai.domain.yang.Relationship();
1855 relationshipList.getRelationship().add(relationship);
1856 expectedAAI.setRelationshipList(relationshipList);
1858 GenericVnf expected = new GenericVnf();
1859 AAIResourceUri aaiResourceUri =
1860 AAIUriFactory.createResourceUri(AAIFluentTypeBuilder.network().genericVnf("vnfId"));
1861 AAIResultWrapper vnfWrapper =
1862 new AAIResultWrapper(new AAICommonObjectMapperProvider().getMapper().writeValueAsString(expectedAAI));
1864 doReturn(vnfWrapper).when(SPY_bbInputSetupUtils).getAAIResourceDepthOne(aaiResourceUri);
1865 doReturn(expected).when(bbInputSetupMapperLayer)
1866 .mapAAIGenericVnfIntoGenericVnf(isA(org.onap.aai.domain.yang.GenericVnf.class));
1867 doNothing().when(SPY_bbInputSetup).mapPlatform(any(), eq(expected));
1868 doNothing().when(SPY_bbInputSetup).mapLineOfBusiness(any(), eq(expected));
1869 doReturn(new ArrayList<>()).when(SPY_bbInputSetup).mapVolumeGroups(any());
1871 List<GenericVnf> genericVnfs = new ArrayList<>();
1873 SPY_bbInputSetup.mapGenericVnfs(Arrays.asList(new AAIResourceUri[] {aaiResourceUri}), genericVnfs);
1875 assertEquals(expected, genericVnfs.get(0));
1876 verify(SPY_bbInputSetup, times(1)).mapPlatform(any(), eq(expected));
1877 verify(SPY_bbInputSetup, times(1)).mapLineOfBusiness(any(), eq(expected));
1878 verify(SPY_bbInputSetup, times(1)).mapVolumeGroups(any());
1882 public void testMapPnfs() throws JsonProcessingException {
1883 org.onap.aai.domain.yang.Pnf expectedAAI = new org.onap.aai.domain.yang.Pnf();
1884 org.onap.aai.domain.yang.RelationshipList relationshipList = new org.onap.aai.domain.yang.RelationshipList();
1885 org.onap.aai.domain.yang.Relationship relationship = new org.onap.aai.domain.yang.Relationship();
1886 relationshipList.getRelationship().add(relationship);
1887 expectedAAI.setRelationshipList(relationshipList);
1889 Pnf expected = new Pnf();
1890 AAIResourceUri aaiResourceUri = AAIUriFactory.createResourceUri(AAIFluentTypeBuilder.network().pnf("pnfId"));
1891 AAIResultWrapper pnfWrapper =
1892 new AAIResultWrapper(new AAICommonObjectMapperProvider().getMapper().writeValueAsString(expectedAAI));
1894 doReturn(pnfWrapper).when(SPY_bbInputSetupUtils).getAAIResourceDepthOne(aaiResourceUri);
1895 doReturn(expected).when(bbInputSetupMapperLayer).mapAAIPnfIntoPnf(isA(org.onap.aai.domain.yang.Pnf.class));
1897 List<Pnf> pnfs = new ArrayList<>();
1899 SPY_bbInputSetup.mapPnfs(Arrays.asList(aaiResourceUri), pnfs);
1901 assertEquals(expected, pnfs.get(0));
1905 public void testMapVolumeGroups() throws JsonProcessingException {
1906 org.onap.aai.domain.yang.VolumeGroup expectedAAI = new org.onap.aai.domain.yang.VolumeGroup();
1908 VolumeGroup expected = new VolumeGroup();
1909 AAIResultWrapper vnfWrapper =
1910 new AAIResultWrapper(new AAICommonObjectMapperProvider().getMapper().writeValueAsString(expectedAAI));
1912 doReturn(expected).when(bbInputSetupMapperLayer)
1913 .mapAAIVolumeGroup(isA(org.onap.aai.domain.yang.VolumeGroup.class));
1915 List<VolumeGroup> volumeGroupsList =
1916 SPY_bbInputSetup.mapVolumeGroups(Arrays.asList(new AAIResultWrapper[] {vnfWrapper}));
1918 assertEquals(expected, volumeGroupsList.get(0));
1922 public void testMapLineOfBusiness() throws JsonProcessingException {
1923 org.onap.aai.domain.yang.LineOfBusiness expectedAAI = new org.onap.aai.domain.yang.LineOfBusiness();
1925 LineOfBusiness expected = new LineOfBusiness();
1926 AAIResultWrapper vnfWrapper =
1927 new AAIResultWrapper(new AAICommonObjectMapperProvider().getMapper().writeValueAsString(expectedAAI));
1929 doReturn(expected).when(bbInputSetupMapperLayer)
1930 .mapAAILineOfBusiness(isA(org.onap.aai.domain.yang.LineOfBusiness.class));
1932 GenericVnf vnf = new GenericVnf();
1934 SPY_bbInputSetup.mapLineOfBusiness(Arrays.asList(new AAIResultWrapper[] {vnfWrapper}), vnf);
1936 assertEquals(expected, vnf.getLineOfBusiness());
1940 public void testMapPlatform() throws JsonProcessingException {
1941 org.onap.aai.domain.yang.Platform expectedAAI = new org.onap.aai.domain.yang.Platform();
1943 Platform expected = new Platform();
1944 AAIResultWrapper vnfWrapper =
1945 new AAIResultWrapper(new AAICommonObjectMapperProvider().getMapper().writeValueAsString(expectedAAI));
1947 doReturn(expected).when(bbInputSetupMapperLayer).mapAAIPlatform(isA(org.onap.aai.domain.yang.Platform.class));
1949 GenericVnf vnf = new GenericVnf();
1951 SPY_bbInputSetup.mapPlatform(Arrays.asList(new AAIResultWrapper[] {vnfWrapper}), vnf);
1953 assertEquals(expected, vnf.getPlatform());
1957 public void testMapCollection() throws JsonProcessingException {
1958 List<AAIResultWrapper> collections = new ArrayList<>();
1959 ServiceInstance serviceInstance = new ServiceInstance();
1961 org.onap.aai.domain.yang.Collection aaiCollection = new org.onap.aai.domain.yang.Collection();
1962 org.onap.aai.domain.yang.RelationshipList collectionRelationshipList =
1963 new org.onap.aai.domain.yang.RelationshipList();
1964 org.onap.aai.domain.yang.Relationship collectionInstanceGroupRelationship =
1965 new org.onap.aai.domain.yang.Relationship();
1966 collectionRelationshipList.getRelationship().add(collectionInstanceGroupRelationship);
1967 aaiCollection.setRelationshipList(collectionRelationshipList);
1969 collections.add(new AAIResultWrapper(
1970 new AAICommonObjectMapperProvider().getMapper().writeValueAsString(aaiCollection)));
1972 Collection collection = new Collection();
1973 ModelInfoCollection modelInfoCollection = new ModelInfoCollection();
1974 List<InstanceGroup> instanceGroupsList = new ArrayList<>();
1975 InstanceGroup instanceGroup = new InstanceGroup();
1976 instanceGroupsList.add(instanceGroup);
1977 NetworkCollectionResourceCustomization networkCollectionCust =
1978 Mockito.mock(NetworkCollectionResourceCustomization.class);
1979 CollectionResource collectionResource = new CollectionResource();
1980 doReturn(collection).when(bbInputSetupMapperLayer)
1981 .mapAAICollectionIntoCollection(isA(org.onap.aai.domain.yang.Collection.class));
1982 doReturn(instanceGroupsList).when(SPY_bbInputSetup).mapInstanceGroups(any());
1983 doReturn(networkCollectionCust).when(SPY_bbInputSetupUtils)
1984 .getCatalogNetworkCollectionResourceCustByID(aaiCollection.getCollectionCustomizationId());
1985 doReturn(collectionResource).when(networkCollectionCust).getCollectionResource();
1986 doReturn(modelInfoCollection).when(bbInputSetupMapperLayer)
1987 .mapCatalogCollectionToCollection(networkCollectionCust, collectionResource);
1989 SPY_bbInputSetup.mapCollection(collections, serviceInstance);
1991 assertEquals(collection, serviceInstance.getCollection());
1992 assertEquals(instanceGroup, collection.getInstanceGroup());
1994 instanceGroupsList.clear();
1995 collection = new Collection();
1997 SPY_bbInputSetup.mapCollection(collections, serviceInstance);
1998 assertEquals(collection, serviceInstance.getCollection());
1999 assertNull(collection.getInstanceGroup());
2003 public void testMapL3Networks() throws JsonProcessingException {
2004 org.onap.aai.domain.yang.L3Network expectedAAI = new org.onap.aai.domain.yang.L3Network();
2005 org.onap.aai.domain.yang.RelationshipList relationshipList = new org.onap.aai.domain.yang.RelationshipList();
2006 org.onap.aai.domain.yang.Relationship relationship = new org.onap.aai.domain.yang.Relationship();
2007 relationshipList.getRelationship().add(relationship);
2008 expectedAAI.setRelationshipList(relationshipList);
2010 L3Network expected = new L3Network();
2011 List<L3Network> l3Networks = new ArrayList<>();
2012 AAIResultWrapper l3NetworksWrapper =
2013 new AAIResultWrapper(new AAICommonObjectMapperProvider().getMapper().writeValueAsString(expectedAAI));
2014 AAIResourceUri aaiResourceUri =
2015 AAIUriFactory.createResourceUri(AAIFluentTypeBuilder.network().l3Network("networkId"));
2017 doReturn(l3NetworksWrapper).when(SPY_bbInputSetupUtils).getAAIResourceDepthTwo(aaiResourceUri);
2018 doReturn(expected).when(bbInputSetupMapperLayer).mapAAIL3Network(isA(org.onap.aai.domain.yang.L3Network.class));
2019 doNothing().when(SPY_bbInputSetup).mapNetworkPolicies(any(), eq(expected.getNetworkPolicies()));
2020 doNothing().when(SPY_bbInputSetup).mapRouteTableReferences(any(),
2021 eq(expected.getContrailNetworkRouteTableReferences()));
2023 SPY_bbInputSetup.mapL3Networks(Arrays.asList(new AAIResourceUri[] {aaiResourceUri}), l3Networks);
2025 assertEquals(expected, l3Networks.get(0));
2026 verify(SPY_bbInputSetup, times(1)).mapNetworkPolicies(any(), eq(expected.getNetworkPolicies()));
2027 verify(SPY_bbInputSetup, times(1)).mapRouteTableReferences(any(),
2028 eq(expected.getContrailNetworkRouteTableReferences()));
2032 public void testMapRouteTableReferences() throws JsonProcessingException {
2033 org.onap.aai.domain.yang.RouteTableReference expectedAAI = new org.onap.aai.domain.yang.RouteTableReference();
2035 RouteTableReference expected = new RouteTableReference();
2036 List<RouteTableReference> contrailNetworkRouteTableReferences = new ArrayList<>();
2037 AAIResultWrapper vnfWrapper =
2038 new AAIResultWrapper(new AAICommonObjectMapperProvider().getMapper().writeValueAsString(expectedAAI));
2040 doReturn(expected).when(bbInputSetupMapperLayer).mapAAIRouteTableReferenceIntoRouteTableReference(
2041 isA(org.onap.aai.domain.yang.RouteTableReference.class));
2043 SPY_bbInputSetup.mapRouteTableReferences(Arrays.asList(new AAIResultWrapper[] {vnfWrapper}),
2044 contrailNetworkRouteTableReferences);
2046 assertEquals(expected, contrailNetworkRouteTableReferences.get(0));
2050 public void testMapOwningEntity() throws JsonProcessingException {
2051 org.onap.aai.domain.yang.OwningEntity expectedAAI = new org.onap.aai.domain.yang.OwningEntity();
2053 OwningEntity expected = new OwningEntity();
2054 AAIResultWrapper vnfWrapper =
2055 new AAIResultWrapper(new AAICommonObjectMapperProvider().getMapper().writeValueAsString(expectedAAI));
2057 doReturn(expected).when(bbInputSetupMapperLayer)
2058 .mapAAIOwningEntity(isA(org.onap.aai.domain.yang.OwningEntity.class));
2060 ServiceInstance serviceInstance = new ServiceInstance();
2062 SPY_bbInputSetup.mapOwningEntity(Arrays.asList(new AAIResultWrapper[] {vnfWrapper}), serviceInstance);
2064 assertEquals(expected, serviceInstance.getOwningEntity());
2068 public void testMapProject() throws JsonProcessingException {
2069 org.onap.aai.domain.yang.Project expectedAAI = new org.onap.aai.domain.yang.Project();
2071 Project expected = new Project();
2072 AAIResultWrapper vnfWrapper =
2073 new AAIResultWrapper(new AAICommonObjectMapperProvider().getMapper().writeValueAsString(expectedAAI));
2075 doReturn(expected).when(bbInputSetupMapperLayer).mapAAIProject(isA(org.onap.aai.domain.yang.Project.class));
2077 ServiceInstance serviceInstance = new ServiceInstance();
2079 SPY_bbInputSetup.mapProject(Arrays.asList(new AAIResultWrapper[] {vnfWrapper}), serviceInstance);
2081 assertEquals(expected, serviceInstance.getProject());
2085 public void testMapCustomer() throws Exception {
2086 org.onap.aai.domain.yang.Customer customerAAI = new org.onap.aai.domain.yang.Customer();
2087 org.onap.aai.domain.yang.ServiceSubscription serviceSubscriptionAAI =
2088 new org.onap.aai.domain.yang.ServiceSubscription();
2090 Customer expected = new Customer();
2091 ServiceSubscription serviceSubscription = new ServiceSubscription();
2093 String globalCustomerId = "globalCustomerId";
2094 String subscriptionServiceType = "subscriptionServiceType";
2096 doReturn(customerAAI).when(SPY_bbInputSetupUtils).getAAICustomer(globalCustomerId);
2097 doReturn(serviceSubscriptionAAI).when(SPY_bbInputSetupUtils).getAAIServiceSubscription(globalCustomerId,
2098 subscriptionServiceType);
2099 doReturn(expected).when(bbInputSetupMapperLayer).mapAAICustomer(isA(org.onap.aai.domain.yang.Customer.class));
2100 doReturn(serviceSubscription).when(bbInputSetupMapperLayer)
2101 .mapAAIServiceSubscription(isA(org.onap.aai.domain.yang.ServiceSubscription.class));
2103 Customer actual = SPY_bbInputSetup.mapCustomer(globalCustomerId, subscriptionServiceType);
2105 assertEquals(expected, actual);
2106 assertEquals(serviceSubscription, expected.getServiceSubscription());
2110 public void testPopulateLookupKeyMapWithIds() {
2111 Map<ResourceKey, String> expected = new HashMap<>();
2112 Map<ResourceKey, String> actual = new HashMap<>();
2113 String serviceInstanceId = "serviceInstanceId";
2114 String networkId = "networkId";
2115 String vnfId = "vnfId";
2116 String pnfId = "pnfId";
2117 String vfModuleId = "vfModuleId";
2118 String volumeGroupId = "volumeGroupId";
2119 String configurationId = "configurationId";
2120 String instanceGroupId = "instancegroupId";
2121 String vnfInstanceName = "vnfInstanceName";
2122 String vfModuleInstanceName = "vfModuleInstanceName";
2124 expected.put(ResourceKey.SERVICE_INSTANCE_ID, serviceInstanceId);
2125 expected.put(ResourceKey.NETWORK_ID, networkId);
2126 expected.put(ResourceKey.GENERIC_VNF_ID, vnfId);
2127 expected.put(ResourceKey.PNF, pnfId);
2128 expected.put(ResourceKey.VF_MODULE_ID, vfModuleId);
2129 expected.put(ResourceKey.VOLUME_GROUP_ID, volumeGroupId);
2130 expected.put(ResourceKey.CONFIGURATION_ID, configurationId);
2131 expected.put(ResourceKey.INSTANCE_GROUP_ID, instanceGroupId);
2132 expected.put(ResourceKey.VNF_INSTANCE_NAME, vnfInstanceName);
2133 expected.put(ResourceKey.VF_MODULE_INSTANCE_NAME, vfModuleInstanceName);
2135 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
2136 workflowResourceIds.setServiceInstanceId(serviceInstanceId);
2137 workflowResourceIds.setNetworkId(networkId);
2138 workflowResourceIds.setVnfId(vnfId);
2139 workflowResourceIds.setPnfId(pnfId);
2140 workflowResourceIds.setVfModuleId(vfModuleId);
2141 workflowResourceIds.setVolumeGroupId(volumeGroupId);
2142 workflowResourceIds.setConfigurationId(configurationId);
2143 workflowResourceIds.setInstanceGroupId(instanceGroupId);
2144 workflowResourceIds.setVnfInstanceName(vnfInstanceName);
2145 workflowResourceIds.setVfModuleInstanceName(vfModuleInstanceName);
2147 SPY_bbInputSetup.populateLookupKeyMapWithIds(workflowResourceIds, actual);
2149 assertThat(actual, sameBeanAs(expected));
2153 public void testGetVfModulesByInstanceName() throws IOException {
2154 org.onap.so.serviceinstancebeans.Service serviceMacro = mapper.readValue(
2155 new File(RESOURCE_PATH + "ServiceMacroVfModules.json"), org.onap.so.serviceinstancebeans.Service.class);
2156 Resources resources = serviceMacro.getResources();
2157 VfModules expectedVfModule = resources.getVnfs().get(0).getVfModules().get(2);
2158 assertEquals(expectedVfModule,
2159 SPY_bbInputSetup.getVfModulesByInstanceName("vmxnjr001_AVPN_base_vRE_BV_expansion_002", resources));
2163 public void testGetVfModulesByKey() throws IOException {
2164 org.onap.so.serviceinstancebeans.Service serviceMacro = mapper.readValue(
2165 new File(RESOURCE_PATH + "ServiceMacroVfModules.json"), org.onap.so.serviceinstancebeans.Service.class);
2166 Resources resources = serviceMacro.getResources();
2167 VfModules expectedVfModule = resources.getVnfs().get(0).getVfModules().get(0);
2168 assertEquals(expectedVfModule,
2169 SPY_bbInputSetup.getVfModulesByKey("a25e8e8c-58b8-4eec-810c-97dcc1f5cb7f", resources));
2173 public void testFindVnfsByInstanceName() throws IOException {
2174 org.onap.so.serviceinstancebeans.Service serviceMacro = mapper.readValue(
2175 new File(RESOURCE_PATH + "ServiceMacroVfModules.json"), org.onap.so.serviceinstancebeans.Service.class);
2176 Resources resources = serviceMacro.getResources();
2177 Vnfs expectedVnf = resources.getVnfs().get(0);
2178 assertEquals(expectedVnf, SPY_bbInputSetup.findVnfsByInstanceName("vmxnjr001", resources));
2182 public void testVnfsByKey() throws IOException {
2183 org.onap.so.serviceinstancebeans.Service serviceMacro = mapper.readValue(
2184 new File(RESOURCE_PATH + "ServiceMacroVfModules.json"), org.onap.so.serviceinstancebeans.Service.class);
2185 Resources resources = serviceMacro.getResources();
2186 Vnfs expectedVnf = resources.getVnfs().get(0);
2187 assertEquals(expectedVnf, SPY_bbInputSetup.findVnfsByKey("ab153b6e-c364-44c0-bef6-1f2982117f04", resources));
2191 public void testGBBMacroNoUserParamsVrfConfiguration() 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_serviceMacroVrf.json"), RequestDetails.class);
2202 Map<ResourceKey, String> lookupKeyMap = prepareLookupKeyMap();
2204 ConfigurationResourceKeys configResourceKeys = prepareConfigurationResourceKeys();
2205 executeBB.setConfigurationResourceKeys(configResourceKeys).setRequestDetails(requestDetails);
2206 BuildingBlock buildingBlock = executeBB.getBuildingBlock();
2207 buildingBlock.setBpmnFlowName("AssignVrfConfigurationBB");
2208 buildingBlock.setKey("72d9d1cd-f46d-447a-abdb-451d6fb05fa9");
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 RelatedInstance relatedVpnBinding = new RelatedInstance();
2216 relatedVpnBinding.setInstanceId("vpnBindingInstanceId");
2217 RelatedInstance relatedLocalNetwork = new RelatedInstance();
2218 relatedLocalNetwork.setInstanceId("localNetworkInstanceId");
2219 org.onap.aai.domain.yang.VpnBinding aaiVpnBinding = new org.onap.aai.domain.yang.VpnBinding();
2220 aaiVpnBinding.setVpnId("vpnBindingId");
2221 org.onap.aai.domain.yang.L3Network aaiLocalNetwork = new org.onap.aai.domain.yang.L3Network();
2222 aaiLocalNetwork.setNetworkId("localNetworkId");
2223 Optional<org.onap.aai.domain.yang.VpnBinding> aaiAICVpnBindingOp =
2224 Optional.of(new org.onap.aai.domain.yang.VpnBinding());
2225 aaiAICVpnBindingOp.get().setVpnId("AICVpnBindingId");
2226 ServiceProxy proxy = new ServiceProxy();
2227 proxy.setType("transport");
2228 proxy.setServiceInstance(new ServiceInstance());
2229 proxy.getServiceInstance().setModelInfoServiceInstance(new ModelInfoServiceInstance());
2230 proxy.getServiceInstance().getModelInfoServiceInstance().setModelUuid("sourceServiceModelUUID");
2231 doReturn(relatedVpnBinding).when(SPY_bbInputSetupUtils).getRelatedInstanceByType(requestDetails,
2232 ModelType.vpnBinding);
2233 doReturn(relatedLocalNetwork).when(SPY_bbInputSetupUtils).getRelatedInstanceByType(requestDetails,
2235 doReturn(aaiVpnBinding).when(SPY_bbInputSetupUtils).getAAIVpnBinding(relatedVpnBinding.getInstanceId());
2236 doReturn(aaiLocalNetwork).when(SPY_bbInputSetupUtils).getAAIL3Network(relatedLocalNetwork.getInstanceId());
2237 doReturn(aaiAICVpnBindingOp).when(SPY_bbInputSetupUtils).getAICVpnBindingFromNetwork(aaiLocalNetwork);
2238 doReturn(proxy).when(SPY_bbInputSetup).getServiceProxy(service);
2240 Configuration configuration = new Configuration();
2241 configuration.setConfigurationId("configurationId");
2242 gBB.getServiceInstance().getConfigurations().add(configuration);
2243 List<ConfigurationResourceCustomization> configurationCustList = new ArrayList<>();
2244 ConfigurationResourceCustomization configurationCust = new ConfigurationResourceCustomization();
2245 configurationCust.setModelCustomizationUUID("72d9d1cd-f46d-447a-abdb-451d6fb05fa9");
2246 configurationCustList.add(configurationCust);
2247 doNothing().when(SPY_bbInputSetup).populateConfiguration(any(BBInputSetupParameter.class));
2249 gBB = SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
2250 verify(SPY_bbInputSetup, times(1)).populateConfiguration(any(BBInputSetupParameter.class));
2251 assertEquals(gBB.getCustomer().getVpnBindings().get(0).getVpnId(), "vpnBindingId");
2252 assertEquals(gBB.getServiceInstance().getNetworks().get(0).getNetworkId(), "localNetworkId");
2253 assertEquals(gBB.getServiceInstance().getNetworks().get(0).getVpnBindings().get(0).getVpnId(),
2255 assertEquals(gBB.getServiceInstance().getServiceProxies().get(0).getType(), "transport");
2259 public void testGetServiceProxy() {
2260 ServiceProxy expected = new ServiceProxy();
2261 expected.setType("TRANSPORT");
2262 expected.setModelInfoServiceProxy(new ModelInfoServiceProxy());
2263 expected.getModelInfoServiceProxy().setModelUuid("modelUUID");
2264 expected.getModelInfoServiceProxy().setModelInstanceName("modelInstanceName");
2265 expected.setServiceInstance(new ServiceInstance());
2266 expected.getServiceInstance().setModelInfoServiceInstance(new ModelInfoServiceInstance());
2267 expected.getServiceInstance().getModelInfoServiceInstance().setModelUuid("modelUUID");
2268 expected.getServiceInstance().getModelInfoServiceInstance().setServiceType("TRANSPORT");
2269 Service service = new Service();
2270 ServiceProxyResourceCustomization serviceProxyCatalog = new ServiceProxyResourceCustomization();
2271 serviceProxyCatalog.setModelCustomizationUUID("modelCustomizationUUID");
2272 serviceProxyCatalog.setModelInstanceName("modelInstanceName");
2273 Service sourceService = new Service();
2274 sourceService.setModelUUID("modelUUID");
2275 sourceService.setServiceType("TRANSPORT");
2276 serviceProxyCatalog.setSourceService(sourceService);
2277 service.setServiceProxyCustomizations(new ArrayList<ServiceProxyResourceCustomization>());
2278 service.getServiceProxyCustomizations().add(serviceProxyCatalog);
2279 ServiceProxy actual = SPY_bbInputSetup.getServiceProxy(service);
2280 assertThat(actual, sameBeanAs(expected));
2284 public void testgetGBBMacroCloudConfiguration() throws Exception {
2285 org.onap.so.serviceinstancebeans.Service serviceMacro = mapper.readValue(
2286 new File(RESOURCE_PATH + "ServiceMacroVfModules.json"), org.onap.so.serviceinstancebeans.Service.class);
2287 CloudConfiguration cloudConfig = null;
2288 org.onap.aai.domain.yang.CloudRegion aaiCloudRegion = new org.onap.aai.domain.yang.CloudRegion();
2289 aaiCloudRegion.setCloudOwner("test-owner-name");
2290 Resources resources = serviceMacro.getResources();
2291 doReturn(aaiCloudRegion).when(SPY_bbInputSetupUtils).getCloudRegion(any(CloudConfiguration.class));
2292 CloudRegion expected = new CloudRegion();
2293 expected.setLcpCloudRegionId("mdt1");
2294 expected.setCloudOwner("test-owner-name");
2295 expected.setTenantId("88a6ca3ee0394ade9403f075db23167e");
2297 CloudRegion actual = SPY_bbInputSetup.getCloudRegionFromMacroRequest(cloudConfig, resources);
2298 assertThat(actual, sameBeanAs(expected));
2300 serviceMacro = mapper.readValue(new File(RESOURCE_PATH + "ServiceMacroVnfs.json"),
2301 org.onap.so.serviceinstancebeans.Service.class);
2302 resources = serviceMacro.getResources();
2304 actual = SPY_bbInputSetup.getCloudRegionFromMacroRequest(cloudConfig, resources);
2305 assertThat(actual, sameBeanAs(expected));
2307 serviceMacro = mapper.readValue(new File(RESOURCE_PATH + "ServiceMacroNetworks.json"),
2308 org.onap.so.serviceinstancebeans.Service.class);
2309 resources = serviceMacro.getResources();
2311 actual = SPY_bbInputSetup.getCloudRegionFromMacroRequest(cloudConfig, resources);
2312 assertThat(actual, sameBeanAs(expected));
2314 serviceMacro = mapper.readValue(new File(RESOURCE_PATH + "ServiceMacroNoCloudConfig.json"),
2315 org.onap.so.serviceinstancebeans.Service.class);
2316 resources = serviceMacro.getResources();
2318 actual = SPY_bbInputSetup.getCloudRegionFromMacroRequest(cloudConfig, resources);
2323 public void testgetGBBMacroWithEmptyUserParams() throws Exception {
2324 String resourceId = "123";
2325 String vnfType = "vnfType";
2326 String requestAction = "createInstance";
2327 Service service = Mockito.mock(Service.class);
2328 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
2329 GeneralBuildingBlock.class);
2330 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
2331 ExecuteBuildingBlock.class);
2332 RequestDetails requestDetails = mapper
2333 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
2334 requestDetails.getRequestParameters().getUserParams().clear();
2335 org.onap.aai.domain.yang.GenericVnf aaiVnf = new org.onap.aai.domain.yang.GenericVnf();
2336 aaiVnf.setModelCustomizationId("modelCustId");
2337 Map<ResourceKey, String> lookupKeyMap = prepareLookupKeyMap();
2338 BuildingBlock buildingBlock = executeBB.getBuildingBlock();
2339 buildingBlock.setBpmnFlowName(AssignFlows.NETWORK_MACRO.toString())
2340 .setKey("ab153b6e-c364-44c0-bef6-1f2982117f04").setIsVirtualLink(false);
2342 doReturn(gBB).when(SPY_bbInputSetup).getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
2343 requestAction, lookupKeyMap.get(ResourceKey.SERVICE_INSTANCE_ID));
2344 doReturn(service).when(SPY_bbInputSetupUtils)
2345 .getCatalogServiceByModelUUID(gBB.getServiceInstance().getModelInfoServiceInstance().getModelUuid());
2347 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
2348 verify(SPY_bbInputSetup, times(1)).getGBBMacroNoUserParamsCreate(any(ExecuteBuildingBlock.class), any(),
2349 any(String.class), any(String.class), any(GeneralBuildingBlock.class), any(Service.class));
2352 @Test(expected = Exception.class)
2353 public void testgetGBBMacroException() throws Exception {
2354 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
2355 ExecuteBuildingBlock.class);
2356 RequestDetails requestDetails = mapper
2357 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
2358 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
2359 String resourceId = "123";
2360 String vnfType = "vnfType";
2361 String requestAction = "createInstance";
2363 BuildingBlock buildingBlock = executeBB.getBuildingBlock();
2364 buildingBlock.setBpmnFlowName("Network").setKey("ab153b6e-c364-44c0-bef6-1f2982117f04");
2366 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
2370 public void test_getGBBMacroForVnfTypeNull_populateL3Network_shouldBeCalled() throws Exception {
2372 String resourceId = "123";
2373 String vnfType = "null";
2374 String requestAction = "createInstance";
2375 Service service = Mockito.mock(Service.class);
2376 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
2377 GeneralBuildingBlock.class);
2378 Map<ResourceKey, String> lookupKeyMap = prepareLookupKeyMap();
2380 ConfigurationResourceKeys configResourceKeys = prepareConfigurationResourceKeys();
2381 RequestDetails requestDetails = mapper
2382 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
2383 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
2384 ExecuteBuildingBlock.class);
2385 executeBB.setConfigurationResourceKeys(configResourceKeys).setRequestDetails(requestDetails);
2386 BuildingBlock buildingBlock = executeBB.getBuildingBlock();
2387 buildingBlock.setBpmnFlowName(AssignFlows.NETWORK_MACRO.toString())
2388 .setKey("ab153b6e-c364-44c0-bef6-1f2982117f04");
2390 doReturn(gBB).when(SPY_bbInputSetup).getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
2391 requestAction, lookupKeyMap.get(ResourceKey.SERVICE_INSTANCE_ID));
2392 doReturn(service).when(SPY_bbInputSetupUtils)
2393 .getCatalogServiceByModelUUID(gBB.getServiceInstance().getModelInfoServiceInstance().getModelUuid());
2395 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
2397 verify(SPY_bbInputSetup, times(1)).populateL3Network(any(BBInputSetupParameter.class));
2401 public void testgetGBBMacroNoUserParamsDeactivateInstnace() throws Exception {
2402 String resourceId = "123";
2403 String vnfType = "vnfType";
2404 String requestAction = "deactivateInstance";
2405 Service service = Mockito.mock(Service.class);
2406 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
2407 GeneralBuildingBlock.class);
2408 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
2409 ExecuteBuildingBlock.class);
2410 RequestDetails requestDetails = mapper
2411 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
2412 requestDetails.getRequestParameters().setUserParams(null);
2413 org.onap.aai.domain.yang.GenericVnf aaiVnf = new org.onap.aai.domain.yang.GenericVnf();
2414 aaiVnf.setModelCustomizationId("modelCustId");
2415 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
2416 lookupKeyMap.put(ResourceKey.NETWORK_ID, "networkId");
2417 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "vnfId");
2418 lookupKeyMap.put(ResourceKey.VF_MODULE_ID, "vfModuleId");
2419 lookupKeyMap.put(ResourceKey.VOLUME_GROUP_ID, "volumeGroupId");
2420 lookupKeyMap.put(ResourceKey.SERVICE_INSTANCE_ID, "serviceInstanceId");
2421 BuildingBlock buildingBlock = executeBB.getBuildingBlock();
2422 buildingBlock.setBpmnFlowName("DeactivateServiceInstanceBB").setKey("3c40d244-808e-42ca-b09a-256d83d19d0a");
2424 doReturn(gBB).when(SPY_bbInputSetup).getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
2425 requestAction, lookupKeyMap.get(ResourceKey.SERVICE_INSTANCE_ID));
2426 doReturn(service).when(SPY_bbInputSetupUtils)
2427 .getCatalogServiceByModelUUID(gBB.getServiceInstance().getModelInfoServiceInstance().getModelUuid());
2429 GeneralBuildingBlock actual = SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap,
2430 requestAction, resourceId, vnfType);
2431 assertThat(actual, sameBeanAs(gBB));
2435 public void test_getGBBMacroNoUserParamsCreate_shouldBeCalled() throws Exception {
2437 String resourceId = "123";
2438 String vnfType = "vnfType";
2439 String requestAction = "createInstance";
2440 Service service = Mockito.mock(Service.class);
2441 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
2442 GeneralBuildingBlock.class);
2443 Map<ResourceKey, String> lookupKeyMap = prepareLookupKeyMap();
2444 List<NetworkResourceCustomization> networkCustList = new ArrayList<>();
2445 NetworkResourceCustomization networkCust = Mockito.mock(NetworkResourceCustomization.class);
2446 networkCustList.add(networkCust);
2448 ConfigurationResourceKeys configResourceKeys = prepareConfigurationResourceKeys();
2449 RequestDetails requestDetails = mapper
2450 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
2451 requestDetails.getRequestParameters().setUserParams(null);
2452 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
2453 ExecuteBuildingBlock.class);
2454 executeBB.setConfigurationResourceKeys(configResourceKeys).setRequestDetails(requestDetails);
2455 BuildingBlock buildingBlock = executeBB.getBuildingBlock();
2456 buildingBlock.setBpmnFlowName(AssignFlows.NETWORK_MACRO.toString())
2457 .setKey("ab153b6e-c364-44c0-bef6-1f2982117f04").setIsVirtualLink(false);
2459 doReturn(gBB).when(SPY_bbInputSetup).getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
2460 requestAction, lookupKeyMap.get(ResourceKey.SERVICE_INSTANCE_ID));
2461 doReturn(service).when(SPY_bbInputSetupUtils)
2462 .getCatalogServiceByModelUUID(gBB.getServiceInstance().getModelInfoServiceInstance().getModelUuid());
2463 doReturn(networkCustList).when(service).getNetworkCustomizations();
2464 doReturn("ab153b6e-c364-44c0-bef6-1f2982117f04").when(networkCust).getModelCustomizationUUID();
2465 doNothing().when(SPY_bbInputSetup).populateL3Network(any(BBInputSetupParameter.class));
2467 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
2469 verify(SPY_bbInputSetup, times(1)).getGBBMacroNoUserParamsCreate(executeBB, lookupKeyMap,
2470 executeBB.getBuildingBlock().getBpmnFlowName(), "ab153b6e-c364-44c0-bef6-1f2982117f04", gBB, service);
2474 public void test_getGBBMacroNoUserParamsCreate_shouldBeCalled_whenBBhasVirtualLink() throws Exception {
2476 String resourceId = "123";
2477 String vnfType = "vnfType";
2478 String requestAction = "createInstance";
2479 Service service = Mockito.mock(Service.class);
2480 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
2481 GeneralBuildingBlock.class);
2482 Map<ResourceKey, String> lookupKeyMap = prepareLookupKeyMap();
2483 List<NetworkResourceCustomization> networkCustList = new ArrayList<>();
2484 NetworkResourceCustomization networkCust = Mockito.mock(NetworkResourceCustomization.class);
2485 networkCustList.add(networkCust);
2486 CollectionNetworkResourceCustomization collectionNetworkResourceCust =
2487 Mockito.mock(CollectionNetworkResourceCustomization.class);
2488 org.onap.aai.domain.yang.GenericVnf aaiVnf = new org.onap.aai.domain.yang.GenericVnf();
2489 aaiVnf.setModelCustomizationId("modelCustId");
2490 ModelInfoNetwork modelInfoNetwork = Mockito.mock(ModelInfoNetwork.class);
2491 NetworkResourceCustomization networkResourceCustomization = Mockito.mock(NetworkResourceCustomization.class);
2493 ConfigurationResourceKeys configResourceKeys = prepareConfigurationResourceKeys();
2494 RequestDetails requestDetails = mapper
2495 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
2496 requestDetails.getRequestParameters().setUserParams(null);
2497 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
2498 ExecuteBuildingBlock.class);
2499 executeBB.setConfigurationResourceKeys(configResourceKeys).setRequestDetails(requestDetails);
2500 BuildingBlock buildingBlock = executeBB.getBuildingBlock();
2501 buildingBlock.setBpmnFlowName(AssignFlows.NETWORK_MACRO.toString())
2502 .setKey("ab153b6e-c364-44c0-bef6-1f2982117f04").setIsVirtualLink(true);
2504 doReturn(gBB).when(SPY_bbInputSetup).getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
2505 requestAction, lookupKeyMap.get(ResourceKey.SERVICE_INSTANCE_ID));
2506 doReturn(service).when(SPY_bbInputSetupUtils)
2507 .getCatalogServiceByModelUUID(gBB.getServiceInstance().getModelInfoServiceInstance().getModelUuid());
2508 doReturn(collectionNetworkResourceCust).when(SPY_bbInputSetupUtils)
2509 .getCatalogCollectionNetworkResourceCustByID(any(String.class));
2510 doReturn(networkResourceCustomization).when(bbInputSetupMapperLayer)
2511 .mapCollectionNetworkResourceCustToNetworkResourceCust(collectionNetworkResourceCust);
2512 doReturn(modelInfoNetwork).when(bbInputSetupMapperLayer)
2513 .mapCatalogNetworkToNetwork(networkResourceCustomization);
2515 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
2517 verify(SPY_bbInputSetup, times(1)).getGBBMacroNoUserParamsCreate(executeBB, lookupKeyMap,
2518 executeBB.getBuildingBlock().getBpmnFlowName(), "ab153b6e-c364-44c0-bef6-1f2982117f04", gBB, service);
2522 public void test_getGBBMacroNoUserParamsCreate_shouldBeCalled_whenBBhasVirtualLinkAndOtherFlowName()
2525 String otherFlowName = "CreateNetworkBB";
2526 String resourceId = "123";
2527 String vnfType = "vnfType";
2528 String requestAction = "createInstance";
2529 Service service = Mockito.mock(Service.class);
2530 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
2531 GeneralBuildingBlock.class);
2532 Map<ResourceKey, String> lookupKeyMap = prepareLookupKeyMap();
2533 List<NetworkResourceCustomization> networkCustList = new ArrayList<>();
2534 NetworkResourceCustomization networkCust = Mockito.mock(NetworkResourceCustomization.class);
2535 networkCustList.add(networkCust);
2536 CollectionNetworkResourceCustomization collectionNetworkResourceCust =
2537 Mockito.mock(CollectionNetworkResourceCustomization.class);
2539 ConfigurationResourceKeys configResourceKeys = prepareConfigurationResourceKeys();
2540 RequestDetails requestDetails = mapper
2541 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
2542 requestDetails.getRequestParameters().setUserParams(null);
2543 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
2544 ExecuteBuildingBlock.class);
2545 executeBB.setConfigurationResourceKeys(configResourceKeys).setRequestDetails(requestDetails);
2546 BuildingBlock buildingBlock = executeBB.getBuildingBlock();
2547 buildingBlock.setBpmnFlowName(otherFlowName).setKey("ab153b6e-c364-44c0-bef6-1f2982117f04")
2548 .setIsVirtualLink(true);
2550 doReturn(gBB).when(SPY_bbInputSetup).getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
2551 requestAction, lookupKeyMap.get(ResourceKey.SERVICE_INSTANCE_ID));
2552 doReturn(service).when(SPY_bbInputSetupUtils)
2553 .getCatalogServiceByModelUUID(gBB.getServiceInstance().getModelInfoServiceInstance().getModelUuid());
2554 doReturn(collectionNetworkResourceCust).when(SPY_bbInputSetupUtils)
2555 .getCatalogCollectionNetworkResourceCustByID(any(String.class));
2557 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
2559 verify(SPY_bbInputSetup, times(1)).getGBBMacroNoUserParamsCreate(executeBB, lookupKeyMap,
2560 executeBB.getBuildingBlock().getBpmnFlowName(), "ab153b6e-c364-44c0-bef6-1f2982117f04", gBB, service);
2563 @Test(expected = IllegalArgumentException.class)
2564 public void testgetGBBMacroNoUserParamsOtherException() throws Exception {
2565 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
2566 GeneralBuildingBlock.class);
2567 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
2568 ExecuteBuildingBlock.class);
2569 RequestDetails requestDetails = mapper
2570 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
2571 requestDetails.getRequestParameters().setUserParams(null);
2572 org.onap.aai.domain.yang.GenericVnf aaiVnf = new org.onap.aai.domain.yang.GenericVnf();
2573 aaiVnf.setModelCustomizationId("modelCustId");
2574 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
2575 lookupKeyMap.put(ResourceKey.NETWORK_ID, "networkId");
2576 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "vnfId");
2577 lookupKeyMap.put(ResourceKey.VF_MODULE_ID, "vfModuleId");
2578 lookupKeyMap.put(ResourceKey.VOLUME_GROUP_ID, "volumeGroupId");
2579 lookupKeyMap.put(ResourceKey.SERVICE_INSTANCE_ID, "serviceInstanceId");
2580 String resourceId = "123";
2581 String vnfType = "vnfType";
2582 Service service = Mockito.mock(Service.class);
2583 String requestAction = "assignInstance";
2584 doReturn(gBB).when(SPY_bbInputSetup).getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
2585 requestAction, lookupKeyMap.get(ResourceKey.SERVICE_INSTANCE_ID));
2586 doReturn(service).when(SPY_bbInputSetupUtils)
2587 .getCatalogServiceByModelUUID(gBB.getServiceInstance().getModelInfoServiceInstance().getModelUuid());
2588 String generatedId = "12131";
2590 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
2594 public void test_getGBBMacroNoUserParamsExistingService_forCatalogNetwork() throws Exception {
2596 String requestAction = "unassignInstance";
2597 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
2598 GeneralBuildingBlock.class);
2599 L3Network network = new L3Network();
2600 network.setNetworkId("networkId");
2601 gBB.getServiceInstance().getNetworks().add(network);
2602 ServiceInstance serviceInstance = gBB.getServiceInstance();
2603 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
2604 ExecuteBuildingBlock.class);
2605 RequestDetails requestDetails = mapper
2606 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
2607 requestDetails.getRequestParameters().setUserParams(null);
2608 Map<ResourceKey, String> lookupKeyMap = prepareLookupKeyMap();
2609 Service service = Mockito.mock(Service.class);
2610 CloudConfiguration cloudConfiguration = new CloudConfiguration();
2611 cloudConfiguration.setLcpCloudRegionId("cloudRegionId");
2612 org.onap.aai.domain.yang.ServiceInstance aaiServiceInstance = new org.onap.aai.domain.yang.ServiceInstance();
2613 org.onap.aai.domain.yang.L3Network aaiNetwork = new org.onap.aai.domain.yang.L3Network();
2614 aaiNetwork.setModelCustomizationId("modelCustId");
2616 ConfigurationResourceKeys configResourceKeys = prepareConfigurationResourceKeys();
2617 executeBB.setConfigurationResourceKeys(configResourceKeys).setRequestDetails(requestDetails);
2618 BuildingBlock buildingBlock = executeBB.getBuildingBlock();
2619 buildingBlock.setBpmnFlowName("DeleteNetworkBB").setKey("ab153b6e-c364-44c0-bef6-1f2982117f04");
2621 aaiServiceInstance.setModelVersionId("modelVersionId");
2622 doReturn(service).when(SPY_bbInputSetupUtils)
2623 .getCatalogServiceByModelUUID(aaiServiceInstance.getModelVersionId());
2624 doReturn(aaiServiceInstance).when(SPY_bbInputSetupUtils)
2625 .getAAIServiceInstanceById(lookupKeyMap.get(ResourceKey.SERVICE_INSTANCE_ID));
2626 doReturn(serviceInstance).when(SPY_bbInputSetup).getExistingServiceInstance(aaiServiceInstance);
2627 doReturn(gBB).when(SPY_bbInputSetup).populateGBBWithSIAndAdditionalInfo(any(BBInputSetupParameter.class));
2628 doReturn(aaiNetwork).when(SPY_bbInputSetupUtils).getAAIL3Network(network.getNetworkId());
2629 doNothing().when(SPY_bbInputSetup).mapCatalogNetwork(any(L3Network.class), any(ModelInfo.class),
2630 any(Service.class));
2632 SPY_bbInputSetup.getGBBMacroExistingService(executeBB, lookupKeyMap,
2633 executeBB.getBuildingBlock().getBpmnFlowName(), requestAction, null);
2635 verify(SPY_bbInputSetup, times(1)).mapCatalogNetwork(any(L3Network.class), any(ModelInfo.class),
2636 any(Service.class));
2640 public void test_getGBBMacroNoUserParamsExistingService_forControllerExecutionBB() throws Exception {
2642 String requestAction = "unassignInstance";
2643 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
2644 GeneralBuildingBlock.class);
2645 L3Network network = new L3Network();
2646 network.setNetworkId("networkId");
2647 gBB.getServiceInstance().getNetworks().add(network);
2648 ServiceInstance serviceInstance = gBB.getServiceInstance();
2649 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
2650 ExecuteBuildingBlock.class);
2651 RequestDetails requestDetails = mapper
2652 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
2653 requestDetails.getRequestParameters().setUserParams(null);
2654 Map<ResourceKey, String> lookupKeyMap = prepareLookupKeyMap();
2655 Service service = Mockito.mock(Service.class);
2656 CloudConfiguration cloudConfiguration = new CloudConfiguration();
2657 cloudConfiguration.setLcpCloudRegionId("cloudRegionId");
2658 org.onap.aai.domain.yang.ServiceInstance aaiServiceInstance = new org.onap.aai.domain.yang.ServiceInstance();
2659 org.onap.aai.domain.yang.L3Network aaiNetwork = new org.onap.aai.domain.yang.L3Network();
2660 aaiNetwork.setModelCustomizationId("modelCustId");
2661 GenericVnf vnf = new GenericVnf();
2662 vnf.setVnfId("vnfId");
2663 gBB.getServiceInstance().getVnfs().add(vnf);
2664 org.onap.aai.domain.yang.GenericVnf aaiVnf = new org.onap.aai.domain.yang.GenericVnf();
2665 aaiVnf.setModelCustomizationId("modelCustId");
2667 ConfigurationResourceKeys configResourceKeys = prepareConfigurationResourceKeys();
2668 executeBB.setConfigurationResourceKeys(configResourceKeys).setRequestDetails(requestDetails);
2669 BuildingBlock buildingBlock = executeBB.getBuildingBlock();
2670 buildingBlock.setBpmnFlowName("ControllerExecutionBB").setKey("ab153b6e-c364-44c0-bef6-1f2982117f04");
2671 buildingBlock.setBpmnScope("VNF");
2673 aaiServiceInstance.setModelVersionId("modelVersionId");
2674 doReturn(service).when(SPY_bbInputSetupUtils)
2675 .getCatalogServiceByModelUUID(aaiServiceInstance.getModelVersionId());
2676 doReturn(aaiServiceInstance).when(SPY_bbInputSetupUtils)
2677 .getAAIServiceInstanceById(lookupKeyMap.get(ResourceKey.SERVICE_INSTANCE_ID));
2678 doReturn(serviceInstance).when(SPY_bbInputSetup).getExistingServiceInstance(aaiServiceInstance);
2679 doReturn(gBB).when(SPY_bbInputSetup).populateGBBWithSIAndAdditionalInfo(any(BBInputSetupParameter.class));
2680 doReturn(aaiVnf).when(SPY_bbInputSetupUtils).getAAIGenericVnf(vnf.getVnfId());
2681 doNothing().when(SPY_bbInputSetup).mapCatalogVnf(any(GenericVnf.class), any(ModelInfo.class),
2682 any(Service.class));
2684 SPY_bbInputSetup.getGBBMacroExistingService(executeBB, lookupKeyMap,
2685 executeBB.getBuildingBlock().getBpmnFlowName(), requestAction, cloudConfiguration);
2687 verify(SPY_bbInputSetup, times(1)).mapCatalogVnf(any(GenericVnf.class), any(ModelInfo.class),
2688 any(Service.class));
2692 public void test_getGBBMacroNoUserParamsExistingService_forActivateVnfBB() throws Exception {
2694 String requestAction = "unassignInstance";
2695 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
2696 GeneralBuildingBlock.class);
2697 L3Network network = new L3Network();
2698 network.setNetworkId("networkId");
2699 gBB.getServiceInstance().getNetworks().add(network);
2700 ServiceInstance serviceInstance = gBB.getServiceInstance();
2701 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
2702 ExecuteBuildingBlock.class);
2703 RequestDetails requestDetails = mapper
2704 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
2705 requestDetails.getRequestParameters().setUserParams(null);
2706 Map<ResourceKey, String> lookupKeyMap = prepareLookupKeyMap();
2707 Service service = Mockito.mock(Service.class);
2708 CloudConfiguration cloudConfiguration = new CloudConfiguration();
2709 cloudConfiguration.setLcpCloudRegionId("cloudRegionId");
2710 org.onap.aai.domain.yang.ServiceInstance aaiServiceInstance = new org.onap.aai.domain.yang.ServiceInstance();
2711 org.onap.aai.domain.yang.L3Network aaiNetwork = new org.onap.aai.domain.yang.L3Network();
2712 aaiNetwork.setModelCustomizationId("modelCustId");
2713 GenericVnf vnf = new GenericVnf();
2714 vnf.setVnfId("vnfId");
2715 gBB.getServiceInstance().getVnfs().add(vnf);
2716 org.onap.aai.domain.yang.GenericVnf aaiVnf = new org.onap.aai.domain.yang.GenericVnf();
2717 aaiVnf.setModelCustomizationId("modelCustId");
2719 ConfigurationResourceKeys configResourceKeys = prepareConfigurationResourceKeys();
2720 executeBB.setConfigurationResourceKeys(configResourceKeys).setRequestDetails(requestDetails);
2721 BuildingBlock buildingBlock = executeBB.getBuildingBlock();
2722 buildingBlock.setBpmnFlowName("ActivateVnfBB").setKey("ab153b6e-c364-44c0-bef6-1f2982117f04");
2724 aaiServiceInstance.setModelVersionId("modelVersionId");
2725 doReturn(service).when(SPY_bbInputSetupUtils)
2726 .getCatalogServiceByModelUUID(aaiServiceInstance.getModelVersionId());
2727 doReturn(aaiServiceInstance).when(SPY_bbInputSetupUtils)
2728 .getAAIServiceInstanceById(lookupKeyMap.get(ResourceKey.SERVICE_INSTANCE_ID));
2729 doReturn(serviceInstance).when(SPY_bbInputSetup).getExistingServiceInstance(aaiServiceInstance);
2730 doReturn(gBB).when(SPY_bbInputSetup).populateGBBWithSIAndAdditionalInfo(any(BBInputSetupParameter.class));
2731 doReturn(aaiVnf).when(SPY_bbInputSetupUtils).getAAIGenericVnf(vnf.getVnfId());
2732 doNothing().when(SPY_bbInputSetup).mapCatalogVnf(any(GenericVnf.class), any(ModelInfo.class),
2733 any(Service.class));
2735 SPY_bbInputSetup.getGBBMacroExistingService(executeBB, lookupKeyMap,
2736 executeBB.getBuildingBlock().getBpmnFlowName(), requestAction, cloudConfiguration);
2738 verify(SPY_bbInputSetup, times(1)).mapCatalogVnf(any(GenericVnf.class), any(ModelInfo.class),
2739 any(Service.class));
2743 public void test_getGBBMacroNoUserParamsExistingService_forControllerExecutionBB_VFModule() throws Exception {
2745 String requestAction = "unassignInstance";
2746 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
2747 GeneralBuildingBlock.class);
2748 L3Network network = new L3Network();
2749 network.setNetworkId("networkId");
2750 gBB.getServiceInstance().getNetworks().add(network);
2751 ServiceInstance serviceInstance = gBB.getServiceInstance();
2752 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
2753 ExecuteBuildingBlock.class);
2754 RequestDetails requestDetails = mapper
2755 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
2756 requestDetails.getRequestParameters().setUserParams(null);
2757 Map<ResourceKey, String> lookupKeyMap = prepareLookupKeyMap();
2758 Service service = Mockito.mock(Service.class);
2759 CloudConfiguration cloudConfiguration = new CloudConfiguration();
2760 cloudConfiguration.setLcpCloudRegionId("cloudRegionId");
2761 org.onap.aai.domain.yang.ServiceInstance aaiServiceInstance = new org.onap.aai.domain.yang.ServiceInstance();
2762 org.onap.aai.domain.yang.L3Network aaiNetwork = new org.onap.aai.domain.yang.L3Network();
2763 aaiNetwork.setModelCustomizationId("modelCustId");
2764 GenericVnf vnf = new GenericVnf();
2765 vnf.setVnfId("vnfId");
2766 gBB.getServiceInstance().getVnfs().add(vnf);
2767 org.onap.aai.domain.yang.GenericVnf aaiVnf = new org.onap.aai.domain.yang.GenericVnf();
2768 aaiVnf.setModelCustomizationId("modelCustId");
2769 VfModule vfModule = new VfModule();
2770 vfModule.setVfModuleId("vfModuleId");
2771 gBB.getServiceInstance().getVnfs().get(0).getVfModules().add(vfModule);
2772 org.onap.aai.domain.yang.VfModule aaiVfModule = new org.onap.aai.domain.yang.VfModule();
2773 aaiVfModule.setModelCustomizationId("modelCustId");
2775 ConfigurationResourceKeys configResourceKeys = prepareConfigurationResourceKeys();
2776 executeBB.setConfigurationResourceKeys(configResourceKeys).setRequestDetails(requestDetails);
2777 BuildingBlock buildingBlock = executeBB.getBuildingBlock();
2778 buildingBlock.setBpmnFlowName("ControllerExecutionBB").setKey("a25e8e8c-58b8-4eec-810c-97dcc1f5cb7f");
2779 buildingBlock.setBpmnScope("VfModule");
2781 aaiServiceInstance.setModelVersionId("modelVersionId");
2782 doReturn(service).when(SPY_bbInputSetupUtils)
2783 .getCatalogServiceByModelUUID(aaiServiceInstance.getModelVersionId());
2784 doReturn(aaiServiceInstance).when(SPY_bbInputSetupUtils)
2785 .getAAIServiceInstanceById(lookupKeyMap.get(ResourceKey.SERVICE_INSTANCE_ID));
2786 doReturn(serviceInstance).when(SPY_bbInputSetup).getExistingServiceInstance(aaiServiceInstance);
2787 doReturn(gBB).when(SPY_bbInputSetup).populateGBBWithSIAndAdditionalInfo(any(BBInputSetupParameter.class));
2788 doReturn(aaiVnf).when(SPY_bbInputSetupUtils).getAAIGenericVnf(vnf.getVnfId());
2789 doNothing().when(SPY_bbInputSetup).mapCatalogVnf(any(GenericVnf.class), any(ModelInfo.class),
2790 any(Service.class));
2791 doReturn(aaiVfModule).when(SPY_bbInputSetupUtils).getAAIVfModule(vnf.getVnfId(), vfModule.getVfModuleId());
2793 SPY_bbInputSetup.getGBBMacroExistingService(executeBB, lookupKeyMap,
2794 executeBB.getBuildingBlock().getBpmnFlowName(), requestAction, cloudConfiguration);
2796 verify(SPY_bbInputSetup, times(1)).mapCatalogVnf(any(GenericVnf.class), any(ModelInfo.class),
2797 any(Service.class));
2798 verify(SPY_bbInputSetup, times(1)).mapCatalogVfModule(any(VfModule.class), any(ModelInfo.class),
2799 any(Service.class), any(String.class));
2803 public void test_getGBBMacroNoUserParamsExistingService_forUnassignVfModuleBB() throws Exception {
2805 String requestAction = "unassignInstance";
2806 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
2807 GeneralBuildingBlock.class);
2808 L3Network network = new L3Network();
2809 network.setNetworkId("networkId");
2810 gBB.getServiceInstance().getNetworks().add(network);
2811 ServiceInstance serviceInstance = gBB.getServiceInstance();
2812 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
2813 ExecuteBuildingBlock.class);
2814 RequestDetails requestDetails = mapper
2815 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
2816 requestDetails.getRequestParameters().setUserParams(null);
2817 Map<ResourceKey, String> lookupKeyMap = prepareLookupKeyMap();
2818 Service service = Mockito.mock(Service.class);
2819 CloudConfiguration cloudConfiguration = new CloudConfiguration();
2820 cloudConfiguration.setLcpCloudRegionId("cloudRegionId");
2821 org.onap.aai.domain.yang.ServiceInstance aaiServiceInstance = new org.onap.aai.domain.yang.ServiceInstance();
2822 org.onap.aai.domain.yang.L3Network aaiNetwork = new org.onap.aai.domain.yang.L3Network();
2823 aaiNetwork.setModelCustomizationId("modelCustId");
2824 GenericVnf vnf = new GenericVnf();
2825 vnf.setVnfId("vnfId");
2826 gBB.getServiceInstance().getVnfs().add(vnf);
2827 org.onap.aai.domain.yang.GenericVnf aaiVnf = new org.onap.aai.domain.yang.GenericVnf();
2828 aaiVnf.setModelCustomizationId("modelCustId");
2829 VfModule vfModule = new VfModule();
2830 vfModule.setVfModuleId("vfModuleId");
2831 gBB.getServiceInstance().getVnfs().get(0).getVfModules().add(vfModule);
2832 org.onap.aai.domain.yang.VfModule aaiVfModule = new org.onap.aai.domain.yang.VfModule();
2833 aaiVfModule.setModelCustomizationId("modelCustId");
2835 ConfigurationResourceKeys configResourceKeys = prepareConfigurationResourceKeys();
2836 executeBB.setConfigurationResourceKeys(configResourceKeys).setRequestDetails(requestDetails);
2837 BuildingBlock buildingBlock = executeBB.getBuildingBlock();
2838 buildingBlock.setBpmnFlowName("UnassignVfModuleBB").setKey("a25e8e8c-58b8-4eec-810c-97dcc1f5cb7f");
2840 aaiServiceInstance.setModelVersionId("modelVersionId");
2841 doReturn(service).when(SPY_bbInputSetupUtils)
2842 .getCatalogServiceByModelUUID(aaiServiceInstance.getModelVersionId());
2843 doReturn(aaiServiceInstance).when(SPY_bbInputSetupUtils)
2844 .getAAIServiceInstanceById(lookupKeyMap.get(ResourceKey.SERVICE_INSTANCE_ID));
2845 doReturn(serviceInstance).when(SPY_bbInputSetup).getExistingServiceInstance(aaiServiceInstance);
2846 doReturn(gBB).when(SPY_bbInputSetup).populateGBBWithSIAndAdditionalInfo(any(BBInputSetupParameter.class));
2847 doReturn(aaiVnf).when(SPY_bbInputSetupUtils).getAAIGenericVnf(vnf.getVnfId());
2848 doNothing().when(SPY_bbInputSetup).mapCatalogVnf(any(GenericVnf.class), any(ModelInfo.class),
2849 any(Service.class));
2850 doReturn(aaiVfModule).when(SPY_bbInputSetupUtils).getAAIVfModule(vnf.getVnfId(), vfModule.getVfModuleId());
2852 SPY_bbInputSetup.getGBBMacroExistingService(executeBB, lookupKeyMap,
2853 executeBB.getBuildingBlock().getBpmnFlowName(), requestAction, cloudConfiguration);
2855 verify(SPY_bbInputSetup, times(1)).mapCatalogVnf(any(GenericVnf.class), any(ModelInfo.class),
2856 any(Service.class));
2857 verify(SPY_bbInputSetup, times(1)).mapCatalogVfModule(any(VfModule.class), any(ModelInfo.class),
2858 any(Service.class), any(String.class));
2862 public void test_getGBBMacroNoUserParamsExistingService_forUnassignVolumeGroupBB() throws Exception {
2864 String requestAction = "unassignInstance";
2865 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
2866 GeneralBuildingBlock.class);
2867 L3Network network = new L3Network();
2868 network.setNetworkId("networkId");
2869 gBB.getServiceInstance().getNetworks().add(network);
2870 ServiceInstance serviceInstance = gBB.getServiceInstance();
2871 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
2872 ExecuteBuildingBlock.class);
2873 RequestDetails requestDetails = mapper
2874 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
2875 requestDetails.getRequestParameters().setUserParams(null);
2876 Map<ResourceKey, String> lookupKeyMap = prepareLookupKeyMap();
2877 Service service = Mockito.mock(Service.class);
2878 org.onap.aai.domain.yang.ServiceInstance aaiServiceInstance = new org.onap.aai.domain.yang.ServiceInstance();
2879 GenericVnf vnf = new GenericVnf();
2880 vnf.setVnfId("vnfId");
2881 gBB.getServiceInstance().getVnfs().add(vnf);
2882 org.onap.aai.domain.yang.GenericVnf aaiVnf = new org.onap.aai.domain.yang.GenericVnf();
2883 aaiVnf.setModelCustomizationId("modelCustId");
2884 VfModule vfModule = new VfModule();
2885 vfModule.setVfModuleId("vfModuleId");
2886 gBB.getServiceInstance().getVnfs().get(0).getVfModules().add(vfModule);
2887 CloudRegion cloudRegion = new CloudRegion();
2888 cloudRegion.setLcpCloudRegionId("cloudRegionId");
2889 cloudRegion.setCloudOwner("CloudOwner");
2890 VolumeGroup volumeGroup = new VolumeGroup();
2891 volumeGroup.setVolumeGroupId("volumeGroupId");
2892 gBB.getServiceInstance().getVnfs().get(0).getVolumeGroups().add(volumeGroup);
2893 org.onap.aai.domain.yang.VolumeGroup aaiVolumeGroup = new org.onap.aai.domain.yang.VolumeGroup();
2894 aaiVolumeGroup.setModelCustomizationId("modelCustId");
2896 ConfigurationResourceKeys configResourceKeys = prepareConfigurationResourceKeys();
2897 executeBB.setConfigurationResourceKeys(configResourceKeys).setRequestDetails(requestDetails);
2898 BuildingBlock buildingBlock = executeBB.getBuildingBlock();
2899 buildingBlock.setBpmnFlowName("UnassignVolumeGroupBB").setKey("72d9d1cd-f46d-447a-abdb-451d6fb05fa8");
2901 aaiServiceInstance.setModelVersionId("modelVersionId");
2902 doReturn(service).when(SPY_bbInputSetupUtils)
2903 .getCatalogServiceByModelUUID(aaiServiceInstance.getModelVersionId());
2904 doReturn(aaiServiceInstance).when(SPY_bbInputSetupUtils)
2905 .getAAIServiceInstanceById(lookupKeyMap.get(ResourceKey.SERVICE_INSTANCE_ID));
2906 doReturn(serviceInstance).when(SPY_bbInputSetup).getExistingServiceInstance(aaiServiceInstance);
2907 doReturn(gBB).when(SPY_bbInputSetup).populateGBBWithSIAndAdditionalInfo(any(BBInputSetupParameter.class));
2908 doReturn(aaiVnf).when(SPY_bbInputSetupUtils).getAAIGenericVnf(vnf.getVnfId());
2909 doNothing().when(SPY_bbInputSetup).mapCatalogVnf(any(GenericVnf.class), any(ModelInfo.class),
2910 any(Service.class));
2911 doReturn(aaiVolumeGroup).when(SPY_bbInputSetupUtils).getAAIVolumeGroup(cloudRegion.getCloudOwner(),
2912 cloudRegion.getLcpCloudRegionId(), volumeGroup.getVolumeGroupId());
2913 doReturn(Optional.of(cloudRegion)).when(SPY_cloudInfoFromAAI).getCloudInfoFromAAI(gBB.getServiceInstance());
2916 SPY_bbInputSetup.getGBBMacroExistingService(executeBB, lookupKeyMap,
2917 executeBB.getBuildingBlock().getBpmnFlowName(), requestAction, null);
2919 verify(SPY_bbInputSetup, times(1)).mapCatalogVnf(any(GenericVnf.class), any(ModelInfo.class),
2920 any(Service.class));
2921 verify(SPY_bbInputSetup, times(1)).mapCatalogVolumeGroup(isA(VolumeGroup.class), isA(ModelInfo.class),
2922 isA(Service.class), isA(String.class));
2926 public void test_getGBBMacroNoUserParamsExistingService_forActivateFabricConfigurationBB() throws Exception {
2928 String requestAction = "unassignInstance";
2929 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
2930 GeneralBuildingBlock.class);
2931 L3Network network = new L3Network();
2932 network.setNetworkId("networkId");
2933 gBB.getServiceInstance().getNetworks().add(network);
2934 ServiceInstance serviceInstance = gBB.getServiceInstance();
2935 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
2936 ExecuteBuildingBlock.class);
2937 RequestDetails requestDetails = mapper
2938 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
2939 requestDetails.getRequestParameters().setUserParams(null);
2940 Map<ResourceKey, String> lookupKeyMap = prepareLookupKeyMap();
2941 Service service = Mockito.mock(Service.class);
2942 org.onap.aai.domain.yang.ServiceInstance aaiServiceInstance = new org.onap.aai.domain.yang.ServiceInstance();
2943 GenericVnf vnf = new GenericVnf();
2944 vnf.setVnfId("vnfId");
2945 gBB.getServiceInstance().getVnfs().add(vnf);
2946 org.onap.aai.domain.yang.GenericVnf aaiVnf = new org.onap.aai.domain.yang.GenericVnf();
2947 aaiVnf.setModelCustomizationId("modelCustId");
2948 VfModule vfModule = new VfModule();
2949 vfModule.setVfModuleId("vfModuleId");
2950 gBB.getServiceInstance().getVnfs().get(0).getVfModules().add(vfModule);
2951 VolumeGroup volumeGroup = new VolumeGroup();
2952 volumeGroup.setVolumeGroupId("volumeGroupId");
2953 gBB.getServiceInstance().getVnfs().get(0).getVolumeGroups().add(volumeGroup);
2954 CloudConfiguration cloudConfiguration = new CloudConfiguration();
2955 cloudConfiguration.setLcpCloudRegionId("cloudRegionId");
2956 Configuration configuration = new Configuration();
2957 configuration.setConfigurationId("configurationId");
2958 gBB.getServiceInstance().getConfigurations().add(configuration);
2959 org.onap.aai.domain.yang.Configuration aaiConfiguration = new org.onap.aai.domain.yang.Configuration();
2960 aaiConfiguration.setModelCustomizationId("modelCustId");
2962 ConfigurationResourceKeys configResourceKeys = prepareConfigurationResourceKeys();
2963 executeBB.setConfigurationResourceKeys(configResourceKeys).setRequestDetails(requestDetails);
2964 BuildingBlock buildingBlock = executeBB.getBuildingBlock();
2965 buildingBlock.setBpmnFlowName("ActivateFabricConfigurationBB").setKey("72d9d1cd-f46d-447a-abdb-451d6fb05fa9");
2967 aaiServiceInstance.setModelVersionId("modelVersionId");
2968 doReturn(service).when(SPY_bbInputSetupUtils)
2969 .getCatalogServiceByModelUUID(aaiServiceInstance.getModelVersionId());
2970 doReturn(aaiServiceInstance).when(SPY_bbInputSetupUtils)
2971 .getAAIServiceInstanceById(lookupKeyMap.get(ResourceKey.SERVICE_INSTANCE_ID));
2972 doReturn(serviceInstance).when(SPY_bbInputSetup).getExistingServiceInstance(aaiServiceInstance);
2973 doReturn(gBB).when(SPY_bbInputSetup).populateGBBWithSIAndAdditionalInfo(any(BBInputSetupParameter.class));
2974 doReturn(aaiConfiguration).when(SPY_bbInputSetupUtils).getAAIConfiguration(configuration.getConfigurationId());
2975 doNothing().when(SPY_bbInputSetup).mapCatalogConfiguration(isA(Configuration.class), isA(ModelInfo.class),
2976 isA(Service.class), isA(ConfigurationResourceKeys.class));
2979 SPY_bbInputSetup.getGBBMacroExistingService(executeBB, lookupKeyMap,
2980 executeBB.getBuildingBlock().getBpmnFlowName(), requestAction, cloudConfiguration);
2982 verify(SPY_bbInputSetup, times(1)).mapCatalogConfiguration(any(Configuration.class), any(ModelInfo.class),
2983 any(Service.class), isA(ConfigurationResourceKeys.class));
2987 public void testGetGBBMacroExistingServiceServiceinstancenotFoundInAai() throws Exception {
2988 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
2989 ExecuteBuildingBlock.class);
2990 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
2991 lookupKeyMap.put(ResourceKey.SERVICE_INSTANCE_ID, "si123");
2993 CloudConfiguration cloudConfiguration = new CloudConfiguration();
2994 cloudConfiguration.setLcpCloudRegionId("cloudRegionId");
2996 doReturn(null).when(SPY_bbInputSetupUtils).getAAIServiceInstanceById("si123");
2998 expectedException.expect(NoServiceInstanceFoundException.class);
2999 expectedException.expectMessage("Related service instance from AAI not found: service-instance-id=si123");
3001 SPY_bbInputSetup.getGBBMacroExistingService(executeBB, lookupKeyMap, "AssignVnfBB", "assign",
3002 cloudConfiguration);
3006 public void testGetGBBMacroExistingServiceServiceModelNotFound() throws Exception {
3007 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
3008 ExecuteBuildingBlock.class);
3009 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
3010 lookupKeyMap.put(ResourceKey.SERVICE_INSTANCE_ID, "si123");
3011 org.onap.aai.domain.yang.ServiceInstance aaiServiceInstance = new org.onap.aai.domain.yang.ServiceInstance();
3012 aaiServiceInstance.setModelVersionId("modelVersionId");
3014 CloudConfiguration cloudConfiguration = new CloudConfiguration();
3015 cloudConfiguration.setLcpCloudRegionId("cloudRegionId");
3017 doReturn(aaiServiceInstance).when(SPY_bbInputSetupUtils).getAAIServiceInstanceById("si123");
3018 doReturn(null).when(SPY_bbInputSetupUtils).getCatalogServiceByModelUUID(aaiServiceInstance.getModelVersionId());
3020 expectedException.expect(ServiceModelNotFoundException.class);
3021 expectedException.expectMessage(
3022 "Related service instance model not found in MSO CatalogDB: model-version-id=modelVersionId");
3024 SPY_bbInputSetup.getGBBMacroExistingService(executeBB, lookupKeyMap, "AssignVnfBB", "assign",
3025 cloudConfiguration);
3029 public void testGetVnfId() {
3030 String expected = "vnfId";
3031 ExecuteBuildingBlock executeBB = new ExecuteBuildingBlock().setRequestId("requestId");
3032 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
3033 InfraActiveRequests request = new InfraActiveRequests();
3034 request.setVnfId(expected);
3035 doReturn(request).when(SPY_bbInputSetupUtils).getInfraActiveRequest(executeBB.getRequestId());
3037 String actual = SPY_bbInputSetup.getVnfId(executeBB, lookupKeyMap);
3039 assertEquals("VnfId is set correctly", expected, actual);
3043 public void testCreateVfModule() {
3044 String vfModuleId = "vfModuleId";
3045 String instanceName = "vfModuleName";
3046 Map<String, String> cloudParams = new HashMap<>();
3047 cloudParams.put("param1", "param1Value");
3048 VfModule expected = new VfModule();
3049 expected.setVfModuleId(vfModuleId);
3050 expected.setVfModuleName(instanceName);
3051 expected.setCloudParams(cloudParams);
3052 expected.setOrchestrationStatus(OrchestrationStatus.PRECREATED);
3053 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
3054 List<Map<String, String>> instanceParams = new ArrayList<>();
3055 instanceParams.add(cloudParams);
3057 VfModule actual = SPY_bbInputSetup.createVfModule(lookupKeyMap, vfModuleId, instanceName, instanceParams);
3059 assertThat(actual, sameBeanAs(expected));
3060 assertEquals("LookupKeyMap is populated", vfModuleId, lookupKeyMap.get(ResourceKey.VF_MODULE_ID));
3062 expected.getCloudParams().clear();
3063 actual = SPY_bbInputSetup.createVfModule(lookupKeyMap, vfModuleId, instanceName, null);
3064 assertThat(actual, sameBeanAs(expected));
3068 public void testCreateVolumeGroup() {
3069 String volumeGroupId = "volumeGroupId";
3070 String instanceName = "vfModuleName";
3071 String vnfType = "vnfType";
3072 Map<String, String> cloudParams = new HashMap<>();
3073 cloudParams.put("param1", "param1Value");
3074 VolumeGroup expected = new VolumeGroup();
3075 expected.setVolumeGroupId(volumeGroupId);
3076 expected.setVolumeGroupName(instanceName);
3077 expected.setCloudParams(cloudParams);
3078 expected.setVnfType(vnfType);
3079 expected.setOrchestrationStatus(OrchestrationStatus.PRECREATED);
3080 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
3081 List<Map<String, String>> instanceParams = new ArrayList<>();
3082 instanceParams.add(cloudParams);
3084 VolumeGroup actual =
3085 SPY_bbInputSetup.createVolumeGroup(lookupKeyMap, volumeGroupId, instanceName, vnfType, instanceParams);
3087 assertThat(actual, sameBeanAs(expected));
3088 assertEquals("LookupKeyMap is populated", volumeGroupId, lookupKeyMap.get(ResourceKey.VOLUME_GROUP_ID));
3090 expected.getCloudParams().clear();
3091 actual = SPY_bbInputSetup.createVolumeGroup(lookupKeyMap, volumeGroupId, instanceName, vnfType, null);
3092 assertThat(actual, sameBeanAs(expected));
3096 public void testCreateNetwork() {
3097 String networkId = "networkId";
3098 String instanceName = "networkName";
3099 Map<String, String> cloudParams = new HashMap<>();
3100 cloudParams.put("param1", "param1Value");
3101 L3Network expected = new L3Network();
3102 expected.setNetworkId(networkId);
3103 expected.setNetworkName(instanceName);
3104 expected.setCloudParams(cloudParams);
3105 Platform platform = new Platform();
3106 platform.setPlatformName("platformName");
3107 expected.setPlatform(platform);
3108 LineOfBusiness lineOfBusiness = new LineOfBusiness();
3109 lineOfBusiness.setLineOfBusinessName("lineOfBusiness");
3110 expected.setLineOfBusiness(lineOfBusiness);
3111 expected.setOrchestrationStatus(OrchestrationStatus.PRECREATED);
3112 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
3113 List<Map<String, String>> instanceParams = new ArrayList<>();
3114 instanceParams.add(cloudParams);
3115 org.onap.so.serviceinstancebeans.Platform platformRequest = new org.onap.so.serviceinstancebeans.Platform();
3116 org.onap.so.serviceinstancebeans.LineOfBusiness lineOfBusinessRequest =
3117 new org.onap.so.serviceinstancebeans.LineOfBusiness();
3118 lineOfBusinessRequest.setLineOfBusinessName("lineOfBusiness");
3119 platformRequest.setPlatformName("platformName");
3120 BBInputSetupParameter parameter = new BBInputSetupParameter.Builder().setRequestId(REQUEST_ID)
3121 .setPlatform(platformRequest).setLineOfBusiness(lineOfBusinessRequest).build();
3123 SPY_bbInputSetup.createNetwork(lookupKeyMap, instanceName, networkId, instanceParams, parameter);
3125 assertThat(actual, sameBeanAs(expected));
3126 assertEquals("LookupKeyMap is populated", networkId, lookupKeyMap.get(ResourceKey.NETWORK_ID));
3128 expected.getCloudParams().clear();
3130 actual = SPY_bbInputSetup.createNetwork(lookupKeyMap, instanceName, networkId, null, parameter);
3131 assertThat(actual, sameBeanAs(expected));
3135 public void testCreateGenericVnf() {
3136 String vnfId = "vnfId";
3137 String instanceName = "vnfName";
3138 String vnfType = "vnfType";
3139 String platformName = "platformName";
3140 String lineOfBusinessName = "lineOfBusinessName";
3141 String productFamilyId = "productFamilyId";
3142 String applicationId = "applicationId";
3143 Platform platform = new Platform();
3144 platform.setPlatformName(platformName);
3145 LineOfBusiness lineOfBusiness = new LineOfBusiness();
3146 lineOfBusiness.setLineOfBusinessName(lineOfBusinessName);
3147 Map<String, String> cloudParams = new HashMap<>();
3148 cloudParams.put("param1", "param1Value");
3149 GenericVnf expected = new GenericVnf();
3150 expected.setVnfId(vnfId);
3151 expected.setVnfName(instanceName);
3152 expected.setVnfType(vnfType);
3153 expected.setCloudParams(cloudParams);
3154 expected.setOrchestrationStatus(OrchestrationStatus.PRECREATED);
3155 expected.setPlatform(platform);
3156 expected.setLineOfBusiness(lineOfBusiness);
3157 expected.setProvStatus("PREPROV");
3158 expected.setServiceId(productFamilyId);
3159 expected.setApplicationId(applicationId);
3160 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
3161 List<Map<String, String>> instanceParams = new ArrayList<>();
3162 instanceParams.add(cloudParams);
3163 org.onap.so.serviceinstancebeans.Platform requestPlatform = new org.onap.so.serviceinstancebeans.Platform();
3164 platform.setPlatformName(platformName);
3165 org.onap.so.serviceinstancebeans.LineOfBusiness requestLineOfBusiness =
3166 new org.onap.so.serviceinstancebeans.LineOfBusiness();
3167 lineOfBusiness.setLineOfBusinessName(lineOfBusinessName);
3169 doReturn(platform).when(bbInputSetupMapperLayer).mapRequestPlatform(requestPlatform);
3170 doReturn(lineOfBusiness).when(bbInputSetupMapperLayer).mapRequestLineOfBusiness(requestLineOfBusiness);
3172 GenericVnf actual = SPY_bbInputSetup.createGenericVnf(lookupKeyMap, instanceName, requestPlatform,
3173 requestLineOfBusiness, vnfId, vnfType, instanceParams, productFamilyId, applicationId);
3175 assertThat(actual, sameBeanAs(expected));
3176 assertEquals("LookupKeyMap is populated", vnfId, lookupKeyMap.get(ResourceKey.GENERIC_VNF_ID));
3178 expected.getCloudParams().clear();
3179 actual = SPY_bbInputSetup.createGenericVnf(lookupKeyMap, instanceName, requestPlatform, requestLineOfBusiness,
3180 vnfId, vnfType, null, productFamilyId, applicationId);
3181 assertThat(actual, sameBeanAs(expected));
3185 public void testMapCatalogVfModule() {
3186 String vnfModelCustomizationUUID = "vnfResourceCustUUID";
3187 String vfModuleCustomizationUUID = "vfModelCustomizationUUID";
3188 VfModule vfModule = new VfModule();
3189 ModelInfo modelInfo = new ModelInfo();
3190 modelInfo.setModelCustomizationUuid(vfModuleCustomizationUUID);
3191 Service service = new Service();
3192 VnfResourceCustomization vnfResourceCust = new VnfResourceCustomization();
3193 vnfResourceCust.setModelCustomizationUUID(vnfModelCustomizationUUID);
3194 VfModuleCustomization vfModuleCust = new VfModuleCustomization();
3195 vfModuleCust.setModelCustomizationUUID(vfModuleCustomizationUUID);
3196 vnfResourceCust.getVfModuleCustomizations().add(vfModuleCust);
3197 service.getVnfCustomizations().add(vnfResourceCust);
3198 ModelInfoVfModule modelInfoVfModule = new ModelInfoVfModule();
3200 doReturn(modelInfoVfModule).when(bbInputSetupMapperLayer).mapCatalogVfModuleToVfModule(vfModuleCust);
3202 SPY_bbInputSetup.mapCatalogVfModule(vfModule, modelInfo, service, vnfModelCustomizationUUID);
3204 assertThat(vfModule.getModelInfoVfModule(), sameBeanAs(modelInfoVfModule));
3206 modelInfo.setModelCustomizationUuid(null);
3207 modelInfo.setModelCustomizationId(vfModuleCustomizationUUID);
3209 SPY_bbInputSetup.mapCatalogVfModule(vfModule, modelInfo, service, vnfModelCustomizationUUID);
3211 assertThat(vfModule.getModelInfoVfModule(), sameBeanAs(modelInfoVfModule));
3215 public void testMapCatalogVfModuleIfNoVfUnderVnf() {
3216 String vnfModelCustomizationUUID = "vnfResourceCustUUID";
3217 String vfModuleCustomizationUUID = "vfModelCustomizationUUID";
3218 VfModule vfModule = new VfModule();
3219 ModelInfo modelInfo = new ModelInfo();
3220 modelInfo.setModelCustomizationUuid(vfModuleCustomizationUUID);
3221 Service service = new Service();
3222 VnfResourceCustomization vnfResourceCust = new VnfResourceCustomization();
3223 vnfResourceCust.setModelCustomizationUUID(vnfModelCustomizationUUID);
3224 VfModuleCustomization vfModuleCust = new VfModuleCustomization();
3225 vfModuleCust.setModelCustomizationUUID(vfModuleCustomizationUUID);
3226 ModelInfoVfModule modelInfoVfModule = new ModelInfoVfModule();
3227 doReturn(vfModuleCust).when(SPY_bbInputSetupUtils)
3228 .getVfModuleCustomizationByModelCuztomizationUUID(vfModuleCustomizationUUID);
3229 doReturn(modelInfoVfModule).when(bbInputSetupMapperLayer).mapCatalogVfModuleToVfModule(vfModuleCust);
3231 SPY_bbInputSetup.mapCatalogVfModule(vfModule, modelInfo, service, vnfModelCustomizationUUID);
3233 assertThat(vfModule.getModelInfoVfModule(), sameBeanAs(modelInfoVfModule));
3235 verify(SPY_bbInputSetupUtils, times(1))
3236 .getVfModuleCustomizationByModelCuztomizationUUID(modelInfo.getModelCustomizationId());
3240 public void testPopulateVfModule() throws Exception {
3241 String vnfId = "vnfId";
3242 String vfModuleId = "vfModuleId";
3243 String volumeGroupId = "volumeGroupId";
3244 String vfModuleCustomizationId = "vfModuleCustomizationId";
3245 ModelInfo modelInfo = new ModelInfo();
3246 modelInfo.setModelCustomizationId(vfModuleCustomizationId);
3247 Service service = new Service();
3248 ServiceModel serviceModel = new ServiceModel();
3249 serviceModel.setCurrentService(service);
3250 String bbName = AssignFlows.VF_MODULE.toString();
3251 ServiceInstance serviceInstance = new ServiceInstance();
3252 GenericVnf vnf = new GenericVnf();
3253 vnf.setVnfId(vnfId);
3254 VolumeGroup volumeGroup = new VolumeGroup();
3255 volumeGroup.setVolumeGroupId(volumeGroupId);
3256 vnf.getVolumeGroups().add(volumeGroup);
3257 serviceInstance.getVnfs().add(vnf);
3258 VfModule vfModule1 = new VfModule();
3259 vfModule1.setVfModuleId("vfModuleId1");
3260 VfModule vfModule2 = new VfModule();
3261 vfModule2.setVfModuleId("vfModuleId2");
3262 vnf.getVfModules().add(vfModule1);
3263 vnf.getVfModules().add(vfModule2);
3264 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
3265 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, vnfId);
3266 String resourceId = vfModuleId;
3267 RelatedInstanceList[] relatedInstanceList = null;
3268 String instanceName = "vfModuleName";
3269 List<Map<String, String>> instanceParams = null;
3270 CloudConfiguration cloudConfiguration = new CloudConfiguration();
3272 org.onap.aai.domain.yang.GenericVnf vnfAAI = new org.onap.aai.domain.yang.GenericVnf();
3273 vnfAAI.setModelCustomizationId("vnfModelCustId");
3274 org.onap.aai.domain.yang.VolumeGroup volumeGroupAAI = new org.onap.aai.domain.yang.VolumeGroup();
3275 volumeGroupAAI.setModelCustomizationId(vfModuleCustomizationId);
3276 org.onap.aai.domain.yang.VfModule vfModuleAAI = new org.onap.aai.domain.yang.VfModule();
3277 vfModuleAAI.setModelCustomizationId(vfModuleCustomizationId);
3279 doReturn(vnfAAI).when(SPY_bbInputSetupUtils).getAAIGenericVnf(vnf.getVnfId());
3280 doReturn(volumeGroupAAI).when(SPY_bbInputSetupUtils).getAAIVolumeGroup(CLOUD_OWNER,
3281 cloudConfiguration.getLcpCloudRegionId(), volumeGroup.getVolumeGroupId());
3282 doReturn(vfModuleAAI).when(SPY_bbInputSetupUtils).getAAIVfModule(isA(String.class), isA(String.class));
3283 doNothing().when(SPY_bbInputSetup).mapCatalogVnf(isA(GenericVnf.class), isA(ModelInfo.class),
3284 isA(Service.class));
3285 doNothing().when(SPY_bbInputSetup).mapCatalogVfModule(isA(VfModule.class), isA(ModelInfo.class),
3286 isA(Service.class), isA(String.class));
3288 SPY_bbInputSetup.populateVfModule(new BBInputSetupParameter.Builder().setRequestId(REQUEST_ID)
3289 .setModelInfo(modelInfo).setService(service).setBbName(bbName).setServiceInstance(serviceInstance)
3290 .setLookupKeyMap(lookupKeyMap).setResourceId(resourceId).setRelatedInstanceList(relatedInstanceList)
3291 .setInstanceName(instanceName).setInstanceParams(instanceParams)
3292 .setCloudConfiguration(cloudConfiguration).setServiceModel(serviceModel).build());
3294 verify(SPY_bbInputSetup, times(3)).mapCatalogVfModule(isA(VfModule.class), isA(ModelInfo.class),
3295 isA(Service.class), isA(String.class));
3296 assertEquals("Lookup Key Map populated with VfModule Id", vfModuleId,
3297 lookupKeyMap.get(ResourceKey.VF_MODULE_ID));
3298 assertEquals("Lookup Key Map populated with VolumeGroup Id", volumeGroupId,
3299 lookupKeyMap.get(ResourceKey.VOLUME_GROUP_ID));
3303 public void testPopulateVfModuleIsReplaceCorrectPopulationOfVfs() throws Exception {
3304 String vnfId = "vnfId";
3305 String vfModuleId = "vfModuleId";
3306 String volumeGroupId = "volumeGroupId";
3307 String vfModuleCustomizationId = "vfModuleCustomizationId";
3308 ModelInfo modelInfo = new ModelInfo();
3309 modelInfo.setModelCustomizationId(vfModuleCustomizationId);
3310 Service currentService = new Service();
3311 currentService.setModelUUID("currentUUID");
3312 Service newService = new Service();
3313 newService.setModelUUID("newUUID");
3314 ServiceModel serviceModel = new ServiceModel();
3315 serviceModel.setCurrentService(currentService);
3316 serviceModel.setNewService(newService);
3317 String bbName = "ActivateVfModuleBB";
3318 ServiceInstance serviceInstance = new ServiceInstance();
3319 GenericVnf vnf = new GenericVnf();
3320 vnf.setVnfId(vnfId);
3321 VolumeGroup volumeGroup = new VolumeGroup();
3322 volumeGroup.setVolumeGroupId(volumeGroupId);
3323 vnf.getVolumeGroups().add(volumeGroup);
3324 serviceInstance.getVnfs().add(vnf);
3325 VfModule vfModule1 = new VfModule();
3326 vfModule1.setVfModuleId("vfModuleId1");
3327 VfModule vfModule2 = new VfModule();
3328 vfModule2.setVfModuleId("vfModuleId2");
3329 vnf.getVfModules().add(vfModule1);
3330 vnf.getVfModules().add(vfModule2);
3331 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
3332 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, vnfId);
3333 lookupKeyMap.put(ResourceKey.VF_MODULE_ID, "vfModuleId1");
3334 String resourceId = vfModuleId;
3335 RelatedInstanceList[] relatedInstanceList = new RelatedInstanceList[1];
3336 RelatedInstanceList relatedInstanceListObj = new RelatedInstanceList();
3337 RelatedInstance relatedInstance = new RelatedInstance();
3338 relatedInstance.setInstanceId(vnfId);
3340 ModelInfo vnfModelInfo = new ModelInfo();
3341 vnfModelInfo.setModelCustomizationId("vnfCustomizationId");
3342 vnfModelInfo.setModelType(ModelType.vnf);
3343 relatedInstance.setModelInfo(vnfModelInfo);
3344 relatedInstanceListObj.setRelatedInstance(relatedInstance);
3345 relatedInstanceList[0] = relatedInstanceListObj;
3347 String instanceName = "vfModuleName";
3348 List<Map<String, String>> instanceParams = null;
3349 CloudConfiguration cloudConfiguration = new CloudConfiguration();
3351 org.onap.aai.domain.yang.GenericVnf vnfAAI = new org.onap.aai.domain.yang.GenericVnf();
3352 vnfAAI.setModelCustomizationId("vnfModelCustId");
3353 org.onap.aai.domain.yang.VolumeGroup volumeGroupAAI = new org.onap.aai.domain.yang.VolumeGroup();
3354 volumeGroupAAI.setModelCustomizationId(vfModuleCustomizationId);
3355 org.onap.aai.domain.yang.VfModule vfModuleAAI = new org.onap.aai.domain.yang.VfModule();
3356 vfModuleAAI.setModelCustomizationId(vfModuleCustomizationId);
3358 doReturn(vnfAAI).when(SPY_bbInputSetupUtils).getAAIGenericVnf(vnf.getVnfId());
3359 doReturn(volumeGroupAAI).when(SPY_bbInputSetupUtils).getAAIVolumeGroup(CLOUD_OWNER,
3360 cloudConfiguration.getLcpCloudRegionId(), volumeGroup.getVolumeGroupId());
3361 doReturn(vfModuleAAI).when(SPY_bbInputSetupUtils).getAAIVfModule(isA(String.class), isA(String.class));
3362 doNothing().when(SPY_bbInputSetup).mapCatalogVnf(isA(GenericVnf.class), isA(ModelInfo.class),
3363 isA(Service.class));
3364 doNothing().when(SPY_bbInputSetup).mapCatalogVfModule(isA(VfModule.class), isA(ModelInfo.class),
3365 isA(Service.class), isA(String.class));
3367 BBInputSetupParameter parameter = new BBInputSetupParameter.Builder().setModelInfo(modelInfo)
3368 .setService(newService).setBbName(bbName).setServiceInstance(serviceInstance)
3369 .setLookupKeyMap(lookupKeyMap).setResourceId(resourceId).setRelatedInstanceList(relatedInstanceList)
3370 .setInstanceName(instanceName).setInstanceParams(instanceParams)
3371 .setCloudConfiguration(cloudConfiguration).setIsReplace(true).setServiceModel(serviceModel).build();
3372 SPY_bbInputSetup.populateVfModule(parameter);
3374 verify(SPY_bbInputSetup, times(1)).mapCatalogVfModule(isA(VfModule.class), isA(ModelInfo.class),
3375 eq(currentService), eq("vnfModelCustId"));
3376 verify(SPY_bbInputSetup, times(1)).mapCatalogVfModule(isA(VfModule.class), isA(ModelInfo.class), eq(newService),
3377 eq("vnfCustomizationId"));
3378 assertEquals("Lookup Key Map populated with VfModule Id", "vfModuleId1",
3379 lookupKeyMap.get(ResourceKey.VF_MODULE_ID));
3380 assertEquals("Lookup Key Map populated with VolumeGroup Id", volumeGroupId,
3381 lookupKeyMap.get(ResourceKey.VOLUME_GROUP_ID));
3385 public void testPopulateVfModuleIsReplace() throws Exception {
3386 String vnfId = "vnfId";
3387 String vfModuleId = "vfModuleId";
3388 String volumeGroupId = "volumeGroupId";
3389 String vfModuleCustomizationId = "vfModuleCustomizationId";
3390 ModelInfo modelInfo = new ModelInfo();
3391 modelInfo.setModelCustomizationId(vfModuleCustomizationId);
3392 Service currentService = new Service();
3393 Service newService = new Service();
3394 ServiceModel serviceModel = new ServiceModel();
3395 serviceModel.setCurrentService(currentService);
3396 currentService.setModelUUID("currentUUID");
3397 serviceModel.setNewService(newService);
3398 currentService.setModelUUID("newUUID");
3399 String bbName = AssignFlows.VF_MODULE.toString();
3400 ServiceInstance serviceInstance = new ServiceInstance();
3401 GenericVnf vnf = new GenericVnf();
3402 vnf.setVnfId(vnfId);
3403 VolumeGroup volumeGroup = new VolumeGroup();
3404 volumeGroup.setVolumeGroupId(volumeGroupId);
3405 vnf.getVolumeGroups().add(volumeGroup);
3406 serviceInstance.getVnfs().add(vnf);
3407 VfModule vfModule1 = new VfModule();
3408 vfModule1.setVfModuleId("vfModuleId1");
3409 VfModule vfModule2 = new VfModule();
3410 vfModule2.setVfModuleId("vfModuleId2");
3411 vnf.getVfModules().add(vfModule1);
3412 vnf.getVfModules().add(vfModule2);
3413 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
3414 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, vnfId);
3415 lookupKeyMap.put(ResourceKey.VF_MODULE_ID, vfModuleId);
3416 String resourceId = vfModuleId;
3417 RelatedInstanceList[] relatedInstanceList = new RelatedInstanceList[1];
3418 RelatedInstanceList relatedInstanceListObj = new RelatedInstanceList();
3419 RelatedInstance relatedInstance = new RelatedInstance();
3420 relatedInstance.setInstanceId(vnfId);
3422 ModelInfo vnfModelInfo = new ModelInfo();
3423 vnfModelInfo.setModelCustomizationId("vnfCustomizationId");
3424 vnfModelInfo.setModelType(ModelType.vnf);
3425 relatedInstance.setModelInfo(vnfModelInfo);
3426 relatedInstanceListObj.setRelatedInstance(relatedInstance);
3427 relatedInstanceList[0] = relatedInstanceListObj;
3429 String instanceName = "vfModuleName";
3430 List<Map<String, String>> instanceParams = null;
3431 CloudConfiguration cloudConfiguration = new CloudConfiguration();
3433 org.onap.aai.domain.yang.GenericVnf vnfAAI = new org.onap.aai.domain.yang.GenericVnf();
3434 vnfAAI.setModelCustomizationId("vnfModelCustId");
3435 org.onap.aai.domain.yang.VolumeGroup volumeGroupAAI = new org.onap.aai.domain.yang.VolumeGroup();
3436 volumeGroupAAI.setModelCustomizationId(vfModuleCustomizationId);
3437 org.onap.aai.domain.yang.VfModule vfModuleAAI = new org.onap.aai.domain.yang.VfModule();
3438 vfModuleAAI.setModelCustomizationId(vfModuleCustomizationId);
3440 doReturn(vnfAAI).when(SPY_bbInputSetupUtils).getAAIGenericVnf(vnf.getVnfId());
3441 doReturn(volumeGroupAAI).when(SPY_bbInputSetupUtils).getAAIVolumeGroup(CLOUD_OWNER,
3442 cloudConfiguration.getLcpCloudRegionId(), volumeGroup.getVolumeGroupId());
3443 doReturn(vfModuleAAI).when(SPY_bbInputSetupUtils).getAAIVfModule(isA(String.class), isA(String.class));
3444 doNothing().when(SPY_bbInputSetup).mapCatalogVnf(isA(GenericVnf.class), isA(ModelInfo.class),
3445 isA(Service.class));
3446 doNothing().when(SPY_bbInputSetup).mapCatalogVfModule(isA(VfModule.class), isA(ModelInfo.class),
3447 isA(Service.class), isA(String.class));
3449 BBInputSetupParameter parameter = new BBInputSetupParameter.Builder().setModelInfo(modelInfo)
3450 .setService(newService).setServiceInstance(serviceInstance).setBbName(bbName)
3451 .setLookupKeyMap(lookupKeyMap).setResourceId(resourceId).setRelatedInstanceList(relatedInstanceList)
3452 .setInstanceName(instanceName).setInstanceParams(instanceParams)
3453 .setCloudConfiguration(cloudConfiguration).setIsReplace(true).setServiceModel(serviceModel).build();
3456 SPY_bbInputSetup.populateVfModule(parameter);
3458 verify(SPY_bbInputSetup, times(2)).mapCatalogVfModule(isA(VfModule.class), isA(ModelInfo.class),
3459 eq(serviceModel.getCurrentService()), isA(String.class));
3460 verify(SPY_bbInputSetup, times(1)).mapCatalogVfModule(isA(VfModule.class), isA(ModelInfo.class),
3461 eq(serviceModel.getNewService()), isA(String.class));
3462 assertEquals("Lookup Key Map populated with VfModule Id", vfModuleId,
3463 lookupKeyMap.get(ResourceKey.VF_MODULE_ID));
3464 assertEquals("Lookup Key Map populated with VolumeGroup Id", volumeGroupId,
3465 lookupKeyMap.get(ResourceKey.VOLUME_GROUP_ID));
3469 public void testGettingVnfcToConfiguration() throws Exception {
3471 String vnfcName = "vnfcName";
3472 org.onap.aai.domain.yang.Configuration expectedAAI = new org.onap.aai.domain.yang.Configuration();
3473 AAIResourceUri aaiResourceUri = AAIUriFactory.createResourceUri(AAIFluentTypeBuilder.network().vnfc(vnfcName));
3474 AAIResultWrapper configurationWrapper =
3475 new AAIResultWrapper(new AAICommonObjectMapperProvider().getMapper().writeValueAsString(expectedAAI));
3477 doReturn(new AAIResultWrapper(null)).when(SPY_bbInputSetupUtils).getAAIResourceDepthOne(aaiResourceUri);
3478 Vnfc vnfc = SPY_bbInputSetup.getVnfcToConfiguration(vnfcName);
3479 Assert.assertNull(vnfc);
3481 doReturn(configurationWrapper).when(SPY_bbInputSetupUtils).getAAIResourceDepthOne(aaiResourceUri);
3482 vnfc = SPY_bbInputSetup.getVnfcToConfiguration(vnfcName);
3483 Assert.assertNotNull(vnfc);