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, Boolean.TRUE.equals(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, Boolean.TRUE.equals(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, Boolean.TRUE.equals(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 vnfType = "vnfType";
662 String resourceId = "networkId";
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 doReturn(modelInfo).when(requestDetails).getModelInfo();
679 doReturn(requestInfo).when(requestDetails).getRequestInfo();
680 doReturn(instanceName).when(requestInfo).getInstanceName();
681 doReturn(platform).when(requestDetails).getPlatform();
682 doReturn(lineOfBusiness).when(requestDetails).getLineOfBusiness();
683 doReturn(relatedInstanceList).when(requestDetails).getRelatedInstanceList();
684 doReturn(cloudConfiguration).when(requestDetails).getCloudConfiguration();
686 doReturn(ModelType.network).when(modelInfo).getModelType();
687 SPY_bbInputSetup.populateObjectsOnAssignAndCreateFlows(requestDetails, service, bbName, serviceInstance,
688 lookupKeyMap, resourceId, vnfType);
689 verify(SPY_bbInputSetup, times(1)).populateL3Network(instanceName, modelInfo, service, bbName, serviceInstance,
690 lookupKeyMap, resourceId, null);
691 assertEquals("NetworkId populated", true, lookupKeyMap.get(ResourceKey.NETWORK_ID).equalsIgnoreCase(resourceId));
693 doReturn(ModelType.vnf).when(modelInfo).getModelType();
694 resourceId = "vnfId";
695 doNothing().when(SPY_bbInputSetup).populateGenericVnf(modelInfo, instanceName, platform, lineOfBusiness,
696 service, bbName, serviceInstance, lookupKeyMap, relatedInstanceList, resourceId, vnfType, null);
697 SPY_bbInputSetup.populateObjectsOnAssignAndCreateFlows(requestDetails, service, bbName, serviceInstance,
698 lookupKeyMap, resourceId, vnfType);
699 verify(SPY_bbInputSetup, times(1)).populateGenericVnf(modelInfo, instanceName, platform, lineOfBusiness,
700 service, bbName, serviceInstance, lookupKeyMap, relatedInstanceList, resourceId, vnfType, null);
701 assertEquals("VnfId populated", true, lookupKeyMap.get(ResourceKey.GENERIC_VNF_ID).equalsIgnoreCase(resourceId));
703 doReturn(ModelType.volumeGroup).when(modelInfo).getModelType();
704 resourceId = "volumeGroupId";
705 doNothing().when(SPY_bbInputSetup).populateVolumeGroup(modelInfo, service, bbName, serviceInstance,
706 lookupKeyMap, resourceId, relatedInstanceList, instanceName, vnfType, null);
707 SPY_bbInputSetup.populateObjectsOnAssignAndCreateFlows(requestDetails, service, bbName, serviceInstance,
708 lookupKeyMap, resourceId, vnfType);
709 verify(SPY_bbInputSetup, times(1)).populateVolumeGroup(modelInfo, service, bbName, serviceInstance,
710 lookupKeyMap, resourceId, relatedInstanceList, instanceName, vnfType, null);
711 assertEquals("VolumeGroupId populated", true, lookupKeyMap.get(ResourceKey.VOLUME_GROUP_ID).equalsIgnoreCase(resourceId));
713 doReturn(ModelType.vfModule).when(modelInfo).getModelType();
714 resourceId = "vfModuleId";
715 doNothing().when(SPY_bbInputSetup).populateVfModule(modelInfo, service, bbName, serviceInstance, lookupKeyMap,
716 resourceId, relatedInstanceList, instanceName, null, cloudConfiguration);
717 SPY_bbInputSetup.populateObjectsOnAssignAndCreateFlows(requestDetails, service, bbName, serviceInstance,
718 lookupKeyMap, resourceId, vnfType);
719 verify(SPY_bbInputSetup, times(1)).populateVfModule(modelInfo, service, bbName, serviceInstance, lookupKeyMap,
720 resourceId, relatedInstanceList, instanceName, null, cloudConfiguration);
721 assertEquals("VfModuleId populated", true, lookupKeyMap.get(ResourceKey.VF_MODULE_ID).equalsIgnoreCase(resourceId));
725 public void testPopulateGBBWithSIAndAdditionalInfo() throws Exception {
726 GeneralBuildingBlock expected = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
727 GeneralBuildingBlock.class);
728 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
729 ExecuteBuildingBlock.class);
730 RequestDetails requestDetails = mapper.readValue(
731 new File(RESOURCE_PATH + "RequestDetailsInput_withRelatedInstanceList.json"), RequestDetails.class);
732 RequestContext requestContext = mapper.readValue(new File(RESOURCE_PATH + "RequestContextExpected.json"),
733 RequestContext.class);
734 ServiceInstance serviceInstance = mapper.readValue(
735 new File(RESOURCE_PATH + "ServiceInstance_getServiceInstanceNOAAIExpected.json"),
736 ServiceInstance.class);
738 OrchestrationContext orchestrationContext = new OrchestrationContext();
739 orchestrationContext.setIsRollbackEnabled(false);
741 CloudRegion cloudRegion = new CloudRegion();
742 cloudRegion.setCloudOwner("att-aic");
743 cloudRegion.setLcpCloudRegionId("lcpCloudRegionId");
744 cloudRegion.setComplex("complexName");
745 cloudRegion.setTenantId("tenantId");
747 Map<String, String> uriKeys = new HashMap<>();
748 uriKeys.put("global-customer-id","global-customer-id");
749 uriKeys.put("service-type","service-type");
751 Customer customer = new Customer();
752 ServiceSubscription serviceSubscription = new ServiceSubscription();
753 serviceSubscription.setServiceType("subscriptionServiceType");
754 customer.setGlobalCustomerId("globalCustomerId");
755 customer.setSubscriberName("subscriberName");
756 customer.setSubscriberType("subscriberType");
757 customer.setServiceSubscription(serviceSubscription);
759 org.onap.aai.domain.yang.CloudRegion aaiCloudRegion = Mockito.mock(org.onap.aai.domain.yang.CloudRegion.class);
761 String requestAction = "createInstance";
763 doReturn(uriKeys).when(SPY_bbInputSetupUtils).getURIKeysFromServiceInstance(serviceInstance.getServiceInstanceId());
764 doReturn(customer).when(SPY_bbInputSetup).mapCustomer(uriKeys.get("global-customer-id"),uriKeys.get("service-type"));
765 doReturn(aaiCloudRegion).when(SPY_bbInputSetupUtils).getCloudRegion(requestDetails.getCloudConfiguration(), "att-aic");
766 doReturn(orchestrationContext).when(bbInputSetupMapperLayer).mapOrchestrationContext(requestDetails);
767 doReturn(requestContext).when(bbInputSetupMapperLayer).mapRequestContext(requestDetails);
768 doReturn(cloudRegion).when(bbInputSetupMapperLayer).mapCloudRegion(requestDetails.getCloudConfiguration(), aaiCloudRegion,
771 GeneralBuildingBlock actual = SPY_bbInputSetup.populateGBBWithSIAndAdditionalInfo(requestDetails,
772 serviceInstance, executeBB, requestAction, null);
774 assertThat(actual, sameBeanAs(expected));
778 public void testGetServiceInstanceNOAAI() throws Exception {
779 ServiceInstance expected = mapper.readValue(
780 new File(RESOURCE_PATH + "ServiceInstance_getServiceInstanceNOAAIExpected.json"),
781 ServiceInstance.class);
782 Service service = mapper.readValue(
783 new File(RESOURCE_PATH + "CatalogDBService_getServiceInstanceNOAAIInput.json"), Service.class);
784 Customer customer = mapper.readValue(new File(RESOURCE_PATH + "Customer.json"), Customer.class);
785 Project project = mapper.readValue(new File(RESOURCE_PATH + "Project.json"), Project.class);
786 OwningEntity owningEntity = mapper.readValue(new File(RESOURCE_PATH + "OwningEntity.json"), OwningEntity.class);
787 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
789 ExecuteBuildingBlock executeBB = new ExecuteBuildingBlock();
790 executeBB.setaLaCarte(true);
791 BuildingBlock buildingBlock = new BuildingBlock();
792 buildingBlock.setBpmnFlowName(AssignFlows.SERVICE_INSTANCE.toString());
793 executeBB.setBuildingBlock(buildingBlock);
794 RequestDetails requestDetails = new RequestDetails();
795 RequestInfo reqInfo = new RequestInfo();
796 reqInfo.setInstanceName("serviceInstanceName");
797 requestDetails.setRequestInfo(reqInfo);
798 ModelInfo modelInfo = new ModelInfo();
799 modelInfo.setModelType(ModelType.service);
800 requestDetails.setModelInfo(modelInfo);
801 doReturn(null).when(SPY_bbInputSetupUtils)
802 .getAAIServiceInstanceByName(requestDetails.getRequestInfo().getInstanceName(), customer);
803 doReturn(expected.getModelInfoServiceInstance()).when(bbInputSetupMapperLayer)
804 .mapCatalogServiceIntoServiceInstance(service);
805 doReturn(null).when(SPY_bbInputSetupUtils).getAAIServiceInstanceById(any(String.class));
806 String serviceInstanceId = "3655a595-05d1-433c-93c0-3afd6b572545";
807 boolean aLaCarte = true;
809 ServiceInstance actual = SPY_bbInputSetup.getALaCarteServiceInstance(service, requestDetails, customer, project,
810 owningEntity, lookupKeyMap, serviceInstanceId, aLaCarte,
811 executeBB.getBuildingBlock().getBpmnFlowName());
813 assertThat(actual, sameBeanAs(expected));
817 public void testGetServiceSubscription() throws IOException {
818 ServiceSubscription expected = new ServiceSubscription();
819 RequestDetails requestDetails = new RequestDetails();
820 RequestParameters params = new RequestParameters();
821 params.setSubscriptionServiceType("subscriptionServiceType");
822 requestDetails.setRequestParameters(params);
823 org.onap.aai.domain.yang.ServiceSubscription aaiServiceSubscription = new org.onap.aai.domain.yang.ServiceSubscription();
824 Customer customer = new Customer();
825 customer.setGlobalCustomerId("globalCustomerId");
826 doReturn(aaiServiceSubscription).when(SPY_bbInputSetupUtils).getAAIServiceSubscription(
827 customer.getGlobalCustomerId(), requestDetails.getRequestParameters().getSubscriptionServiceType());
828 doReturn(expected).when(bbInputSetupMapperLayer).mapAAIServiceSubscription(aaiServiceSubscription);
830 ServiceSubscription actual = SPY_bbInputSetup.getServiceSubscription(requestDetails, customer);
831 assertThat(actual, sameBeanAs(expected));
835 public void testGetCustomer() throws IOException {
836 Customer expected = new Customer();
837 RequestDetails requestDetails = new RequestDetails();
838 SubscriberInfo subscriberInfo = new SubscriberInfo();
839 subscriberInfo.setGlobalSubscriberId("globalSubscriberId");
840 requestDetails.setSubscriberInfo(subscriberInfo);
841 org.onap.aai.domain.yang.Customer aaiCustomer = new org.onap.aai.domain.yang.Customer();
842 doReturn(aaiCustomer).when(SPY_bbInputSetupUtils)
843 .getAAICustomer(requestDetails.getSubscriberInfo().getGlobalSubscriberId());
844 doReturn(expected).when(bbInputSetupMapperLayer).mapAAICustomer(aaiCustomer);
846 Customer actual = SPY_bbInputSetup.getCustomerFromRequest(requestDetails);
847 assertThat(actual, sameBeanAs(expected));
851 public void testGetExistingServiceInstance() throws Exception {
852 org.onap.aai.domain.yang.ServiceInstance serviceInstanceAAI = new org.onap.aai.domain.yang.ServiceInstance();
853 ServiceInstance expected = new ServiceInstance();
855 doReturn(expected).when(bbInputSetupMapperLayer)
856 .mapAAIServiceInstanceIntoServiceInstance(serviceInstanceAAI);
858 doNothing().when(SPY_bbInputSetup).addRelationshipsToSI(serviceInstanceAAI, expected);
860 ServiceInstance actual = SPY_bbInputSetup.getExistingServiceInstance(serviceInstanceAAI);
861 assertThat(actual, sameBeanAs(expected));
865 public void testPopulateNetworkCollectionAndInstanceGroupAssign() throws Exception {
866 Service service = Mockito.mock(Service.class);
867 String key = "collectionCustId";
868 ServiceInstance serviceInstance = mapper.readValue(
869 new File(RESOURCE_PATH + "ServiceInstance_getServiceInstanceNOAAIExpected.json"),
870 ServiceInstance.class);
871 String resourceId = "123";
872 Collection collection = SPY_bbInputSetup.createCollection(resourceId);
873 InstanceGroup instanceGroup = SPY_bbInputSetup.createInstanceGroup();
874 assertNull(serviceInstance.getCollection());
875 doReturn(true).when(SPY_bbInputSetup).isVlanTagging(service, key);
876 doReturn(collection).when(SPY_bbInputSetup).createCollection(resourceId);
877 doReturn(instanceGroup).when(SPY_bbInputSetup).createInstanceGroup();
878 doNothing().when(SPY_bbInputSetup).mapCatalogCollection(service, collection, key);
879 doNothing().when(SPY_bbInputSetup).mapCatalogNetworkCollectionInstanceGroup(service,
880 collection.getInstanceGroup(), key);
881 NetworkCollectionResourceCustomization networkCollection = new NetworkCollectionResourceCustomization();
882 networkCollection.setModelCustomizationUUID(key);
883 networkCollection.setCollectionResource(new CollectionResource());
884 networkCollection.getCollectionResource().setInstanceGroup(new org.onap.so.db.catalog.beans.InstanceGroup());
885 networkCollection.getCollectionResource().getInstanceGroup().setToscaNodeType("NetworkCollectionResource");
886 networkCollection.getCollectionResource().getInstanceGroup().setType(InstanceGroupType.L3_NETWORK);
887 networkCollection.getCollectionResource().getInstanceGroup().setCollectionInstanceGroupCustomizations(new ArrayList<>());
888 List<CollectionResourceCustomization> customizations = new ArrayList<>();
889 customizations.add(networkCollection);
890 doReturn(customizations).when(service).getCollectionResourceCustomizations();
892 SPY_bbInputSetup.populateNetworkCollectionAndInstanceGroupAssign(service,
893 AssignFlows.NETWORK_COLLECTION.toString(), serviceInstance, resourceId, key);
895 assertNotNull(serviceInstance.getCollection());
896 assertNotNull(serviceInstance.getCollection().getInstanceGroup());
898 verify(SPY_bbInputSetup, times(1)).mapCatalogCollection(service, serviceInstance.getCollection(), key);
899 verify(SPY_bbInputSetup, times(1)).mapCatalogNetworkCollectionInstanceGroup(service,
900 serviceInstance.getCollection().getInstanceGroup(), key);
904 public void testIsVlanTagging() throws Exception {
905 boolean expected = true;
906 Service service = Mockito.mock(Service.class);
907 String key = "collectionCustId";
908 NetworkCollectionResourceCustomization networkCollection = new NetworkCollectionResourceCustomization();
909 networkCollection.setModelCustomizationUUID(key);
910 networkCollection.setCollectionResource(new CollectionResource());
911 networkCollection.getCollectionResource().setInstanceGroup(new org.onap.so.db.catalog.beans.InstanceGroup());
912 networkCollection.getCollectionResource().getInstanceGroup().setToscaNodeType("org.openecomp.resource.cr.NetworkCollectionResource1806");
913 List<CollectionResourceCustomization> customizations = new ArrayList<>();
914 customizations.add(networkCollection);
915 doReturn(customizations).when(service).getCollectionResourceCustomizations();
916 boolean actual = SPY_bbInputSetup.isVlanTagging(service, key);
917 assertEquals("Is Vlan Tagging check.", expected, actual);
921 public void testPopulateVolumeGroup() throws Exception {
922 RequestDetails requestDetails = new RequestDetails();
923 RelatedInstanceList ril = new RelatedInstanceList();
924 RelatedInstance ri = new RelatedInstance();
925 ModelInfo mi = new ModelInfo();
926 mi.setModelType(ModelType.vnf);
927 mi.setModelCustomizationUuid("vnfModelCustomizationUUID");
929 ril.setRelatedInstance(ri);
930 requestDetails.setRelatedInstanceList(new RelatedInstanceList[] { ril });
932 ModelInfo modelInfo = new ModelInfo();
933 modelInfo.setModelType(ModelType.volumeGroup);
935 RequestInfo reqInfo = new RequestInfo();
936 reqInfo.setInstanceName("volumeGroupName");
937 requestDetails.setModelInfo(modelInfo);
938 requestDetails.setRequestInfo(reqInfo);
940 ServiceInstance serviceInstance = new ServiceInstance();
941 GenericVnf vnf = new GenericVnf();
942 vnf.setVnfId("genericVnfId");
944 VolumeGroup vg = new VolumeGroup();
945 vg.setVolumeGroupName("volumeGroupName");
946 vg.setVolumeGroupId("volumeGroupId");
947 vnf.getVolumeGroups().add(vg);
948 serviceInstance.getVnfs().add(vnf);
950 Service service = mapper.readValue(
951 new File(RESOURCE_PATH + "CatalogDBService_getServiceInstanceNOAAIInput.json"), Service.class);
952 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
953 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "genericVnfId");
955 String bbName = AssignFlows.VOLUME_GROUP.toString();
956 String resourceId = "123";
957 doNothing().when(SPY_bbInputSetup).mapCatalogVolumeGroup(isA(VolumeGroup.class), eq(modelInfo),
958 eq(service), eq("vnfModelCustomizationUUID"));
959 org.onap.aai.domain.yang.GenericVnf aaiGenericVnf = new org.onap.aai.domain.yang.GenericVnf();
960 aaiGenericVnf.setModelCustomizationId("vnfModelCustomizationUUID");
961 doReturn(aaiGenericVnf).when(SPY_bbInputSetupUtils).getAAIGenericVnf(vnf.getVnfId());
963 lookupKeyMap.put(ResourceKey.VOLUME_GROUP_ID, "volumeGroupId");
964 SPY_bbInputSetup.populateVolumeGroup(modelInfo, service, bbName, serviceInstance, lookupKeyMap, resourceId,
965 requestDetails.getRelatedInstanceList(), reqInfo.getInstanceName(), null, null);
966 verify(SPY_bbInputSetup, times(1)).mapCatalogVolumeGroup(vg, modelInfo, service, "vnfModelCustomizationUUID");
967 vnf.getVolumeGroups().clear();
968 SPY_bbInputSetup.populateVolumeGroup(modelInfo, service, bbName, serviceInstance, lookupKeyMap, resourceId,
969 requestDetails.getRelatedInstanceList(), reqInfo.getInstanceName(), null, null);
970 verify(SPY_bbInputSetup, times(1)).mapCatalogVolumeGroup(vnf.getVolumeGroups().get(0), modelInfo, service,
971 "vnfModelCustomizationUUID");
975 public void testMapCatalogVolumeGroup() {
976 VolumeGroup volumeGroup = new VolumeGroup();
977 RequestDetails requestDetails = new RequestDetails();
978 ModelInfo modelInfo = new ModelInfo();
979 modelInfo.setModelCustomizationUuid("modelCustomizationUUID");
980 requestDetails.setModelInfo(modelInfo);
981 Service service = new Service();
982 VnfResourceCustomization resourceCust = new VnfResourceCustomization();
983 resourceCust.setModelCustomizationUUID("vnfModelCustomizationUUID");
984 service.getVnfCustomizations().add(resourceCust);
985 VfModuleCustomization vfResourceCust = new VfModuleCustomization();
986 vfResourceCust.setModelCustomizationUUID("modelCustomizationUUID");
987 ModelInfoVfModule modelInfoVfModule = new ModelInfoVfModule();
988 resourceCust.getVfModuleCustomizations().add(vfResourceCust);
990 doReturn(modelInfoVfModule).when(bbInputSetupMapperLayer).mapCatalogVfModuleToVfModule(vfResourceCust);
992 SPY_bbInputSetup.mapCatalogVolumeGroup(volumeGroup, modelInfo, service, "vnfModelCustomizationUUID");
994 assertEquals(modelInfoVfModule, volumeGroup.getModelInfoVfModule());
998 public void testPopulateL3Network() throws JsonParseException, JsonMappingException, IOException {
999 String instanceName = "networkName";
1000 ModelInfo modelInfo = new ModelInfo();
1001 modelInfo.setModelType(ModelType.network);
1003 ServiceInstance serviceInstance = new ServiceInstance();
1004 L3Network network = new L3Network();
1005 network.setNetworkId("networkId");
1006 network.setNetworkName("networkName");
1007 serviceInstance.getNetworks().add(network);
1008 String resourceId = "123";
1010 Service service = mapper.readValue(
1011 new File(RESOURCE_PATH + "CatalogDBService_getServiceInstanceNOAAIInput.json"), Service.class);
1012 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
1013 lookupKeyMap.put(ResourceKey.NETWORK_ID, "networkId");
1014 String bbName = AssignFlows.NETWORK_A_LA_CARTE.toString();
1016 doNothing().when(SPY_bbInputSetup).mapCatalogNetwork(network, modelInfo, service);
1018 SPY_bbInputSetup.populateL3Network(instanceName, modelInfo, service, bbName, serviceInstance, lookupKeyMap,
1021 lookupKeyMap.put(ResourceKey.NETWORK_ID, null);
1023 SPY_bbInputSetup.populateL3Network(instanceName, modelInfo, service, bbName, serviceInstance, lookupKeyMap,
1025 verify(SPY_bbInputSetup, times(1)).mapCatalogNetwork(network, modelInfo, service);
1027 instanceName = "networkName2";
1028 L3Network network2 = SPY_bbInputSetup.createNetwork(lookupKeyMap, instanceName, resourceId, null);
1029 doReturn(network2).when(SPY_bbInputSetup).createNetwork(lookupKeyMap, instanceName, resourceId, null);
1030 SPY_bbInputSetup.populateL3Network(instanceName, modelInfo, service, bbName, serviceInstance, lookupKeyMap,
1032 verify(SPY_bbInputSetup, times(2)).mapCatalogNetwork(network2, modelInfo, service);
1036 public void testMapCatalogNetwork() {
1037 ModelInfoNetwork modelInfoNetwork = new ModelInfoNetwork();
1038 L3Network network = new L3Network();
1040 RequestDetails requestDetails = new RequestDetails();
1041 ModelInfo modelInfo = new ModelInfo();
1042 modelInfo.setModelCustomizationUuid("modelCustomizationUUID");
1043 requestDetails.setModelInfo(modelInfo);
1044 Service service = new Service();
1045 NetworkResourceCustomization resourceCust = new NetworkResourceCustomization();
1046 resourceCust.setModelCustomizationUUID("modelCustomizationUUID");
1047 service.setNetworkCustomizations(Arrays.asList(new NetworkResourceCustomization[] { resourceCust }));
1049 doReturn(modelInfoNetwork).when(bbInputSetupMapperLayer).mapCatalogNetworkToNetwork(resourceCust);
1051 SPY_bbInputSetup.mapCatalogNetwork(network, modelInfo, service);
1053 assertEquals(modelInfoNetwork, network.getModelInfoNetwork());
1057 public void testPopulateConfiguration() throws JsonParseException, JsonMappingException, IOException {
1058 String instanceName = "configurationName";
1059 ModelInfo modelInfo = new ModelInfo();
1060 modelInfo.setModelCustomizationUuid("72d9d1cd-f46d-447a-abdb-451d6fb05fa9");
1062 ServiceInstance serviceInstance = new ServiceInstance();
1063 Configuration configuration = new Configuration();
1064 configuration.setConfigurationId("configurationId");
1065 configuration.setConfigurationName("configurationName");
1066 serviceInstance.getConfigurations().add(configuration);
1067 String resourceId = "configurationId";
1069 Service service = mapper.readValue(
1070 new File(RESOURCE_PATH + "CatalogDBService_getServiceInstanceNOAAIInput.json"), Service.class);
1071 ConfigurationResourceCustomization configurationCust = new ConfigurationResourceCustomization();
1072 configurationCust.setModelCustomizationUUID("72d9d1cd-f46d-447a-abdb-451d6fb05fa9");
1073 service.getConfigurationCustomizations().add(configurationCust);
1074 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
1075 lookupKeyMap.put(ResourceKey.CONFIGURATION_ID, "configurationId");
1076 String bbName = AssignFlows.FABRIC_CONFIGURATION.toString();
1078 doNothing().when(SPY_bbInputSetup).mapCatalogConfiguration(configuration, modelInfo, service);
1080 SPY_bbInputSetup.populateConfiguration(modelInfo, service, bbName, serviceInstance, lookupKeyMap, resourceId,
1082 verify(SPY_bbInputSetup, times(1)).mapCatalogConfiguration(configuration, modelInfo, service);
1084 lookupKeyMap.put(ResourceKey.CONFIGURATION_ID, null);
1086 SPY_bbInputSetup.populateConfiguration(modelInfo, service, bbName, serviceInstance, lookupKeyMap, resourceId,
1088 verify(SPY_bbInputSetup, times(2)).mapCatalogConfiguration(configuration, modelInfo, service);
1090 instanceName = "configurationName2";
1091 resourceId = "resourceId2";
1092 lookupKeyMap.put(ResourceKey.CONFIGURATION_ID, "configurationId2");
1093 Configuration configuration2 = SPY_bbInputSetup.createConfiguration(lookupKeyMap, instanceName, resourceId);
1094 doReturn(configuration2).when(SPY_bbInputSetup).createConfiguration(lookupKeyMap, instanceName, resourceId);
1095 doNothing().when(SPY_bbInputSetup).mapCatalogConfiguration(configuration2, modelInfo, service);
1096 SPY_bbInputSetup.populateConfiguration(modelInfo, service, bbName, serviceInstance, lookupKeyMap, resourceId,
1098 verify(SPY_bbInputSetup, times(1)).mapCatalogConfiguration(configuration2, modelInfo, service);
1102 public void testMapCatalogConfiguration() {
1103 ModelInfoNetwork modelInfoNetwork = new ModelInfoNetwork();
1104 L3Network network = new L3Network();
1106 RequestDetails requestDetails = new RequestDetails();
1107 ModelInfo modelInfo = new ModelInfo();
1108 modelInfo.setModelCustomizationUuid("modelCustomizationUUID");
1109 requestDetails.setModelInfo(modelInfo);
1110 Service service = new Service();
1111 NetworkResourceCustomization resourceCust = new NetworkResourceCustomization();
1112 resourceCust.setModelCustomizationUUID("modelCustomizationUUID");
1113 service.setNetworkCustomizations(Arrays.asList(new NetworkResourceCustomization[] { resourceCust }));
1115 doReturn(modelInfoNetwork).when(bbInputSetupMapperLayer).mapCatalogNetworkToNetwork(resourceCust);
1117 SPY_bbInputSetup.mapCatalogNetwork(network, modelInfo, service);
1119 assertEquals(modelInfoNetwork, network.getModelInfoNetwork());
1123 public void testPopulateGenericVnf() throws JsonParseException, JsonMappingException, IOException {
1124 org.onap.so.serviceinstancebeans.Platform platform = new org.onap.so.serviceinstancebeans.Platform();
1125 org.onap.so.serviceinstancebeans.LineOfBusiness lineOfBusiness = new org.onap.so.serviceinstancebeans.LineOfBusiness();
1126 String instanceName = "vnfName";
1127 ModelInfo modelInfo = new ModelInfo();
1128 modelInfo.setModelType(ModelType.vnf);
1130 ServiceInstance serviceInstance = new ServiceInstance();
1131 GenericVnf vnf = new GenericVnf();
1132 vnf.setVnfId("genericVnfId");
1133 vnf.setVnfName("vnfName");
1134 serviceInstance.getVnfs().add(vnf);
1135 String vnfType = "vnfType";
1136 RequestDetails requestDetails = mapper.readValue(new File(RESOURCE_PATH + "RequestDetails_CreateVnf.json"),
1137 RequestDetails.class);
1139 Service service = mapper.readValue(
1140 new File(RESOURCE_PATH + "CatalogDBService_getServiceInstanceNOAAIInput.json"), Service.class);
1141 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
1142 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "genericVnfId");
1143 String bbName = AssignFlows.VNF.toString();
1145 Platform expectedPlatform = new Platform();
1146 LineOfBusiness expectedLineOfBusiness = new LineOfBusiness();
1147 String resourceId = "123";
1148 doReturn(expectedPlatform).when(bbInputSetupMapperLayer).mapRequestPlatform(platform);
1149 doReturn(expectedLineOfBusiness).when(bbInputSetupMapperLayer).mapRequestLineOfBusiness(lineOfBusiness);
1150 org.onap.aai.domain.yang.GenericVnf vnfAAI = new org.onap.aai.domain.yang.GenericVnf();
1151 vnfAAI.setModelCustomizationId("modelCustId");
1152 doReturn(vnfAAI).when(SPY_bbInputSetupUtils).getAAIGenericVnf(vnf.getVnfId());
1153 doNothing().when(SPY_bbInputSetup).mapCatalogVnf(vnf, modelInfo, service);
1154 org.onap.aai.domain.yang.InstanceGroup instanceGroupAAI = new org.onap.aai.domain.yang.InstanceGroup();
1155 doReturn(instanceGroupAAI).when(SPY_bbInputSetupUtils).getAAIInstanceGroup(any());
1156 org.onap.so.db.catalog.beans.InstanceGroup catalogInstanceGroup = new org.onap.so.db.catalog.beans.InstanceGroup();
1157 doReturn(catalogInstanceGroup).when(SPY_bbInputSetupUtils).getCatalogInstanceGroup(any());
1159 SPY_bbInputSetup.populateGenericVnf(modelInfo, instanceName, platform, lineOfBusiness, service, bbName,
1160 serviceInstance, lookupKeyMap, requestDetails.getRelatedInstanceList(), resourceId, vnfType, null);
1162 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, null);
1164 SPY_bbInputSetup.populateGenericVnf(modelInfo, instanceName, platform, lineOfBusiness, service, bbName,
1165 serviceInstance, lookupKeyMap, requestDetails.getRelatedInstanceList(), resourceId, vnfType, null);
1166 verify(SPY_bbInputSetup, times(1)).mapCatalogVnf(vnf, modelInfo, service);
1168 instanceName = "vnfName2";
1169 GenericVnf vnf2 = SPY_bbInputSetup.createGenericVnf(lookupKeyMap, instanceName, platform, lineOfBusiness,
1170 resourceId, vnfType, null);
1171 doReturn(vnf2).when(SPY_bbInputSetup).createGenericVnf(lookupKeyMap, instanceName, platform, lineOfBusiness,
1172 resourceId, vnfType, null);
1173 doNothing().when(SPY_bbInputSetup).mapNetworkCollectionInstanceGroup(vnf2, "{instanceGroupId}");
1174 doNothing().when(SPY_bbInputSetup).mapVnfcCollectionInstanceGroup(vnf2, modelInfo, service);
1176 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "genericVnfId2");
1178 SPY_bbInputSetup.populateGenericVnf(modelInfo, instanceName, platform, lineOfBusiness, service, bbName,
1179 serviceInstance, lookupKeyMap, requestDetails.getRelatedInstanceList(), resourceId, vnfType, null);
1180 verify(SPY_bbInputSetup, times(2)).mapCatalogVnf(vnf2, modelInfo, service);
1181 verify(SPY_bbInputSetup, times(2)).mapNetworkCollectionInstanceGroup(vnf2, "{instanceGroupId}");
1182 verify(SPY_bbInputSetup, times(2)).mapVnfcCollectionInstanceGroup(vnf2, modelInfo, service);
1186 public void testPopulateGenericVnfWhereVnfTypeIsNull()
1187 throws JsonParseException, JsonMappingException, IOException {
1188 org.onap.so.serviceinstancebeans.Platform platform = new org.onap.so.serviceinstancebeans.Platform();
1189 org.onap.so.serviceinstancebeans.LineOfBusiness lineOfBusiness = new org.onap.so.serviceinstancebeans.LineOfBusiness();
1190 String instanceName = "vnfName";
1191 ModelInfo modelInfo = new ModelInfo();
1192 modelInfo.setModelType(ModelType.vnf);
1194 ServiceInstance serviceInstance = new ServiceInstance();
1195 GenericVnf vnf = new GenericVnf();
1196 vnf.setVnfId("genericVnfId");
1197 vnf.setVnfName("vnfName");
1198 serviceInstance.getVnfs().add(vnf);
1199 String vnfType = null;
1200 RequestDetails requestDetails = mapper.readValue(new File(RESOURCE_PATH + "RequestDetails_CreateVnf.json"),
1201 RequestDetails.class);
1203 Service service = mapper.readValue(
1204 new File(RESOURCE_PATH + "CatalogDBService_getServiceInstanceNOAAIInput.json"), Service.class);
1205 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
1206 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "genericVnfId");
1207 String bbName = AssignFlows.VNF.toString();
1209 Platform expectedPlatform = new Platform();
1210 LineOfBusiness expectedLineOfBusiness = new LineOfBusiness();
1211 String resourceId = "123";
1212 doReturn(expectedPlatform).when(bbInputSetupMapperLayer).mapRequestPlatform(platform);
1213 doReturn(expectedLineOfBusiness).when(bbInputSetupMapperLayer).mapRequestLineOfBusiness(lineOfBusiness);
1214 org.onap.aai.domain.yang.GenericVnf vnfAAI = new org.onap.aai.domain.yang.GenericVnf();
1215 vnfAAI.setModelCustomizationId("modelCustId");
1216 doReturn(vnfAAI).when(SPY_bbInputSetupUtils).getAAIGenericVnf(vnf.getVnfId());
1217 doNothing().when(SPY_bbInputSetup).mapCatalogVnf(vnf, modelInfo, service);
1218 org.onap.aai.domain.yang.InstanceGroup instanceGroupAAI = new org.onap.aai.domain.yang.InstanceGroup();
1219 doReturn(instanceGroupAAI).when(SPY_bbInputSetupUtils).getAAIInstanceGroup(any());
1220 org.onap.so.db.catalog.beans.InstanceGroup catalogInstanceGroup = new org.onap.so.db.catalog.beans.InstanceGroup();
1221 doReturn(catalogInstanceGroup).when(SPY_bbInputSetupUtils).getCatalogInstanceGroup(any());
1223 SPY_bbInputSetup.populateGenericVnf(modelInfo, instanceName, platform, lineOfBusiness, service, bbName,
1224 serviceInstance, lookupKeyMap, requestDetails.getRelatedInstanceList(), resourceId, vnfType, null);
1226 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, null);
1228 SPY_bbInputSetup.populateGenericVnf(modelInfo, instanceName, platform, lineOfBusiness, service, bbName,
1229 serviceInstance, lookupKeyMap, requestDetails.getRelatedInstanceList(), resourceId, vnfType, null);
1230 verify(SPY_bbInputSetup, times(1)).mapCatalogVnf(vnf, modelInfo, service);
1232 instanceName = "vnfName2";
1233 GenericVnf vnf2 = SPY_bbInputSetup.createGenericVnf(lookupKeyMap, instanceName, platform, lineOfBusiness,
1234 resourceId, vnfType, null);
1235 doReturn(vnf2).when(SPY_bbInputSetup).createGenericVnf(lookupKeyMap, instanceName, platform, lineOfBusiness,
1236 resourceId, vnfType, null);
1237 org.onap.aai.domain.yang.GenericVnf vnf2AAI = new org.onap.aai.domain.yang.GenericVnf();
1238 vnfAAI.setModelCustomizationId("modelCustId2");
1239 doReturn(vnf2AAI).when(SPY_bbInputSetupUtils).getAAIGenericVnf(vnf2.getVnfId());
1240 doNothing().when(SPY_bbInputSetup).mapCatalogVnf(vnf2, modelInfo, service);
1241 doNothing().when(SPY_bbInputSetup).mapNetworkCollectionInstanceGroup(vnf2, "{instanceGroupId}");
1242 doNothing().when(SPY_bbInputSetup).mapVnfcCollectionInstanceGroup(vnf2, modelInfo, service);
1243 SPY_bbInputSetup.populateGenericVnf(modelInfo, instanceName, platform, lineOfBusiness, service, bbName,
1244 serviceInstance, lookupKeyMap, requestDetails.getRelatedInstanceList(), resourceId, vnfType, null);
1245 verify(SPY_bbInputSetup, times(2)).mapCatalogVnf(vnf2, modelInfo, service);
1246 verify(SPY_bbInputSetup, times(2)).mapNetworkCollectionInstanceGroup(vnf2, "{instanceGroupId}");
1247 verify(SPY_bbInputSetup, times(2)).mapVnfcCollectionInstanceGroup(vnf2, modelInfo, service);
1251 public void testMapCatalogVnf() {
1252 ModelInfoGenericVnf modelInfoGenericVnf = new ModelInfoGenericVnf();
1253 GenericVnf genericVnf = new GenericVnf();
1254 RequestDetails requestDetails = new RequestDetails();
1255 ModelInfo modelInfo = new ModelInfo();
1256 modelInfo.setModelCustomizationUuid("modelCustomizationUUID");
1257 requestDetails.setModelInfo(modelInfo);
1258 Service service = new Service();
1259 VnfResourceCustomization resourceCust = new VnfResourceCustomization();
1260 resourceCust.setModelCustomizationUUID("vnfModelCustomizationUUID");
1261 service.getVnfCustomizations().add(resourceCust);
1262 resourceCust.setModelCustomizationUUID("modelCustomizationUUID");
1264 doReturn(modelInfoGenericVnf).when(bbInputSetupMapperLayer).mapCatalogVnfToVnf(resourceCust);
1266 SPY_bbInputSetup.mapCatalogVnf(genericVnf, modelInfo, service);
1268 assertEquals(modelInfoGenericVnf, genericVnf.getModelInfoGenericVnf());
1272 public void testMapCatalogCollectionAndInstanceGroup() {
1273 ModelInfoCollection modelInfoCollection = new ModelInfoCollection();
1274 modelInfoCollection.setCollectionFunction("collectionFunction");
1275 modelInfoCollection.setCollectionRole("collectionRole");
1276 modelInfoCollection.setCollectionType("collectionType");
1277 modelInfoCollection.setDescription("description");
1278 modelInfoCollection.setModelInvariantUUID("modelInvariantUUID");
1279 modelInfoCollection.setQuantity(0);
1281 ModelInfoInstanceGroup modelInfoInstanceGroup = new ModelInfoInstanceGroup();
1282 modelInfoInstanceGroup.setFunction("function");
1283 modelInfoInstanceGroup.setInstanceGroupRole("instanceGroupRole");
1284 modelInfoInstanceGroup.setModelInvariantUUID("modelInvariantUUID");
1285 modelInfoInstanceGroup.setModelUUID("modelUUID");
1286 modelInfoInstanceGroup.setType("VNFC");
1287 modelInfoInstanceGroup.setDescription("description");
1289 InstanceGroup instanceGroup = new InstanceGroup();
1290 Collection collection = new Collection();
1291 collection.setInstanceGroup(instanceGroup);
1293 CollectionResource collectionResource = new CollectionResource();
1294 org.onap.so.db.catalog.beans.InstanceGroup catalogInstanceGroup = new org.onap.so.db.catalog.beans.InstanceGroup();
1295 collectionResource.setToscaNodeType("NetworkCollection");
1296 collectionResource.setInstanceGroup(catalogInstanceGroup);
1298 CollectionResourceCustomization collectionCust = new NetworkCollectionResourceCustomization();
1299 collectionCust.setModelCustomizationUUID("modelCustomizationUUID");
1300 collectionCust.setCollectionResource(collectionResource);
1302 Service service = new Service();
1303 service.getCollectionResourceCustomizations().add(collectionCust);
1304 ServiceInstance serviceInstance = new ServiceInstance();
1305 serviceInstance.setCollection(collection);
1307 List<CollectionResourceInstanceGroupCustomization> instanceGroupCustList = new ArrayList<>();
1308 CollectionResourceInstanceGroupCustomization instanceGroupCust = new CollectionResourceInstanceGroupCustomization();
1309 instanceGroupCust.setFunction("function");
1310 instanceGroupCust.setDescription("description");
1312 doReturn(modelInfoCollection).when(bbInputSetupMapperLayer).mapCatalogCollectionToCollection(collectionCust,
1313 collectionResource);
1314 doReturn(instanceGroupCustList).when(SPY_bbInputSetupUtils)
1315 .getCollectionResourceInstanceGroupCustomization(collectionCust.getModelCustomizationUUID());
1316 doReturn(modelInfoInstanceGroup).when(bbInputSetupMapperLayer).mapCatalogInstanceGroupToInstanceGroup(collectionCust,
1317 catalogInstanceGroup);
1319 SPY_bbInputSetup.mapCatalogCollection(service, serviceInstance.getCollection(), "modelCustomizationUUID");
1320 SPY_bbInputSetup.mapCatalogNetworkCollectionInstanceGroup(service,
1321 serviceInstance.getCollection().getInstanceGroup(), collectionCust.getModelCustomizationUUID());
1323 assertThat(collection.getModelInfoCollection(), sameBeanAs(modelInfoCollection));
1324 assertThat(instanceGroup.getModelInfoInstanceGroup(), sameBeanAs(modelInfoInstanceGroup));
1328 public void testAddRelationshipsToSI() throws Exception {
1329 ServiceInstance serviceInstance = new ServiceInstance();
1330 org.onap.aai.domain.yang.ServiceInstance serviceInstanceAAI = new org.onap.aai.domain.yang.ServiceInstance();
1331 serviceInstanceAAI.setServiceInstanceId("serviceInstanceId");
1333 org.onap.aai.domain.yang.RelationshipList relationshipList = new org.onap.aai.domain.yang.RelationshipList();
1334 org.onap.aai.domain.yang.Relationship relationship = new org.onap.aai.domain.yang.Relationship();
1335 relationshipList.getRelationship().add(relationship);
1336 serviceInstanceAAI.setRelationshipList(relationshipList);
1338 Map<String, String> uriKeys = new HashMap<>();
1339 uriKeys.put("global-customer-id", "globalCustomerId");
1340 uriKeys.put("service-type", "serviceType");
1342 doReturn(uriKeys).when(SPY_bbInputSetupUtils)
1343 .getURIKeysFromServiceInstance(serviceInstanceAAI.getServiceInstanceId());
1344 doNothing().when(SPY_bbInputSetup).mapProject(any(), eq(serviceInstance));
1345 doNothing().when(SPY_bbInputSetup).mapOwningEntity(any(), eq(serviceInstance));
1346 doNothing().when(SPY_bbInputSetup).mapL3Networks(any(), eq(serviceInstance.getNetworks()));
1347 doNothing().when(SPY_bbInputSetup).mapGenericVnfs(any(), eq(serviceInstance.getVnfs()));
1348 doNothing().when(SPY_bbInputSetup).mapCollection(any(), eq(serviceInstance));
1350 SPY_bbInputSetup.addRelationshipsToSI(serviceInstanceAAI, serviceInstance);
1352 verify(SPY_bbInputSetup, times(1)).mapProject(any(), eq(serviceInstance));
1353 verify(SPY_bbInputSetup, times(1)).mapOwningEntity(any(), eq(serviceInstance));
1354 verify(SPY_bbInputSetup, times(1)).mapL3Networks(any(), eq(serviceInstance.getNetworks()));
1355 verify(SPY_bbInputSetup, times(1)).mapGenericVnfs(any(), eq(serviceInstance.getVnfs()));
1356 verify(SPY_bbInputSetup, times(1)).mapCollection(any(), eq(serviceInstance));
1357 verify(SPY_bbInputSetup, times(1)).mapConfigurations(any(), eq(serviceInstance.getConfigurations()));
1361 public void testMapConfigurations() throws JsonProcessingException {
1362 org.onap.aai.domain.yang.Configuration expectedAAI = new org.onap.aai.domain.yang.Configuration();
1363 org.onap.aai.domain.yang.RelationshipList relationshipList = new org.onap.aai.domain.yang.RelationshipList();
1364 org.onap.aai.domain.yang.Relationship relationship = new org.onap.aai.domain.yang.Relationship();
1365 relationshipList.getRelationship().add(relationship);
1366 expectedAAI.setRelationshipList(relationshipList);
1368 Configuration expected = new Configuration();
1369 AAIResourceUri aaiResourceUri = AAIUriFactory.createResourceUri(AAIObjectType.CONFIGURATION, "configurationId");
1370 AAIResultWrapper configurationWrapper = new AAIResultWrapper(
1371 new AAICommonObjectMapperProvider().getMapper().writeValueAsString(expectedAAI));
1373 doReturn(configurationWrapper).when(SPY_bbInputSetupUtils).getAAIResourceDepthOne(aaiResourceUri);
1374 doReturn(expected).when(bbInputSetupMapperLayer)
1375 .mapAAIConfiguration(isA(org.onap.aai.domain.yang.Configuration.class));
1377 List<Configuration> configurations = new ArrayList<>();
1379 SPY_bbInputSetup.mapConfigurations(Arrays.asList(new AAIResourceUri[] { aaiResourceUri }), configurations);
1381 assertEquals(expected, configurations.get(0));
1385 public void testMapGenericVnfs() throws JsonProcessingException {
1386 org.onap.aai.domain.yang.GenericVnf expectedAAI = new org.onap.aai.domain.yang.GenericVnf();
1387 org.onap.aai.domain.yang.RelationshipList relationshipList = new org.onap.aai.domain.yang.RelationshipList();
1388 org.onap.aai.domain.yang.Relationship relationship = new org.onap.aai.domain.yang.Relationship();
1389 relationshipList.getRelationship().add(relationship);
1390 expectedAAI.setRelationshipList(relationshipList);
1392 GenericVnf expected = new GenericVnf();
1393 AAIResourceUri aaiResourceUri = AAIUriFactory.createResourceUri(AAIObjectType.GENERIC_VNF, "vnfId");
1394 AAIResultWrapper vnfWrapper = new AAIResultWrapper(
1395 new AAICommonObjectMapperProvider().getMapper().writeValueAsString(expectedAAI));
1397 doReturn(vnfWrapper).when(SPY_bbInputSetupUtils).getAAIResourceDepthOne(aaiResourceUri);
1398 doReturn(expected).when(bbInputSetupMapperLayer)
1399 .mapAAIGenericVnfIntoGenericVnf(isA(org.onap.aai.domain.yang.GenericVnf.class));
1400 doNothing().when(SPY_bbInputSetup).mapPlatform(any(), eq(expected));
1401 doNothing().when(SPY_bbInputSetup).mapLineOfBusiness(any(), eq(expected));
1402 doReturn(new ArrayList<>()).when(SPY_bbInputSetup).mapVolumeGroups(any());
1404 List<GenericVnf> genericVnfs = new ArrayList<>();
1406 SPY_bbInputSetup.mapGenericVnfs(Arrays.asList(new AAIResourceUri[] { aaiResourceUri }), genericVnfs);
1408 assertEquals(expected, genericVnfs.get(0));
1409 verify(SPY_bbInputSetup, times(1)).mapPlatform(any(), eq(expected));
1410 verify(SPY_bbInputSetup, times(1)).mapLineOfBusiness(any(), eq(expected));
1411 verify(SPY_bbInputSetup, times(1)).mapVolumeGroups(any());
1415 public void testMapVolumeGroups() throws JsonProcessingException {
1416 org.onap.aai.domain.yang.VolumeGroup expectedAAI = new org.onap.aai.domain.yang.VolumeGroup();
1418 VolumeGroup expected = new VolumeGroup();
1419 AAIResultWrapper vnfWrapper = new AAIResultWrapper(
1420 new AAICommonObjectMapperProvider().getMapper().writeValueAsString(expectedAAI));
1422 doReturn(expected).when(bbInputSetupMapperLayer)
1423 .mapAAIVolumeGroup(isA(org.onap.aai.domain.yang.VolumeGroup.class));
1425 List<VolumeGroup> volumeGroupsList =
1426 SPY_bbInputSetup.mapVolumeGroups(Arrays.asList(new AAIResultWrapper[] { vnfWrapper }));
1428 assertEquals(expected, volumeGroupsList.get(0));
1432 public void testMapLineOfBusiness() throws JsonProcessingException {
1433 org.onap.aai.domain.yang.LineOfBusiness expectedAAI = new org.onap.aai.domain.yang.LineOfBusiness();
1435 LineOfBusiness expected = new LineOfBusiness();
1436 AAIResultWrapper vnfWrapper = new AAIResultWrapper(
1437 new AAICommonObjectMapperProvider().getMapper().writeValueAsString(expectedAAI));
1439 doReturn(expected).when(bbInputSetupMapperLayer)
1440 .mapAAILineOfBusiness(isA(org.onap.aai.domain.yang.LineOfBusiness.class));
1442 GenericVnf vnf = new GenericVnf();
1444 SPY_bbInputSetup.mapLineOfBusiness(Arrays.asList(new AAIResultWrapper[] { vnfWrapper }), vnf);
1446 assertEquals(expected, vnf.getLineOfBusiness());
1450 public void testMapPlatform() throws JsonProcessingException {
1451 org.onap.aai.domain.yang.Platform expectedAAI = new org.onap.aai.domain.yang.Platform();
1453 Platform expected = new Platform();
1454 AAIResultWrapper vnfWrapper = new AAIResultWrapper(
1455 new AAICommonObjectMapperProvider().getMapper().writeValueAsString(expectedAAI));
1457 doReturn(expected).when(bbInputSetupMapperLayer)
1458 .mapAAIPlatform(isA(org.onap.aai.domain.yang.Platform.class));
1460 GenericVnf vnf = new GenericVnf();
1462 SPY_bbInputSetup.mapPlatform(Arrays.asList(new AAIResultWrapper[] { vnfWrapper }), vnf);
1464 assertEquals(expected, vnf.getPlatform());
1468 public void testMapCollection() throws JsonProcessingException {
1469 List<AAIResultWrapper> collections = new ArrayList<>();
1470 ServiceInstance serviceInstance = new ServiceInstance();
1472 org.onap.aai.domain.yang.Collection aaiCollection = new org.onap.aai.domain.yang.Collection();
1473 org.onap.aai.domain.yang.RelationshipList collectionRelationshipList = new org.onap.aai.domain.yang.RelationshipList();
1474 org.onap.aai.domain.yang.Relationship collectionInstanceGroupRelationship = new org.onap.aai.domain.yang.Relationship();
1475 collectionRelationshipList.getRelationship().add(collectionInstanceGroupRelationship);
1476 aaiCollection.setRelationshipList(collectionRelationshipList);
1478 collections.add(new AAIResultWrapper(
1479 new AAICommonObjectMapperProvider().getMapper().writeValueAsString(aaiCollection)));
1481 Collection collection = new Collection();
1482 ModelInfoCollection modelInfoCollection = new ModelInfoCollection();
1483 List<InstanceGroup> instanceGroupsList = new ArrayList<>();
1484 InstanceGroup instanceGroup = new InstanceGroup();
1485 instanceGroupsList.add(instanceGroup);
1486 NetworkCollectionResourceCustomization networkCollectionCust = Mockito.mock(NetworkCollectionResourceCustomization.class);
1487 CollectionResource collectionResource = new CollectionResource();
1488 doReturn(collection).when(bbInputSetupMapperLayer)
1489 .mapAAICollectionIntoCollection(isA(org.onap.aai.domain.yang.Collection.class));
1490 doReturn(instanceGroup).when(SPY_bbInputSetup).mapInstanceGroup(isA(AAIResultWrapper.class));
1491 doReturn(instanceGroupsList).when(SPY_bbInputSetup).mapInstanceGroups(any());
1492 doReturn(networkCollectionCust).when(SPY_bbInputSetupUtils).getCatalogNetworkCollectionResourceCustByID(aaiCollection.getCollectionCustomizationId());
1493 doReturn(collectionResource).when(networkCollectionCust).getCollectionResource();
1494 doReturn(modelInfoCollection).when(bbInputSetupMapperLayer).mapCatalogCollectionToCollection(networkCollectionCust, collectionResource);
1496 SPY_bbInputSetup.mapCollection(collections, serviceInstance);
1498 assertEquals(collection, serviceInstance.getCollection());
1499 assertEquals(instanceGroup, collection.getInstanceGroup());
1501 instanceGroupsList.clear();
1502 collection = new Collection();
1504 SPY_bbInputSetup.mapCollection(collections, serviceInstance);
1505 assertEquals(collection, serviceInstance.getCollection());
1506 assertNull(collection.getInstanceGroup());
1510 public void testMapL3Networks() throws JsonProcessingException {
1511 org.onap.aai.domain.yang.L3Network expectedAAI = new org.onap.aai.domain.yang.L3Network();
1512 org.onap.aai.domain.yang.RelationshipList relationshipList = new org.onap.aai.domain.yang.RelationshipList();
1513 org.onap.aai.domain.yang.Relationship relationship = new org.onap.aai.domain.yang.Relationship();
1514 relationshipList.getRelationship().add(relationship);
1515 expectedAAI.setRelationshipList(relationshipList);
1517 L3Network expected = new L3Network();
1518 List<L3Network> l3Networks = new ArrayList<>();
1519 AAIResultWrapper l3NetworksWrapper = new AAIResultWrapper(
1520 new AAICommonObjectMapperProvider().getMapper().writeValueAsString(expectedAAI));
1521 AAIResourceUri aaiResourceUri = AAIUriFactory.createResourceUri(AAIObjectType.L3_NETWORK, "networkId");
1523 doReturn(l3NetworksWrapper).when(SPY_bbInputSetupUtils).getAAIResourceDepthTwo(aaiResourceUri);
1524 doReturn(expected).when(bbInputSetupMapperLayer)
1525 .mapAAIL3Network(isA(org.onap.aai.domain.yang.L3Network.class));
1526 doNothing().when(SPY_bbInputSetup).mapNetworkPolicies(any(), eq(expected.getNetworkPolicies()));
1527 doNothing().when(SPY_bbInputSetup).mapRouteTableReferences(any(),
1528 eq(expected.getContrailNetworkRouteTableReferences()));
1530 SPY_bbInputSetup.mapL3Networks(Arrays.asList(new AAIResourceUri[] { aaiResourceUri }), l3Networks);
1532 assertEquals(expected, l3Networks.get(0));
1533 verify(SPY_bbInputSetup, times(1)).mapNetworkPolicies(any(), eq(expected.getNetworkPolicies()));
1534 verify(SPY_bbInputSetup, times(1)).mapRouteTableReferences(any(),
1535 eq(expected.getContrailNetworkRouteTableReferences()));
1539 public void testMapRouteTableReferences() throws JsonProcessingException {
1540 org.onap.aai.domain.yang.RouteTableReference expectedAAI = new org.onap.aai.domain.yang.RouteTableReference();
1542 RouteTableReference expected = new RouteTableReference();
1543 List<RouteTableReference> contrailNetworkRouteTableReferences = new ArrayList<>();
1544 AAIResultWrapper vnfWrapper = new AAIResultWrapper(
1545 new AAICommonObjectMapperProvider().getMapper().writeValueAsString(expectedAAI));
1547 doReturn(expected).when(bbInputSetupMapperLayer).mapAAIRouteTableReferenceIntoRouteTableReference(
1548 isA(org.onap.aai.domain.yang.RouteTableReference.class));
1550 SPY_bbInputSetup.mapRouteTableReferences(Arrays.asList(new AAIResultWrapper[] { vnfWrapper }),
1551 contrailNetworkRouteTableReferences);
1553 assertEquals(expected, contrailNetworkRouteTableReferences.get(0));
1557 public void testMapOwningEntity() throws JsonProcessingException {
1558 org.onap.aai.domain.yang.OwningEntity expectedAAI = new org.onap.aai.domain.yang.OwningEntity();
1560 OwningEntity expected = new OwningEntity();
1561 AAIResultWrapper vnfWrapper = new AAIResultWrapper(
1562 new AAICommonObjectMapperProvider().getMapper().writeValueAsString(expectedAAI));
1564 doReturn(expected).when(bbInputSetupMapperLayer)
1565 .mapAAIOwningEntity(isA(org.onap.aai.domain.yang.OwningEntity.class));
1567 ServiceInstance serviceInstance = new ServiceInstance();
1569 SPY_bbInputSetup.mapOwningEntity(Arrays.asList(new AAIResultWrapper[] { vnfWrapper }), serviceInstance);
1571 assertEquals(expected, serviceInstance.getOwningEntity());
1575 public void testMapProject() throws JsonProcessingException {
1576 org.onap.aai.domain.yang.Project expectedAAI = new org.onap.aai.domain.yang.Project();
1578 Project expected = new Project();
1579 AAIResultWrapper vnfWrapper = new AAIResultWrapper(
1580 new AAICommonObjectMapperProvider().getMapper().writeValueAsString(expectedAAI));
1582 doReturn(expected).when(bbInputSetupMapperLayer).mapAAIProject(isA(org.onap.aai.domain.yang.Project.class));
1584 ServiceInstance serviceInstance = new ServiceInstance();
1586 SPY_bbInputSetup.mapProject(Arrays.asList(new AAIResultWrapper[] { vnfWrapper }), serviceInstance);
1588 assertEquals(expected, serviceInstance.getProject());
1592 public void testMapCustomer() throws Exception {
1593 org.onap.aai.domain.yang.Customer customerAAI = new org.onap.aai.domain.yang.Customer();
1594 org.onap.aai.domain.yang.ServiceSubscription serviceSubscriptionAAI = new org.onap.aai.domain.yang.ServiceSubscription();
1596 Customer expected = new Customer();
1597 ServiceSubscription serviceSubscription = new ServiceSubscription();
1599 String globalCustomerId = "globalCustomerId";
1600 String subscriptionServiceType = "subscriptionServiceType";
1602 doReturn(customerAAI).when(SPY_bbInputSetupUtils).getAAICustomer(globalCustomerId);
1603 doReturn(serviceSubscriptionAAI).when(SPY_bbInputSetupUtils).getAAIServiceSubscription(globalCustomerId,
1604 subscriptionServiceType);
1605 doReturn(expected).when(bbInputSetupMapperLayer)
1606 .mapAAICustomer(isA(org.onap.aai.domain.yang.Customer.class));
1607 doReturn(serviceSubscription).when(bbInputSetupMapperLayer)
1608 .mapAAIServiceSubscription(isA(org.onap.aai.domain.yang.ServiceSubscription.class));
1610 Customer actual = SPY_bbInputSetup.mapCustomer(globalCustomerId, subscriptionServiceType);
1612 assertEquals(expected, actual);
1613 assertEquals(serviceSubscription, expected.getServiceSubscription());
1617 public void testPopulateLookupKeyMapWithIds() {
1618 Map<ResourceKey, String> expected = new HashMap<>();
1619 Map<ResourceKey, String> actual = new HashMap<>();
1620 String serviceInstanceId = "serviceInstanceId";
1621 String networkId = "networkId";
1622 String vnfId = "vnfId";
1623 String vfModuleId = "vfModuleId";
1624 String volumeGroupId = "volumeGroupId";
1625 String configurationId = "configurationId";
1627 expected.put(ResourceKey.SERVICE_INSTANCE_ID, serviceInstanceId);
1628 expected.put(ResourceKey.NETWORK_ID, networkId);
1629 expected.put(ResourceKey.GENERIC_VNF_ID, vnfId);
1630 expected.put(ResourceKey.VF_MODULE_ID, vfModuleId);
1631 expected.put(ResourceKey.VOLUME_GROUP_ID, volumeGroupId);
1632 expected.put(ResourceKey.CONFIGURATION_ID, configurationId);
1634 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
1635 workflowResourceIds.setServiceInstanceId(serviceInstanceId);
1636 workflowResourceIds.setNetworkId(networkId);
1637 workflowResourceIds.setVnfId(vnfId);
1638 workflowResourceIds.setVfModuleId(vfModuleId);
1639 workflowResourceIds.setVolumeGroupId(volumeGroupId);
1640 workflowResourceIds.setConfigurationId(configurationId);
1642 SPY_bbInputSetup.populateLookupKeyMapWithIds(workflowResourceIds, actual);
1644 assertThat(actual, sameBeanAs(expected));
1648 public void testgetGBBMacro() throws Exception {
1649 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
1650 GeneralBuildingBlock.class);
1651 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
1652 ExecuteBuildingBlock.class);
1653 RequestDetails requestDetails = mapper
1654 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
1655 InfraActiveRequests request = Mockito.mock(InfraActiveRequests.class);
1656 org.onap.aai.domain.yang.GenericVnf aaiVnf = new org.onap.aai.domain.yang.GenericVnf();
1657 aaiVnf.setModelCustomizationId("modelCustId");
1658 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
1659 lookupKeyMap.put(ResourceKey.NETWORK_ID, "networkId");
1660 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "vnfId");
1661 lookupKeyMap.put(ResourceKey.VF_MODULE_ID, "vfModuleId");
1662 lookupKeyMap.put(ResourceKey.VOLUME_GROUP_ID, "volumeGroupId");
1663 lookupKeyMap.put(ResourceKey.SERVICE_INSTANCE_ID, "serviceInstanceId");
1664 lookupKeyMap.put(ResourceKey.CONFIGURATION_ID, "configurationId");
1665 String resourceId = "123";
1666 String vnfType = "vnfType";
1667 Service service = Mockito.mock(Service.class);
1668 String requestAction = "createInstance";
1669 doReturn(gBB).when(SPY_bbInputSetup).getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
1670 requestAction, resourceId);
1671 doReturn(request).when(SPY_bbInputSetupUtils).getInfraActiveRequest(executeBB.getRequestId());
1672 doReturn(service).when(SPY_bbInputSetupUtils)
1673 .getCatalogServiceByModelUUID(gBB.getServiceInstance().getModelInfoServiceInstance().getModelUuid());
1674 doNothing().when(SPY_bbInputSetupUtils).updateInfraActiveRequestVnfId(request,
1675 lookupKeyMap.get(ResourceKey.GENERIC_VNF_ID));
1676 doReturn("vnfId").when(SPY_bbInputSetup).getVnfId(executeBB, lookupKeyMap);
1677 doReturn(aaiVnf).when(SPY_bbInputSetupUtils).getAAIGenericVnf(any(String.class));
1679 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.NETWORK_MACRO.toString());
1680 executeBB.getBuildingBlock().setKey("ab153b6e-c364-44c0-bef6-1f2982117f04");
1681 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
1682 verify(SPY_bbInputSetup, times(1)).populateL3Network(any(String.class), isA(ModelInfo.class),
1683 isA(Service.class), any(String.class), isA(ServiceInstance.class), any(), any(String.class), any());
1685 executeBB.getBuildingBlock().setKey("ab153b6e-c364-44c0-bef6-1f2982117f04");
1686 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.VNF.toString());
1687 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
1688 verify(SPY_bbInputSetup, times(1)).populateGenericVnf(isA(ModelInfo.class), any(String.class),
1689 isA(org.onap.so.serviceinstancebeans.Platform.class),
1690 isA(org.onap.so.serviceinstancebeans.LineOfBusiness.class), isA(Service.class), any(String.class),
1691 isA(ServiceInstance.class), any(), any(), any(String.class), any(String.class), any());
1693 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, null);
1694 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.VF_MODULE.toString());
1695 executeBB.getBuildingBlock().setKey("a25e8e8c-58b8-4eec-810c-97dcc1f5cb7f");
1696 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
1697 verify(SPY_bbInputSetup, times(1)).populateVfModule(isA(ModelInfo.class), isA(Service.class), any(String.class),
1698 isA(ServiceInstance.class), any(), any(String.class), any(), any(String.class), any(), isA(CloudConfiguration.class));
1700 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, null);
1701 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.VOLUME_GROUP.toString());
1702 executeBB.getBuildingBlock().setKey("72d9d1cd-f46d-447a-abdb-451d6fb05fa8");
1703 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
1704 verify(SPY_bbInputSetup, times(1)).populateVolumeGroup(isA(ModelInfo.class), isA(Service.class),
1705 any(String.class), isA(ServiceInstance.class), any(), any(String.class), any(), any(String.class),
1706 any(String.class), any());
1708 Configuration configuration = new Configuration();
1709 configuration.setConfigurationId("configurationId");
1710 gBB.getServiceInstance().getConfigurations().add(configuration);
1711 List<ConfigurationResourceCustomization> configurationCustList = new ArrayList<>();
1712 ConfigurationResourceCustomization configurationCust = new ConfigurationResourceCustomization();
1713 configurationCust.setModelCustomizationUUID("72d9d1cd-f46d-447a-abdb-451d6fb05fa9");
1714 doReturn(configurationCustList).when(service).getConfigurationCustomizations();
1715 configurationCustList.add(configurationCust);
1716 doNothing().when(SPY_bbInputSetup).populateConfiguration(isA(ModelInfo.class), isA(Service.class),
1717 any(String.class), isA(ServiceInstance.class), any(), any(String.class), any(String.class));
1719 executeBB.getBuildingBlock().setBpmnFlowName("AssignFabricConfigurationBB");
1720 executeBB.getBuildingBlock().setKey("72d9d1cd-f46d-447a-abdb-451d6fb05fa9");
1721 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
1722 verify(SPY_bbInputSetup, times(1)).populateConfiguration(isA(ModelInfo.class), isA(Service.class),
1723 any(String.class), isA(ServiceInstance.class), any(), any(String.class), any(String.class));
1727 public void testgetGBBMacroCloudConfiguration() throws Exception {
1728 org.onap.so.serviceinstancebeans.Service serviceMacro = mapper.readValue(
1729 new File(RESOURCE_PATH + "ServiceMacroVfModules.json"), org.onap.so.serviceinstancebeans.Service.class);
1730 CloudConfiguration cloudConfig = null;
1731 org.onap.aai.domain.yang.CloudRegion aaiCloudRegion = new org.onap.aai.domain.yang.CloudRegion();
1732 Resources resources = serviceMacro.getResources();
1733 doReturn(aaiCloudRegion).when(SPY_bbInputSetupUtils).getCloudRegion(any(CloudConfiguration.class), eq("att-aic"));
1734 CloudRegion expected = new CloudRegion();
1735 expected.setLcpCloudRegionId("mdt1");
1736 expected.setCloudOwner("att-aic");
1737 expected.setTenantId("88a6ca3ee0394ade9403f075db23167e");
1739 CloudRegion actual = SPY_bbInputSetup.getCloudRegionFromMacroRequest(cloudConfig, resources);
1740 assertThat(actual, sameBeanAs(expected));
1742 serviceMacro = mapper.readValue(
1743 new File(RESOURCE_PATH + "ServiceMacroVnfs.json"), org.onap.so.serviceinstancebeans.Service.class);
1744 resources = serviceMacro.getResources();
1746 actual = SPY_bbInputSetup.getCloudRegionFromMacroRequest(cloudConfig, resources);
1747 assertThat(actual, sameBeanAs(expected));
1749 serviceMacro = mapper.readValue(
1750 new File(RESOURCE_PATH + "ServiceMacroNetworks.json"), org.onap.so.serviceinstancebeans.Service.class);
1751 resources = serviceMacro.getResources();
1753 actual = SPY_bbInputSetup.getCloudRegionFromMacroRequest(cloudConfig, resources);
1754 assertThat(actual, sameBeanAs(expected));
1756 serviceMacro = mapper.readValue(
1757 new File(RESOURCE_PATH + "ServiceMacroNoCloudConfig.json"), org.onap.so.serviceinstancebeans.Service.class);
1758 resources = serviceMacro.getResources();
1760 actual = SPY_bbInputSetup.getCloudRegionFromMacroRequest(cloudConfig, resources);
1765 public void testgetGBBMacroWithEmptyUserParams() throws Exception {
1766 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
1767 GeneralBuildingBlock.class);
1768 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
1769 ExecuteBuildingBlock.class);
1770 RequestDetails requestDetails = mapper
1771 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
1772 requestDetails.getRequestParameters().getUserParams().clear();
1773 InfraActiveRequests request = Mockito.mock(InfraActiveRequests.class);
1774 org.onap.aai.domain.yang.GenericVnf aaiVnf = new org.onap.aai.domain.yang.GenericVnf();
1775 aaiVnf.setModelCustomizationId("modelCustId");
1776 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
1777 lookupKeyMap.put(ResourceKey.NETWORK_ID, "networkId");
1778 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "vnfId");
1779 lookupKeyMap.put(ResourceKey.VF_MODULE_ID, "vfModuleId");
1780 lookupKeyMap.put(ResourceKey.VOLUME_GROUP_ID, "volumeGroupId");
1781 lookupKeyMap.put(ResourceKey.SERVICE_INSTANCE_ID, "serviceInstanceId");
1782 String resourceId = "123";
1783 String vnfType = "vnfType";
1784 Service service = Mockito.mock(Service.class);
1785 String requestAction = "createInstance";
1786 doReturn(gBB).when(SPY_bbInputSetup).getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
1787 requestAction, resourceId);
1788 doReturn(service).when(SPY_bbInputSetupUtils)
1789 .getCatalogServiceByModelUUID(gBB.getServiceInstance().getModelInfoServiceInstance().getModelUuid());
1790 doNothing().when(SPY_bbInputSetupUtils).updateInfraActiveRequestVnfId(request,
1791 lookupKeyMap.get(ResourceKey.GENERIC_VNF_ID));
1792 doReturn("vnfId").when(SPY_bbInputSetup).getVnfId(executeBB, lookupKeyMap);
1793 doReturn(aaiVnf).when(SPY_bbInputSetupUtils).getAAIGenericVnf(any(String.class));
1794 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.NETWORK_MACRO.toString());
1795 executeBB.getBuildingBlock().setKey("ab153b6e-c364-44c0-bef6-1f2982117f04");
1796 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
1797 verify(SPY_bbInputSetup, times(1)).getGBBMacroNoUserParamsCreate(any(ExecuteBuildingBlock.class), any(),
1798 any(String.class), any(String.class), any(GeneralBuildingBlock.class), any(Service.class));
1801 @Test(expected = Exception.class)
1802 public void testgetGBBMacroException() throws Exception {
1803 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
1804 GeneralBuildingBlock.class);
1805 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
1806 ExecuteBuildingBlock.class);
1807 RequestDetails requestDetails = mapper
1808 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
1809 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
1810 String resourceId = "123";
1811 String vnfType = "vnfType";
1812 Service service = Mockito.mock(Service.class);
1813 String requestAction = "createInstance";
1814 doReturn(null).when(SPY_bbInputSetup).getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
1815 requestAction, resourceId);
1816 doReturn(service).when(SPY_bbInputSetupUtils)
1817 .getCatalogServiceByModelUUID(gBB.getServiceInstance().getModelInfoServiceInstance().getModelUuid());
1819 executeBB.getBuildingBlock().setBpmnFlowName("Network");
1820 executeBB.getBuildingBlock().setKey("ab153b6e-c364-44c0-bef6-1f2982117f04");
1821 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
1825 public void testgetGBBMacroWithVnfTypeNull() throws Exception {
1826 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
1827 GeneralBuildingBlock.class);
1828 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
1829 ExecuteBuildingBlock.class);
1830 RequestDetails requestDetails = mapper
1831 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
1832 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
1833 lookupKeyMap.put(ResourceKey.NETWORK_ID, "networkId");
1834 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "vnfId");
1835 lookupKeyMap.put(ResourceKey.VF_MODULE_ID, "vfModuleId");
1836 lookupKeyMap.put(ResourceKey.VOLUME_GROUP_ID, "volumeGroupId");
1837 lookupKeyMap.put(ResourceKey.SERVICE_INSTANCE_ID, "serviceInstanceId");
1838 org.onap.aai.domain.yang.GenericVnf aaiVnf = new org.onap.aai.domain.yang.GenericVnf();
1839 aaiVnf.setModelCustomizationId("modelCustId");
1840 InfraActiveRequests request = Mockito.mock(InfraActiveRequests.class);
1841 String resourceId = "123";
1842 String vnfType = null;
1843 Service service = Mockito.mock(Service.class);
1844 String requestAction = "createInstance";
1845 doReturn(gBB).when(SPY_bbInputSetup).getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
1846 requestAction, resourceId);
1847 doReturn(request).when(SPY_bbInputSetupUtils).getInfraActiveRequest(executeBB.getRequestId());
1848 doReturn(service).when(SPY_bbInputSetupUtils)
1849 .getCatalogServiceByModelUUID(gBB.getServiceInstance().getModelInfoServiceInstance().getModelUuid());
1850 doNothing().when(SPY_bbInputSetupUtils).updateInfraActiveRequestVnfId(request,
1851 lookupKeyMap.get(ResourceKey.GENERIC_VNF_ID));
1852 doReturn("vnfId").when(SPY_bbInputSetup).getVnfId(executeBB, lookupKeyMap);
1853 doReturn(aaiVnf).when(SPY_bbInputSetupUtils).getAAIGenericVnf(any(String.class));
1855 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.NETWORK_MACRO.toString());
1856 executeBB.getBuildingBlock().setKey("ab153b6e-c364-44c0-bef6-1f2982117f04");
1857 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
1858 verify(SPY_bbInputSetup, times(1)).populateL3Network(any(String.class), isA(ModelInfo.class),
1859 isA(Service.class), any(String.class), isA(ServiceInstance.class), any(), any(String.class), any());
1861 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.VNF.toString());
1862 executeBB.getBuildingBlock().setKey("ab153b6e-c364-44c0-bef6-1f2982117f04");
1863 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
1864 verify(SPY_bbInputSetup, times(1)).populateGenericVnf(isA(ModelInfo.class), any(String.class),
1865 isA(org.onap.so.serviceinstancebeans.Platform.class),
1866 isA(org.onap.so.serviceinstancebeans.LineOfBusiness.class), isA(Service.class), any(String.class),
1867 isA(ServiceInstance.class), any(), any(), any(String.class), any(String.class), any());
1869 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, null);
1870 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.VF_MODULE.toString());
1871 executeBB.getBuildingBlock().setKey("a25e8e8c-58b8-4eec-810c-97dcc1f5cb7f");
1872 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
1873 verify(SPY_bbInputSetup, times(1)).populateVfModule(isA(ModelInfo.class), isA(Service.class), any(String.class),
1874 isA(ServiceInstance.class), any(), any(String.class), any(), any(String.class), any(), isA(CloudConfiguration.class));
1876 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, null);
1877 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.VOLUME_GROUP.toString());
1878 executeBB.getBuildingBlock().setKey("72d9d1cd-f46d-447a-abdb-451d6fb05fa8");
1879 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
1880 verify(SPY_bbInputSetup, times(1)).populateVolumeGroup(isA(ModelInfo.class), isA(Service.class),
1881 any(String.class), isA(ServiceInstance.class), any(), any(String.class), any(), any(String.class),
1882 any(String.class), any());
1886 public void testgetGBBMacroGetServiceWithInvariantId() throws Exception {
1887 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
1888 GeneralBuildingBlock.class);
1889 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
1890 ExecuteBuildingBlock.class);
1891 RequestDetails requestDetails = mapper
1892 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
1893 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
1894 lookupKeyMap.put(ResourceKey.NETWORK_ID, "networkId");
1895 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "vnfId");
1896 lookupKeyMap.put(ResourceKey.VF_MODULE_ID, "vfModuleId");
1897 lookupKeyMap.put(ResourceKey.VOLUME_GROUP_ID, "volumeGroupId");
1898 lookupKeyMap.put(ResourceKey.SERVICE_INSTANCE_ID, "serviceInstanceId");
1899 org.onap.aai.domain.yang.GenericVnf aaiVnf = new org.onap.aai.domain.yang.GenericVnf();
1900 aaiVnf.setModelCustomizationId("modelCustId");
1901 InfraActiveRequests request = Mockito.mock(InfraActiveRequests.class);
1902 String resourceId = "123";
1903 String vnfType = "vnfType";
1904 Service service = Mockito.mock(Service.class);
1905 String requestAction = "createInstance";
1906 doReturn(gBB).when(SPY_bbInputSetup).getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
1907 requestAction, resourceId);
1908 doReturn(request).when(SPY_bbInputSetupUtils).getInfraActiveRequest(executeBB.getRequestId());
1909 doReturn(service).when(SPY_bbInputSetupUtils)
1910 .getCatalogServiceByModelUUID(gBB.getServiceInstance().getModelInfoServiceInstance().getModelUuid());
1911 doNothing().when(SPY_bbInputSetupUtils).updateInfraActiveRequestVnfId(request,
1912 lookupKeyMap.get(ResourceKey.GENERIC_VNF_ID));
1913 doReturn("vnfId").when(SPY_bbInputSetup).getVnfId(executeBB, lookupKeyMap);
1914 doReturn(aaiVnf).when(SPY_bbInputSetupUtils).getAAIGenericVnf(any(String.class));
1916 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.NETWORK_MACRO.toString());
1917 executeBB.getBuildingBlock().setKey("ab153b6e-c364-44c0-bef6-1f2982117f04");
1918 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
1919 verify(SPY_bbInputSetup, times(1)).populateL3Network(any(String.class), isA(ModelInfo.class),
1920 isA(Service.class), any(String.class), isA(ServiceInstance.class), any(), any(String.class), any());
1922 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.VNF.toString());
1923 executeBB.getBuildingBlock().setKey("ab153b6e-c364-44c0-bef6-1f2982117f04");
1924 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
1925 verify(SPY_bbInputSetup, times(1)).populateGenericVnf(isA(ModelInfo.class), any(String.class),
1926 isA(org.onap.so.serviceinstancebeans.Platform.class),
1927 isA(org.onap.so.serviceinstancebeans.LineOfBusiness.class), isA(Service.class), any(String.class),
1928 isA(ServiceInstance.class), any(), any(), any(String.class), any(String.class), any());
1930 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, null);
1931 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.VF_MODULE.toString());
1932 executeBB.getBuildingBlock().setKey("a25e8e8c-58b8-4eec-810c-97dcc1f5cb7f");
1933 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
1934 verify(SPY_bbInputSetup, times(1)).populateVfModule(isA(ModelInfo.class), isA(Service.class), any(String.class),
1935 isA(ServiceInstance.class), any(), any(String.class), any(), any(String.class), any(), isA(CloudConfiguration.class));
1937 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, null);
1938 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.VOLUME_GROUP.toString());
1939 executeBB.getBuildingBlock().setKey("72d9d1cd-f46d-447a-abdb-451d6fb05fa8");
1940 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
1941 verify(SPY_bbInputSetup, times(1)).populateVolumeGroup(isA(ModelInfo.class), isA(Service.class),
1942 any(String.class), isA(ServiceInstance.class), any(), any(String.class), any(), any(String.class),
1943 any(String.class), any());
1947 public void testgetGBBMacroNoUserParamsDeactivateInstnace() throws Exception {
1948 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
1949 GeneralBuildingBlock.class);
1950 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
1951 ExecuteBuildingBlock.class);
1952 RequestDetails requestDetails = mapper
1953 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
1954 requestDetails.getRequestParameters().setUserParams(null);
1955 org.onap.aai.domain.yang.GenericVnf aaiVnf = new org.onap.aai.domain.yang.GenericVnf();
1956 aaiVnf.setModelCustomizationId("modelCustId");
1957 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
1958 lookupKeyMap.put(ResourceKey.NETWORK_ID, "networkId");
1959 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "vnfId");
1960 lookupKeyMap.put(ResourceKey.VF_MODULE_ID, "vfModuleId");
1961 lookupKeyMap.put(ResourceKey.VOLUME_GROUP_ID, "volumeGroupId");
1962 lookupKeyMap.put(ResourceKey.SERVICE_INSTANCE_ID, "serviceInstanceId");
1963 String resourceId = "123";
1964 String vnfType = "vnfType";
1965 Service service = Mockito.mock(Service.class);
1966 String requestAction = "deactivateInstance";
1967 doReturn(gBB).when(SPY_bbInputSetup).getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
1968 requestAction, resourceId);
1969 doReturn(service).when(SPY_bbInputSetupUtils)
1970 .getCatalogServiceByModelUUID(gBB.getServiceInstance().getModelInfoServiceInstance().getModelUuid());
1971 String generatedId = "12131";
1972 doReturn(generatedId).when(SPY_bbInputSetup).generateRandomUUID();
1973 doReturn(aaiVnf).when(SPY_bbInputSetupUtils).getAAIGenericVnf(any(String.class));
1975 executeBB.getBuildingBlock().setBpmnFlowName("DeactivateServiceInstanceBB");
1976 executeBB.getBuildingBlock().setKey("3c40d244-808e-42ca-b09a-256d83d19d0a");
1977 GeneralBuildingBlock actual = SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap,
1978 requestAction, resourceId, vnfType);
1979 assertThat(actual, sameBeanAs(gBB));
1983 public void testgetGBBMacroNoUserParamsCreateInstance() throws Exception {
1984 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
1985 GeneralBuildingBlock.class);
1986 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
1987 ExecuteBuildingBlock.class);
1988 RequestDetails requestDetails = mapper
1989 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
1990 InfraActiveRequests request = Mockito.mock(InfraActiveRequests.class);
1991 requestDetails.getRequestParameters().setUserParams(null);
1992 org.onap.aai.domain.yang.GenericVnf aaiVnf = new org.onap.aai.domain.yang.GenericVnf();
1993 aaiVnf.setModelCustomizationId("modelCustId");
1994 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
1995 lookupKeyMap.put(ResourceKey.NETWORK_ID, "networkId");
1996 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "vnfId");
1997 lookupKeyMap.put(ResourceKey.VF_MODULE_ID, "vfModuleId");
1998 lookupKeyMap.put(ResourceKey.VOLUME_GROUP_ID, "volumeGroupId");
1999 lookupKeyMap.put(ResourceKey.SERVICE_INSTANCE_ID, "serviceInstanceId");
2000 lookupKeyMap.put(ResourceKey.CONFIGURATION_ID, "configurationId");
2001 String resourceId = "123";
2002 String vnfType = "vnfType";
2003 Service service = Mockito.mock(Service.class);
2004 String requestAction = "createInstance";
2005 doReturn(gBB).when(SPY_bbInputSetup).getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
2006 requestAction, resourceId);
2007 doReturn(null).when(SPY_bbInputSetupUtils)
2008 .getCatalogServiceByModelUUID(requestDetails.getModelInfo().getModelVersionId());
2009 doReturn(service).when(SPY_bbInputSetupUtils)
2010 .getCatalogServiceByModelUUID(gBB.getServiceInstance().getModelInfoServiceInstance().getModelUuid());
2011 List<NetworkResourceCustomization> networkCustList = new ArrayList<>();
2012 NetworkResourceCustomization networkCust = Mockito.mock(NetworkResourceCustomization.class);
2013 doReturn("ab153b6e-c364-44c0-bef6-1f2982117f04").when(networkCust).getModelCustomizationUUID();
2014 networkCustList.add(networkCust);
2015 doReturn(networkCustList).when(service).getNetworkCustomizations();
2016 doNothing().when(SPY_bbInputSetup).populateL3Network(any(), isA(ModelInfo.class), isA(Service.class),
2017 any(String.class), isA(ServiceInstance.class), any(), any(String.class), any());
2019 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.NETWORK_MACRO.toString());
2020 executeBB.getBuildingBlock().setKey("ab153b6e-c364-44c0-bef6-1f2982117f04");
2021 executeBB.getBuildingBlock().setIsVirtualLink(false);
2022 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
2023 verify(SPY_bbInputSetup, times(1)).getGBBMacroNoUserParamsCreate(executeBB, lookupKeyMap,
2024 executeBB.getBuildingBlock().getBpmnFlowName(), "ab153b6e-c364-44c0-bef6-1f2982117f04", gBB, service);
2026 CollectionNetworkResourceCustomization collectionNetworkResourceCust = Mockito.mock(CollectionNetworkResourceCustomization.class);
2027 doReturn(collectionNetworkResourceCust).when(SPY_bbInputSetupUtils).getCatalogCollectionNetworkResourceCustByID(any(String.class));
2028 NetworkResourceCustomization networkResourceCustomization = Mockito.mock(NetworkResourceCustomization.class);
2029 doReturn(networkResourceCustomization).when(bbInputSetupMapperLayer).mapCollectionNetworkResourceCustToNetworkResourceCust(collectionNetworkResourceCust);
2030 ModelInfoNetwork modelInfoNetwork = Mockito.mock(ModelInfoNetwork.class);
2031 doReturn(modelInfoNetwork ).when(bbInputSetupMapperLayer).mapCatalogNetworkToNetwork(networkResourceCustomization);
2032 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.NETWORK_MACRO.toString());
2033 executeBB.getBuildingBlock().setKey("ab153b6e-c364-44c0-bef6-1f2982117f04");
2034 executeBB.getBuildingBlock().setIsVirtualLink(true);
2035 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
2036 verify(SPY_bbInputSetup, times(2)).getGBBMacroNoUserParamsCreate(executeBB, lookupKeyMap,
2037 executeBB.getBuildingBlock().getBpmnFlowName(), "ab153b6e-c364-44c0-bef6-1f2982117f04", gBB, service);
2038 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.FABRIC_CONFIGURATION.toString());
2039 executeBB.getBuildingBlock().setKey("modelCustId");
2040 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
2041 verify(SPY_bbInputSetup, times(1)).getGBBMacroNoUserParamsCreate(executeBB, lookupKeyMap,
2042 executeBB.getBuildingBlock().getBpmnFlowName(), "modelCustId", gBB, service);
2046 public void testgetGBBMacroNoUserParamsOther() throws Exception {
2047 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
2048 GeneralBuildingBlock.class);
2049 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
2050 ExecuteBuildingBlock.class);
2051 RequestDetails requestDetails = mapper
2052 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
2053 requestDetails.getRequestParameters().setUserParams(null);
2054 org.onap.aai.domain.yang.GenericVnf aaiVnf = new org.onap.aai.domain.yang.GenericVnf();
2055 aaiVnf.setModelCustomizationId("modelCustId");
2056 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
2057 lookupKeyMap.put(ResourceKey.NETWORK_ID, "networkId");
2058 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "vnfId");
2059 lookupKeyMap.put(ResourceKey.VF_MODULE_ID, "vfModuleId");
2060 lookupKeyMap.put(ResourceKey.VOLUME_GROUP_ID, "volumeGroupId");
2061 lookupKeyMap.put(ResourceKey.SERVICE_INSTANCE_ID, "serviceInstanceId");
2062 String resourceId = "123";
2063 String vnfType = "vnfType";
2064 Service service = Mockito.mock(Service.class);
2065 String requestAction = "deleteInstance";
2066 doReturn(gBB).when(SPY_bbInputSetup).getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
2067 requestAction, resourceId);
2068 doReturn(service).when(SPY_bbInputSetupUtils)
2069 .getCatalogServiceByModelUUID(gBB.getServiceInstance().getModelInfoServiceInstance().getModelUuid());
2070 doReturn(aaiVnf).when(SPY_bbInputSetupUtils).getAAIGenericVnf(any(String.class));
2072 CloudConfiguration cloudConfig = new CloudConfiguration();
2073 cloudConfig.setLcpCloudRegionId("lcpCloudRegionId");
2074 requestDetails.setCloudConfiguration(cloudConfig);
2075 org.onap.aai.domain.yang.CloudRegion aaiCloudRegion = Mockito.mock(org.onap.aai.domain.yang.CloudRegion.class);
2076 doReturn(aaiCloudRegion).when(SPY_bbInputSetupUtils).getCloudRegion(requestDetails.getCloudConfiguration(),
2078 executeBB.getBuildingBlock().setBpmnFlowName("DeleteNetworkBB");
2079 executeBB.getBuildingBlock().setKey("ab153b6e-c364-44c0-bef6-1f2982117f04");
2080 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
2081 verify(SPY_bbInputSetup, times(1)).getGBBMacroExistingService(isA(ExecuteBuildingBlock.class), any(),
2082 any(String.class), any(GeneralBuildingBlock.class), isA(Service.class), isA(String.class),
2083 isA(CloudConfiguration.class));
2085 requestAction = "activateInstance";
2086 doReturn(gBB).when(SPY_bbInputSetup).getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
2087 requestAction, resourceId);
2088 executeBB.getBuildingBlock().setBpmnFlowName("ActivateNetworkBB");
2089 executeBB.getBuildingBlock().setKey("ab153b6e-c364-44c0-bef6-1f2982117f04");
2090 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
2091 verify(SPY_bbInputSetup, times(2)).getGBBMacroExistingService(isA(ExecuteBuildingBlock.class), any(),
2092 any(String.class), any(GeneralBuildingBlock.class), isA(Service.class), isA(String.class),
2093 isA(CloudConfiguration.class));
2095 requestAction = "unassignInstance";
2096 doReturn(gBB).when(SPY_bbInputSetup).getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
2097 requestAction, resourceId);
2098 executeBB.getBuildingBlock().setBpmnFlowName("UnassignNetworkBB");
2099 executeBB.getBuildingBlock().setKey("ab153b6e-c364-44c0-bef6-1f2982117f04");
2100 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
2101 verify(SPY_bbInputSetup, times(3)).getGBBMacroExistingService(isA(ExecuteBuildingBlock.class), any(),
2102 any(String.class), any(GeneralBuildingBlock.class), isA(Service.class), isA(String.class),
2103 isA(CloudConfiguration.class));
2105 requestAction = "activateFabricConfiguration";
2106 doReturn(gBB).when(SPY_bbInputSetup).getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
2107 requestAction, resourceId);
2108 executeBB.getBuildingBlock().setBpmnFlowName("ActivateFabricConfigurationBB");
2109 executeBB.getBuildingBlock().setKey("ab153b6e-c364-44c0-bef6-134534656234");
2110 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
2111 verify(SPY_bbInputSetup, times(4)).getGBBMacroExistingService(isA(ExecuteBuildingBlock.class), any(),
2112 any(String.class), any(GeneralBuildingBlock.class), isA(Service.class), isA(String.class),
2113 isA(CloudConfiguration.class));
2116 @Test(expected = IllegalArgumentException.class)
2117 public void testgetGBBMacroNoUserParamsOtherException() throws Exception {
2118 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
2119 GeneralBuildingBlock.class);
2120 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
2121 ExecuteBuildingBlock.class);
2122 RequestDetails requestDetails = mapper
2123 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
2124 requestDetails.getRequestParameters().setUserParams(null);
2125 org.onap.aai.domain.yang.GenericVnf aaiVnf = new org.onap.aai.domain.yang.GenericVnf();
2126 aaiVnf.setModelCustomizationId("modelCustId");
2127 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
2128 lookupKeyMap.put(ResourceKey.NETWORK_ID, "networkId");
2129 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "vnfId");
2130 lookupKeyMap.put(ResourceKey.VF_MODULE_ID, "vfModuleId");
2131 lookupKeyMap.put(ResourceKey.VOLUME_GROUP_ID, "volumeGroupId");
2132 lookupKeyMap.put(ResourceKey.SERVICE_INSTANCE_ID, "serviceInstanceId");
2133 String resourceId = "123";
2134 String vnfType = "vnfType";
2135 Service service = Mockito.mock(Service.class);
2136 String requestAction = "assignInstance";
2137 doReturn(gBB).when(SPY_bbInputSetup).getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
2138 requestAction, resourceId);
2139 doReturn(service).when(SPY_bbInputSetupUtils)
2140 .getCatalogServiceByModelUUID(gBB.getServiceInstance().getModelInfoServiceInstance().getModelUuid());
2141 String generatedId = "12131";
2142 doReturn(generatedId).when(SPY_bbInputSetup).generateRandomUUID();
2143 doReturn(aaiVnf).when(SPY_bbInputSetupUtils).getAAIGenericVnf(any(String.class));
2145 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.SERVICE_INSTANCE.toString());
2146 executeBB.getBuildingBlock().setKey("3c40d244-808e-42ca-b09a-256d83d19d0a");
2147 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
2150 public void testgetGBBMacroNoUserParamsExistingService() throws Exception {
2151 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
2152 GeneralBuildingBlock.class);
2153 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
2154 ExecuteBuildingBlock.class);
2155 RequestDetails requestDetails = mapper
2156 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
2157 requestDetails.getRequestParameters().setUserParams(null);
2158 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
2159 lookupKeyMap.put(ResourceKey.NETWORK_ID, "networkId");
2160 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "vnfId");
2161 lookupKeyMap.put(ResourceKey.VF_MODULE_ID, "vfModuleId");
2162 lookupKeyMap.put(ResourceKey.VOLUME_GROUP_ID, "volumeGroupId");
2163 lookupKeyMap.put(ResourceKey.SERVICE_INSTANCE_ID, "serviceInstanceId");
2164 lookupKeyMap.put(ResourceKey.CONFIGURATION_ID, "configurationId");
2165 Service service = Mockito.mock(Service.class);
2166 CloudConfiguration cloudConfiguration = new CloudConfiguration();
2167 cloudConfiguration.setLcpCloudRegionId("cloudRegionId");
2168 String requestAction = "unassignInstance";
2170 L3Network network = new L3Network();
2171 network.setNetworkId("networkId");
2172 gBB.getServiceInstance().getNetworks().add(network);
2173 org.onap.aai.domain.yang.L3Network aaiNetwork = new org.onap.aai.domain.yang.L3Network();
2174 aaiNetwork.setModelCustomizationId("modelCustId");
2175 doReturn(aaiNetwork).when(SPY_bbInputSetupUtils).getAAIL3Network(network.getNetworkId());
2176 doNothing().when(SPY_bbInputSetup).mapCatalogNetwork(any(L3Network.class), any(ModelInfo.class),
2177 any(Service.class));
2179 executeBB.getBuildingBlock().setBpmnFlowName("DeleteNetworkBB");
2180 executeBB.getBuildingBlock().setKey("ab153b6e-c364-44c0-bef6-1f2982117f04");
2181 SPY_bbInputSetup.getGBBMacroExistingService(executeBB, lookupKeyMap,
2182 executeBB.getBuildingBlock().getBpmnFlowName(), gBB, service, requestAction, cloudConfiguration);
2183 verify(SPY_bbInputSetup, times(1)).mapCatalogNetwork(any(L3Network.class), any(ModelInfo.class),
2184 any(Service.class));
2186 GenericVnf vnf = new GenericVnf();
2187 vnf.setVnfId("vnfId");
2188 gBB.getServiceInstance().getVnfs().add(vnf);
2189 org.onap.aai.domain.yang.GenericVnf aaiVnf = new org.onap.aai.domain.yang.GenericVnf();
2190 aaiVnf.setModelCustomizationId("modelCustId");
2191 doReturn(aaiVnf).when(SPY_bbInputSetupUtils).getAAIGenericVnf(vnf.getVnfId());
2192 doNothing().when(SPY_bbInputSetup).mapCatalogVnf(any(GenericVnf.class), any(ModelInfo.class),
2193 any(Service.class));
2195 executeBB.getBuildingBlock().setBpmnFlowName("ActivateVnfBB");
2196 executeBB.getBuildingBlock().setKey("ab153b6e-c364-44c0-bef6-1f2982117f04");
2197 SPY_bbInputSetup.getGBBMacroExistingService(executeBB, lookupKeyMap,
2198 executeBB.getBuildingBlock().getBpmnFlowName(), gBB, service, requestAction, cloudConfiguration);
2199 verify(SPY_bbInputSetup, times(1)).mapCatalogVnf(any(GenericVnf.class), any(ModelInfo.class),
2200 any(Service.class));
2202 VfModule vfModule = new VfModule();
2203 vfModule.setVfModuleId("vfModuleId");
2204 gBB.getServiceInstance().getVnfs().get(0).getVfModules().add(vfModule);
2205 org.onap.aai.domain.yang.VfModule aaiVfModule = new org.onap.aai.domain.yang.VfModule();
2206 aaiVfModule.setModelCustomizationId("modelCustId");
2207 doReturn(aaiVfModule).when(SPY_bbInputSetupUtils).getAAIVfModule(vnf.getVnfId(), vfModule.getVfModuleId());
2209 executeBB.getBuildingBlock().setBpmnFlowName("UnassignVfModuleBB");
2210 executeBB.getBuildingBlock().setKey("a25e8e8c-58b8-4eec-810c-97dcc1f5cb7f");
2211 SPY_bbInputSetup.getGBBMacroExistingService(executeBB, lookupKeyMap,
2212 executeBB.getBuildingBlock().getBpmnFlowName(), gBB, service, requestAction, cloudConfiguration);
2213 verify(SPY_bbInputSetup, times(2)).mapCatalogVnf(any(GenericVnf.class), any(ModelInfo.class),
2214 any(Service.class));
2215 verify(SPY_bbInputSetup, times(1)).mapCatalogVfModule(any(VfModule.class), any(ModelInfo.class),
2216 any(Service.class), any(String.class));
2218 org.onap.aai.domain.yang.CloudRegion aaiCloudRegion = Mockito.mock(org.onap.aai.domain.yang.CloudRegion.class);
2219 doReturn(aaiCloudRegion).when(SPY_bbInputSetupUtils).getCloudRegion(requestDetails.getCloudConfiguration(),
2221 VolumeGroup volumeGroup = new VolumeGroup();
2222 volumeGroup.setVolumeGroupId("volumeGroupId");
2223 gBB.getServiceInstance().getVnfs().get(0).getVolumeGroups().add(volumeGroup);
2224 org.onap.aai.domain.yang.VolumeGroup aaiVolumeGroup = new org.onap.aai.domain.yang.VolumeGroup();
2225 aaiVolumeGroup.setModelCustomizationId("modelCustId");
2226 doReturn(aaiVolumeGroup).when(SPY_bbInputSetupUtils).getAAIVolumeGroup("att-aic",
2227 cloudConfiguration.getLcpCloudRegionId(), volumeGroup.getVolumeGroupId());
2229 executeBB.getBuildingBlock().setBpmnFlowName("UnassignVolumeGroupBB");
2230 executeBB.getBuildingBlock().setKey("72d9d1cd-f46d-447a-abdb-451d6fb05fa8");
2231 SPY_bbInputSetup.getGBBMacroExistingService(executeBB, lookupKeyMap,
2232 executeBB.getBuildingBlock().getBpmnFlowName(), gBB, service, requestAction, cloudConfiguration);
2233 verify(SPY_bbInputSetup, times(3)).mapCatalogVnf(any(GenericVnf.class), any(ModelInfo.class),
2234 any(Service.class));
2235 verify(SPY_bbInputSetup, times(1)).mapCatalogVolumeGroup(isA(VolumeGroup.class), isA(ModelInfo.class),
2236 isA(Service.class), isA(String.class));
2238 Configuration configuration = new Configuration();
2239 configuration.setConfigurationId("configurationId");
2240 gBB.getServiceInstance().getConfigurations().add(configuration);
2241 org.onap.aai.domain.yang.Configuration aaiConfiguration = new org.onap.aai.domain.yang.Configuration();
2242 aaiConfiguration.setModelCustomizationId("modelCustId");
2243 doReturn(aaiConfiguration).when(SPY_bbInputSetupUtils).getAAIConfiguration(configuration.getConfigurationId());
2245 executeBB.getBuildingBlock().setBpmnFlowName("ActivateFabricConfigurationBB");
2246 executeBB.getBuildingBlock().setKey("72d9d1cd-f46d-447a-abdb-451d6fb05fa9");
2247 SPY_bbInputSetup.getGBBMacroExistingService(executeBB, lookupKeyMap,
2248 executeBB.getBuildingBlock().getBpmnFlowName(), gBB, service, requestAction, cloudConfiguration);
2249 verify(SPY_bbInputSetup, times(1)).mapCatalogConfiguration(any(Configuration.class), any(ModelInfo.class),
2250 any(Service.class));
2254 public void testGetVnfId() {
2255 String expected = "vnfId";
2256 ExecuteBuildingBlock executeBB = new ExecuteBuildingBlock();
2257 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
2258 executeBB.setRequestId("requestId");
2259 InfraActiveRequests request = new InfraActiveRequests();
2260 request.setVnfId(expected);
2261 doReturn(request).when(SPY_bbInputSetupUtils).getInfraActiveRequest(executeBB.getRequestId());
2263 String actual = SPY_bbInputSetup.getVnfId(executeBB, lookupKeyMap);
2265 assertEquals("VnfId is set correctly", expected, actual);
2269 public void testCreateVfModule() {
2270 String vfModuleId = "vfModuleId";
2271 String instanceName = "vfModuleName";
2272 Map<String, String> cloudParams = new HashMap<>();
2273 cloudParams.put("param1", "param1Value");
2274 VfModule expected = new VfModule();
2275 expected.setVfModuleId(vfModuleId);
2276 expected.setVfModuleName(instanceName);
2277 expected.setCloudParams(cloudParams);
2278 expected.setOrchestrationStatus(OrchestrationStatus.PRECREATED);
2279 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
2280 List<Map<String, String>> instanceParams = new ArrayList<>();
2281 instanceParams.add(cloudParams);
2283 VfModule actual = SPY_bbInputSetup.createVfModule(lookupKeyMap, vfModuleId, instanceName, instanceParams);
2285 assertThat(actual, sameBeanAs(expected));
2286 assertEquals("LookupKeyMap is populated", vfModuleId, lookupKeyMap.get(ResourceKey.VF_MODULE_ID));
2288 expected.getCloudParams().clear();
2289 actual = SPY_bbInputSetup.createVfModule(lookupKeyMap, vfModuleId, instanceName, null);
2290 assertThat(actual, sameBeanAs(expected));
2294 public void testCreateVolumeGroup() {
2295 String volumeGroupId = "volumeGroupId";
2296 String instanceName = "vfModuleName";
2297 String vnfType = "vnfType";
2298 Map<String, String> cloudParams = new HashMap<>();
2299 cloudParams.put("param1", "param1Value");
2300 VolumeGroup expected = new VolumeGroup();
2301 expected.setVolumeGroupId(volumeGroupId);
2302 expected.setVolumeGroupName(instanceName);
2303 expected.setCloudParams(cloudParams);
2304 expected.setVnfType(vnfType);
2305 expected.setOrchestrationStatus(OrchestrationStatus.PRECREATED);
2306 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
2307 List<Map<String, String>> instanceParams = new ArrayList<>();
2308 instanceParams.add(cloudParams);
2310 VolumeGroup actual = SPY_bbInputSetup.createVolumeGroup(lookupKeyMap, volumeGroupId, instanceName, vnfType, instanceParams);
2312 assertThat(actual, sameBeanAs(expected));
2313 assertEquals("LookupKeyMap is populated", volumeGroupId, lookupKeyMap.get(ResourceKey.VOLUME_GROUP_ID));
2315 expected.getCloudParams().clear();
2316 actual = SPY_bbInputSetup.createVolumeGroup(lookupKeyMap, volumeGroupId, instanceName, vnfType, null);
2317 assertThat(actual, sameBeanAs(expected));
2321 public void testCreateNetwork() {
2322 String networkId = "networkId";
2323 String instanceName = "networkName";
2324 Map<String, String> cloudParams = new HashMap<>();
2325 cloudParams.put("param1", "param1Value");
2326 L3Network expected = new L3Network();
2327 expected.setNetworkId(networkId);
2328 expected.setNetworkName(instanceName);
2329 expected.setCloudParams(cloudParams);
2330 expected.setOrchestrationStatus(OrchestrationStatus.PRECREATED);
2331 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
2332 List<Map<String, String>> instanceParams = new ArrayList<>();
2333 instanceParams.add(cloudParams);
2334 L3Network actual = SPY_bbInputSetup.createNetwork(lookupKeyMap, instanceName, networkId, instanceParams);
2336 assertThat(actual, sameBeanAs(expected));
2337 assertEquals("LookupKeyMap is populated", networkId, lookupKeyMap.get(ResourceKey.NETWORK_ID));
2339 expected.getCloudParams().clear();
2340 actual = SPY_bbInputSetup.createNetwork(lookupKeyMap, instanceName, networkId, null);
2341 assertThat(actual, sameBeanAs(expected));
2345 public void testCreateGenericVnf() {
2346 String vnfId = "vnfId";
2347 String instanceName = "vnfName";
2348 String vnfType = "vnfType";
2349 String platformName = "platformName";
2350 String lineOfBusinessName = "lineOfBusinessName";
2351 Platform platform = new Platform();
2352 platform.setPlatformName(platformName);
2353 LineOfBusiness lineOfBusiness = new LineOfBusiness();
2354 lineOfBusiness.setLineOfBusinessName(lineOfBusinessName);
2355 Map<String, String> cloudParams = new HashMap<>();
2356 cloudParams.put("param1", "param1Value");
2357 GenericVnf expected = new GenericVnf();
2358 expected.setVnfId(vnfId);
2359 expected.setVnfName(instanceName);
2360 expected.setVnfType(vnfType);
2361 expected.setCloudParams(cloudParams);
2362 expected.setOrchestrationStatus(OrchestrationStatus.PRECREATED);
2363 expected.setPlatform(platform);
2364 expected.setLineOfBusiness(lineOfBusiness);
2365 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
2366 List<Map<String, String>> instanceParams = new ArrayList<>();
2367 instanceParams.add(cloudParams);
2368 org.onap.so.serviceinstancebeans.Platform requestPlatform = new org.onap.so.serviceinstancebeans.Platform();
2369 platform.setPlatformName(platformName);
2370 org.onap.so.serviceinstancebeans.LineOfBusiness requestLineOfBusiness = new org.onap.so.serviceinstancebeans.LineOfBusiness();
2371 lineOfBusiness.setLineOfBusinessName(lineOfBusinessName);
2373 doReturn(platform).when(bbInputSetupMapperLayer).mapRequestPlatform(requestPlatform);
2374 doReturn(lineOfBusiness).when(bbInputSetupMapperLayer).mapRequestLineOfBusiness(requestLineOfBusiness);
2376 GenericVnf actual = SPY_bbInputSetup.createGenericVnf(lookupKeyMap, instanceName, requestPlatform, requestLineOfBusiness, vnfId, vnfType, instanceParams);
2378 assertThat(actual, sameBeanAs(expected));
2379 assertEquals("LookupKeyMap is populated", vnfId, lookupKeyMap.get(ResourceKey.GENERIC_VNF_ID));
2381 expected.getCloudParams().clear();
2382 actual = SPY_bbInputSetup.createGenericVnf(lookupKeyMap, instanceName, requestPlatform, requestLineOfBusiness, vnfId, vnfType, null);
2383 assertThat(actual, sameBeanAs(expected));
2387 public void testMapCatalogVfModule() {
2388 String vnfModelCustomizationUUID = "vnfResourceCustUUID";
2389 String vfModuleCustomizationUUID = "vfModelCustomizationUUID";
2390 VfModule vfModule = new VfModule();
2391 ModelInfo modelInfo = new ModelInfo();
2392 modelInfo.setModelCustomizationUuid(vfModuleCustomizationUUID);
2393 Service service = new Service();
2394 VnfResourceCustomization vnfResourceCust = new VnfResourceCustomization();
2395 vnfResourceCust.setModelCustomizationUUID(vnfModelCustomizationUUID);
2396 VfModuleCustomization vfModuleCust = new VfModuleCustomization();
2397 vfModuleCust.setModelCustomizationUUID(vfModuleCustomizationUUID);
2398 vnfResourceCust.getVfModuleCustomizations().add(vfModuleCust);
2399 service.getVnfCustomizations().add(vnfResourceCust);
2400 ModelInfoVfModule modelInfoVfModule = new ModelInfoVfModule();
2402 doReturn(modelInfoVfModule).when(bbInputSetupMapperLayer).mapCatalogVfModuleToVfModule(vfModuleCust);
2404 SPY_bbInputSetup.mapCatalogVfModule(vfModule, modelInfo, service, vnfModelCustomizationUUID);
2406 assertThat(vfModule.getModelInfoVfModule(), sameBeanAs(modelInfoVfModule));
2408 modelInfo.setModelCustomizationUuid(null);
2409 modelInfo.setModelCustomizationId(vfModuleCustomizationUUID);
2411 SPY_bbInputSetup.mapCatalogVfModule(vfModule, modelInfo, service, vnfModelCustomizationUUID);
2413 assertThat(vfModule.getModelInfoVfModule(), sameBeanAs(modelInfoVfModule));
2417 public void testPopulateVfModule() throws Exception {
2418 String vnfId = "vnfId";
2419 String vfModuleId = "vfModuleId";
2420 String volumeGroupId = "volumeGroupId";
2421 String vfModuleCustomizationId = "vfModuleCustomizationId";
2422 ModelInfo modelInfo = new ModelInfo();
2423 modelInfo.setModelCustomizationId(vfModuleCustomizationId);
2424 Service service = new Service();
2425 String bbName = AssignFlows.VF_MODULE.toString();
2426 ServiceInstance serviceInstance = new ServiceInstance();
2427 GenericVnf vnf = new GenericVnf();
2428 vnf.setVnfId(vnfId);
2429 VolumeGroup volumeGroup = new VolumeGroup();
2430 volumeGroup.setVolumeGroupId(volumeGroupId);
2431 vnf.getVolumeGroups().add(volumeGroup);
2432 serviceInstance.getVnfs().add(vnf);
2433 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
2434 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, vnfId);
2435 String resourceId = vfModuleId;
2436 RelatedInstanceList[] relatedInstanceList = null;
2437 String instanceName = "vfModuleName";
2438 List<Map<String, String>> instanceParams = null;
2439 CloudConfiguration cloudConfiguration = new CloudConfiguration();
2441 org.onap.aai.domain.yang.GenericVnf vnfAAI = new org.onap.aai.domain.yang.GenericVnf();
2442 vnfAAI.setModelCustomizationId("vnfModelCustId");
2443 org.onap.aai.domain.yang.VolumeGroup volumeGroupAAI = new org.onap.aai.domain.yang.VolumeGroup();
2444 volumeGroupAAI.setModelCustomizationId(vfModuleCustomizationId);
2446 doReturn(vnfAAI).when(SPY_bbInputSetupUtils).getAAIGenericVnf(vnf.getVnfId());
2447 doReturn(volumeGroupAAI).when(SPY_bbInputSetupUtils).getAAIVolumeGroup(CLOUD_OWNER,
2448 cloudConfiguration.getLcpCloudRegionId(), volumeGroup.getVolumeGroupId());
2449 doNothing().when(SPY_bbInputSetup).mapCatalogVnf(isA(GenericVnf.class), isA(ModelInfo.class), isA(Service.class));
2450 doNothing().when(SPY_bbInputSetup).mapCatalogVfModule(isA(VfModule.class), isA(ModelInfo.class), isA(Service.class), isA(String.class));
2452 SPY_bbInputSetup.populateVfModule(modelInfo, service, bbName, serviceInstance, lookupKeyMap,
2453 resourceId, relatedInstanceList, instanceName, instanceParams, cloudConfiguration);
2455 assertEquals("Lookup Key Map populated with VfModule Id", vfModuleId, lookupKeyMap.get(ResourceKey.VF_MODULE_ID));
2456 assertEquals("Lookup Key Map populated with VolumeGroup Id", volumeGroupId, lookupKeyMap.get(ResourceKey.VOLUME_GROUP_ID));