2 * ============LICENSE_START=======================================================
4 * ================================================================================
5 * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
6 * ================================================================================
7 * Licensed under the Apache License, Version 2.0 (the "License");
8 * you may not use this file except in compliance with the License.
9 * You may obtain a copy of the License at
11 * http://www.apache.org/licenses/LICENSE-2.0
13 * Unless required by applicable law or agreed to in writing, software
14 * distributed under the License is distributed on an "AS IS" BASIS,
15 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 * See the License for the specific language governing permissions and
17 * limitations under the License.
18 * ============LICENSE_END=========================================================
21 package org.onap.so.bpmn.servicedecomposition.tasks;
23 import static com.shazam.shazamcrest.MatcherAssert.assertThat;
24 import static com.shazam.shazamcrest.matcher.Matchers.sameBeanAs;
25 import static org.junit.Assert.assertEquals;
26 import static org.junit.Assert.assertNotNull;
27 import static org.junit.Assert.assertNull;
28 import static org.mockito.Matchers.any;
29 import static org.mockito.Matchers.eq;
30 import static org.mockito.Matchers.isA;
31 import static org.mockito.Mockito.doNothing;
32 import static org.mockito.Mockito.doReturn;
33 import static org.mockito.Mockito.times;
34 import static org.mockito.Mockito.verify;
37 import java.io.IOException;
38 import java.util.ArrayList;
39 import java.util.Arrays;
40 import java.util.HashMap;
41 import java.util.List;
44 import org.camunda.bpm.engine.delegate.DelegateExecution;
45 import org.junit.Before;
46 import org.junit.Test;
47 import org.junit.runner.RunWith;
48 import org.mockito.Mock;
49 import org.mockito.Mockito;
50 import org.mockito.Spy;
51 import org.mockito.runners.MockitoJUnitRunner;
52 import org.onap.so.bpmn.servicedecomposition.bbobjects.CloudRegion;
53 import org.onap.so.bpmn.servicedecomposition.bbobjects.Collection;
54 import org.onap.so.bpmn.servicedecomposition.bbobjects.Configuration;
55 import org.onap.so.bpmn.servicedecomposition.bbobjects.Customer;
56 import org.onap.so.bpmn.servicedecomposition.bbobjects.GenericVnf;
57 import org.onap.so.bpmn.servicedecomposition.bbobjects.InstanceGroup;
58 import org.onap.so.bpmn.servicedecomposition.bbobjects.L3Network;
59 import org.onap.so.bpmn.servicedecomposition.bbobjects.LineOfBusiness;
60 import org.onap.so.bpmn.servicedecomposition.bbobjects.OwningEntity;
61 import org.onap.so.bpmn.servicedecomposition.bbobjects.Platform;
62 import org.onap.so.bpmn.servicedecomposition.bbobjects.Project;
63 import org.onap.so.bpmn.servicedecomposition.bbobjects.RouteTableReference;
64 import org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance;
65 import org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceSubscription;
66 import org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule;
67 import org.onap.so.bpmn.servicedecomposition.bbobjects.VolumeGroup;
68 import org.onap.so.bpmn.servicedecomposition.entities.BuildingBlock;
69 import org.onap.so.bpmn.servicedecomposition.entities.ExecuteBuildingBlock;
70 import org.onap.so.bpmn.servicedecomposition.entities.GeneralBuildingBlock;
71 import org.onap.so.bpmn.servicedecomposition.entities.ResourceKey;
72 import org.onap.so.bpmn.servicedecomposition.entities.WorkflowResourceIds;
73 import org.onap.so.bpmn.servicedecomposition.generalobjects.OrchestrationContext;
74 import org.onap.so.bpmn.servicedecomposition.generalobjects.RequestContext;
75 import org.onap.so.bpmn.servicedecomposition.modelinfo.ModelInfoCollection;
76 import org.onap.so.bpmn.servicedecomposition.modelinfo.ModelInfoGenericVnf;
77 import org.onap.so.bpmn.servicedecomposition.modelinfo.ModelInfoInstanceGroup;
78 import org.onap.so.bpmn.servicedecomposition.modelinfo.ModelInfoNetwork;
79 import org.onap.so.bpmn.servicedecomposition.modelinfo.ModelInfoServiceInstance;
80 import org.onap.so.bpmn.servicedecomposition.modelinfo.ModelInfoVfModule;
81 import org.onap.so.client.aai.AAICommonObjectMapperProvider;
82 import org.onap.so.client.aai.AAIObjectType;
83 import org.onap.so.client.aai.entities.AAIResultWrapper;
84 import org.onap.so.client.aai.entities.uri.AAIResourceUri;
85 import org.onap.so.client.aai.entities.uri.AAIUriFactory;
86 import org.onap.so.db.catalog.beans.CollectionNetworkResourceCustomization;
87 import org.onap.so.db.catalog.beans.CollectionResource;
88 import org.onap.so.db.catalog.beans.CollectionResourceCustomization;
89 import org.onap.so.db.catalog.beans.CollectionResourceInstanceGroupCustomization;
90 import org.onap.so.db.catalog.beans.ConfigurationResourceCustomization;
91 import org.onap.so.db.catalog.beans.InstanceGroupType;
92 import org.onap.so.db.catalog.beans.NetworkCollectionResourceCustomization;
93 import org.onap.so.db.catalog.beans.NetworkResourceCustomization;
94 import org.onap.so.db.catalog.beans.OrchestrationStatus;
95 import org.onap.so.db.catalog.beans.Service;
96 import org.onap.so.db.catalog.beans.VfModuleCustomization;
97 import org.onap.so.db.catalog.beans.VnfResourceCustomization;
98 import org.onap.so.db.request.beans.InfraActiveRequests;
99 import org.onap.so.serviceinstancebeans.CloudConfiguration;
100 import org.onap.so.serviceinstancebeans.ModelInfo;
101 import org.onap.so.serviceinstancebeans.ModelType;
102 import org.onap.so.serviceinstancebeans.RelatedInstance;
103 import org.onap.so.serviceinstancebeans.RelatedInstanceList;
104 import org.onap.so.serviceinstancebeans.RequestDetails;
105 import org.onap.so.serviceinstancebeans.RequestInfo;
106 import org.onap.so.serviceinstancebeans.RequestParameters;
107 import org.onap.so.serviceinstancebeans.Resources;
108 import org.onap.so.serviceinstancebeans.SubscriberInfo;
110 import com.fasterxml.jackson.core.JsonParseException;
111 import com.fasterxml.jackson.core.JsonProcessingException;
112 import com.fasterxml.jackson.databind.JsonMappingException;
113 import com.fasterxml.jackson.databind.ObjectMapper;
114 @RunWith(MockitoJUnitRunner.class)
115 public class BBInputSetupTest {
116 private static final String RESOURCE_PATH = "src/test/resources/__files/ExecuteBuildingBlock/";
118 protected ObjectMapper mapper = new ObjectMapper();
119 private static final String CLOUD_OWNER = "att-aic";
122 private BBInputSetup SPY_bbInputSetup = new BBInputSetup();
125 private BBInputSetupUtils SPY_bbInputSetupUtils;
128 private BBInputSetupMapperLayer bbInputSetupMapperLayer;
132 SPY_bbInputSetup.setBbInputSetupUtils(SPY_bbInputSetupUtils);
133 SPY_bbInputSetup.setMapperLayer(bbInputSetupMapperLayer);
137 public void testGetAlaCarteServiceInstance() throws Exception {
138 ServiceInstance expected = mapper.readValue(
139 new File(RESOURCE_PATH + "ServiceInstance_getServiceInstanceNOAAIExpected.json"),
140 ServiceInstance.class);
141 RequestDetails requestDetails = new RequestDetails();
142 RequestInfo requestInfo = new RequestInfo();
143 requestInfo.setInstanceName("SharansInstanceName");
144 requestDetails.setRequestInfo(requestInfo);
145 Customer customer = new Customer();
146 String serviceInstanceId = "SharansInstanceId";
147 boolean aLaCarte = true;
148 Service service = new Service();
149 service.setModelUUID("modelUUID");
150 ModelInfoServiceInstance modelInfoServiceInstance = new ModelInfoServiceInstance();
151 modelInfoServiceInstance.setModelUuid("modelUUID");
152 expected.setModelInfoServiceInstance(modelInfoServiceInstance);
153 org.onap.aai.domain.yang.ServiceInstance serviceInstanceAAI = new org.onap.aai.domain.yang.ServiceInstance();
154 serviceInstanceAAI.setModelVersionId("modelUUIDDifferent");
155 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
156 String bbName = AssignFlows.SERVICE_INSTANCE.toString();
157 Service differentService = new Service();
158 differentService.setModelUUID("modelUUIDDifferent");
160 doReturn(expected).when(SPY_bbInputSetup).getServiceInstanceHelper(requestDetails, customer, null, null,
161 lookupKeyMap, serviceInstanceId, aLaCarte, service, bbName);
162 doReturn(serviceInstanceAAI).when(SPY_bbInputSetupUtils).getAAIServiceInstanceById(serviceInstanceId);
163 doReturn(differentService).when(SPY_bbInputSetupUtils)
164 .getCatalogServiceByModelUUID(serviceInstanceAAI.getModelVersionId());
165 doReturn(expected.getModelInfoServiceInstance()).when(bbInputSetupMapperLayer)
166 .mapCatalogServiceIntoServiceInstance(differentService);
168 ServiceInstance actual = SPY_bbInputSetup.getALaCarteServiceInstance(service, requestDetails, customer, null,
169 null, lookupKeyMap, serviceInstanceId, aLaCarte, bbName);
170 assertThat(actual, sameBeanAs(expected));
173 @Test(expected = Exception.class)
174 public void testGetAlaCarteServiceInstanceException() throws Exception {
175 ServiceInstance expected = mapper.readValue(
176 new File(RESOURCE_PATH + "ServiceInstance_getServiceInstanceNOAAIExpected.json"),
177 ServiceInstance.class);
178 RequestDetails requestDetails = new RequestDetails();
179 RequestInfo requestInfo = new RequestInfo();
180 requestInfo.setInstanceName("SharansInstanceName");
181 requestDetails.setRequestInfo(requestInfo);
182 Customer customer = new Customer();
183 String serviceInstanceId = "SharansInstanceId";
184 boolean aLaCarte = true;
185 Service service = new Service();
186 service.setModelUUID("modelUUID");
187 ModelInfoServiceInstance modelInfoServiceInstance = new ModelInfoServiceInstance();
188 modelInfoServiceInstance.setModelUuid("modelUUID");
189 expected.setModelInfoServiceInstance(modelInfoServiceInstance);
190 org.onap.aai.domain.yang.ServiceInstance serviceInstanceAAI = new org.onap.aai.domain.yang.ServiceInstance();
191 serviceInstanceAAI.setModelVersionId("modelUUIDDifferent");
192 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
193 String bbName = AssignFlows.SERVICE_INSTANCE.toString();
194 Service differentService = new Service();
195 differentService.setModelUUID("modelUUIDDifferent");
197 doReturn(expected).when(SPY_bbInputSetup).getServiceInstanceHelper(requestDetails, customer, null, null,
198 lookupKeyMap, serviceInstanceId, aLaCarte, service, bbName);
199 doReturn(serviceInstanceAAI).when(SPY_bbInputSetupUtils).getAAIServiceInstanceById(serviceInstanceId);
200 doReturn(null).when(SPY_bbInputSetupUtils)
201 .getCatalogServiceByModelUUID(serviceInstanceAAI.getModelVersionId());
203 ServiceInstance actual = SPY_bbInputSetup.getALaCarteServiceInstance(service, requestDetails, customer, null,
204 null, lookupKeyMap, serviceInstanceId, aLaCarte, bbName);
205 assertThat(actual, sameBeanAs(expected));
209 public void testGetCustomerAndServiceSubscription() throws JsonParseException, JsonMappingException, IOException {
210 RequestDetails requestDetails = mapper.readValue(
211 new File(RESOURCE_PATH + "RequestDetailsInput_withRelatedInstanceList.json"), RequestDetails.class);
212 SubscriberInfo subscriberInfo = new SubscriberInfo();
213 subscriberInfo.setGlobalSubscriberId("globalSubscriberId");
214 RequestParameters requestParams = new RequestParameters();
215 requestParams.setSubscriptionServiceType("subscriptionServiceType");
216 requestDetails.setRequestParameters(requestParams);
217 requestDetails.setSubscriberInfo(subscriberInfo);
218 String resourceId = "resourceId";
219 Customer expected = new Customer();
220 expected.setGlobalCustomerId("globalCustomerId");
221 ServiceSubscription serviceSubscription = new ServiceSubscription();
222 serviceSubscription.setServiceType("subscriptionServiceType");
224 doReturn(expected).when(this.SPY_bbInputSetup).getCustomerFromRequest(requestDetails);
225 doReturn(serviceSubscription).when(this.SPY_bbInputSetup).getServiceSubscription(requestDetails, expected);
227 Customer actual = this.SPY_bbInputSetup.getCustomerAndServiceSubscription(requestDetails, resourceId);
229 assertThat(actual, sameBeanAs(expected));
231 requestDetails.setSubscriberInfo(null);
233 doReturn(null).when(this.SPY_bbInputSetup).getServiceSubscription(requestDetails, expected);
234 doReturn(expected).when(this.SPY_bbInputSetup).getCustomerFromURI(resourceId);
235 doReturn(serviceSubscription).when(this.SPY_bbInputSetup).getServiceSubscriptionFromURI(resourceId, expected);
237 assertThat(actual, sameBeanAs(expected));
242 public void testSetHomingFlag() throws JsonParseException, JsonMappingException, IOException {
243 GeneralBuildingBlock expected = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
244 GeneralBuildingBlock.class);
245 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
246 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "vnfId");
247 GenericVnf genericVnfExpected = new GenericVnf();
248 genericVnfExpected.setVnfId("vnfId");
249 genericVnfExpected.setCallHoming(true);
250 expected.getCustomer().getServiceSubscription().getServiceInstances().get(0).getVnfs().add(genericVnfExpected);
251 boolean homing = true;
252 GenericVnf genericVnfActual = new GenericVnf();
253 genericVnfActual.setVnfId("vnfId");
254 genericVnfActual.setCallHoming(false);
255 GeneralBuildingBlock actual = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
256 GeneralBuildingBlock.class);
257 actual.getCustomer().getServiceSubscription().getServiceInstances().get(0).getVnfs().add(genericVnfActual);
259 SPY_bbInputSetup.setHomingFlag(actual, homing, lookupKeyMap);
260 assertThat(actual, sameBeanAs(expected));
264 public void testGetExecuteBBFromExecution() throws IOException {
265 ExecuteBuildingBlock expected = new ExecuteBuildingBlock();
266 BuildingBlock bb = new BuildingBlock();
267 bb.setBpmnFlowName("AssignServiceInstanceBB");
268 expected.setBuildingBlock(bb);
269 expected.setRequestId("00032ab7-3fb3-42e5-965d-8ea592502017");
270 DelegateExecution execution = Mockito.mock(DelegateExecution.class);
271 doReturn(expected).when(execution).getVariable(any(String.class));
272 ExecuteBuildingBlock actual = SPY_bbInputSetup.getExecuteBBFromExecution(execution);
273 assertThat(actual, sameBeanAs(expected));
277 public void testGetGBB() throws Exception {
278 GeneralBuildingBlock expected = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
279 GeneralBuildingBlock.class);
281 ExecuteBuildingBlock executeBB = new ExecuteBuildingBlock();
282 executeBB.setRequestId("requestId");
283 RequestDetails requestDetails = new RequestDetails();
284 ModelInfo modelInfo = new ModelInfo();
285 modelInfo.setModelType(ModelType.service);
286 requestDetails.setModelInfo(modelInfo);
287 RequestParameters requestParams = new RequestParameters();
288 requestParams.setaLaCarte(true);
289 requestDetails.setRequestParameters(requestParams);
290 doReturn(requestDetails).when(SPY_bbInputSetupUtils).getRequestDetails(executeBB.getRequestId());
291 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
292 String resourceId = "123";
293 String requestAction = "createInstance";
294 doReturn(expected).when(SPY_bbInputSetup).getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
295 requestAction, resourceId);
296 doNothing().when(SPY_bbInputSetup).populateLookupKeyMapWithIds(any(WorkflowResourceIds.class), any());
297 boolean aLaCarte = true;
298 GeneralBuildingBlock actual = SPY_bbInputSetup.getGBB(executeBB, lookupKeyMap, requestAction, aLaCarte,
301 assertThat(actual, sameBeanAs(expected));
305 public void testGetGBBALaCarteNonService() throws Exception {
306 GeneralBuildingBlock expected = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
307 GeneralBuildingBlock.class);
308 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
309 ExecuteBuildingBlock.class);
310 RequestDetails requestDetails = mapper.readValue(
311 new File(RESOURCE_PATH + "RequestDetailsInput_withRelatedInstanceList.json"), RequestDetails.class);
312 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
313 String requestAction = "createInstance";
314 Service service = Mockito.mock(Service.class);
315 ServiceInstance serviceInstance = Mockito.mock(ServiceInstance.class);
316 String resourceId = "123";
317 String vnfType = "vnfType";
318 org.onap.aai.domain.yang.ServiceInstance aaiServiceInstance = new org.onap.aai.domain.yang.ServiceInstance();
319 aaiServiceInstance.setModelVersionId("modelVersionId");
320 org.onap.aai.domain.yang.CloudRegion aaiCloudRegion = Mockito.mock(org.onap.aai.domain.yang.CloudRegion.class);
321 lookupKeyMap.put(ResourceKey.SERVICE_INSTANCE_ID, "instanceId");
322 doReturn(service).when(SPY_bbInputSetupUtils).getCatalogServiceByModelUUID(aaiServiceInstance.getModelVersionId());
323 doReturn(aaiServiceInstance).when(SPY_bbInputSetupUtils).getAAIServiceInstanceById("instanceId");
324 doReturn(aaiCloudRegion).when(SPY_bbInputSetupUtils).getCloudRegion(requestDetails.getCloudConfiguration(), "att-aic");
326 doNothing().when(SPY_bbInputSetup).populateObjectsOnAssignAndCreateFlows(requestDetails, service, "bbName",
327 serviceInstance, lookupKeyMap, resourceId, vnfType);
328 doReturn(serviceInstance).when(SPY_bbInputSetup).getExistingServiceInstance(aaiServiceInstance);
329 doReturn(expected).when(SPY_bbInputSetup).populateGBBWithSIAndAdditionalInfo(requestDetails, serviceInstance,
330 executeBB, requestAction, null);
332 GeneralBuildingBlock actual = SPY_bbInputSetup.getGBBALaCarteNonService(executeBB, requestDetails, lookupKeyMap,
333 requestAction, resourceId, vnfType);
335 assertThat(actual, sameBeanAs(expected));
338 @Test(expected = Exception.class)
339 public void testGetGBBALaCarteNonServiceWithoutServiceModelInfo() throws Exception {
340 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
341 ExecuteBuildingBlock.class);
342 RequestDetails requestDetails = mapper.readValue(
343 new File(RESOURCE_PATH + "RequestDetailsInput_withRelatedInstanceList.json"), RequestDetails.class);
344 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
345 String requestAction = "createInstance";
346 org.onap.aai.domain.yang.ServiceInstance aaiServiceInstance = new org.onap.aai.domain.yang.ServiceInstance();
347 aaiServiceInstance.setModelVersionId("modelVersionId");
348 String resourceId = "123";
349 String vnfType = "vnfType";
350 doReturn(null).when(SPY_bbInputSetupUtils).getCatalogServiceByModelUUID(aaiServiceInstance.getModelVersionId());
351 doReturn(aaiServiceInstance).when(SPY_bbInputSetupUtils).getAAIServiceInstanceById("instanceId");
353 SPY_bbInputSetup.getGBBALaCarteNonService(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId,
358 public void testGetGBBALaCarteNonServiceWithoutRelatedInstances() throws Exception {
359 GeneralBuildingBlock expected = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
360 GeneralBuildingBlock.class);
361 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
362 ExecuteBuildingBlock.class);
363 RequestDetails requestDetails = mapper.readValue(
364 new File(RESOURCE_PATH + "RequestDetailsInput_withoutRelatedInstanceList.json"), RequestDetails.class);
365 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
366 String requestAction = "createInstance";
367 Service service = Mockito.mock(Service.class);
368 String resourceId = "123";
369 ServiceInstance serviceInstance = Mockito.mock(ServiceInstance.class);
370 org.onap.aai.domain.yang.ServiceInstance aaiServiceInstance = new org.onap.aai.domain.yang.ServiceInstance();
371 aaiServiceInstance.setModelVersionId("modelVersionId");
372 org.onap.aai.domain.yang.CloudRegion aaiCloudRegion = Mockito.mock(org.onap.aai.domain.yang.CloudRegion.class);
373 String vnfType = "vnfType";
374 lookupKeyMap.put(ResourceKey.SERVICE_INSTANCE_ID, "instanceId");
375 doReturn(service).when(SPY_bbInputSetupUtils).getCatalogServiceByModelUUID(aaiServiceInstance.getModelVersionId());
376 doReturn(aaiServiceInstance).when(SPY_bbInputSetupUtils).getAAIServiceInstanceById("instanceId");
377 doReturn(aaiCloudRegion).when(SPY_bbInputSetupUtils).getCloudRegion(requestDetails.getCloudConfiguration(), "att-aic");
379 doNothing().when(SPY_bbInputSetup).populateObjectsOnAssignAndCreateFlows(requestDetails, service, "bbName",
380 serviceInstance, lookupKeyMap, resourceId, vnfType);
382 doReturn(serviceInstance).when(SPY_bbInputSetup).getExistingServiceInstance(aaiServiceInstance);
383 doReturn(expected).when(SPY_bbInputSetup).populateGBBWithSIAndAdditionalInfo(requestDetails, serviceInstance,
384 executeBB, requestAction,null);
386 GeneralBuildingBlock actual = SPY_bbInputSetup.getGBBALaCarteNonService(executeBB, requestDetails, lookupKeyMap,
387 requestAction, resourceId, vnfType);
389 assertThat(actual, sameBeanAs(expected));
393 public void testGetGBBALaCarteService() throws Exception {
394 GeneralBuildingBlock expected = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
395 GeneralBuildingBlock.class);
396 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
397 ExecuteBuildingBlock.class);
398 RequestDetails requestDetails = mapper.readValue(
399 new File(RESOURCE_PATH + "RequestDetailsInput_withRelatedInstanceList.json"), RequestDetails.class);
400 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
402 org.onap.so.serviceinstancebeans.Project requestProject = new org.onap.so.serviceinstancebeans.Project();
403 org.onap.so.serviceinstancebeans.OwningEntity requestOwningEntity = new org.onap.so.serviceinstancebeans.OwningEntity();
404 requestDetails.setProject(requestProject);
405 requestDetails.setOwningEntity(requestOwningEntity);
407 Service service = Mockito.mock(Service.class);
408 Customer customer = Mockito.mock(Customer.class);
409 ServiceSubscription serviceSubscription = Mockito.mock(ServiceSubscription.class);
410 Project project = Mockito.mock(Project.class);
411 OwningEntity owningEntity = Mockito.mock(OwningEntity.class);
412 ServiceInstance serviceInstance = Mockito.mock(ServiceInstance.class);
413 String resourceId = "123";
414 String requestAction = "createInstance";
415 executeBB.setaLaCarte(true);
416 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.SERVICE_INSTANCE.toString());
417 org.onap.aai.domain.yang.CloudRegion aaiCloudRegion = Mockito.mock(org.onap.aai.domain.yang.CloudRegion.class);
419 doReturn(service).when(SPY_bbInputSetupUtils)
420 .getCatalogServiceByModelUUID(requestDetails.getModelInfo().getModelVersionId());
421 doReturn(aaiCloudRegion).when(SPY_bbInputSetupUtils).getCloudRegion(requestDetails.getCloudConfiguration(), "att-aic");
422 doReturn(project).when(bbInputSetupMapperLayer).mapRequestProject(requestDetails.getProject());
423 doReturn(owningEntity).when(bbInputSetupMapperLayer)
424 .mapRequestOwningEntity(requestDetails.getOwningEntity());
426 doReturn(customer).when(SPY_bbInputSetup).getCustomerAndServiceSubscription(requestDetails, resourceId);
427 doReturn(serviceInstance).when(SPY_bbInputSetup).getALaCarteServiceInstance(service, requestDetails, customer,
428 project, owningEntity, lookupKeyMap, resourceId, executeBB.isaLaCarte(),
429 executeBB.getBuildingBlock().getBpmnFlowName());
430 doReturn(expected).when(SPY_bbInputSetup).populateGBBWithSIAndAdditionalInfo(requestDetails, serviceInstance,
431 executeBB, requestAction, customer);
433 GeneralBuildingBlock actual = SPY_bbInputSetup.getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
434 requestAction, resourceId);
436 assertThat(actual, sameBeanAs(expected));
440 public void testGetGBBALaCarteServiceFindServiceByModelVersionId() throws Exception {
441 GeneralBuildingBlock expected = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
442 GeneralBuildingBlock.class);
443 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
444 ExecuteBuildingBlock.class);
445 RequestDetails requestDetails = mapper.readValue(
446 new File(RESOURCE_PATH + "RequestDetailsInput_withRelatedInstanceList.json"), RequestDetails.class);
447 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
449 org.onap.so.serviceinstancebeans.Project requestProject = new org.onap.so.serviceinstancebeans.Project();
450 org.onap.so.serviceinstancebeans.OwningEntity requestOwningEntity = new org.onap.so.serviceinstancebeans.OwningEntity();
451 requestDetails.setProject(requestProject);
452 requestDetails.setOwningEntity(requestOwningEntity);
454 Service service = Mockito.mock(Service.class);
455 Customer customer = Mockito.mock(Customer.class);
456 ServiceSubscription serviceSubscription = Mockito.mock(ServiceSubscription.class);
457 Project project = Mockito.mock(Project.class);
458 OwningEntity owningEntity = Mockito.mock(OwningEntity.class);
459 ServiceInstance serviceInstance = Mockito.mock(ServiceInstance.class);
460 String resourceId = "123";
461 String requestAction = "createInstance";
462 executeBB.setaLaCarte(true);
463 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.SERVICE_INSTANCE.toString());
464 org.onap.aai.domain.yang.CloudRegion aaiCloudRegion = Mockito.mock(org.onap.aai.domain.yang.CloudRegion.class);
466 doReturn(null).when(SPY_bbInputSetupUtils)
467 .getCatalogServiceByModelUUID(requestDetails.getModelInfo().getModelVersionId());
468 doReturn(service).when(SPY_bbInputSetupUtils).getCatalogServiceByModelVersionAndModelInvariantUUID(
469 requestDetails.getModelInfo().getModelVersion(), requestDetails.getModelInfo().getModelInvariantId());
470 doReturn(aaiCloudRegion).when(SPY_bbInputSetupUtils).getCloudRegion(requestDetails.getCloudConfiguration(), "att-aic");
471 doReturn(project).when(bbInputSetupMapperLayer).mapRequestProject(requestDetails.getProject());
472 doReturn(owningEntity).when(bbInputSetupMapperLayer)
473 .mapRequestOwningEntity(requestDetails.getOwningEntity());
475 doReturn(customer).when(SPY_bbInputSetup).getCustomerAndServiceSubscription(requestDetails, resourceId);
476 doReturn(serviceSubscription).when(SPY_bbInputSetup).getServiceSubscription(requestDetails, customer);
477 doReturn(serviceInstance).when(SPY_bbInputSetup).getALaCarteServiceInstance(service, requestDetails, customer,
478 project, owningEntity, lookupKeyMap, resourceId, executeBB.isaLaCarte(),
479 executeBB.getBuildingBlock().getBpmnFlowName());
480 doReturn(expected).when(SPY_bbInputSetup).populateGBBWithSIAndAdditionalInfo(requestDetails, serviceInstance,
481 executeBB, requestAction,customer);
483 GeneralBuildingBlock actual = SPY_bbInputSetup.getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
484 requestAction, resourceId);
486 assertThat(actual, sameBeanAs(expected));
490 public void testGetGBBALaCarteServiceNoProjectNoOE() throws Exception {
491 GeneralBuildingBlock expected = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
492 GeneralBuildingBlock.class);
493 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
494 ExecuteBuildingBlock.class);
495 RequestDetails requestDetails = mapper.readValue(
496 new File(RESOURCE_PATH + "RequestDetailsInput_withRelatedInstanceList.json"), RequestDetails.class);
497 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
499 Service service = Mockito.mock(Service.class);
500 Customer customer = Mockito.mock(Customer.class);
501 ServiceSubscription serviceSubscription = Mockito.mock(ServiceSubscription.class);
502 ServiceInstance serviceInstance = Mockito.mock(ServiceInstance.class);
503 String resourceId = "123";
504 String requestAction = "createInstance";
505 executeBB.setaLaCarte(true);
506 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.SERVICE_INSTANCE.toString());
507 org.onap.aai.domain.yang.CloudRegion aaiCloudRegion = Mockito.mock(org.onap.aai.domain.yang.CloudRegion.class);
509 Map<String, String> uriKeys = new HashMap<>();
510 uriKeys.put("global-customer-id", "globalCustomerId");
511 uriKeys.put("service-type", "serviceType");
512 doReturn(uriKeys).when(SPY_bbInputSetupUtils)
513 .getURIKeysFromServiceInstance(resourceId);
514 doReturn(service).when(SPY_bbInputSetupUtils)
515 .getCatalogServiceByModelUUID(requestDetails.getModelInfo().getModelVersionId());
516 doReturn(aaiCloudRegion).when(SPY_bbInputSetupUtils).getCloudRegion(requestDetails.getCloudConfiguration(), "att-aic");
518 doReturn(customer).when(SPY_bbInputSetup).getCustomerAndServiceSubscription(requestDetails, resourceId);
519 doReturn(serviceSubscription).when(SPY_bbInputSetup).getServiceSubscription(requestDetails, customer);
520 doReturn(serviceInstance).when(SPY_bbInputSetup).getALaCarteServiceInstance(service, requestDetails, customer,
521 null, null, lookupKeyMap, resourceId, executeBB.isaLaCarte(),
522 executeBB.getBuildingBlock().getBpmnFlowName());
523 doReturn(expected).when(SPY_bbInputSetup).populateGBBWithSIAndAdditionalInfo(requestDetails, serviceInstance,
524 executeBB, requestAction,customer);
526 GeneralBuildingBlock actual = SPY_bbInputSetup.getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
527 requestAction, resourceId);
529 assertThat(actual, sameBeanAs(expected));
533 public void testGetServiceInstanceHelperCreateScenario() throws Exception {
534 RequestDetails requestDetails = new RequestDetails();
535 RequestInfo requestInfo = new RequestInfo();
536 requestInfo.setInstanceName("SharansInstanceName");
537 requestDetails.setRequestInfo(requestInfo);
538 Customer customer = new Customer();
539 String serviceInstanceId = "SharansInstanceId";
540 boolean aLaCarte = true;
541 ServiceInstance expected = new ServiceInstance();
542 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
543 Service service = new Service();
544 service.setModelUUID("modelUUID");
545 String bbName = AssignFlows.SERVICE_INSTANCE.toString();
547 doReturn(null).when(SPY_bbInputSetupUtils).getAAIServiceInstanceByName(requestInfo.getInstanceName(), customer);
548 doReturn(null).when(SPY_bbInputSetupUtils).getAAIServiceInstanceById(serviceInstanceId);
551 doReturn(expected).when(SPY_bbInputSetup).createServiceInstance(requestDetails, null, null,
552 lookupKeyMap, serviceInstanceId);
554 ServiceInstance actual = SPY_bbInputSetup.getServiceInstanceHelper(requestDetails, customer, null, null,
555 lookupKeyMap, serviceInstanceId, aLaCarte, service, bbName);
556 assertThat(actual, sameBeanAs(expected));
560 public void testGetServiceInstanceHelperCreateScenarioExisting() throws Exception {
561 RequestDetails requestDetails = new RequestDetails();
562 RequestInfo requestInfo = new RequestInfo();
563 requestInfo.setInstanceName("SharansInstanceName");
564 requestDetails.setRequestInfo(requestInfo);
565 Customer customer = new Customer();
566 String serviceInstanceId = "SharansInstanceId";
567 boolean aLaCarte = true;
568 Service service = new Service();
569 service.setModelUUID("modelUUID");
570 ServiceInstance expected = new ServiceInstance();
571 org.onap.aai.domain.yang.ServiceInstance serviceInstanceAAI = new org.onap.aai.domain.yang.ServiceInstance();
572 serviceInstanceAAI.setModelVersionId("modelUUID");
573 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
574 String bbName = AssignFlows.SERVICE_INSTANCE.toString();
576 doReturn(serviceInstanceAAI).when(SPY_bbInputSetupUtils)
577 .getAAIServiceInstanceByName(requestInfo.getInstanceName(), customer);
578 doReturn(expected).when(SPY_bbInputSetup).getExistingServiceInstance(serviceInstanceAAI);
580 ServiceInstance actual = SPY_bbInputSetup.getServiceInstanceHelper(requestDetails, customer, null, null,
581 lookupKeyMap, serviceInstanceId, aLaCarte, service, bbName);
582 assertThat(actual, sameBeanAs(expected));
586 public void testGetServiceInstanceHelperCreateScenarioExistingNoNameButWithId() throws Exception {
587 RequestDetails requestDetails = new RequestDetails();
588 RequestInfo requestInfo = new RequestInfo();
589 requestInfo.setInstanceName("SharansInstanceName");
590 requestDetails.setRequestInfo(requestInfo);
591 Customer customer = new Customer();
592 String serviceInstanceId = "SharansInstanceId";
593 boolean aLaCarte = true;
594 Service service = new Service();
595 service.setModelUUID("modelUUID");
596 ServiceInstance expected = new ServiceInstance();
597 org.onap.aai.domain.yang.ServiceInstance serviceInstanceAAI = new org.onap.aai.domain.yang.ServiceInstance();
598 serviceInstanceAAI.setModelVersionId("modelUUID");
599 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
600 String bbName = "ActivateServiceInstanceBB";
602 doReturn(serviceInstanceAAI).when(SPY_bbInputSetupUtils).getAAIServiceInstanceById(serviceInstanceId);
603 doReturn(expected).when(SPY_bbInputSetup).getExistingServiceInstance(serviceInstanceAAI);
605 ServiceInstance actual = SPY_bbInputSetup.getServiceInstanceHelper(requestDetails, customer, null, null,
606 lookupKeyMap, serviceInstanceId, aLaCarte, service, bbName);
607 assertThat(actual, sameBeanAs(expected));
611 public void testGetServiceInstanceHelperCreateScenarioExistingNoNameButWithIdDifferentModel() throws Exception {
612 RequestDetails requestDetails = new RequestDetails();
613 RequestInfo requestInfo = new RequestInfo();
614 requestDetails.setRequestInfo(requestInfo);
615 Customer customer = new Customer();
616 String serviceInstanceId = "SharansInstanceId";
617 boolean aLaCarte = true;
618 Service service = new Service();
619 service.setModelUUID("modelUUID");
620 ServiceInstance expected = new ServiceInstance();
621 org.onap.aai.domain.yang.ServiceInstance serviceInstanceAAI = new org.onap.aai.domain.yang.ServiceInstance();
622 serviceInstanceAAI.setModelVersionId("modelUUIDDifferent");
623 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
624 String bbName = "ActivateServiceInstanceBB";
625 Service differentService = new Service();
626 differentService.setModelUUID("modelUUIDDifferent");
628 doReturn(serviceInstanceAAI).when(SPY_bbInputSetupUtils).getAAIServiceInstanceById(serviceInstanceId);
629 doReturn(differentService).when(SPY_bbInputSetupUtils)
630 .getCatalogServiceByModelUUID(serviceInstanceAAI.getModelVersionId());
631 doReturn(expected).when(SPY_bbInputSetup).getExistingServiceInstance(serviceInstanceAAI);
633 ServiceInstance actual = SPY_bbInputSetup.getServiceInstanceHelper(requestDetails, customer, null, null,
634 lookupKeyMap, serviceInstanceId, aLaCarte, service, bbName);
635 assertThat(actual, sameBeanAs(expected));
638 @Test(expected = Exception.class)
639 public void testGetServiceInstanceHelperCreateScenarioExistingNoNameButWithIdExceptionThrown() throws Exception {
640 RequestDetails requestDetails = new RequestDetails();
641 RequestInfo requestInfo = new RequestInfo();
642 requestDetails.setRequestInfo(requestInfo);
643 Customer customer = new Customer();
644 String serviceInstanceId = "SharansInstanceId";
645 boolean aLaCarte = true;
646 Service service = new Service();
647 service.setModelUUID("modelUUID");
648 org.onap.aai.domain.yang.ServiceInstance serviceInstanceAAI = new org.onap.aai.domain.yang.ServiceInstance();
649 serviceInstanceAAI.setModelVersionId("modelUUIDDifferent");
650 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
651 String bbName = AssignFlows.SERVICE_INSTANCE.toString();
653 ServiceInstance actual = SPY_bbInputSetup.getServiceInstanceHelper(requestDetails, customer, null, null,
654 lookupKeyMap, serviceInstanceId, aLaCarte, service, bbName);
658 public void testPopulateObjectsOnAssignAndCreateFlows() throws Exception {
659 String bbName = AssignFlows.SERVICE_INSTANCE.toString();
660 String instanceName = "instanceName";
661 String resourceId = "123";
662 String vnfType = "vnfType";
663 Service service = Mockito.mock(Service.class);
664 ServiceInstance serviceInstance = Mockito.mock(ServiceInstance.class);
665 RequestDetails requestDetails = Mockito.mock(RequestDetails.class);
666 ModelInfo modelInfo = Mockito.mock(ModelInfo.class);
667 RequestInfo requestInfo = Mockito.mock(RequestInfo.class);
668 RelatedInstanceList[] relatedInstanceList = new RelatedInstanceList[] {};
669 CloudConfiguration cloudConfiguration = new CloudConfiguration();
670 org.onap.so.serviceinstancebeans.Platform platform = Mockito
671 .mock(org.onap.so.serviceinstancebeans.Platform.class);
672 org.onap.so.serviceinstancebeans.LineOfBusiness lineOfBusiness = Mockito
673 .mock(org.onap.so.serviceinstancebeans.LineOfBusiness.class);
674 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
676 doNothing().when(SPY_bbInputSetup).populateL3Network(instanceName, modelInfo, service, bbName, serviceInstance,
677 lookupKeyMap, resourceId, null);
678 doNothing().when(SPY_bbInputSetup).populateGenericVnf(modelInfo, instanceName, platform, lineOfBusiness,
679 service, bbName, serviceInstance, lookupKeyMap, relatedInstanceList, resourceId, vnfType, null);
680 doNothing().when(SPY_bbInputSetup).populateVolumeGroup(modelInfo, service, bbName, serviceInstance,
681 lookupKeyMap, resourceId, relatedInstanceList, instanceName, vnfType, null);
682 doNothing().when(SPY_bbInputSetup).populateVfModule(modelInfo, service, bbName, serviceInstance, lookupKeyMap,
683 resourceId, relatedInstanceList, instanceName, null, cloudConfiguration);
684 doReturn(modelInfo).when(requestDetails).getModelInfo();
685 doReturn(requestInfo).when(requestDetails).getRequestInfo();
686 doReturn(instanceName).when(requestInfo).getInstanceName();
687 doReturn(platform).when(requestDetails).getPlatform();
688 doReturn(lineOfBusiness).when(requestDetails).getLineOfBusiness();
689 doReturn(relatedInstanceList).when(requestDetails).getRelatedInstanceList();
690 doReturn(cloudConfiguration).when(requestDetails).getCloudConfiguration();
692 doReturn(ModelType.network).when(modelInfo).getModelType();
694 SPY_bbInputSetup.populateObjectsOnAssignAndCreateFlows(requestDetails, service, bbName, serviceInstance,
695 lookupKeyMap, resourceId, vnfType);
697 verify(SPY_bbInputSetup, times(1)).populateL3Network(instanceName, modelInfo, service, bbName, serviceInstance,
698 lookupKeyMap, resourceId, null);
700 doReturn(ModelType.vnf).when(modelInfo).getModelType();
702 SPY_bbInputSetup.populateObjectsOnAssignAndCreateFlows(requestDetails, service, bbName, serviceInstance,
703 lookupKeyMap, resourceId, vnfType);
705 verify(SPY_bbInputSetup, times(1)).populateGenericVnf(modelInfo, instanceName, platform, lineOfBusiness,
706 service, bbName, serviceInstance, lookupKeyMap, relatedInstanceList, resourceId, vnfType, null);
708 doReturn(ModelType.volumeGroup).when(modelInfo).getModelType();
710 SPY_bbInputSetup.populateObjectsOnAssignAndCreateFlows(requestDetails, service, bbName, serviceInstance,
711 lookupKeyMap, resourceId, vnfType);
713 verify(SPY_bbInputSetup, times(1)).populateVolumeGroup(modelInfo, service, bbName, serviceInstance,
714 lookupKeyMap, resourceId, relatedInstanceList, instanceName, vnfType, null);
716 doReturn(ModelType.vfModule).when(modelInfo).getModelType();
718 SPY_bbInputSetup.populateObjectsOnAssignAndCreateFlows(requestDetails, service, bbName, serviceInstance,
719 lookupKeyMap, resourceId, vnfType);
721 verify(SPY_bbInputSetup, times(1)).populateVfModule(modelInfo, service, bbName, serviceInstance, lookupKeyMap,
722 resourceId, relatedInstanceList, instanceName, null, cloudConfiguration);
726 public void testPopulateGBBWithSIAndAdditionalInfo() throws Exception {
727 GeneralBuildingBlock expected = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
728 GeneralBuildingBlock.class);
729 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
730 ExecuteBuildingBlock.class);
731 RequestDetails requestDetails = mapper.readValue(
732 new File(RESOURCE_PATH + "RequestDetailsInput_withRelatedInstanceList.json"), RequestDetails.class);
733 RequestContext requestContext = mapper.readValue(new File(RESOURCE_PATH + "RequestContextExpected.json"),
734 RequestContext.class);
735 ServiceInstance serviceInstance = mapper.readValue(
736 new File(RESOURCE_PATH + "ServiceInstance_getServiceInstanceNOAAIExpected.json"),
737 ServiceInstance.class);
739 OrchestrationContext orchestrationContext = new OrchestrationContext();
740 orchestrationContext.setIsRollbackEnabled(false);
742 CloudRegion cloudRegion = new CloudRegion();
743 cloudRegion.setCloudOwner("att-aic");
744 cloudRegion.setLcpCloudRegionId("lcpCloudRegionId");
745 cloudRegion.setComplex("complexName");
746 cloudRegion.setTenantId("tenantId");
748 Map<String, String> uriKeys = new HashMap<>();
749 uriKeys.put("global-customer-id","global-customer-id");
750 uriKeys.put("service-type","service-type");
752 Customer customer = new Customer();
753 ServiceSubscription serviceSubscription = new ServiceSubscription();
754 serviceSubscription.setServiceType("subscriptionServiceType");
755 customer.setGlobalCustomerId("globalCustomerId");
756 customer.setSubscriberName("subscriberName");
757 customer.setSubscriberType("subscriberType");
758 customer.setServiceSubscription(serviceSubscription);
760 org.onap.aai.domain.yang.CloudRegion aaiCloudRegion = Mockito.mock(org.onap.aai.domain.yang.CloudRegion.class);
762 String requestAction = "createInstance";
764 doReturn(uriKeys).when(SPY_bbInputSetupUtils).getURIKeysFromServiceInstance(serviceInstance.getServiceInstanceId());
765 doReturn(customer).when(SPY_bbInputSetup).mapCustomer(uriKeys.get("global-customer-id"),uriKeys.get("service-type"));
766 doReturn(aaiCloudRegion).when(SPY_bbInputSetupUtils).getCloudRegion(requestDetails.getCloudConfiguration(), "att-aic");
767 doReturn(orchestrationContext).when(bbInputSetupMapperLayer).mapOrchestrationContext(requestDetails);
768 doReturn(requestContext).when(bbInputSetupMapperLayer).mapRequestContext(requestDetails);
769 doReturn(cloudRegion).when(bbInputSetupMapperLayer).mapCloudRegion(requestDetails.getCloudConfiguration(), aaiCloudRegion,
772 GeneralBuildingBlock actual = SPY_bbInputSetup.populateGBBWithSIAndAdditionalInfo(requestDetails,
773 serviceInstance, executeBB, requestAction, null);
775 assertThat(actual, sameBeanAs(expected));
779 public void testGetServiceInstanceNOAAI() throws Exception {
780 ServiceInstance expected = mapper.readValue(
781 new File(RESOURCE_PATH + "ServiceInstance_getServiceInstanceNOAAIExpected.json"),
782 ServiceInstance.class);
783 Service service = mapper.readValue(
784 new File(RESOURCE_PATH + "CatalogDBService_getServiceInstanceNOAAIInput.json"), Service.class);
785 Customer customer = mapper.readValue(new File(RESOURCE_PATH + "Customer.json"), Customer.class);
786 Project project = mapper.readValue(new File(RESOURCE_PATH + "Project.json"), Project.class);
787 OwningEntity owningEntity = mapper.readValue(new File(RESOURCE_PATH + "OwningEntity.json"), OwningEntity.class);
788 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
790 ExecuteBuildingBlock executeBB = new ExecuteBuildingBlock();
791 executeBB.setaLaCarte(true);
792 BuildingBlock buildingBlock = new BuildingBlock();
793 buildingBlock.setBpmnFlowName(AssignFlows.SERVICE_INSTANCE.toString());
794 executeBB.setBuildingBlock(buildingBlock);
795 RequestDetails requestDetails = new RequestDetails();
796 RequestInfo reqInfo = new RequestInfo();
797 reqInfo.setInstanceName("serviceInstanceName");
798 requestDetails.setRequestInfo(reqInfo);
799 ModelInfo modelInfo = new ModelInfo();
800 modelInfo.setModelType(ModelType.service);
801 requestDetails.setModelInfo(modelInfo);
802 doReturn(null).when(SPY_bbInputSetupUtils)
803 .getAAIServiceInstanceByName(requestDetails.getRequestInfo().getInstanceName(), customer);
804 doReturn(expected.getModelInfoServiceInstance()).when(bbInputSetupMapperLayer)
805 .mapCatalogServiceIntoServiceInstance(service);
806 doReturn(null).when(SPY_bbInputSetupUtils).getAAIServiceInstanceById(any(String.class));
807 String serviceInstanceId = "3655a595-05d1-433c-93c0-3afd6b572545";
808 boolean aLaCarte = true;
810 ServiceInstance actual = SPY_bbInputSetup.getALaCarteServiceInstance(service, requestDetails, customer, project,
811 owningEntity, lookupKeyMap, serviceInstanceId, aLaCarte,
812 executeBB.getBuildingBlock().getBpmnFlowName());
814 assertThat(actual, sameBeanAs(expected));
818 public void testGetServiceSubscription() throws IOException {
819 ServiceSubscription expected = new ServiceSubscription();
820 RequestDetails requestDetails = new RequestDetails();
821 RequestParameters params = new RequestParameters();
822 params.setSubscriptionServiceType("subscriptionServiceType");
823 requestDetails.setRequestParameters(params);
824 org.onap.aai.domain.yang.ServiceSubscription aaiServiceSubscription = new org.onap.aai.domain.yang.ServiceSubscription();
825 Customer customer = new Customer();
826 customer.setGlobalCustomerId("globalCustomerId");
827 doReturn(aaiServiceSubscription).when(SPY_bbInputSetupUtils).getAAIServiceSubscription(
828 customer.getGlobalCustomerId(), requestDetails.getRequestParameters().getSubscriptionServiceType());
829 doReturn(expected).when(bbInputSetupMapperLayer).mapAAIServiceSubscription(aaiServiceSubscription);
831 ServiceSubscription actual = SPY_bbInputSetup.getServiceSubscription(requestDetails, customer);
832 assertThat(actual, sameBeanAs(expected));
836 public void testGetCustomer() throws IOException {
837 Customer expected = new Customer();
838 RequestDetails requestDetails = new RequestDetails();
839 SubscriberInfo subscriberInfo = new SubscriberInfo();
840 subscriberInfo.setGlobalSubscriberId("globalSubscriberId");
841 requestDetails.setSubscriberInfo(subscriberInfo);
842 org.onap.aai.domain.yang.Customer aaiCustomer = new org.onap.aai.domain.yang.Customer();
843 doReturn(aaiCustomer).when(SPY_bbInputSetupUtils)
844 .getAAICustomer(requestDetails.getSubscriberInfo().getGlobalSubscriberId());
845 doReturn(expected).when(bbInputSetupMapperLayer).mapAAICustomer(aaiCustomer);
847 Customer actual = SPY_bbInputSetup.getCustomerFromRequest(requestDetails);
848 assertThat(actual, sameBeanAs(expected));
852 public void testGetExistingServiceInstance() throws Exception {
853 org.onap.aai.domain.yang.ServiceInstance serviceInstanceAAI = new org.onap.aai.domain.yang.ServiceInstance();
854 ServiceInstance expected = new ServiceInstance();
856 doReturn(expected).when(bbInputSetupMapperLayer)
857 .mapAAIServiceInstanceIntoServiceInstance(serviceInstanceAAI);
859 doNothing().when(SPY_bbInputSetup).addRelationshipsToSI(serviceInstanceAAI, expected);
861 ServiceInstance actual = SPY_bbInputSetup.getExistingServiceInstance(serviceInstanceAAI);
862 assertThat(actual, sameBeanAs(expected));
866 public void testPopulateNetworkCollectionAndInstanceGroupAssign() throws Exception {
867 Service service = Mockito.mock(Service.class);
868 String key = "collectionCustId";
869 ServiceInstance serviceInstance = mapper.readValue(
870 new File(RESOURCE_PATH + "ServiceInstance_getServiceInstanceNOAAIExpected.json"),
871 ServiceInstance.class);
872 String resourceId = "123";
873 Collection collection = SPY_bbInputSetup.createCollection(resourceId);
874 InstanceGroup instanceGroup = SPY_bbInputSetup.createInstanceGroup();
875 assertNull(serviceInstance.getCollection());
876 doReturn(true).when(SPY_bbInputSetup).isVlanTagging(service, key);
877 doReturn(collection).when(SPY_bbInputSetup).createCollection(resourceId);
878 doReturn(instanceGroup).when(SPY_bbInputSetup).createInstanceGroup();
879 doNothing().when(SPY_bbInputSetup).mapCatalogCollection(service, collection, key);
880 doNothing().when(SPY_bbInputSetup).mapCatalogNetworkCollectionInstanceGroup(service,
881 collection.getInstanceGroup(), key);
882 NetworkCollectionResourceCustomization networkCollection = new NetworkCollectionResourceCustomization();
883 networkCollection.setModelCustomizationUUID(key);
884 networkCollection.setCollectionResource(new CollectionResource());
885 networkCollection.getCollectionResource().setInstanceGroup(new org.onap.so.db.catalog.beans.InstanceGroup());
886 networkCollection.getCollectionResource().getInstanceGroup().setToscaNodeType("NetworkCollectionResource");
887 networkCollection.getCollectionResource().getInstanceGroup().setType(InstanceGroupType.L3_NETWORK);
888 networkCollection.getCollectionResource().getInstanceGroup().setCollectionInstanceGroupCustomizations(new ArrayList<>());
889 List<CollectionResourceCustomization> customizations = new ArrayList<>();
890 customizations.add(networkCollection);
891 doReturn(customizations).when(service).getCollectionResourceCustomizations();
893 SPY_bbInputSetup.populateNetworkCollectionAndInstanceGroupAssign(service,
894 AssignFlows.NETWORK_COLLECTION.toString(), serviceInstance, resourceId, key);
896 assertNotNull(serviceInstance.getCollection());
897 assertNotNull(serviceInstance.getCollection().getInstanceGroup());
899 verify(SPY_bbInputSetup, times(1)).mapCatalogCollection(service, serviceInstance.getCollection(), key);
900 verify(SPY_bbInputSetup, times(1)).mapCatalogNetworkCollectionInstanceGroup(service,
901 serviceInstance.getCollection().getInstanceGroup(), key);
905 public void testIsVlanTagging() throws Exception {
906 boolean expected = true;
907 Service service = Mockito.mock(Service.class);
908 String key = "collectionCustId";
909 NetworkCollectionResourceCustomization networkCollection = new NetworkCollectionResourceCustomization();
910 networkCollection.setModelCustomizationUUID(key);
911 networkCollection.setCollectionResource(new CollectionResource());
912 networkCollection.getCollectionResource().setInstanceGroup(new org.onap.so.db.catalog.beans.InstanceGroup());
913 networkCollection.getCollectionResource().getInstanceGroup().setToscaNodeType("org.openecomp.resource.cr.NetworkCollectionResource1806");
914 List<CollectionResourceCustomization> customizations = new ArrayList<>();
915 customizations.add(networkCollection);
916 doReturn(customizations).when(service).getCollectionResourceCustomizations();
917 boolean actual = SPY_bbInputSetup.isVlanTagging(service, key);
918 assertEquals("Is Vlan Tagging check.", expected, actual);
922 public void testPopulateVolumeGroup() throws Exception {
923 RequestDetails requestDetails = new RequestDetails();
924 RelatedInstanceList ril = new RelatedInstanceList();
925 RelatedInstance ri = new RelatedInstance();
926 ModelInfo mi = new ModelInfo();
927 mi.setModelType(ModelType.vnf);
928 mi.setModelCustomizationUuid("vnfModelCustomizationUUID");
930 ril.setRelatedInstance(ri);
931 requestDetails.setRelatedInstanceList(new RelatedInstanceList[] { ril });
933 ModelInfo modelInfo = new ModelInfo();
934 modelInfo.setModelType(ModelType.volumeGroup);
936 RequestInfo reqInfo = new RequestInfo();
937 reqInfo.setInstanceName("volumeGroupName");
938 requestDetails.setModelInfo(modelInfo);
939 requestDetails.setRequestInfo(reqInfo);
941 ServiceInstance serviceInstance = new ServiceInstance();
942 GenericVnf vnf = new GenericVnf();
943 vnf.setVnfId("genericVnfId");
945 VolumeGroup vg = new VolumeGroup();
946 vg.setVolumeGroupName("volumeGroupName");
947 vg.setVolumeGroupId("volumeGroupId");
948 vnf.getVolumeGroups().add(vg);
949 vnf.getVolumeGroups().add(vg);
950 serviceInstance.getVnfs().add(vnf);
952 Service service = mapper.readValue(
953 new File(RESOURCE_PATH + "CatalogDBService_getServiceInstanceNOAAIInput.json"), Service.class);
954 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
955 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "genericVnfId");
957 String bbName = AssignFlows.VOLUME_GROUP.toString();
958 String resourceId = "123";
959 doNothing().when(SPY_bbInputSetup).mapCatalogVolumeGroup(isA(VolumeGroup.class), eq(modelInfo),
960 eq(service), eq("vnfModelCustomizationUUID"));
961 org.onap.aai.domain.yang.GenericVnf aaiGenericVnf = new org.onap.aai.domain.yang.GenericVnf();
962 aaiGenericVnf.setModelCustomizationId("vnfModelCustomizationUUID");
963 doReturn(aaiGenericVnf).when(SPY_bbInputSetupUtils).getAAIGenericVnf(vnf.getVnfId());
965 SPY_bbInputSetup.populateVolumeGroup(modelInfo, service, bbName, serviceInstance, lookupKeyMap, resourceId,
966 requestDetails.getRelatedInstanceList(), reqInfo.getInstanceName(), null, null);
967 verify(SPY_bbInputSetup, times(2)).mapCatalogVolumeGroup(vg, modelInfo, service, "vnfModelCustomizationUUID");
968 vnf.getVolumeGroups().clear();
969 SPY_bbInputSetup.populateVolumeGroup(modelInfo, service, bbName, serviceInstance, lookupKeyMap, resourceId,
970 requestDetails.getRelatedInstanceList(), reqInfo.getInstanceName(), null, null);
971 verify(SPY_bbInputSetup, times(1)).mapCatalogVolumeGroup(vnf.getVolumeGroups().get(0), modelInfo, service,
972 "vnfModelCustomizationUUID");
976 public void testMapCatalogVolumeGroup() {
977 VolumeGroup volumeGroup = new VolumeGroup();
978 RequestDetails requestDetails = new RequestDetails();
979 ModelInfo modelInfo = new ModelInfo();
980 modelInfo.setModelCustomizationUuid("modelCustomizationUUID");
981 requestDetails.setModelInfo(modelInfo);
982 Service service = new Service();
983 VnfResourceCustomization resourceCust = new VnfResourceCustomization();
984 resourceCust.setModelCustomizationUUID("vnfModelCustomizationUUID");
985 service.getVnfCustomizations().add(resourceCust);
986 VfModuleCustomization vfResourceCust = new VfModuleCustomization();
987 vfResourceCust.setModelCustomizationUUID("modelCustomizationUUID");
988 ModelInfoVfModule modelInfoVfModule = new ModelInfoVfModule();
989 resourceCust.getVfModuleCustomizations().add(vfResourceCust);
991 doReturn(modelInfoVfModule).when(bbInputSetupMapperLayer).mapCatalogVfModuleToVfModule(vfResourceCust);
993 SPY_bbInputSetup.mapCatalogVolumeGroup(volumeGroup, modelInfo, service, "vnfModelCustomizationUUID");
995 assertEquals(modelInfoVfModule, volumeGroup.getModelInfoVfModule());
999 public void testPopulateL3Network() throws JsonParseException, JsonMappingException, IOException {
1000 String instanceName = "networkName";
1001 ModelInfo modelInfo = new ModelInfo();
1002 modelInfo.setModelType(ModelType.network);
1004 ServiceInstance serviceInstance = new ServiceInstance();
1005 L3Network network = new L3Network();
1006 network.setNetworkId("networkId");
1007 network.setNetworkName("networkName");
1008 serviceInstance.getNetworks().add(network);
1009 String resourceId = "123";
1011 Service service = mapper.readValue(
1012 new File(RESOURCE_PATH + "CatalogDBService_getServiceInstanceNOAAIInput.json"), Service.class);
1013 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
1014 lookupKeyMap.put(ResourceKey.NETWORK_ID, "networkId");
1015 String bbName = AssignFlows.NETWORK_A_LA_CARTE.toString();
1017 doNothing().when(SPY_bbInputSetup).mapCatalogNetwork(network, modelInfo, service);
1019 SPY_bbInputSetup.populateL3Network(instanceName, modelInfo, service, bbName, serviceInstance, lookupKeyMap,
1022 lookupKeyMap.put(ResourceKey.NETWORK_ID, null);
1024 SPY_bbInputSetup.populateL3Network(instanceName, modelInfo, service, bbName, serviceInstance, lookupKeyMap,
1026 verify(SPY_bbInputSetup, times(2)).mapCatalogNetwork(network, modelInfo, service);
1028 instanceName = "networkName2";
1029 L3Network network2 = SPY_bbInputSetup.createNetwork(lookupKeyMap, instanceName, resourceId, null);
1030 doReturn(network2).when(SPY_bbInputSetup).createNetwork(lookupKeyMap, instanceName, resourceId, null);
1031 SPY_bbInputSetup.populateL3Network(instanceName, modelInfo, service, bbName, serviceInstance, lookupKeyMap,
1033 verify(SPY_bbInputSetup, times(1)).mapCatalogNetwork(network2, modelInfo, service);
1037 public void testMapCatalogNetwork() {
1038 ModelInfoNetwork modelInfoNetwork = new ModelInfoNetwork();
1039 L3Network network = new L3Network();
1041 RequestDetails requestDetails = new RequestDetails();
1042 ModelInfo modelInfo = new ModelInfo();
1043 modelInfo.setModelCustomizationUuid("modelCustomizationUUID");
1044 requestDetails.setModelInfo(modelInfo);
1045 Service service = new Service();
1046 NetworkResourceCustomization resourceCust = new NetworkResourceCustomization();
1047 resourceCust.setModelCustomizationUUID("modelCustomizationUUID");
1048 service.setNetworkCustomizations(Arrays.asList(new NetworkResourceCustomization[] { resourceCust }));
1050 doReturn(modelInfoNetwork).when(bbInputSetupMapperLayer).mapCatalogNetworkToNetwork(resourceCust);
1052 SPY_bbInputSetup.mapCatalogNetwork(network, modelInfo, service);
1054 assertEquals(modelInfoNetwork, network.getModelInfoNetwork());
1058 public void testPopulateConfiguration() throws JsonParseException, JsonMappingException, IOException {
1059 String instanceName = "configurationName";
1060 ModelInfo modelInfo = new ModelInfo();
1061 modelInfo.setModelCustomizationUuid("72d9d1cd-f46d-447a-abdb-451d6fb05fa9");
1063 ServiceInstance serviceInstance = new ServiceInstance();
1064 Configuration configuration = new Configuration();
1065 configuration.setConfigurationId("configurationId");
1066 configuration.setConfigurationName("configurationName");
1067 serviceInstance.getConfigurations().add(configuration);
1068 String resourceId = "configurationId";
1070 Service service = mapper.readValue(
1071 new File(RESOURCE_PATH + "CatalogDBService_getServiceInstanceNOAAIInput.json"), Service.class);
1072 ConfigurationResourceCustomization configurationCust = new ConfigurationResourceCustomization();
1073 configurationCust.setModelCustomizationUUID("72d9d1cd-f46d-447a-abdb-451d6fb05fa9");
1074 service.getConfigurationCustomizations().add(configurationCust);
1075 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
1076 lookupKeyMap.put(ResourceKey.CONFIGURATION_ID, "configurationId");
1077 String bbName = AssignFlows.FABRIC_CONFIGURATION.toString();
1079 doNothing().when(SPY_bbInputSetup).mapCatalogConfiguration(configuration, modelInfo, service);
1081 SPY_bbInputSetup.populateConfiguration(modelInfo, service, bbName, serviceInstance, lookupKeyMap, resourceId,
1083 verify(SPY_bbInputSetup, times(1)).mapCatalogConfiguration(configuration, modelInfo, service);
1085 lookupKeyMap.put(ResourceKey.CONFIGURATION_ID, null);
1087 SPY_bbInputSetup.populateConfiguration(modelInfo, service, bbName, serviceInstance, lookupKeyMap, resourceId,
1089 verify(SPY_bbInputSetup, times(2)).mapCatalogConfiguration(configuration, modelInfo, service);
1091 instanceName = "configurationName2";
1092 resourceId = "resourceId2";
1093 lookupKeyMap.put(ResourceKey.CONFIGURATION_ID, "configurationId2");
1094 Configuration configuration2 = SPY_bbInputSetup.createConfiguration(lookupKeyMap, instanceName, resourceId);
1095 doReturn(configuration2).when(SPY_bbInputSetup).createConfiguration(lookupKeyMap, instanceName, resourceId);
1096 doNothing().when(SPY_bbInputSetup).mapCatalogConfiguration(configuration2, modelInfo, service);
1097 SPY_bbInputSetup.populateConfiguration(modelInfo, service, bbName, serviceInstance, lookupKeyMap, resourceId,
1099 verify(SPY_bbInputSetup, times(1)).mapCatalogConfiguration(configuration2, modelInfo, service);
1103 public void testMapCatalogConfiguration() {
1104 ModelInfoNetwork modelInfoNetwork = new ModelInfoNetwork();
1105 L3Network network = new L3Network();
1107 RequestDetails requestDetails = new RequestDetails();
1108 ModelInfo modelInfo = new ModelInfo();
1109 modelInfo.setModelCustomizationUuid("modelCustomizationUUID");
1110 requestDetails.setModelInfo(modelInfo);
1111 Service service = new Service();
1112 NetworkResourceCustomization resourceCust = new NetworkResourceCustomization();
1113 resourceCust.setModelCustomizationUUID("modelCustomizationUUID");
1114 service.setNetworkCustomizations(Arrays.asList(new NetworkResourceCustomization[] { resourceCust }));
1116 doReturn(modelInfoNetwork).when(bbInputSetupMapperLayer).mapCatalogNetworkToNetwork(resourceCust);
1118 SPY_bbInputSetup.mapCatalogNetwork(network, modelInfo, service);
1120 assertEquals(modelInfoNetwork, network.getModelInfoNetwork());
1124 public void testPopulateGenericVnf() throws JsonParseException, JsonMappingException, IOException {
1125 org.onap.so.serviceinstancebeans.Platform platform = new org.onap.so.serviceinstancebeans.Platform();
1126 org.onap.so.serviceinstancebeans.LineOfBusiness lineOfBusiness = new org.onap.so.serviceinstancebeans.LineOfBusiness();
1127 String instanceName = "vnfName";
1128 ModelInfo modelInfo = new ModelInfo();
1129 modelInfo.setModelType(ModelType.vnf);
1131 ServiceInstance serviceInstance = new ServiceInstance();
1132 GenericVnf vnf = new GenericVnf();
1133 vnf.setVnfId("genericVnfId");
1134 vnf.setVnfName("vnfName");
1135 serviceInstance.getVnfs().add(vnf);
1136 String vnfType = "vnfType";
1137 RequestDetails requestDetails = mapper.readValue(new File(RESOURCE_PATH + "RequestDetails_CreateVnf.json"),
1138 RequestDetails.class);
1140 Service service = mapper.readValue(
1141 new File(RESOURCE_PATH + "CatalogDBService_getServiceInstanceNOAAIInput.json"), Service.class);
1142 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
1143 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "genericVnfId");
1144 String bbName = AssignFlows.VNF.toString();
1146 Platform expectedPlatform = new Platform();
1147 LineOfBusiness expectedLineOfBusiness = new LineOfBusiness();
1148 String resourceId = "123";
1149 doReturn(expectedPlatform).when(bbInputSetupMapperLayer).mapRequestPlatform(platform);
1150 doReturn(expectedLineOfBusiness).when(bbInputSetupMapperLayer).mapRequestLineOfBusiness(lineOfBusiness);
1151 doNothing().when(SPY_bbInputSetup).mapCatalogVnf(vnf, modelInfo, service);
1152 doReturn(null).when(SPY_bbInputSetupUtils).getAAIGenericVnf(any(String.class));
1153 SPY_bbInputSetup.populateGenericVnf(modelInfo, instanceName, platform, lineOfBusiness, service, bbName,
1154 serviceInstance, lookupKeyMap, requestDetails.getRelatedInstanceList(), resourceId, vnfType, null);
1156 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, null);
1158 SPY_bbInputSetup.populateGenericVnf(modelInfo, instanceName, platform, lineOfBusiness, service, bbName,
1159 serviceInstance, lookupKeyMap, requestDetails.getRelatedInstanceList(), resourceId, vnfType, null);
1160 verify(SPY_bbInputSetup, times(2)).mapCatalogVnf(vnf, modelInfo, service);
1162 instanceName = "vnfName2";
1163 GenericVnf vnf2 = SPY_bbInputSetup.createGenericVnf(lookupKeyMap, instanceName, platform, lineOfBusiness,
1164 resourceId, vnfType, null);
1165 doReturn(vnf2).when(SPY_bbInputSetup).createGenericVnf(lookupKeyMap, instanceName, platform, lineOfBusiness,
1166 resourceId, vnfType, null);
1167 doNothing().when(SPY_bbInputSetup).mapNetworkCollectionInstanceGroup(vnf2, "{instanceGroupId}");
1168 doNothing().when(SPY_bbInputSetup).mapVnfcCollectionInstanceGroup(vnf2, modelInfo, service);
1169 SPY_bbInputSetup.populateGenericVnf(modelInfo, instanceName, platform, lineOfBusiness, service, bbName,
1170 serviceInstance, lookupKeyMap, requestDetails.getRelatedInstanceList(), resourceId, vnfType, null);
1171 verify(SPY_bbInputSetup, times(1)).mapCatalogVnf(vnf2, modelInfo, service);
1172 verify(SPY_bbInputSetup, times(1)).mapNetworkCollectionInstanceGroup(vnf2, "{instanceGroupId}");
1173 verify(SPY_bbInputSetup, times(1)).mapVnfcCollectionInstanceGroup(vnf2, modelInfo, service);
1177 public void testPopulateGenericVnfWhereVnfTypeIsNull()
1178 throws JsonParseException, JsonMappingException, IOException {
1179 org.onap.so.serviceinstancebeans.Platform platform = new org.onap.so.serviceinstancebeans.Platform();
1180 org.onap.so.serviceinstancebeans.LineOfBusiness lineOfBusiness = new org.onap.so.serviceinstancebeans.LineOfBusiness();
1181 String instanceName = "vnfName";
1182 ModelInfo modelInfo = new ModelInfo();
1183 modelInfo.setModelType(ModelType.vnf);
1185 ServiceInstance serviceInstance = new ServiceInstance();
1186 GenericVnf vnf = new GenericVnf();
1187 vnf.setVnfId("genericVnfId");
1188 vnf.setVnfName("vnfName");
1189 serviceInstance.getVnfs().add(vnf);
1190 String vnfType = null;
1191 RequestDetails requestDetails = mapper.readValue(new File(RESOURCE_PATH + "RequestDetails_CreateVnf.json"),
1192 RequestDetails.class);
1194 Service service = mapper.readValue(
1195 new File(RESOURCE_PATH + "CatalogDBService_getServiceInstanceNOAAIInput.json"), Service.class);
1196 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
1197 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "genericVnfId");
1198 String bbName = AssignFlows.VNF.toString();
1200 Platform expectedPlatform = new Platform();
1201 LineOfBusiness expectedLineOfBusiness = new LineOfBusiness();
1202 String resourceId = "123";
1203 doReturn(expectedPlatform).when(bbInputSetupMapperLayer).mapRequestPlatform(platform);
1204 doReturn(expectedLineOfBusiness).when(bbInputSetupMapperLayer).mapRequestLineOfBusiness(lineOfBusiness);
1205 doNothing().when(SPY_bbInputSetup).mapCatalogVnf(vnf, modelInfo, service);
1207 SPY_bbInputSetup.populateGenericVnf(modelInfo, instanceName, platform, lineOfBusiness, service, bbName,
1208 serviceInstance, lookupKeyMap, requestDetails.getRelatedInstanceList(), resourceId, vnfType, null);
1210 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, null);
1212 SPY_bbInputSetup.populateGenericVnf(modelInfo, instanceName, platform, lineOfBusiness, service, bbName,
1213 serviceInstance, lookupKeyMap, requestDetails.getRelatedInstanceList(), resourceId, vnfType, null);
1214 verify(SPY_bbInputSetup, times(2)).mapCatalogVnf(vnf, modelInfo, service);
1216 instanceName = "vnfName2";
1217 GenericVnf vnf2 = SPY_bbInputSetup.createGenericVnf(lookupKeyMap, instanceName, platform, lineOfBusiness,
1218 resourceId, vnfType, null);
1219 doReturn(vnf2).when(SPY_bbInputSetup).createGenericVnf(lookupKeyMap, instanceName, platform, lineOfBusiness,
1220 resourceId, vnfType, null);
1221 doNothing().when(SPY_bbInputSetup).mapNetworkCollectionInstanceGroup(vnf2, "{instanceGroupId}");
1222 doNothing().when(SPY_bbInputSetup).mapVnfcCollectionInstanceGroup(vnf2, modelInfo, service);
1223 SPY_bbInputSetup.populateGenericVnf(modelInfo, instanceName, platform, lineOfBusiness, service, bbName,
1224 serviceInstance, lookupKeyMap, requestDetails.getRelatedInstanceList(), resourceId, vnfType, null);
1225 verify(SPY_bbInputSetup, times(1)).mapCatalogVnf(vnf2, modelInfo, service);
1226 verify(SPY_bbInputSetup, times(1)).mapNetworkCollectionInstanceGroup(vnf2, "{instanceGroupId}");
1227 verify(SPY_bbInputSetup, times(1)).mapVnfcCollectionInstanceGroup(vnf2, modelInfo, service);
1231 public void testMapCatalogVnf() {
1232 ModelInfoGenericVnf modelInfoGenericVnf = new ModelInfoGenericVnf();
1233 GenericVnf genericVnf = new GenericVnf();
1234 RequestDetails requestDetails = new RequestDetails();
1235 ModelInfo modelInfo = new ModelInfo();
1236 modelInfo.setModelCustomizationUuid("modelCustomizationUUID");
1237 requestDetails.setModelInfo(modelInfo);
1238 Service service = new Service();
1239 VnfResourceCustomization resourceCust = new VnfResourceCustomization();
1240 resourceCust.setModelCustomizationUUID("vnfModelCustomizationUUID");
1241 service.getVnfCustomizations().add(resourceCust);
1242 resourceCust.setModelCustomizationUUID("modelCustomizationUUID");
1244 doReturn(modelInfoGenericVnf).when(bbInputSetupMapperLayer).mapCatalogVnfToVnf(resourceCust);
1246 SPY_bbInputSetup.mapCatalogVnf(genericVnf, modelInfo, service);
1248 assertEquals(modelInfoGenericVnf, genericVnf.getModelInfoGenericVnf());
1252 public void testMapCatalogCollectionAndInstanceGroup() {
1253 ModelInfoCollection modelInfoCollection = new ModelInfoCollection();
1254 modelInfoCollection.setCollectionFunction("collectionFunction");
1255 modelInfoCollection.setCollectionRole("collectionRole");
1256 modelInfoCollection.setCollectionType("collectionType");
1257 modelInfoCollection.setDescription("description");
1258 modelInfoCollection.setModelInvariantUUID("modelInvariantUUID");
1259 modelInfoCollection.setQuantity(0);
1261 ModelInfoInstanceGroup modelInfoInstanceGroup = new ModelInfoInstanceGroup();
1262 modelInfoInstanceGroup.setFunction("function");
1263 modelInfoInstanceGroup.setInstanceGroupRole("instanceGroupRole");
1264 modelInfoInstanceGroup.setModelInvariantUUID("modelInvariantUUID");
1265 modelInfoInstanceGroup.setModelUUID("modelUUID");
1266 modelInfoInstanceGroup.setType("VNFC");
1267 modelInfoInstanceGroup.setDescription("description");
1269 InstanceGroup instanceGroup = new InstanceGroup();
1270 Collection collection = new Collection();
1271 collection.setInstanceGroup(instanceGroup);
1273 CollectionResource collectionResource = new CollectionResource();
1274 org.onap.so.db.catalog.beans.InstanceGroup catalogInstanceGroup = new org.onap.so.db.catalog.beans.InstanceGroup();
1275 collectionResource.setToscaNodeType("NetworkCollection");
1276 collectionResource.setInstanceGroup(catalogInstanceGroup);
1278 CollectionResourceCustomization collectionCust = new NetworkCollectionResourceCustomization();
1279 collectionCust.setModelCustomizationUUID("modelCustomizationUUID");
1280 collectionCust.setCollectionResource(collectionResource);
1282 Service service = new Service();
1283 service.getCollectionResourceCustomizations().add(collectionCust);
1284 ServiceInstance serviceInstance = new ServiceInstance();
1285 serviceInstance.setCollection(collection);
1287 List<CollectionResourceInstanceGroupCustomization> instanceGroupCustList = new ArrayList<>();
1288 CollectionResourceInstanceGroupCustomization instanceGroupCust = new CollectionResourceInstanceGroupCustomization();
1289 instanceGroupCust.setFunction("function");
1290 instanceGroupCust.setDescription("description");
1292 doReturn(modelInfoCollection).when(bbInputSetupMapperLayer).mapCatalogCollectionToCollection(collectionCust,
1293 collectionResource);
1294 doReturn(instanceGroupCustList).when(SPY_bbInputSetupUtils)
1295 .getCollectionResourceInstanceGroupCustomization(collectionCust.getModelCustomizationUUID());
1296 doReturn(modelInfoInstanceGroup).when(bbInputSetupMapperLayer).mapCatalogInstanceGroupToInstanceGroup(collectionCust,
1297 catalogInstanceGroup);
1299 SPY_bbInputSetup.mapCatalogCollection(service, serviceInstance.getCollection(), "modelCustomizationUUID");
1300 SPY_bbInputSetup.mapCatalogNetworkCollectionInstanceGroup(service,
1301 serviceInstance.getCollection().getInstanceGroup(), collectionCust.getModelCustomizationUUID());
1303 assertThat(collection.getModelInfoCollection(), sameBeanAs(modelInfoCollection));
1304 assertThat(instanceGroup.getModelInfoInstanceGroup(), sameBeanAs(modelInfoInstanceGroup));
1308 public void testAddRelationshipsToSI() throws Exception {
1309 ServiceInstance serviceInstance = new ServiceInstance();
1310 org.onap.aai.domain.yang.ServiceInstance serviceInstanceAAI = new org.onap.aai.domain.yang.ServiceInstance();
1311 serviceInstanceAAI.setServiceInstanceId("serviceInstanceId");
1313 org.onap.aai.domain.yang.RelationshipList relationshipList = new org.onap.aai.domain.yang.RelationshipList();
1314 org.onap.aai.domain.yang.Relationship relationship = new org.onap.aai.domain.yang.Relationship();
1315 relationshipList.getRelationship().add(relationship);
1316 serviceInstanceAAI.setRelationshipList(relationshipList);
1318 Map<String, String> uriKeys = new HashMap<>();
1319 uriKeys.put("global-customer-id", "globalCustomerId");
1320 uriKeys.put("service-type", "serviceType");
1322 doReturn(uriKeys).when(SPY_bbInputSetupUtils)
1323 .getURIKeysFromServiceInstance(serviceInstanceAAI.getServiceInstanceId());
1324 doNothing().when(SPY_bbInputSetup).mapProject(any(), eq(serviceInstance));
1325 doNothing().when(SPY_bbInputSetup).mapOwningEntity(any(), eq(serviceInstance));
1326 doNothing().when(SPY_bbInputSetup).mapL3Networks(any(), eq(serviceInstance.getNetworks()));
1327 doNothing().when(SPY_bbInputSetup).mapGenericVnfs(any(), eq(serviceInstance.getVnfs()));
1328 doNothing().when(SPY_bbInputSetup).mapCollection(any(), eq(serviceInstance));
1330 SPY_bbInputSetup.addRelationshipsToSI(serviceInstanceAAI, serviceInstance);
1332 verify(SPY_bbInputSetup, times(1)).mapProject(any(), eq(serviceInstance));
1333 verify(SPY_bbInputSetup, times(1)).mapOwningEntity(any(), eq(serviceInstance));
1334 verify(SPY_bbInputSetup, times(1)).mapL3Networks(any(), eq(serviceInstance.getNetworks()));
1335 verify(SPY_bbInputSetup, times(1)).mapGenericVnfs(any(), eq(serviceInstance.getVnfs()));
1336 verify(SPY_bbInputSetup, times(1)).mapCollection(any(), eq(serviceInstance));
1337 verify(SPY_bbInputSetup, times(1)).mapConfigurations(any(), eq(serviceInstance.getConfigurations()));
1341 public void testMapConfigurations() throws JsonProcessingException {
1342 org.onap.aai.domain.yang.Configuration expectedAAI = new org.onap.aai.domain.yang.Configuration();
1343 org.onap.aai.domain.yang.RelationshipList relationshipList = new org.onap.aai.domain.yang.RelationshipList();
1344 org.onap.aai.domain.yang.Relationship relationship = new org.onap.aai.domain.yang.Relationship();
1345 relationshipList.getRelationship().add(relationship);
1346 expectedAAI.setRelationshipList(relationshipList);
1348 Configuration expected = new Configuration();
1349 AAIResourceUri aaiResourceUri = AAIUriFactory.createResourceUri(AAIObjectType.CONFIGURATION, "configurationId");
1350 AAIResultWrapper configurationWrapper = new AAIResultWrapper(
1351 new AAICommonObjectMapperProvider().getMapper().writeValueAsString(expectedAAI));
1353 doReturn(configurationWrapper).when(SPY_bbInputSetupUtils).getAAIResourceDepthOne(aaiResourceUri);
1354 doReturn(expected).when(bbInputSetupMapperLayer)
1355 .mapAAIConfiguration(isA(org.onap.aai.domain.yang.Configuration.class));
1357 List<Configuration> configurations = new ArrayList<>();
1359 SPY_bbInputSetup.mapConfigurations(Arrays.asList(new AAIResourceUri[] { aaiResourceUri }), configurations);
1361 assertEquals(expected, configurations.get(0));
1365 public void testMapGenericVnfs() throws JsonProcessingException {
1366 org.onap.aai.domain.yang.GenericVnf expectedAAI = new org.onap.aai.domain.yang.GenericVnf();
1367 org.onap.aai.domain.yang.RelationshipList relationshipList = new org.onap.aai.domain.yang.RelationshipList();
1368 org.onap.aai.domain.yang.Relationship relationship = new org.onap.aai.domain.yang.Relationship();
1369 relationshipList.getRelationship().add(relationship);
1370 expectedAAI.setRelationshipList(relationshipList);
1372 GenericVnf expected = new GenericVnf();
1373 AAIResourceUri aaiResourceUri = AAIUriFactory.createResourceUri(AAIObjectType.GENERIC_VNF, "vnfId");
1374 AAIResultWrapper vnfWrapper = new AAIResultWrapper(
1375 new AAICommonObjectMapperProvider().getMapper().writeValueAsString(expectedAAI));
1377 doReturn(vnfWrapper).when(SPY_bbInputSetupUtils).getAAIResourceDepthOne(aaiResourceUri);
1378 doReturn(expected).when(bbInputSetupMapperLayer)
1379 .mapAAIGenericVnfIntoGenericVnf(isA(org.onap.aai.domain.yang.GenericVnf.class));
1380 doNothing().when(SPY_bbInputSetup).mapPlatform(any(), eq(expected));
1381 doNothing().when(SPY_bbInputSetup).mapLineOfBusiness(any(), eq(expected));
1382 doReturn(new ArrayList<>()).when(SPY_bbInputSetup).mapVolumeGroups(any());
1384 List<GenericVnf> genericVnfs = new ArrayList<>();
1386 SPY_bbInputSetup.mapGenericVnfs(Arrays.asList(new AAIResourceUri[] { aaiResourceUri }), genericVnfs);
1388 assertEquals(expected, genericVnfs.get(0));
1389 verify(SPY_bbInputSetup, times(1)).mapPlatform(any(), eq(expected));
1390 verify(SPY_bbInputSetup, times(1)).mapLineOfBusiness(any(), eq(expected));
1391 verify(SPY_bbInputSetup, times(1)).mapVolumeGroups(any());
1395 public void testMapVolumeGroups() throws JsonProcessingException {
1396 org.onap.aai.domain.yang.VolumeGroup expectedAAI = new org.onap.aai.domain.yang.VolumeGroup();
1398 VolumeGroup expected = new VolumeGroup();
1399 AAIResultWrapper vnfWrapper = new AAIResultWrapper(
1400 new AAICommonObjectMapperProvider().getMapper().writeValueAsString(expectedAAI));
1402 doReturn(expected).when(bbInputSetupMapperLayer)
1403 .mapAAIVolumeGroup(isA(org.onap.aai.domain.yang.VolumeGroup.class));
1405 List<VolumeGroup> volumeGroupsList =
1406 SPY_bbInputSetup.mapVolumeGroups(Arrays.asList(new AAIResultWrapper[] { vnfWrapper }));
1408 assertEquals(expected, volumeGroupsList.get(0));
1412 public void testMapLineOfBusiness() throws JsonProcessingException {
1413 org.onap.aai.domain.yang.LineOfBusiness expectedAAI = new org.onap.aai.domain.yang.LineOfBusiness();
1415 LineOfBusiness expected = new LineOfBusiness();
1416 AAIResultWrapper vnfWrapper = new AAIResultWrapper(
1417 new AAICommonObjectMapperProvider().getMapper().writeValueAsString(expectedAAI));
1419 doReturn(expected).when(bbInputSetupMapperLayer)
1420 .mapAAILineOfBusiness(isA(org.onap.aai.domain.yang.LineOfBusiness.class));
1422 GenericVnf vnf = new GenericVnf();
1424 SPY_bbInputSetup.mapLineOfBusiness(Arrays.asList(new AAIResultWrapper[] { vnfWrapper }), vnf);
1426 assertEquals(expected, vnf.getLineOfBusiness());
1430 public void testMapPlatform() throws JsonProcessingException {
1431 org.onap.aai.domain.yang.Platform expectedAAI = new org.onap.aai.domain.yang.Platform();
1433 Platform expected = new Platform();
1434 AAIResultWrapper vnfWrapper = new AAIResultWrapper(
1435 new AAICommonObjectMapperProvider().getMapper().writeValueAsString(expectedAAI));
1437 doReturn(expected).when(bbInputSetupMapperLayer)
1438 .mapAAIPlatform(isA(org.onap.aai.domain.yang.Platform.class));
1440 GenericVnf vnf = new GenericVnf();
1442 SPY_bbInputSetup.mapPlatform(Arrays.asList(new AAIResultWrapper[] { vnfWrapper }), vnf);
1444 assertEquals(expected, vnf.getPlatform());
1448 public void testMapCollection() throws JsonProcessingException {
1449 List<AAIResultWrapper> collections = new ArrayList<>();
1450 ServiceInstance serviceInstance = new ServiceInstance();
1452 org.onap.aai.domain.yang.Collection aaiCollection = new org.onap.aai.domain.yang.Collection();
1453 org.onap.aai.domain.yang.RelationshipList collectionRelationshipList = new org.onap.aai.domain.yang.RelationshipList();
1454 org.onap.aai.domain.yang.Relationship collectionInstanceGroupRelationship = new org.onap.aai.domain.yang.Relationship();
1455 collectionRelationshipList.getRelationship().add(collectionInstanceGroupRelationship);
1456 aaiCollection.setRelationshipList(collectionRelationshipList);
1458 collections.add(new AAIResultWrapper(
1459 new AAICommonObjectMapperProvider().getMapper().writeValueAsString(aaiCollection)));
1461 Collection collection = new Collection();
1462 List<InstanceGroup> instanceGroupsList = new ArrayList<>();
1463 InstanceGroup instanceGroup = new InstanceGroup();
1464 instanceGroupsList.add(instanceGroup);
1466 doReturn(collection).when(bbInputSetupMapperLayer)
1467 .mapAAICollectionIntoCollection(isA(org.onap.aai.domain.yang.Collection.class));
1468 doReturn(instanceGroup).when(SPY_bbInputSetup).mapInstanceGroup(isA(AAIResultWrapper.class));
1469 doReturn(instanceGroupsList).when(SPY_bbInputSetup).mapInstanceGroups(any());
1470 SPY_bbInputSetup.mapCollection(collections, serviceInstance);
1472 assertEquals(collection, serviceInstance.getCollection());
1473 assertEquals(instanceGroup, collection.getInstanceGroup());
1475 instanceGroupsList.clear();
1476 collection = new Collection();
1478 SPY_bbInputSetup.mapCollection(collections, serviceInstance);
1479 assertEquals(collection, serviceInstance.getCollection());
1480 assertNull(collection.getInstanceGroup());
1484 public void testMapL3Networks() throws JsonProcessingException {
1485 org.onap.aai.domain.yang.L3Network expectedAAI = new org.onap.aai.domain.yang.L3Network();
1486 org.onap.aai.domain.yang.RelationshipList relationshipList = new org.onap.aai.domain.yang.RelationshipList();
1487 org.onap.aai.domain.yang.Relationship relationship = new org.onap.aai.domain.yang.Relationship();
1488 relationshipList.getRelationship().add(relationship);
1489 expectedAAI.setRelationshipList(relationshipList);
1491 L3Network expected = new L3Network();
1492 List<L3Network> l3Networks = new ArrayList<>();
1493 AAIResultWrapper l3NetworksWrapper = new AAIResultWrapper(
1494 new AAICommonObjectMapperProvider().getMapper().writeValueAsString(expectedAAI));
1495 AAIResourceUri aaiResourceUri = AAIUriFactory.createResourceUri(AAIObjectType.L3_NETWORK, "networkId");
1497 doReturn(l3NetworksWrapper).when(SPY_bbInputSetupUtils).getAAIResourceDepthTwo(aaiResourceUri);
1498 doReturn(expected).when(bbInputSetupMapperLayer)
1499 .mapAAIL3Network(isA(org.onap.aai.domain.yang.L3Network.class));
1500 doNothing().when(SPY_bbInputSetup).mapNetworkPolicies(any(), eq(expected.getNetworkPolicies()));
1501 doNothing().when(SPY_bbInputSetup).mapRouteTableReferences(any(),
1502 eq(expected.getContrailNetworkRouteTableReferences()));
1504 SPY_bbInputSetup.mapL3Networks(Arrays.asList(new AAIResourceUri[] { aaiResourceUri }), l3Networks);
1506 assertEquals(expected, l3Networks.get(0));
1507 verify(SPY_bbInputSetup, times(1)).mapNetworkPolicies(any(), eq(expected.getNetworkPolicies()));
1508 verify(SPY_bbInputSetup, times(1)).mapRouteTableReferences(any(),
1509 eq(expected.getContrailNetworkRouteTableReferences()));
1513 public void testMapRouteTableReferences() throws JsonProcessingException {
1514 org.onap.aai.domain.yang.RouteTableReference expectedAAI = new org.onap.aai.domain.yang.RouteTableReference();
1516 RouteTableReference expected = new RouteTableReference();
1517 List<RouteTableReference> contrailNetworkRouteTableReferences = new ArrayList<>();
1518 AAIResultWrapper vnfWrapper = new AAIResultWrapper(
1519 new AAICommonObjectMapperProvider().getMapper().writeValueAsString(expectedAAI));
1521 doReturn(expected).when(bbInputSetupMapperLayer).mapAAIRouteTableReferenceIntoRouteTableReference(
1522 isA(org.onap.aai.domain.yang.RouteTableReference.class));
1524 SPY_bbInputSetup.mapRouteTableReferences(Arrays.asList(new AAIResultWrapper[] { vnfWrapper }),
1525 contrailNetworkRouteTableReferences);
1527 assertEquals(expected, contrailNetworkRouteTableReferences.get(0));
1531 public void testMapOwningEntity() throws JsonProcessingException {
1532 org.onap.aai.domain.yang.OwningEntity expectedAAI = new org.onap.aai.domain.yang.OwningEntity();
1534 OwningEntity expected = new OwningEntity();
1535 AAIResultWrapper vnfWrapper = new AAIResultWrapper(
1536 new AAICommonObjectMapperProvider().getMapper().writeValueAsString(expectedAAI));
1538 doReturn(expected).when(bbInputSetupMapperLayer)
1539 .mapAAIOwningEntity(isA(org.onap.aai.domain.yang.OwningEntity.class));
1541 ServiceInstance serviceInstance = new ServiceInstance();
1543 SPY_bbInputSetup.mapOwningEntity(Arrays.asList(new AAIResultWrapper[] { vnfWrapper }), serviceInstance);
1545 assertEquals(expected, serviceInstance.getOwningEntity());
1549 public void testMapProject() throws JsonProcessingException {
1550 org.onap.aai.domain.yang.Project expectedAAI = new org.onap.aai.domain.yang.Project();
1552 Project expected = new Project();
1553 AAIResultWrapper vnfWrapper = new AAIResultWrapper(
1554 new AAICommonObjectMapperProvider().getMapper().writeValueAsString(expectedAAI));
1556 doReturn(expected).when(bbInputSetupMapperLayer).mapAAIProject(isA(org.onap.aai.domain.yang.Project.class));
1558 ServiceInstance serviceInstance = new ServiceInstance();
1560 SPY_bbInputSetup.mapProject(Arrays.asList(new AAIResultWrapper[] { vnfWrapper }), serviceInstance);
1562 assertEquals(expected, serviceInstance.getProject());
1566 public void testMapCustomer() throws Exception {
1567 org.onap.aai.domain.yang.Customer customerAAI = new org.onap.aai.domain.yang.Customer();
1568 org.onap.aai.domain.yang.ServiceSubscription serviceSubscriptionAAI = new org.onap.aai.domain.yang.ServiceSubscription();
1570 Customer expected = new Customer();
1571 ServiceSubscription serviceSubscription = new ServiceSubscription();
1573 String globalCustomerId = "globalCustomerId";
1574 String subscriptionServiceType = "subscriptionServiceType";
1576 doReturn(customerAAI).when(SPY_bbInputSetupUtils).getAAICustomer(globalCustomerId);
1577 doReturn(serviceSubscriptionAAI).when(SPY_bbInputSetupUtils).getAAIServiceSubscription(globalCustomerId,
1578 subscriptionServiceType);
1579 doReturn(expected).when(bbInputSetupMapperLayer)
1580 .mapAAICustomer(isA(org.onap.aai.domain.yang.Customer.class));
1581 doReturn(serviceSubscription).when(bbInputSetupMapperLayer)
1582 .mapAAIServiceSubscription(isA(org.onap.aai.domain.yang.ServiceSubscription.class));
1584 Customer actual = SPY_bbInputSetup.mapCustomer(globalCustomerId, subscriptionServiceType);
1586 assertEquals(expected, actual);
1587 assertEquals(serviceSubscription, expected.getServiceSubscription());
1591 public void testPopulateLookupKeyMapWithIds() {
1592 Map<ResourceKey, String> expected = new HashMap<>();
1593 Map<ResourceKey, String> actual = new HashMap<>();
1594 String serviceInstanceId = "serviceInstanceId";
1595 String networkId = "networkId";
1596 String vnfId = "vnfId";
1597 String vfModuleId = "vfModuleId";
1598 String volumeGroupId = "volumeGroupId";
1599 String configurationId = "configurationId";
1601 expected.put(ResourceKey.SERVICE_INSTANCE_ID, serviceInstanceId);
1602 expected.put(ResourceKey.NETWORK_ID, networkId);
1603 expected.put(ResourceKey.GENERIC_VNF_ID, vnfId);
1604 expected.put(ResourceKey.VF_MODULE_ID, vfModuleId);
1605 expected.put(ResourceKey.VOLUME_GROUP_ID, volumeGroupId);
1606 expected.put(ResourceKey.CONFIGURATION_ID, configurationId);
1608 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
1609 workflowResourceIds.setServiceInstanceId(serviceInstanceId);
1610 workflowResourceIds.setNetworkId(networkId);
1611 workflowResourceIds.setVnfId(vnfId);
1612 workflowResourceIds.setVfModuleId(vfModuleId);
1613 workflowResourceIds.setVolumeGroupId(volumeGroupId);
1614 workflowResourceIds.setConfigurationId(configurationId);
1616 SPY_bbInputSetup.populateLookupKeyMapWithIds(workflowResourceIds, actual);
1618 assertThat(actual, sameBeanAs(expected));
1622 public void testgetGBBMacro() throws Exception {
1623 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
1624 GeneralBuildingBlock.class);
1625 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
1626 ExecuteBuildingBlock.class);
1627 RequestDetails requestDetails = mapper
1628 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
1629 InfraActiveRequests request = Mockito.mock(InfraActiveRequests.class);
1630 org.onap.aai.domain.yang.GenericVnf aaiVnf = new org.onap.aai.domain.yang.GenericVnf();
1631 aaiVnf.setModelCustomizationId("modelCustId");
1632 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
1633 lookupKeyMap.put(ResourceKey.NETWORK_ID, "networkId");
1634 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "vnfId");
1635 lookupKeyMap.put(ResourceKey.VF_MODULE_ID, "vfModuleId");
1636 lookupKeyMap.put(ResourceKey.VOLUME_GROUP_ID, "volumeGroupId");
1637 lookupKeyMap.put(ResourceKey.SERVICE_INSTANCE_ID, "serviceInstanceId");
1638 lookupKeyMap.put(ResourceKey.CONFIGURATION_ID, "configurationId");
1639 String resourceId = "123";
1640 String vnfType = "vnfType";
1641 Service service = Mockito.mock(Service.class);
1642 String requestAction = "createInstance";
1643 doReturn(gBB).when(SPY_bbInputSetup).getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
1644 requestAction, resourceId);
1645 doReturn(request).when(SPY_bbInputSetupUtils).getInfraActiveRequest(executeBB.getRequestId());
1646 doReturn(service).when(SPY_bbInputSetupUtils)
1647 .getCatalogServiceByModelUUID(gBB.getServiceInstance().getModelInfoServiceInstance().getModelUuid());
1648 doNothing().when(SPY_bbInputSetupUtils).updateInfraActiveRequestVnfId(request,
1649 lookupKeyMap.get(ResourceKey.GENERIC_VNF_ID));
1650 doReturn("vnfId").when(SPY_bbInputSetup).getVnfId(executeBB, lookupKeyMap);
1651 doReturn(aaiVnf).when(SPY_bbInputSetupUtils).getAAIGenericVnf(any(String.class));
1653 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.NETWORK_MACRO.toString());
1654 executeBB.getBuildingBlock().setKey("ab153b6e-c364-44c0-bef6-1f2982117f04");
1655 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
1656 verify(SPY_bbInputSetup, times(1)).populateL3Network(any(String.class), isA(ModelInfo.class),
1657 isA(Service.class), any(String.class), isA(ServiceInstance.class), any(), any(String.class), any());
1659 executeBB.getBuildingBlock().setKey("ab153b6e-c364-44c0-bef6-1f2982117f04");
1660 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.VNF.toString());
1661 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
1662 verify(SPY_bbInputSetup, times(1)).populateGenericVnf(isA(ModelInfo.class), any(String.class),
1663 isA(org.onap.so.serviceinstancebeans.Platform.class),
1664 isA(org.onap.so.serviceinstancebeans.LineOfBusiness.class), isA(Service.class), any(String.class),
1665 isA(ServiceInstance.class), any(), any(), any(String.class), any(String.class), any());
1667 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, null);
1668 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.VF_MODULE.toString());
1669 executeBB.getBuildingBlock().setKey("a25e8e8c-58b8-4eec-810c-97dcc1f5cb7f");
1670 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
1671 verify(SPY_bbInputSetup, times(1)).populateVfModule(isA(ModelInfo.class), isA(Service.class), any(String.class),
1672 isA(ServiceInstance.class), any(), any(String.class), any(), any(String.class), any(), isA(CloudConfiguration.class));
1674 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, null);
1675 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.VOLUME_GROUP.toString());
1676 executeBB.getBuildingBlock().setKey("72d9d1cd-f46d-447a-abdb-451d6fb05fa8");
1677 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
1678 verify(SPY_bbInputSetup, times(1)).populateVolumeGroup(isA(ModelInfo.class), isA(Service.class),
1679 any(String.class), isA(ServiceInstance.class), any(), any(String.class), any(), any(String.class),
1680 any(String.class), any());
1682 Configuration configuration = new Configuration();
1683 configuration.setConfigurationId("configurationId");
1684 gBB.getServiceInstance().getConfigurations().add(configuration);
1685 List<ConfigurationResourceCustomization> configurationCustList = new ArrayList<>();
1686 ConfigurationResourceCustomization configurationCust = new ConfigurationResourceCustomization();
1687 configurationCust.setModelCustomizationUUID("72d9d1cd-f46d-447a-abdb-451d6fb05fa9");
1688 doReturn(configurationCustList).when(service).getConfigurationCustomizations();
1689 configurationCustList.add(configurationCust);
1690 doNothing().when(SPY_bbInputSetup).populateConfiguration(isA(ModelInfo.class), isA(Service.class),
1691 any(String.class), isA(ServiceInstance.class), any(), any(String.class), any(String.class));
1693 executeBB.getBuildingBlock().setBpmnFlowName("AssignFabricConfigurationBB");
1694 executeBB.getBuildingBlock().setKey("72d9d1cd-f46d-447a-abdb-451d6fb05fa9");
1695 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
1696 verify(SPY_bbInputSetup, times(1)).populateConfiguration(isA(ModelInfo.class), isA(Service.class),
1697 any(String.class), isA(ServiceInstance.class), any(), any(String.class), any(String.class));
1701 public void testgetGBBMacroCloudConfiguration() throws Exception {
1702 org.onap.so.serviceinstancebeans.Service serviceMacro = mapper.readValue(
1703 new File(RESOURCE_PATH + "ServiceMacroVfModules.json"), org.onap.so.serviceinstancebeans.Service.class);
1704 CloudConfiguration cloudConfig = null;
1705 org.onap.aai.domain.yang.CloudRegion aaiCloudRegion = new org.onap.aai.domain.yang.CloudRegion();
1706 Resources resources = serviceMacro.getResources();
1707 doReturn(aaiCloudRegion).when(SPY_bbInputSetupUtils).getCloudRegion(any(CloudConfiguration.class), eq("att-aic"));
1708 CloudRegion expected = new CloudRegion();
1709 expected.setLcpCloudRegionId("mdt1");
1710 expected.setCloudOwner("att-aic");
1711 expected.setTenantId("88a6ca3ee0394ade9403f075db23167e");
1713 CloudRegion actual = SPY_bbInputSetup.getCloudRegionFromMacroRequest(cloudConfig, resources);
1714 assertThat(actual, sameBeanAs(expected));
1716 serviceMacro = mapper.readValue(
1717 new File(RESOURCE_PATH + "ServiceMacroVnfs.json"), org.onap.so.serviceinstancebeans.Service.class);
1718 resources = serviceMacro.getResources();
1720 actual = SPY_bbInputSetup.getCloudRegionFromMacroRequest(cloudConfig, resources);
1721 assertThat(actual, sameBeanAs(expected));
1723 serviceMacro = mapper.readValue(
1724 new File(RESOURCE_PATH + "ServiceMacroNetworks.json"), org.onap.so.serviceinstancebeans.Service.class);
1725 resources = serviceMacro.getResources();
1727 actual = SPY_bbInputSetup.getCloudRegionFromMacroRequest(cloudConfig, resources);
1728 assertThat(actual, sameBeanAs(expected));
1730 serviceMacro = mapper.readValue(
1731 new File(RESOURCE_PATH + "ServiceMacroNoCloudConfig.json"), org.onap.so.serviceinstancebeans.Service.class);
1732 resources = serviceMacro.getResources();
1734 actual = SPY_bbInputSetup.getCloudRegionFromMacroRequest(cloudConfig, resources);
1739 public void testgetGBBMacroWithEmptyUserParams() throws Exception {
1740 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
1741 GeneralBuildingBlock.class);
1742 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
1743 ExecuteBuildingBlock.class);
1744 RequestDetails requestDetails = mapper
1745 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
1746 requestDetails.getRequestParameters().getUserParams().clear();
1747 InfraActiveRequests request = Mockito.mock(InfraActiveRequests.class);
1748 org.onap.aai.domain.yang.GenericVnf aaiVnf = new org.onap.aai.domain.yang.GenericVnf();
1749 aaiVnf.setModelCustomizationId("modelCustId");
1750 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
1751 lookupKeyMap.put(ResourceKey.NETWORK_ID, "networkId");
1752 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "vnfId");
1753 lookupKeyMap.put(ResourceKey.VF_MODULE_ID, "vfModuleId");
1754 lookupKeyMap.put(ResourceKey.VOLUME_GROUP_ID, "volumeGroupId");
1755 lookupKeyMap.put(ResourceKey.SERVICE_INSTANCE_ID, "serviceInstanceId");
1756 String resourceId = "123";
1757 String vnfType = "vnfType";
1758 Service service = Mockito.mock(Service.class);
1759 String requestAction = "createInstance";
1760 doReturn(gBB).when(SPY_bbInputSetup).getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
1761 requestAction, resourceId);
1762 doReturn(service).when(SPY_bbInputSetupUtils)
1763 .getCatalogServiceByModelUUID(gBB.getServiceInstance().getModelInfoServiceInstance().getModelUuid());
1764 doNothing().when(SPY_bbInputSetupUtils).updateInfraActiveRequestVnfId(request,
1765 lookupKeyMap.get(ResourceKey.GENERIC_VNF_ID));
1766 doReturn("vnfId").when(SPY_bbInputSetup).getVnfId(executeBB, lookupKeyMap);
1767 doReturn(aaiVnf).when(SPY_bbInputSetupUtils).getAAIGenericVnf(any(String.class));
1768 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.NETWORK_MACRO.toString());
1769 executeBB.getBuildingBlock().setKey("ab153b6e-c364-44c0-bef6-1f2982117f04");
1770 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
1771 verify(SPY_bbInputSetup, times(1)).getGBBMacroNoUserParamsCreate(any(ExecuteBuildingBlock.class), any(),
1772 any(String.class), any(String.class), any(GeneralBuildingBlock.class), any(Service.class));
1775 @Test(expected = Exception.class)
1776 public void testgetGBBMacroException() throws Exception {
1777 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
1778 GeneralBuildingBlock.class);
1779 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
1780 ExecuteBuildingBlock.class);
1781 RequestDetails requestDetails = mapper
1782 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
1783 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
1784 String resourceId = "123";
1785 String vnfType = "vnfType";
1786 Service service = Mockito.mock(Service.class);
1787 String requestAction = "createInstance";
1788 doReturn(null).when(SPY_bbInputSetup).getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
1789 requestAction, resourceId);
1790 doReturn(service).when(SPY_bbInputSetupUtils)
1791 .getCatalogServiceByModelUUID(gBB.getServiceInstance().getModelInfoServiceInstance().getModelUuid());
1793 executeBB.getBuildingBlock().setBpmnFlowName("Network");
1794 executeBB.getBuildingBlock().setKey("ab153b6e-c364-44c0-bef6-1f2982117f04");
1795 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
1799 public void testgetGBBMacroWithVnfTypeNull() throws Exception {
1800 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
1801 GeneralBuildingBlock.class);
1802 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
1803 ExecuteBuildingBlock.class);
1804 RequestDetails requestDetails = mapper
1805 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
1806 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
1807 lookupKeyMap.put(ResourceKey.NETWORK_ID, "networkId");
1808 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "vnfId");
1809 lookupKeyMap.put(ResourceKey.VF_MODULE_ID, "vfModuleId");
1810 lookupKeyMap.put(ResourceKey.VOLUME_GROUP_ID, "volumeGroupId");
1811 lookupKeyMap.put(ResourceKey.SERVICE_INSTANCE_ID, "serviceInstanceId");
1812 org.onap.aai.domain.yang.GenericVnf aaiVnf = new org.onap.aai.domain.yang.GenericVnf();
1813 aaiVnf.setModelCustomizationId("modelCustId");
1814 InfraActiveRequests request = Mockito.mock(InfraActiveRequests.class);
1815 String resourceId = "123";
1816 String vnfType = null;
1817 Service service = Mockito.mock(Service.class);
1818 String requestAction = "createInstance";
1819 doReturn(gBB).when(SPY_bbInputSetup).getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
1820 requestAction, resourceId);
1821 doReturn(request).when(SPY_bbInputSetupUtils).getInfraActiveRequest(executeBB.getRequestId());
1822 doReturn(service).when(SPY_bbInputSetupUtils)
1823 .getCatalogServiceByModelUUID(gBB.getServiceInstance().getModelInfoServiceInstance().getModelUuid());
1824 doNothing().when(SPY_bbInputSetupUtils).updateInfraActiveRequestVnfId(request,
1825 lookupKeyMap.get(ResourceKey.GENERIC_VNF_ID));
1826 doReturn("vnfId").when(SPY_bbInputSetup).getVnfId(executeBB, lookupKeyMap);
1827 doReturn(aaiVnf).when(SPY_bbInputSetupUtils).getAAIGenericVnf(any(String.class));
1829 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.NETWORK_MACRO.toString());
1830 executeBB.getBuildingBlock().setKey("ab153b6e-c364-44c0-bef6-1f2982117f04");
1831 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
1832 verify(SPY_bbInputSetup, times(1)).populateL3Network(any(String.class), isA(ModelInfo.class),
1833 isA(Service.class), any(String.class), isA(ServiceInstance.class), any(), any(String.class), any());
1835 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.VNF.toString());
1836 executeBB.getBuildingBlock().setKey("ab153b6e-c364-44c0-bef6-1f2982117f04");
1837 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
1838 verify(SPY_bbInputSetup, times(1)).populateGenericVnf(isA(ModelInfo.class), any(String.class),
1839 isA(org.onap.so.serviceinstancebeans.Platform.class),
1840 isA(org.onap.so.serviceinstancebeans.LineOfBusiness.class), isA(Service.class), any(String.class),
1841 isA(ServiceInstance.class), any(), any(), any(String.class), any(String.class), any());
1843 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, null);
1844 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.VF_MODULE.toString());
1845 executeBB.getBuildingBlock().setKey("a25e8e8c-58b8-4eec-810c-97dcc1f5cb7f");
1846 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
1847 verify(SPY_bbInputSetup, times(1)).populateVfModule(isA(ModelInfo.class), isA(Service.class), any(String.class),
1848 isA(ServiceInstance.class), any(), any(String.class), any(), any(String.class), any(), isA(CloudConfiguration.class));
1850 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, null);
1851 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.VOLUME_GROUP.toString());
1852 executeBB.getBuildingBlock().setKey("72d9d1cd-f46d-447a-abdb-451d6fb05fa8");
1853 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
1854 verify(SPY_bbInputSetup, times(1)).populateVolumeGroup(isA(ModelInfo.class), isA(Service.class),
1855 any(String.class), isA(ServiceInstance.class), any(), any(String.class), any(), any(String.class),
1856 any(String.class), any());
1860 public void testgetGBBMacroGetServiceWithInvariantId() throws Exception {
1861 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
1862 GeneralBuildingBlock.class);
1863 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
1864 ExecuteBuildingBlock.class);
1865 RequestDetails requestDetails = mapper
1866 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
1867 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
1868 lookupKeyMap.put(ResourceKey.NETWORK_ID, "networkId");
1869 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "vnfId");
1870 lookupKeyMap.put(ResourceKey.VF_MODULE_ID, "vfModuleId");
1871 lookupKeyMap.put(ResourceKey.VOLUME_GROUP_ID, "volumeGroupId");
1872 lookupKeyMap.put(ResourceKey.SERVICE_INSTANCE_ID, "serviceInstanceId");
1873 org.onap.aai.domain.yang.GenericVnf aaiVnf = new org.onap.aai.domain.yang.GenericVnf();
1874 aaiVnf.setModelCustomizationId("modelCustId");
1875 InfraActiveRequests request = Mockito.mock(InfraActiveRequests.class);
1876 String resourceId = "123";
1877 String vnfType = "vnfType";
1878 Service service = Mockito.mock(Service.class);
1879 String requestAction = "createInstance";
1880 doReturn(gBB).when(SPY_bbInputSetup).getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
1881 requestAction, resourceId);
1882 doReturn(request).when(SPY_bbInputSetupUtils).getInfraActiveRequest(executeBB.getRequestId());
1883 doReturn(service).when(SPY_bbInputSetupUtils)
1884 .getCatalogServiceByModelUUID(gBB.getServiceInstance().getModelInfoServiceInstance().getModelUuid());
1885 doNothing().when(SPY_bbInputSetupUtils).updateInfraActiveRequestVnfId(request,
1886 lookupKeyMap.get(ResourceKey.GENERIC_VNF_ID));
1887 doReturn("vnfId").when(SPY_bbInputSetup).getVnfId(executeBB, lookupKeyMap);
1888 doReturn(aaiVnf).when(SPY_bbInputSetupUtils).getAAIGenericVnf(any(String.class));
1890 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.NETWORK_MACRO.toString());
1891 executeBB.getBuildingBlock().setKey("ab153b6e-c364-44c0-bef6-1f2982117f04");
1892 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
1893 verify(SPY_bbInputSetup, times(1)).populateL3Network(any(String.class), isA(ModelInfo.class),
1894 isA(Service.class), any(String.class), isA(ServiceInstance.class), any(), any(String.class), any());
1896 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.VNF.toString());
1897 executeBB.getBuildingBlock().setKey("ab153b6e-c364-44c0-bef6-1f2982117f04");
1898 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
1899 verify(SPY_bbInputSetup, times(1)).populateGenericVnf(isA(ModelInfo.class), any(String.class),
1900 isA(org.onap.so.serviceinstancebeans.Platform.class),
1901 isA(org.onap.so.serviceinstancebeans.LineOfBusiness.class), isA(Service.class), any(String.class),
1902 isA(ServiceInstance.class), any(), any(), any(String.class), any(String.class), any());
1904 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, null);
1905 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.VF_MODULE.toString());
1906 executeBB.getBuildingBlock().setKey("a25e8e8c-58b8-4eec-810c-97dcc1f5cb7f");
1907 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
1908 verify(SPY_bbInputSetup, times(1)).populateVfModule(isA(ModelInfo.class), isA(Service.class), any(String.class),
1909 isA(ServiceInstance.class), any(), any(String.class), any(), any(String.class), any(), isA(CloudConfiguration.class));
1911 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, null);
1912 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.VOLUME_GROUP.toString());
1913 executeBB.getBuildingBlock().setKey("72d9d1cd-f46d-447a-abdb-451d6fb05fa8");
1914 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
1915 verify(SPY_bbInputSetup, times(1)).populateVolumeGroup(isA(ModelInfo.class), isA(Service.class),
1916 any(String.class), isA(ServiceInstance.class), any(), any(String.class), any(), any(String.class),
1917 any(String.class), any());
1921 public void testgetGBBMacroNoUserParamsDeactivateInstnace() throws Exception {
1922 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
1923 GeneralBuildingBlock.class);
1924 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
1925 ExecuteBuildingBlock.class);
1926 RequestDetails requestDetails = mapper
1927 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
1928 requestDetails.getRequestParameters().setUserParams(null);
1929 org.onap.aai.domain.yang.GenericVnf aaiVnf = new org.onap.aai.domain.yang.GenericVnf();
1930 aaiVnf.setModelCustomizationId("modelCustId");
1931 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
1932 lookupKeyMap.put(ResourceKey.NETWORK_ID, "networkId");
1933 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "vnfId");
1934 lookupKeyMap.put(ResourceKey.VF_MODULE_ID, "vfModuleId");
1935 lookupKeyMap.put(ResourceKey.VOLUME_GROUP_ID, "volumeGroupId");
1936 lookupKeyMap.put(ResourceKey.SERVICE_INSTANCE_ID, "serviceInstanceId");
1937 String resourceId = "123";
1938 String vnfType = "vnfType";
1939 Service service = Mockito.mock(Service.class);
1940 String requestAction = "deactivateInstance";
1941 doReturn(gBB).when(SPY_bbInputSetup).getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
1942 requestAction, resourceId);
1943 doReturn(service).when(SPY_bbInputSetupUtils)
1944 .getCatalogServiceByModelUUID(gBB.getServiceInstance().getModelInfoServiceInstance().getModelUuid());
1945 String generatedId = "12131";
1946 doReturn(generatedId).when(SPY_bbInputSetup).generateRandomUUID();
1947 doReturn(aaiVnf).when(SPY_bbInputSetupUtils).getAAIGenericVnf(any(String.class));
1949 executeBB.getBuildingBlock().setBpmnFlowName("DeactivateServiceInstanceBB");
1950 executeBB.getBuildingBlock().setKey("3c40d244-808e-42ca-b09a-256d83d19d0a");
1951 GeneralBuildingBlock actual = SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap,
1952 requestAction, resourceId, vnfType);
1953 assertThat(actual, sameBeanAs(gBB));
1957 public void testgetGBBMacroNoUserParamsCreateInstance() throws Exception {
1958 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
1959 GeneralBuildingBlock.class);
1960 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
1961 ExecuteBuildingBlock.class);
1962 RequestDetails requestDetails = mapper
1963 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
1964 InfraActiveRequests request = Mockito.mock(InfraActiveRequests.class);
1965 requestDetails.getRequestParameters().setUserParams(null);
1966 org.onap.aai.domain.yang.GenericVnf aaiVnf = new org.onap.aai.domain.yang.GenericVnf();
1967 aaiVnf.setModelCustomizationId("modelCustId");
1968 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
1969 lookupKeyMap.put(ResourceKey.NETWORK_ID, "networkId");
1970 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "vnfId");
1971 lookupKeyMap.put(ResourceKey.VF_MODULE_ID, "vfModuleId");
1972 lookupKeyMap.put(ResourceKey.VOLUME_GROUP_ID, "volumeGroupId");
1973 lookupKeyMap.put(ResourceKey.SERVICE_INSTANCE_ID, "serviceInstanceId");
1974 lookupKeyMap.put(ResourceKey.CONFIGURATION_ID, "configurationId");
1975 String resourceId = "123";
1976 String vnfType = "vnfType";
1977 Service service = Mockito.mock(Service.class);
1978 String requestAction = "createInstance";
1979 doReturn(gBB).when(SPY_bbInputSetup).getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
1980 requestAction, resourceId);
1981 doReturn(null).when(SPY_bbInputSetupUtils)
1982 .getCatalogServiceByModelUUID(requestDetails.getModelInfo().getModelVersionId());
1983 doReturn(service).when(SPY_bbInputSetupUtils)
1984 .getCatalogServiceByModelUUID(gBB.getServiceInstance().getModelInfoServiceInstance().getModelUuid());
1985 List<NetworkResourceCustomization> networkCustList = new ArrayList<>();
1986 NetworkResourceCustomization networkCust = Mockito.mock(NetworkResourceCustomization.class);
1987 doReturn("ab153b6e-c364-44c0-bef6-1f2982117f04").when(networkCust).getModelCustomizationUUID();
1988 networkCustList.add(networkCust);
1989 doReturn(networkCustList).when(service).getNetworkCustomizations();
1990 doNothing().when(SPY_bbInputSetup).populateL3Network(any(), isA(ModelInfo.class), isA(Service.class),
1991 any(String.class), isA(ServiceInstance.class), any(), any(String.class), any());
1993 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.NETWORK_MACRO.toString());
1994 executeBB.getBuildingBlock().setKey("ab153b6e-c364-44c0-bef6-1f2982117f04");
1995 executeBB.getBuildingBlock().setIsVirtualLink(false);
1996 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
1997 verify(SPY_bbInputSetup, times(1)).getGBBMacroNoUserParamsCreate(executeBB, lookupKeyMap,
1998 executeBB.getBuildingBlock().getBpmnFlowName(), "ab153b6e-c364-44c0-bef6-1f2982117f04", gBB, service);
2000 CollectionNetworkResourceCustomization collectionNetworkResourceCust = Mockito.mock(CollectionNetworkResourceCustomization.class);
2001 doReturn(collectionNetworkResourceCust).when(SPY_bbInputSetupUtils).getCatalogCollectionNetworkResourceCustByID(any(String.class));
2002 NetworkResourceCustomization networkResourceCustomization = Mockito.mock(NetworkResourceCustomization.class);
2003 doReturn(networkResourceCustomization).when(bbInputSetupMapperLayer).mapCollectionNetworkResourceCustToNetworkResourceCust(collectionNetworkResourceCust);
2004 ModelInfoNetwork modelInfoNetwork = Mockito.mock(ModelInfoNetwork.class);
2005 doReturn(modelInfoNetwork ).when(bbInputSetupMapperLayer).mapCatalogNetworkToNetwork(networkResourceCustomization);
2006 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.NETWORK_MACRO.toString());
2007 executeBB.getBuildingBlock().setKey("ab153b6e-c364-44c0-bef6-1f2982117f04");
2008 executeBB.getBuildingBlock().setIsVirtualLink(true);
2009 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
2010 verify(SPY_bbInputSetup, times(2)).getGBBMacroNoUserParamsCreate(executeBB, lookupKeyMap,
2011 executeBB.getBuildingBlock().getBpmnFlowName(), "ab153b6e-c364-44c0-bef6-1f2982117f04", gBB, service);
2012 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.FABRIC_CONFIGURATION.toString());
2013 executeBB.getBuildingBlock().setKey("modelCustId");
2014 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
2015 verify(SPY_bbInputSetup, times(1)).getGBBMacroNoUserParamsCreate(executeBB, lookupKeyMap,
2016 executeBB.getBuildingBlock().getBpmnFlowName(), "modelCustId", gBB, service);
2020 public void testgetGBBMacroNoUserParamsOther() throws Exception {
2021 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
2022 GeneralBuildingBlock.class);
2023 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
2024 ExecuteBuildingBlock.class);
2025 RequestDetails requestDetails = mapper
2026 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
2027 requestDetails.getRequestParameters().setUserParams(null);
2028 org.onap.aai.domain.yang.GenericVnf aaiVnf = new org.onap.aai.domain.yang.GenericVnf();
2029 aaiVnf.setModelCustomizationId("modelCustId");
2030 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
2031 lookupKeyMap.put(ResourceKey.NETWORK_ID, "networkId");
2032 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "vnfId");
2033 lookupKeyMap.put(ResourceKey.VF_MODULE_ID, "vfModuleId");
2034 lookupKeyMap.put(ResourceKey.VOLUME_GROUP_ID, "volumeGroupId");
2035 lookupKeyMap.put(ResourceKey.SERVICE_INSTANCE_ID, "serviceInstanceId");
2036 String resourceId = "123";
2037 String vnfType = "vnfType";
2038 Service service = Mockito.mock(Service.class);
2039 String requestAction = "deleteInstance";
2040 doReturn(gBB).when(SPY_bbInputSetup).getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
2041 requestAction, resourceId);
2042 doReturn(service).when(SPY_bbInputSetupUtils)
2043 .getCatalogServiceByModelUUID(gBB.getServiceInstance().getModelInfoServiceInstance().getModelUuid());
2044 doReturn(aaiVnf).when(SPY_bbInputSetupUtils).getAAIGenericVnf(any(String.class));
2046 CloudConfiguration cloudConfig = new CloudConfiguration();
2047 cloudConfig.setLcpCloudRegionId("lcpCloudRegionId");
2048 requestDetails.setCloudConfiguration(cloudConfig);
2049 org.onap.aai.domain.yang.CloudRegion aaiCloudRegion = Mockito.mock(org.onap.aai.domain.yang.CloudRegion.class);
2050 doReturn(aaiCloudRegion).when(SPY_bbInputSetupUtils).getCloudRegion(requestDetails.getCloudConfiguration(),
2052 executeBB.getBuildingBlock().setBpmnFlowName("DeleteNetworkBB");
2053 executeBB.getBuildingBlock().setKey("ab153b6e-c364-44c0-bef6-1f2982117f04");
2054 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
2055 verify(SPY_bbInputSetup, times(1)).getGBBMacroExistingService(isA(ExecuteBuildingBlock.class), any(),
2056 any(String.class), any(GeneralBuildingBlock.class), isA(Service.class), isA(String.class),
2057 isA(CloudConfiguration.class));
2059 requestAction = "activateInstance";
2060 doReturn(gBB).when(SPY_bbInputSetup).getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
2061 requestAction, resourceId);
2062 executeBB.getBuildingBlock().setBpmnFlowName("ActivateNetworkBB");
2063 executeBB.getBuildingBlock().setKey("ab153b6e-c364-44c0-bef6-1f2982117f04");
2064 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
2065 verify(SPY_bbInputSetup, times(2)).getGBBMacroExistingService(isA(ExecuteBuildingBlock.class), any(),
2066 any(String.class), any(GeneralBuildingBlock.class), isA(Service.class), isA(String.class),
2067 isA(CloudConfiguration.class));
2069 requestAction = "unassignInstance";
2070 doReturn(gBB).when(SPY_bbInputSetup).getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
2071 requestAction, resourceId);
2072 executeBB.getBuildingBlock().setBpmnFlowName("UnassignNetworkBB");
2073 executeBB.getBuildingBlock().setKey("ab153b6e-c364-44c0-bef6-1f2982117f04");
2074 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
2075 verify(SPY_bbInputSetup, times(3)).getGBBMacroExistingService(isA(ExecuteBuildingBlock.class), any(),
2076 any(String.class), any(GeneralBuildingBlock.class), isA(Service.class), isA(String.class),
2077 isA(CloudConfiguration.class));
2079 requestAction = "activateFabricConfiguration";
2080 doReturn(gBB).when(SPY_bbInputSetup).getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
2081 requestAction, resourceId);
2082 executeBB.getBuildingBlock().setBpmnFlowName("ActivateFabricConfigurationBB");
2083 executeBB.getBuildingBlock().setKey("ab153b6e-c364-44c0-bef6-134534656234");
2084 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
2085 verify(SPY_bbInputSetup, times(4)).getGBBMacroExistingService(isA(ExecuteBuildingBlock.class), any(),
2086 any(String.class), any(GeneralBuildingBlock.class), isA(Service.class), isA(String.class),
2087 isA(CloudConfiguration.class));
2090 @Test(expected = IllegalArgumentException.class)
2091 public void testgetGBBMacroNoUserParamsOtherException() throws Exception {
2092 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
2093 GeneralBuildingBlock.class);
2094 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
2095 ExecuteBuildingBlock.class);
2096 RequestDetails requestDetails = mapper
2097 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
2098 requestDetails.getRequestParameters().setUserParams(null);
2099 org.onap.aai.domain.yang.GenericVnf aaiVnf = new org.onap.aai.domain.yang.GenericVnf();
2100 aaiVnf.setModelCustomizationId("modelCustId");
2101 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
2102 lookupKeyMap.put(ResourceKey.NETWORK_ID, "networkId");
2103 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "vnfId");
2104 lookupKeyMap.put(ResourceKey.VF_MODULE_ID, "vfModuleId");
2105 lookupKeyMap.put(ResourceKey.VOLUME_GROUP_ID, "volumeGroupId");
2106 lookupKeyMap.put(ResourceKey.SERVICE_INSTANCE_ID, "serviceInstanceId");
2107 String resourceId = "123";
2108 String vnfType = "vnfType";
2109 Service service = Mockito.mock(Service.class);
2110 String requestAction = "assignInstance";
2111 doReturn(gBB).when(SPY_bbInputSetup).getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
2112 requestAction, resourceId);
2113 doReturn(service).when(SPY_bbInputSetupUtils)
2114 .getCatalogServiceByModelUUID(gBB.getServiceInstance().getModelInfoServiceInstance().getModelUuid());
2115 String generatedId = "12131";
2116 doReturn(generatedId).when(SPY_bbInputSetup).generateRandomUUID();
2117 doReturn(aaiVnf).when(SPY_bbInputSetupUtils).getAAIGenericVnf(any(String.class));
2119 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.SERVICE_INSTANCE.toString());
2120 executeBB.getBuildingBlock().setKey("3c40d244-808e-42ca-b09a-256d83d19d0a");
2121 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
2124 public void testgetGBBMacroNoUserParamsExistingService() throws Exception {
2125 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
2126 GeneralBuildingBlock.class);
2127 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
2128 ExecuteBuildingBlock.class);
2129 RequestDetails requestDetails = mapper
2130 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
2131 requestDetails.getRequestParameters().setUserParams(null);
2132 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
2133 lookupKeyMap.put(ResourceKey.NETWORK_ID, "networkId");
2134 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "vnfId");
2135 lookupKeyMap.put(ResourceKey.VF_MODULE_ID, "vfModuleId");
2136 lookupKeyMap.put(ResourceKey.VOLUME_GROUP_ID, "volumeGroupId");
2137 lookupKeyMap.put(ResourceKey.SERVICE_INSTANCE_ID, "serviceInstanceId");
2138 lookupKeyMap.put(ResourceKey.CONFIGURATION_ID, "configurationId");
2139 Service service = Mockito.mock(Service.class);
2140 CloudConfiguration cloudConfiguration = new CloudConfiguration();
2141 cloudConfiguration.setLcpCloudRegionId("cloudRegionId");
2142 String requestAction = "unassignInstance";
2144 L3Network network = new L3Network();
2145 network.setNetworkId("networkId");
2146 gBB.getServiceInstance().getNetworks().add(network);
2147 org.onap.aai.domain.yang.L3Network aaiNetwork = new org.onap.aai.domain.yang.L3Network();
2148 aaiNetwork.setModelCustomizationId("modelCustId");
2149 doReturn(aaiNetwork).when(SPY_bbInputSetupUtils).getAAIL3Network(network.getNetworkId());
2150 doNothing().when(SPY_bbInputSetup).mapCatalogNetwork(any(L3Network.class), any(ModelInfo.class),
2151 any(Service.class));
2153 executeBB.getBuildingBlock().setBpmnFlowName("DeleteNetworkBB");
2154 executeBB.getBuildingBlock().setKey("ab153b6e-c364-44c0-bef6-1f2982117f04");
2155 SPY_bbInputSetup.getGBBMacroExistingService(executeBB, lookupKeyMap,
2156 executeBB.getBuildingBlock().getBpmnFlowName(), gBB, service, requestAction, cloudConfiguration);
2157 verify(SPY_bbInputSetup, times(1)).mapCatalogNetwork(any(L3Network.class), any(ModelInfo.class),
2158 any(Service.class));
2160 GenericVnf vnf = new GenericVnf();
2161 vnf.setVnfId("vnfId");
2162 gBB.getServiceInstance().getVnfs().add(vnf);
2163 org.onap.aai.domain.yang.GenericVnf aaiVnf = new org.onap.aai.domain.yang.GenericVnf();
2164 aaiVnf.setModelCustomizationId("modelCustId");
2165 doReturn(aaiVnf).when(SPY_bbInputSetupUtils).getAAIGenericVnf(vnf.getVnfId());
2166 doNothing().when(SPY_bbInputSetup).mapCatalogVnf(any(GenericVnf.class), any(ModelInfo.class),
2167 any(Service.class));
2169 executeBB.getBuildingBlock().setBpmnFlowName("ActivateVnfBB");
2170 executeBB.getBuildingBlock().setKey("ab153b6e-c364-44c0-bef6-1f2982117f04");
2171 SPY_bbInputSetup.getGBBMacroExistingService(executeBB, lookupKeyMap,
2172 executeBB.getBuildingBlock().getBpmnFlowName(), gBB, service, requestAction, cloudConfiguration);
2173 verify(SPY_bbInputSetup, times(1)).mapCatalogVnf(any(GenericVnf.class), any(ModelInfo.class),
2174 any(Service.class));
2176 VfModule vfModule = new VfModule();
2177 vfModule.setVfModuleId("vfModuleId");
2178 gBB.getServiceInstance().getVnfs().get(0).getVfModules().add(vfModule);
2179 org.onap.aai.domain.yang.VfModule aaiVfModule = new org.onap.aai.domain.yang.VfModule();
2180 aaiVfModule.setModelCustomizationId("modelCustId");
2181 doReturn(aaiVfModule).when(SPY_bbInputSetupUtils).getAAIVfModule(vnf.getVnfId(), vfModule.getVfModuleId());
2183 executeBB.getBuildingBlock().setBpmnFlowName("UnassignVfModuleBB");
2184 executeBB.getBuildingBlock().setKey("a25e8e8c-58b8-4eec-810c-97dcc1f5cb7f");
2185 SPY_bbInputSetup.getGBBMacroExistingService(executeBB, lookupKeyMap,
2186 executeBB.getBuildingBlock().getBpmnFlowName(), gBB, service, requestAction, cloudConfiguration);
2187 verify(SPY_bbInputSetup, times(2)).mapCatalogVnf(any(GenericVnf.class), any(ModelInfo.class),
2188 any(Service.class));
2189 verify(SPY_bbInputSetup, times(1)).mapCatalogVfModule(any(VfModule.class), any(ModelInfo.class),
2190 any(Service.class), any(String.class));
2192 org.onap.aai.domain.yang.CloudRegion aaiCloudRegion = Mockito.mock(org.onap.aai.domain.yang.CloudRegion.class);
2193 doReturn(aaiCloudRegion).when(SPY_bbInputSetupUtils).getCloudRegion(requestDetails.getCloudConfiguration(),
2195 VolumeGroup volumeGroup = new VolumeGroup();
2196 volumeGroup.setVolumeGroupId("volumeGroupId");
2197 gBB.getServiceInstance().getVnfs().get(0).getVolumeGroups().add(volumeGroup);
2198 org.onap.aai.domain.yang.VolumeGroup aaiVolumeGroup = new org.onap.aai.domain.yang.VolumeGroup();
2199 aaiVolumeGroup.setModelCustomizationId("modelCustId");
2200 doReturn(aaiVolumeGroup).when(SPY_bbInputSetupUtils).getAAIVolumeGroup("att-aic",
2201 cloudConfiguration.getLcpCloudRegionId(), volumeGroup.getVolumeGroupId());
2203 executeBB.getBuildingBlock().setBpmnFlowName("UnassignVolumeGroupBB");
2204 executeBB.getBuildingBlock().setKey("72d9d1cd-f46d-447a-abdb-451d6fb05fa8");
2205 SPY_bbInputSetup.getGBBMacroExistingService(executeBB, lookupKeyMap,
2206 executeBB.getBuildingBlock().getBpmnFlowName(), gBB, service, requestAction, cloudConfiguration);
2207 verify(SPY_bbInputSetup, times(3)).mapCatalogVnf(any(GenericVnf.class), any(ModelInfo.class),
2208 any(Service.class));
2209 verify(SPY_bbInputSetup, times(1)).mapCatalogVolumeGroup(isA(VolumeGroup.class), isA(ModelInfo.class),
2210 isA(Service.class), isA(String.class));
2212 Configuration configuration = new Configuration();
2213 configuration.setConfigurationId("configurationId");
2214 gBB.getServiceInstance().getConfigurations().add(configuration);
2215 org.onap.aai.domain.yang.Configuration aaiConfiguration = new org.onap.aai.domain.yang.Configuration();
2216 aaiConfiguration.setModelCustomizationId("modelCustId");
2217 doReturn(aaiConfiguration).when(SPY_bbInputSetupUtils).getAAIConfiguration(configuration.getConfigurationId());
2219 executeBB.getBuildingBlock().setBpmnFlowName("ActivateFabricConfigurationBB");
2220 executeBB.getBuildingBlock().setKey("72d9d1cd-f46d-447a-abdb-451d6fb05fa9");
2221 SPY_bbInputSetup.getGBBMacroExistingService(executeBB, lookupKeyMap,
2222 executeBB.getBuildingBlock().getBpmnFlowName(), gBB, service, requestAction, cloudConfiguration);
2223 verify(SPY_bbInputSetup, times(1)).mapCatalogConfiguration(any(Configuration.class), any(ModelInfo.class),
2224 any(Service.class));
2228 public void testGetVnfId() {
2229 String expected = "vnfId";
2230 ExecuteBuildingBlock executeBB = new ExecuteBuildingBlock();
2231 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
2232 executeBB.setRequestId("requestId");
2233 InfraActiveRequests request = new InfraActiveRequests();
2234 request.setVnfId(expected);
2235 doReturn(request).when(SPY_bbInputSetupUtils).getInfraActiveRequest(executeBB.getRequestId());
2237 String actual = SPY_bbInputSetup.getVnfId(executeBB, lookupKeyMap);
2239 assertEquals("VnfId is set correctly", expected, actual);
2243 public void testCreateVfModule() {
2244 String vfModuleId = "vfModuleId";
2245 String instanceName = "vfModuleName";
2246 Map<String, String> cloudParams = new HashMap<>();
2247 cloudParams.put("param1", "param1Value");
2248 VfModule expected = new VfModule();
2249 expected.setVfModuleId(vfModuleId);
2250 expected.setVfModuleName(instanceName);
2251 expected.setCloudParams(cloudParams);
2252 expected.setOrchestrationStatus(OrchestrationStatus.PRECREATED);
2253 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
2254 List<Map<String, String>> instanceParams = new ArrayList<>();
2255 instanceParams.add(cloudParams);
2257 VfModule actual = SPY_bbInputSetup.createVfModule(lookupKeyMap, vfModuleId, instanceName, instanceParams);
2259 assertThat(actual, sameBeanAs(expected));
2260 assertEquals("LookupKeyMap is populated", vfModuleId, lookupKeyMap.get(ResourceKey.VF_MODULE_ID));
2262 expected.getCloudParams().clear();
2263 actual = SPY_bbInputSetup.createVfModule(lookupKeyMap, vfModuleId, instanceName, null);
2264 assertThat(actual, sameBeanAs(expected));
2268 public void testCreateVolumeGroup() {
2269 String volumeGroupId = "volumeGroupId";
2270 String instanceName = "vfModuleName";
2271 String vnfType = "vnfType";
2272 Map<String, String> cloudParams = new HashMap<>();
2273 cloudParams.put("param1", "param1Value");
2274 VolumeGroup expected = new VolumeGroup();
2275 expected.setVolumeGroupId(volumeGroupId);
2276 expected.setVolumeGroupName(instanceName);
2277 expected.setCloudParams(cloudParams);
2278 expected.setVnfType(vnfType);
2279 expected.setOrchestrationStatus(OrchestrationStatus.PRECREATED);
2280 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
2281 List<Map<String, String>> instanceParams = new ArrayList<>();
2282 instanceParams.add(cloudParams);
2284 VolumeGroup actual = SPY_bbInputSetup.createVolumeGroup(lookupKeyMap, volumeGroupId, instanceName, vnfType, instanceParams);
2286 assertThat(actual, sameBeanAs(expected));
2287 assertEquals("LookupKeyMap is populated", volumeGroupId, lookupKeyMap.get(ResourceKey.VOLUME_GROUP_ID));
2289 expected.getCloudParams().clear();
2290 actual = SPY_bbInputSetup.createVolumeGroup(lookupKeyMap, volumeGroupId, instanceName, vnfType, null);
2291 assertThat(actual, sameBeanAs(expected));
2295 public void testCreateNetwork() {
2296 String networkId = "networkId";
2297 String instanceName = "networkName";
2298 Map<String, String> cloudParams = new HashMap<>();
2299 cloudParams.put("param1", "param1Value");
2300 L3Network expected = new L3Network();
2301 expected.setNetworkId(networkId);
2302 expected.setNetworkName(instanceName);
2303 expected.setCloudParams(cloudParams);
2304 expected.setOrchestrationStatus(OrchestrationStatus.PRECREATED);
2305 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
2306 List<Map<String, String>> instanceParams = new ArrayList<>();
2307 instanceParams.add(cloudParams);
2308 L3Network actual = SPY_bbInputSetup.createNetwork(lookupKeyMap, instanceName, networkId, instanceParams);
2310 assertThat(actual, sameBeanAs(expected));
2311 assertEquals("LookupKeyMap is populated", networkId, lookupKeyMap.get(ResourceKey.NETWORK_ID));
2313 expected.getCloudParams().clear();
2314 actual = SPY_bbInputSetup.createNetwork(lookupKeyMap, instanceName, networkId, null);
2315 assertThat(actual, sameBeanAs(expected));
2319 public void testCreateGenericVnf() {
2320 String vnfId = "vnfId";
2321 String instanceName = "vnfName";
2322 String vnfType = "vnfType";
2323 String platformName = "platformName";
2324 String lineOfBusinessName = "lineOfBusinessName";
2325 Platform platform = new Platform();
2326 platform.setPlatformName(platformName);
2327 LineOfBusiness lineOfBusiness = new LineOfBusiness();
2328 lineOfBusiness.setLineOfBusinessName(lineOfBusinessName);
2329 Map<String, String> cloudParams = new HashMap<>();
2330 cloudParams.put("param1", "param1Value");
2331 GenericVnf expected = new GenericVnf();
2332 expected.setVnfId(vnfId);
2333 expected.setVnfName(instanceName);
2334 expected.setVnfType(vnfType);
2335 expected.setCloudParams(cloudParams);
2336 expected.setOrchestrationStatus(OrchestrationStatus.PRECREATED);
2337 expected.setPlatform(platform);
2338 expected.setLineOfBusiness(lineOfBusiness);
2339 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
2340 List<Map<String, String>> instanceParams = new ArrayList<>();
2341 instanceParams.add(cloudParams);
2342 org.onap.so.serviceinstancebeans.Platform requestPlatform = new org.onap.so.serviceinstancebeans.Platform();
2343 platform.setPlatformName(platformName);
2344 org.onap.so.serviceinstancebeans.LineOfBusiness requestLineOfBusiness = new org.onap.so.serviceinstancebeans.LineOfBusiness();
2345 lineOfBusiness.setLineOfBusinessName(lineOfBusinessName);
2347 doReturn(platform).when(bbInputSetupMapperLayer).mapRequestPlatform(requestPlatform);
2348 doReturn(lineOfBusiness).when(bbInputSetupMapperLayer).mapRequestLineOfBusiness(requestLineOfBusiness);
2350 GenericVnf actual = SPY_bbInputSetup.createGenericVnf(lookupKeyMap, instanceName, requestPlatform, requestLineOfBusiness, vnfId, vnfType, instanceParams);
2352 assertThat(actual, sameBeanAs(expected));
2353 assertEquals("LookupKeyMap is populated", vnfId, lookupKeyMap.get(ResourceKey.GENERIC_VNF_ID));
2355 expected.getCloudParams().clear();
2356 actual = SPY_bbInputSetup.createGenericVnf(lookupKeyMap, instanceName, requestPlatform, requestLineOfBusiness, vnfId, vnfType, null);
2357 assertThat(actual, sameBeanAs(expected));
2361 public void testMapCatalogVfModule() {
2362 String vnfModelCustomizationUUID = "vnfResourceCustUUID";
2363 String vfModuleCustomizationUUID = "vfModelCustomizationUUID";
2364 VfModule vfModule = new VfModule();
2365 ModelInfo modelInfo = new ModelInfo();
2366 modelInfo.setModelCustomizationUuid(vfModuleCustomizationUUID);
2367 Service service = new Service();
2368 VnfResourceCustomization vnfResourceCust = new VnfResourceCustomization();
2369 vnfResourceCust.setModelCustomizationUUID(vnfModelCustomizationUUID);
2370 VfModuleCustomization vfModuleCust = new VfModuleCustomization();
2371 vfModuleCust.setModelCustomizationUUID(vfModuleCustomizationUUID);
2372 vnfResourceCust.getVfModuleCustomizations().add(vfModuleCust);
2373 service.getVnfCustomizations().add(vnfResourceCust);
2374 ModelInfoVfModule modelInfoVfModule = new ModelInfoVfModule();
2376 doReturn(modelInfoVfModule).when(bbInputSetupMapperLayer).mapCatalogVfModuleToVfModule(vfModuleCust);
2378 SPY_bbInputSetup.mapCatalogVfModule(vfModule, modelInfo, service, vnfModelCustomizationUUID);
2380 assertThat(vfModule.getModelInfoVfModule(), sameBeanAs(modelInfoVfModule));
2382 modelInfo.setModelCustomizationUuid(null);
2383 modelInfo.setModelCustomizationId(vfModuleCustomizationUUID);
2385 SPY_bbInputSetup.mapCatalogVfModule(vfModule, modelInfo, service, vnfModelCustomizationUUID);
2387 assertThat(vfModule.getModelInfoVfModule(), sameBeanAs(modelInfoVfModule));
2391 public void testPopulateVfModule() throws Exception {
2392 String vnfId = "vnfId";
2393 String vfModuleId = "vfModuleId";
2394 String volumeGroupId = "volumeGroupId";
2395 String vfModuleCustomizationId = "vfModuleCustomizationId";
2396 ModelInfo modelInfo = new ModelInfo();
2397 modelInfo.setModelCustomizationId(vfModuleCustomizationId);
2398 Service service = new Service();
2399 String bbName = AssignFlows.VF_MODULE.toString();
2400 ServiceInstance serviceInstance = new ServiceInstance();
2401 GenericVnf vnf = new GenericVnf();
2402 vnf.setVnfId(vnfId);
2403 VolumeGroup volumeGroup = new VolumeGroup();
2404 volumeGroup.setVolumeGroupId(volumeGroupId);
2405 vnf.getVolumeGroups().add(volumeGroup);
2406 serviceInstance.getVnfs().add(vnf);
2407 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
2408 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, vnfId);
2409 String resourceId = vfModuleId;
2410 RelatedInstanceList[] relatedInstanceList = null;
2411 String instanceName = "vfModuleName";
2412 List<Map<String, String>> instanceParams = null;
2413 CloudConfiguration cloudConfiguration = new CloudConfiguration();
2415 org.onap.aai.domain.yang.GenericVnf vnfAAI = new org.onap.aai.domain.yang.GenericVnf();
2416 vnfAAI.setModelCustomizationId("vnfModelCustId");
2417 org.onap.aai.domain.yang.VolumeGroup volumeGroupAAI = new org.onap.aai.domain.yang.VolumeGroup();
2418 volumeGroupAAI.setModelCustomizationId(vfModuleCustomizationId);
2420 doReturn(vnfAAI).when(SPY_bbInputSetupUtils).getAAIGenericVnf(vnf.getVnfId());
2421 doReturn(volumeGroupAAI).when(SPY_bbInputSetupUtils).getAAIVolumeGroup(CLOUD_OWNER,
2422 cloudConfiguration.getLcpCloudRegionId(), volumeGroup.getVolumeGroupId());
2423 doNothing().when(SPY_bbInputSetup).mapCatalogVnf(isA(GenericVnf.class), isA(ModelInfo.class), isA(Service.class));
2424 doNothing().when(SPY_bbInputSetup).mapCatalogVfModule(isA(VfModule.class), isA(ModelInfo.class), isA(Service.class), isA(String.class));
2426 SPY_bbInputSetup.populateVfModule(modelInfo, service, bbName, serviceInstance, lookupKeyMap,
2427 resourceId, relatedInstanceList, instanceName, instanceParams, cloudConfiguration);
2429 assertEquals("Lookup Key Map populated with VfModule Id", vfModuleId, lookupKeyMap.get(ResourceKey.VF_MODULE_ID));
2430 assertEquals("Lookup Key Map populated with VolumeGroup Id", volumeGroupId, lookupKeyMap.get(ResourceKey.VOLUME_GROUP_ID));