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.ConfigurationResourceKeys;
70 import org.onap.so.bpmn.servicedecomposition.entities.ExecuteBuildingBlock;
71 import org.onap.so.bpmn.servicedecomposition.entities.GeneralBuildingBlock;
72 import org.onap.so.bpmn.servicedecomposition.entities.ResourceKey;
73 import org.onap.so.bpmn.servicedecomposition.entities.WorkflowResourceIds;
74 import org.onap.so.bpmn.servicedecomposition.generalobjects.OrchestrationContext;
75 import org.onap.so.bpmn.servicedecomposition.generalobjects.RequestContext;
76 import org.onap.so.bpmn.servicedecomposition.modelinfo.ModelInfoCollection;
77 import org.onap.so.bpmn.servicedecomposition.modelinfo.ModelInfoGenericVnf;
78 import org.onap.so.bpmn.servicedecomposition.modelinfo.ModelInfoInstanceGroup;
79 import org.onap.so.bpmn.servicedecomposition.modelinfo.ModelInfoNetwork;
80 import org.onap.so.bpmn.servicedecomposition.modelinfo.ModelInfoServiceInstance;
81 import org.onap.so.bpmn.servicedecomposition.modelinfo.ModelInfoVfModule;
82 import org.onap.so.client.aai.AAICommonObjectMapperProvider;
83 import org.onap.so.client.aai.AAIObjectType;
84 import org.onap.so.client.aai.entities.AAIResultWrapper;
85 import org.onap.so.client.aai.entities.uri.AAIResourceUri;
86 import org.onap.so.client.aai.entities.uri.AAIUriFactory;
87 import org.onap.so.db.catalog.beans.CollectionNetworkResourceCustomization;
88 import org.onap.so.db.catalog.beans.CollectionResource;
89 import org.onap.so.db.catalog.beans.CollectionResourceCustomization;
90 import org.onap.so.db.catalog.beans.CollectionResourceInstanceGroupCustomization;
91 import org.onap.so.db.catalog.beans.ConfigurationResourceCustomization;
92 import org.onap.so.db.catalog.beans.InstanceGroupType;
93 import org.onap.so.db.catalog.beans.NetworkCollectionResourceCustomization;
94 import org.onap.so.db.catalog.beans.NetworkResourceCustomization;
95 import org.onap.so.db.catalog.beans.OrchestrationStatus;
96 import org.onap.so.db.catalog.beans.Service;
97 import org.onap.so.db.catalog.beans.VfModuleCustomization;
98 import org.onap.so.db.catalog.beans.VnfResourceCustomization;
99 import org.onap.so.db.request.beans.InfraActiveRequests;
100 import org.onap.so.serviceinstancebeans.CloudConfiguration;
101 import org.onap.so.serviceinstancebeans.ModelInfo;
102 import org.onap.so.serviceinstancebeans.ModelType;
103 import org.onap.so.serviceinstancebeans.RelatedInstance;
104 import org.onap.so.serviceinstancebeans.RelatedInstanceList;
105 import org.onap.so.serviceinstancebeans.RequestDetails;
106 import org.onap.so.serviceinstancebeans.RequestInfo;
107 import org.onap.so.serviceinstancebeans.RequestParameters;
108 import org.onap.so.serviceinstancebeans.Resources;
109 import org.onap.so.serviceinstancebeans.SubscriberInfo;
111 import com.fasterxml.jackson.core.JsonParseException;
112 import com.fasterxml.jackson.core.JsonProcessingException;
113 import com.fasterxml.jackson.databind.JsonMappingException;
114 import com.fasterxml.jackson.databind.ObjectMapper;
115 @RunWith(MockitoJUnitRunner.class)
116 public class BBInputSetupTest {
117 private static final String RESOURCE_PATH = "src/test/resources/__files/ExecuteBuildingBlock/";
119 protected ObjectMapper mapper = new ObjectMapper();
120 private static final String CLOUD_OWNER = "att-aic";
123 private BBInputSetup SPY_bbInputSetup = new BBInputSetup();
126 private BBInputSetupUtils SPY_bbInputSetupUtils;
129 private BBInputSetupMapperLayer bbInputSetupMapperLayer;
133 SPY_bbInputSetup.setBbInputSetupUtils(SPY_bbInputSetupUtils);
134 SPY_bbInputSetup.setMapperLayer(bbInputSetupMapperLayer);
138 public void testGetAlaCarteServiceInstance() throws Exception {
139 ServiceInstance expected = mapper.readValue(
140 new File(RESOURCE_PATH + "ServiceInstance_getServiceInstanceNOAAIExpected.json"),
141 ServiceInstance.class);
142 RequestDetails requestDetails = new RequestDetails();
143 RequestInfo requestInfo = new RequestInfo();
144 requestInfo.setInstanceName("SharansInstanceName");
145 requestDetails.setRequestInfo(requestInfo);
146 Customer customer = new Customer();
147 String serviceInstanceId = "SharansInstanceId";
148 boolean aLaCarte = true;
149 Service service = new Service();
150 service.setModelUUID("modelUUID");
151 ModelInfoServiceInstance modelInfoServiceInstance = new ModelInfoServiceInstance();
152 modelInfoServiceInstance.setModelUuid("modelUUID");
153 expected.setModelInfoServiceInstance(modelInfoServiceInstance);
154 org.onap.aai.domain.yang.ServiceInstance serviceInstanceAAI = new org.onap.aai.domain.yang.ServiceInstance();
155 serviceInstanceAAI.setModelVersionId("modelUUIDDifferent");
156 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
157 String bbName = AssignFlows.SERVICE_INSTANCE.toString();
158 Service differentService = new Service();
159 differentService.setModelUUID("modelUUIDDifferent");
161 doReturn(expected).when(SPY_bbInputSetup).getServiceInstanceHelper(requestDetails, customer, null, null,
162 lookupKeyMap, serviceInstanceId, aLaCarte, service, bbName);
163 doReturn(serviceInstanceAAI).when(SPY_bbInputSetupUtils).getAAIServiceInstanceById(serviceInstanceId);
164 doReturn(differentService).when(SPY_bbInputSetupUtils)
165 .getCatalogServiceByModelUUID(serviceInstanceAAI.getModelVersionId());
166 doReturn(expected.getModelInfoServiceInstance()).when(bbInputSetupMapperLayer)
167 .mapCatalogServiceIntoServiceInstance(differentService);
169 ServiceInstance actual = SPY_bbInputSetup.getALaCarteServiceInstance(service, requestDetails, customer, null,
170 null, lookupKeyMap, serviceInstanceId, aLaCarte, bbName);
171 assertThat(actual, sameBeanAs(expected));
174 @Test(expected = Exception.class)
175 public void testGetAlaCarteServiceInstanceException() throws Exception {
176 ServiceInstance expected = mapper.readValue(
177 new File(RESOURCE_PATH + "ServiceInstance_getServiceInstanceNOAAIExpected.json"),
178 ServiceInstance.class);
179 RequestDetails requestDetails = new RequestDetails();
180 RequestInfo requestInfo = new RequestInfo();
181 requestInfo.setInstanceName("SharansInstanceName");
182 requestDetails.setRequestInfo(requestInfo);
183 Customer customer = new Customer();
184 String serviceInstanceId = "SharansInstanceId";
185 boolean aLaCarte = true;
186 Service service = new Service();
187 service.setModelUUID("modelUUID");
188 ModelInfoServiceInstance modelInfoServiceInstance = new ModelInfoServiceInstance();
189 modelInfoServiceInstance.setModelUuid("modelUUID");
190 expected.setModelInfoServiceInstance(modelInfoServiceInstance);
191 org.onap.aai.domain.yang.ServiceInstance serviceInstanceAAI = new org.onap.aai.domain.yang.ServiceInstance();
192 serviceInstanceAAI.setModelVersionId("modelUUIDDifferent");
193 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
194 String bbName = AssignFlows.SERVICE_INSTANCE.toString();
195 Service differentService = new Service();
196 differentService.setModelUUID("modelUUIDDifferent");
198 doReturn(expected).when(SPY_bbInputSetup).getServiceInstanceHelper(requestDetails, customer, null, null,
199 lookupKeyMap, serviceInstanceId, aLaCarte, service, bbName);
200 doReturn(serviceInstanceAAI).when(SPY_bbInputSetupUtils).getAAIServiceInstanceById(serviceInstanceId);
201 doReturn(null).when(SPY_bbInputSetupUtils)
202 .getCatalogServiceByModelUUID(serviceInstanceAAI.getModelVersionId());
204 ServiceInstance actual = SPY_bbInputSetup.getALaCarteServiceInstance(service, requestDetails, customer, null,
205 null, lookupKeyMap, serviceInstanceId, aLaCarte, bbName);
206 assertThat(actual, sameBeanAs(expected));
210 public void testGetCustomerAndServiceSubscription() throws JsonParseException, JsonMappingException, IOException {
211 RequestDetails requestDetails = mapper.readValue(
212 new File(RESOURCE_PATH + "RequestDetailsInput_withRelatedInstanceList.json"), RequestDetails.class);
213 SubscriberInfo subscriberInfo = new SubscriberInfo();
214 subscriberInfo.setGlobalSubscriberId("globalSubscriberId");
215 RequestParameters requestParams = new RequestParameters();
216 requestParams.setSubscriptionServiceType("subscriptionServiceType");
217 requestDetails.setRequestParameters(requestParams);
218 requestDetails.setSubscriberInfo(subscriberInfo);
219 String resourceId = "resourceId";
220 Customer expected = new Customer();
221 expected.setGlobalCustomerId("globalCustomerId");
222 ServiceSubscription serviceSubscription = new ServiceSubscription();
223 serviceSubscription.setServiceType("subscriptionServiceType");
225 doReturn(expected).when(this.SPY_bbInputSetup).getCustomerFromRequest(requestDetails);
226 doReturn(serviceSubscription).when(this.SPY_bbInputSetup).getServiceSubscription(requestDetails, expected);
228 Customer actual = this.SPY_bbInputSetup.getCustomerAndServiceSubscription(requestDetails, resourceId);
230 assertThat(actual, sameBeanAs(expected));
232 requestDetails.setSubscriberInfo(null);
234 doReturn(null).when(this.SPY_bbInputSetup).getServiceSubscription(requestDetails, expected);
235 doReturn(expected).when(this.SPY_bbInputSetup).getCustomerFromURI(resourceId);
236 doReturn(serviceSubscription).when(this.SPY_bbInputSetup).getServiceSubscriptionFromURI(resourceId, expected);
238 assertThat(actual, sameBeanAs(expected));
243 public void testSetHomingFlag() throws JsonParseException, JsonMappingException, IOException {
244 GeneralBuildingBlock expected = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
245 GeneralBuildingBlock.class);
246 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
247 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "vnfId");
248 GenericVnf genericVnfExpected = new GenericVnf();
249 genericVnfExpected.setVnfId("vnfId");
250 genericVnfExpected.setCallHoming(true);
251 expected.getCustomer().getServiceSubscription().getServiceInstances().get(0).getVnfs().add(genericVnfExpected);
252 boolean homing = true;
253 GenericVnf genericVnfActual = new GenericVnf();
254 genericVnfActual.setVnfId("vnfId");
255 genericVnfActual.setCallHoming(false);
256 GeneralBuildingBlock actual = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
257 GeneralBuildingBlock.class);
258 actual.getCustomer().getServiceSubscription().getServiceInstances().get(0).getVnfs().add(genericVnfActual);
260 SPY_bbInputSetup.setHomingFlag(actual, homing, lookupKeyMap);
261 assertThat(actual, sameBeanAs(expected));
265 public void testGetExecuteBBFromExecution() throws IOException {
266 ExecuteBuildingBlock expected = new ExecuteBuildingBlock();
267 BuildingBlock bb = new BuildingBlock();
268 bb.setBpmnFlowName("AssignServiceInstanceBB");
269 expected.setBuildingBlock(bb);
270 expected.setRequestId("00032ab7-3fb3-42e5-965d-8ea592502017");
271 DelegateExecution execution = Mockito.mock(DelegateExecution.class);
272 doReturn(expected).when(execution).getVariable(any(String.class));
273 ExecuteBuildingBlock actual = SPY_bbInputSetup.getExecuteBBFromExecution(execution);
274 assertThat(actual, sameBeanAs(expected));
278 public void testGetGBB() throws Exception {
279 GeneralBuildingBlock expected = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
280 GeneralBuildingBlock.class);
282 ExecuteBuildingBlock executeBB = new ExecuteBuildingBlock();
283 executeBB.setRequestId("requestId");
284 RequestDetails requestDetails = new RequestDetails();
285 ModelInfo modelInfo = new ModelInfo();
286 modelInfo.setModelType(ModelType.service);
287 requestDetails.setModelInfo(modelInfo);
288 RequestParameters requestParams = new RequestParameters();
289 requestParams.setaLaCarte(true);
290 requestDetails.setRequestParameters(requestParams);
291 doReturn(requestDetails).when(SPY_bbInputSetupUtils).getRequestDetails(executeBB.getRequestId());
292 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
293 String resourceId = "123";
294 String requestAction = "createInstance";
295 doReturn(expected).when(SPY_bbInputSetup).getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
296 requestAction, resourceId);
297 doNothing().when(SPY_bbInputSetup).populateLookupKeyMapWithIds(any(WorkflowResourceIds.class), any());
298 boolean aLaCarte = true;
299 GeneralBuildingBlock actual = SPY_bbInputSetup.getGBB(executeBB, lookupKeyMap, requestAction, aLaCarte,
302 assertThat(actual, sameBeanAs(expected));
306 public void testGetGBBALaCarteNonService() throws Exception {
307 GeneralBuildingBlock expected = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
308 GeneralBuildingBlock.class);
309 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
310 ExecuteBuildingBlock.class);
311 RequestDetails requestDetails = mapper.readValue(
312 new File(RESOURCE_PATH + "RequestDetailsInput_withRelatedInstanceList.json"), RequestDetails.class);
313 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
314 String requestAction = "createInstance";
315 Service service = Mockito.mock(Service.class);
316 ServiceInstance serviceInstance = Mockito.mock(ServiceInstance.class);
317 String resourceId = "123";
318 String vnfType = "vnfType";
319 org.onap.aai.domain.yang.ServiceInstance aaiServiceInstance = new org.onap.aai.domain.yang.ServiceInstance();
320 aaiServiceInstance.setModelVersionId("modelVersionId");
321 org.onap.aai.domain.yang.CloudRegion aaiCloudRegion = Mockito.mock(org.onap.aai.domain.yang.CloudRegion.class);
322 lookupKeyMap.put(ResourceKey.SERVICE_INSTANCE_ID, "instanceId");
323 doReturn(service).when(SPY_bbInputSetupUtils).getCatalogServiceByModelUUID(aaiServiceInstance.getModelVersionId());
324 doReturn(aaiServiceInstance).when(SPY_bbInputSetupUtils).getAAIServiceInstanceById("instanceId");
325 doReturn(aaiCloudRegion).when(SPY_bbInputSetupUtils).getCloudRegion(requestDetails.getCloudConfiguration(), "att-aic");
327 doNothing().when(SPY_bbInputSetup).populateObjectsOnAssignAndCreateFlows(requestDetails, service, "bbName",
328 serviceInstance, lookupKeyMap, resourceId, vnfType);
329 doReturn(serviceInstance).when(SPY_bbInputSetup).getExistingServiceInstance(aaiServiceInstance);
330 doReturn(expected).when(SPY_bbInputSetup).populateGBBWithSIAndAdditionalInfo(requestDetails, serviceInstance,
331 executeBB, requestAction, null);
333 GeneralBuildingBlock actual = SPY_bbInputSetup.getGBBALaCarteNonService(executeBB, requestDetails, lookupKeyMap,
334 requestAction, resourceId, vnfType);
336 assertThat(actual, sameBeanAs(expected));
339 @Test(expected = Exception.class)
340 public void testGetGBBALaCarteNonServiceWithoutServiceModelInfo() throws Exception {
341 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
342 ExecuteBuildingBlock.class);
343 RequestDetails requestDetails = mapper.readValue(
344 new File(RESOURCE_PATH + "RequestDetailsInput_withRelatedInstanceList.json"), RequestDetails.class);
345 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
346 String requestAction = "createInstance";
347 org.onap.aai.domain.yang.ServiceInstance aaiServiceInstance = new org.onap.aai.domain.yang.ServiceInstance();
348 aaiServiceInstance.setModelVersionId("modelVersionId");
349 String resourceId = "123";
350 String vnfType = "vnfType";
351 doReturn(null).when(SPY_bbInputSetupUtils).getCatalogServiceByModelUUID(aaiServiceInstance.getModelVersionId());
352 doReturn(aaiServiceInstance).when(SPY_bbInputSetupUtils).getAAIServiceInstanceById("instanceId");
354 SPY_bbInputSetup.getGBBALaCarteNonService(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId,
359 public void testGetGBBALaCarteNonServiceWithoutRelatedInstances() throws Exception {
360 GeneralBuildingBlock expected = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
361 GeneralBuildingBlock.class);
362 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
363 ExecuteBuildingBlock.class);
364 RequestDetails requestDetails = mapper.readValue(
365 new File(RESOURCE_PATH + "RequestDetailsInput_withoutRelatedInstanceList.json"), RequestDetails.class);
366 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
367 String requestAction = "createInstance";
368 Service service = Mockito.mock(Service.class);
369 String resourceId = "123";
370 ServiceInstance serviceInstance = Mockito.mock(ServiceInstance.class);
371 org.onap.aai.domain.yang.ServiceInstance aaiServiceInstance = new org.onap.aai.domain.yang.ServiceInstance();
372 aaiServiceInstance.setModelVersionId("modelVersionId");
373 org.onap.aai.domain.yang.CloudRegion aaiCloudRegion = Mockito.mock(org.onap.aai.domain.yang.CloudRegion.class);
374 String vnfType = "vnfType";
375 lookupKeyMap.put(ResourceKey.SERVICE_INSTANCE_ID, "instanceId");
376 doReturn(service).when(SPY_bbInputSetupUtils).getCatalogServiceByModelUUID(aaiServiceInstance.getModelVersionId());
377 doReturn(aaiServiceInstance).when(SPY_bbInputSetupUtils).getAAIServiceInstanceById("instanceId");
378 doReturn(aaiCloudRegion).when(SPY_bbInputSetupUtils).getCloudRegion(requestDetails.getCloudConfiguration(), "att-aic");
380 doNothing().when(SPY_bbInputSetup).populateObjectsOnAssignAndCreateFlows(requestDetails, service, "bbName",
381 serviceInstance, lookupKeyMap, resourceId, vnfType);
383 doReturn(serviceInstance).when(SPY_bbInputSetup).getExistingServiceInstance(aaiServiceInstance);
384 doReturn(expected).when(SPY_bbInputSetup).populateGBBWithSIAndAdditionalInfo(requestDetails, serviceInstance,
385 executeBB, requestAction,null);
387 GeneralBuildingBlock actual = SPY_bbInputSetup.getGBBALaCarteNonService(executeBB, requestDetails, lookupKeyMap,
388 requestAction, resourceId, vnfType);
390 assertThat(actual, sameBeanAs(expected));
394 public void testGetGBBALaCarteService() throws Exception {
395 GeneralBuildingBlock expected = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
396 GeneralBuildingBlock.class);
397 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
398 ExecuteBuildingBlock.class);
399 RequestDetails requestDetails = mapper.readValue(
400 new File(RESOURCE_PATH + "RequestDetailsInput_withRelatedInstanceList.json"), RequestDetails.class);
401 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
403 org.onap.so.serviceinstancebeans.Project requestProject = new org.onap.so.serviceinstancebeans.Project();
404 org.onap.so.serviceinstancebeans.OwningEntity requestOwningEntity = new org.onap.so.serviceinstancebeans.OwningEntity();
405 requestDetails.setProject(requestProject);
406 requestDetails.setOwningEntity(requestOwningEntity);
408 Service service = Mockito.mock(Service.class);
409 Customer customer = Mockito.mock(Customer.class);
410 ServiceSubscription serviceSubscription = Mockito.mock(ServiceSubscription.class);
411 Project project = Mockito.mock(Project.class);
412 OwningEntity owningEntity = Mockito.mock(OwningEntity.class);
413 ServiceInstance serviceInstance = Mockito.mock(ServiceInstance.class);
414 String resourceId = "123";
415 String requestAction = "createInstance";
416 executeBB.setaLaCarte(true);
417 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.SERVICE_INSTANCE.toString());
418 org.onap.aai.domain.yang.CloudRegion aaiCloudRegion = Mockito.mock(org.onap.aai.domain.yang.CloudRegion.class);
420 doReturn(service).when(SPY_bbInputSetupUtils)
421 .getCatalogServiceByModelUUID(requestDetails.getModelInfo().getModelVersionId());
422 doReturn(aaiCloudRegion).when(SPY_bbInputSetupUtils).getCloudRegion(requestDetails.getCloudConfiguration(), "att-aic");
423 doReturn(project).when(bbInputSetupMapperLayer).mapRequestProject(requestDetails.getProject());
424 doReturn(owningEntity).when(bbInputSetupMapperLayer)
425 .mapRequestOwningEntity(requestDetails.getOwningEntity());
427 doReturn(customer).when(SPY_bbInputSetup).getCustomerAndServiceSubscription(requestDetails, resourceId);
428 doReturn(serviceInstance).when(SPY_bbInputSetup).getALaCarteServiceInstance(service, requestDetails, customer,
429 project, owningEntity, lookupKeyMap, resourceId, Boolean.TRUE.equals(executeBB.isaLaCarte()),
430 executeBB.getBuildingBlock().getBpmnFlowName());
431 doReturn(expected).when(SPY_bbInputSetup).populateGBBWithSIAndAdditionalInfo(requestDetails, serviceInstance,
432 executeBB, requestAction, customer);
434 GeneralBuildingBlock actual = SPY_bbInputSetup.getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
435 requestAction, resourceId);
437 assertThat(actual, sameBeanAs(expected));
441 public void testGetGBBALaCarteServiceFindServiceByModelVersionId() throws Exception {
442 GeneralBuildingBlock expected = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
443 GeneralBuildingBlock.class);
444 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
445 ExecuteBuildingBlock.class);
446 RequestDetails requestDetails = mapper.readValue(
447 new File(RESOURCE_PATH + "RequestDetailsInput_withRelatedInstanceList.json"), RequestDetails.class);
448 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
450 org.onap.so.serviceinstancebeans.Project requestProject = new org.onap.so.serviceinstancebeans.Project();
451 org.onap.so.serviceinstancebeans.OwningEntity requestOwningEntity = new org.onap.so.serviceinstancebeans.OwningEntity();
452 requestDetails.setProject(requestProject);
453 requestDetails.setOwningEntity(requestOwningEntity);
455 Service service = Mockito.mock(Service.class);
456 Customer customer = Mockito.mock(Customer.class);
457 ServiceSubscription serviceSubscription = Mockito.mock(ServiceSubscription.class);
458 Project project = Mockito.mock(Project.class);
459 OwningEntity owningEntity = Mockito.mock(OwningEntity.class);
460 ServiceInstance serviceInstance = Mockito.mock(ServiceInstance.class);
461 String resourceId = "123";
462 String requestAction = "createInstance";
463 executeBB.setaLaCarte(true);
464 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.SERVICE_INSTANCE.toString());
465 org.onap.aai.domain.yang.CloudRegion aaiCloudRegion = Mockito.mock(org.onap.aai.domain.yang.CloudRegion.class);
467 doReturn(null).when(SPY_bbInputSetupUtils)
468 .getCatalogServiceByModelUUID(requestDetails.getModelInfo().getModelVersionId());
469 doReturn(service).when(SPY_bbInputSetupUtils).getCatalogServiceByModelVersionAndModelInvariantUUID(
470 requestDetails.getModelInfo().getModelVersion(), requestDetails.getModelInfo().getModelInvariantId());
471 doReturn(aaiCloudRegion).when(SPY_bbInputSetupUtils).getCloudRegion(requestDetails.getCloudConfiguration(), "att-aic");
472 doReturn(project).when(bbInputSetupMapperLayer).mapRequestProject(requestDetails.getProject());
473 doReturn(owningEntity).when(bbInputSetupMapperLayer)
474 .mapRequestOwningEntity(requestDetails.getOwningEntity());
476 doReturn(customer).when(SPY_bbInputSetup).getCustomerAndServiceSubscription(requestDetails, resourceId);
477 doReturn(serviceSubscription).when(SPY_bbInputSetup).getServiceSubscription(requestDetails, customer);
478 doReturn(serviceInstance).when(SPY_bbInputSetup).getALaCarteServiceInstance(service, requestDetails, customer,
479 project, owningEntity, lookupKeyMap, resourceId, Boolean.TRUE.equals(executeBB.isaLaCarte()),
480 executeBB.getBuildingBlock().getBpmnFlowName());
481 doReturn(expected).when(SPY_bbInputSetup).populateGBBWithSIAndAdditionalInfo(requestDetails, serviceInstance,
482 executeBB, requestAction,customer);
484 GeneralBuildingBlock actual = SPY_bbInputSetup.getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
485 requestAction, resourceId);
487 assertThat(actual, sameBeanAs(expected));
491 public void testGetGBBALaCarteServiceNoProjectNoOE() throws Exception {
492 GeneralBuildingBlock expected = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
493 GeneralBuildingBlock.class);
494 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
495 ExecuteBuildingBlock.class);
496 RequestDetails requestDetails = mapper.readValue(
497 new File(RESOURCE_PATH + "RequestDetailsInput_withRelatedInstanceList.json"), RequestDetails.class);
498 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
500 Service service = Mockito.mock(Service.class);
501 Customer customer = Mockito.mock(Customer.class);
502 ServiceSubscription serviceSubscription = Mockito.mock(ServiceSubscription.class);
503 ServiceInstance serviceInstance = Mockito.mock(ServiceInstance.class);
504 String resourceId = "123";
505 String requestAction = "createInstance";
506 executeBB.setaLaCarte(true);
507 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.SERVICE_INSTANCE.toString());
508 org.onap.aai.domain.yang.CloudRegion aaiCloudRegion = Mockito.mock(org.onap.aai.domain.yang.CloudRegion.class);
510 Map<String, String> uriKeys = new HashMap<>();
511 uriKeys.put("global-customer-id", "globalCustomerId");
512 uriKeys.put("service-type", "serviceType");
513 doReturn(uriKeys).when(SPY_bbInputSetupUtils)
514 .getURIKeysFromServiceInstance(resourceId);
515 doReturn(service).when(SPY_bbInputSetupUtils)
516 .getCatalogServiceByModelUUID(requestDetails.getModelInfo().getModelVersionId());
517 doReturn(aaiCloudRegion).when(SPY_bbInputSetupUtils).getCloudRegion(requestDetails.getCloudConfiguration(), "att-aic");
519 doReturn(customer).when(SPY_bbInputSetup).getCustomerAndServiceSubscription(requestDetails, resourceId);
520 doReturn(serviceSubscription).when(SPY_bbInputSetup).getServiceSubscription(requestDetails, customer);
521 doReturn(serviceInstance).when(SPY_bbInputSetup).getALaCarteServiceInstance(service, requestDetails, customer,
522 null, null, lookupKeyMap, resourceId, Boolean.TRUE.equals(executeBB.isaLaCarte()),
523 executeBB.getBuildingBlock().getBpmnFlowName());
524 doReturn(expected).when(SPY_bbInputSetup).populateGBBWithSIAndAdditionalInfo(requestDetails, serviceInstance,
525 executeBB, requestAction,customer);
527 GeneralBuildingBlock actual = SPY_bbInputSetup.getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
528 requestAction, resourceId);
530 assertThat(actual, sameBeanAs(expected));
534 public void testGetServiceInstanceHelperCreateScenario() throws Exception {
535 RequestDetails requestDetails = new RequestDetails();
536 RequestInfo requestInfo = new RequestInfo();
537 requestInfo.setInstanceName("SharansInstanceName");
538 requestDetails.setRequestInfo(requestInfo);
539 Customer customer = new Customer();
540 String serviceInstanceId = "SharansInstanceId";
541 boolean aLaCarte = true;
542 ServiceInstance expected = new ServiceInstance();
543 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
544 Service service = new Service();
545 service.setModelUUID("modelUUID");
546 String bbName = AssignFlows.SERVICE_INSTANCE.toString();
548 doReturn(null).when(SPY_bbInputSetupUtils).getAAIServiceInstanceByName(requestInfo.getInstanceName(), customer);
549 doReturn(null).when(SPY_bbInputSetupUtils).getAAIServiceInstanceById(serviceInstanceId);
552 doReturn(expected).when(SPY_bbInputSetup).createServiceInstance(requestDetails, null, null,
553 lookupKeyMap, serviceInstanceId);
555 ServiceInstance actual = SPY_bbInputSetup.getServiceInstanceHelper(requestDetails, customer, null, null,
556 lookupKeyMap, serviceInstanceId, aLaCarte, service, bbName);
557 assertThat(actual, sameBeanAs(expected));
561 public void testGetServiceInstanceHelperCreateScenarioExisting() throws Exception {
562 RequestDetails requestDetails = new RequestDetails();
563 RequestInfo requestInfo = new RequestInfo();
564 requestInfo.setInstanceName("SharansInstanceName");
565 requestDetails.setRequestInfo(requestInfo);
566 Customer customer = new Customer();
567 String serviceInstanceId = "SharansInstanceId";
568 boolean aLaCarte = true;
569 Service service = new Service();
570 service.setModelUUID("modelUUID");
571 ServiceInstance expected = new ServiceInstance();
572 org.onap.aai.domain.yang.ServiceInstance serviceInstanceAAI = new org.onap.aai.domain.yang.ServiceInstance();
573 serviceInstanceAAI.setModelVersionId("modelUUID");
574 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
575 String bbName = AssignFlows.SERVICE_INSTANCE.toString();
577 doReturn(serviceInstanceAAI).when(SPY_bbInputSetupUtils)
578 .getAAIServiceInstanceByName(requestInfo.getInstanceName(), customer);
579 doReturn(expected).when(SPY_bbInputSetup).getExistingServiceInstance(serviceInstanceAAI);
581 ServiceInstance actual = SPY_bbInputSetup.getServiceInstanceHelper(requestDetails, customer, null, null,
582 lookupKeyMap, serviceInstanceId, aLaCarte, service, bbName);
583 assertThat(actual, sameBeanAs(expected));
587 public void testGetServiceInstanceHelperCreateScenarioExistingNoNameButWithId() throws Exception {
588 RequestDetails requestDetails = new RequestDetails();
589 RequestInfo requestInfo = new RequestInfo();
590 requestInfo.setInstanceName("SharansInstanceName");
591 requestDetails.setRequestInfo(requestInfo);
592 Customer customer = new Customer();
593 String serviceInstanceId = "SharansInstanceId";
594 boolean aLaCarte = true;
595 Service service = new Service();
596 service.setModelUUID("modelUUID");
597 ServiceInstance expected = new ServiceInstance();
598 org.onap.aai.domain.yang.ServiceInstance serviceInstanceAAI = new org.onap.aai.domain.yang.ServiceInstance();
599 serviceInstanceAAI.setModelVersionId("modelUUID");
600 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
601 String bbName = "ActivateServiceInstanceBB";
603 doReturn(serviceInstanceAAI).when(SPY_bbInputSetupUtils).getAAIServiceInstanceById(serviceInstanceId);
604 doReturn(expected).when(SPY_bbInputSetup).getExistingServiceInstance(serviceInstanceAAI);
606 ServiceInstance actual = SPY_bbInputSetup.getServiceInstanceHelper(requestDetails, customer, null, null,
607 lookupKeyMap, serviceInstanceId, aLaCarte, service, bbName);
608 assertThat(actual, sameBeanAs(expected));
612 public void testGetServiceInstanceHelperCreateScenarioExistingNoNameButWithIdDifferentModel() throws Exception {
613 RequestDetails requestDetails = new RequestDetails();
614 RequestInfo requestInfo = new RequestInfo();
615 requestDetails.setRequestInfo(requestInfo);
616 Customer customer = new Customer();
617 String serviceInstanceId = "SharansInstanceId";
618 boolean aLaCarte = true;
619 Service service = new Service();
620 service.setModelUUID("modelUUID");
621 ServiceInstance expected = new ServiceInstance();
622 org.onap.aai.domain.yang.ServiceInstance serviceInstanceAAI = new org.onap.aai.domain.yang.ServiceInstance();
623 serviceInstanceAAI.setModelVersionId("modelUUIDDifferent");
624 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
625 String bbName = "ActivateServiceInstanceBB";
626 Service differentService = new Service();
627 differentService.setModelUUID("modelUUIDDifferent");
629 doReturn(serviceInstanceAAI).when(SPY_bbInputSetupUtils).getAAIServiceInstanceById(serviceInstanceId);
630 doReturn(differentService).when(SPY_bbInputSetupUtils)
631 .getCatalogServiceByModelUUID(serviceInstanceAAI.getModelVersionId());
632 doReturn(expected).when(SPY_bbInputSetup).getExistingServiceInstance(serviceInstanceAAI);
634 ServiceInstance actual = SPY_bbInputSetup.getServiceInstanceHelper(requestDetails, customer, null, null,
635 lookupKeyMap, serviceInstanceId, aLaCarte, service, bbName);
636 assertThat(actual, sameBeanAs(expected));
639 @Test(expected = Exception.class)
640 public void testGetServiceInstanceHelperCreateScenarioExistingNoNameButWithIdExceptionThrown() throws Exception {
641 RequestDetails requestDetails = new RequestDetails();
642 RequestInfo requestInfo = new RequestInfo();
643 requestDetails.setRequestInfo(requestInfo);
644 Customer customer = new Customer();
645 String serviceInstanceId = "SharansInstanceId";
646 boolean aLaCarte = true;
647 Service service = new Service();
648 service.setModelUUID("modelUUID");
649 org.onap.aai.domain.yang.ServiceInstance serviceInstanceAAI = new org.onap.aai.domain.yang.ServiceInstance();
650 serviceInstanceAAI.setModelVersionId("modelUUIDDifferent");
651 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
652 String bbName = AssignFlows.SERVICE_INSTANCE.toString();
654 ServiceInstance actual = SPY_bbInputSetup.getServiceInstanceHelper(requestDetails, customer, null, null,
655 lookupKeyMap, serviceInstanceId, aLaCarte, service, bbName);
659 public void testPopulateObjectsOnAssignAndCreateFlows() throws Exception {
660 String bbName = AssignFlows.SERVICE_INSTANCE.toString();
661 String instanceName = "instanceName";
662 String vnfType = "vnfType";
663 String resourceId = "networkId";
664 Service service = Mockito.mock(Service.class);
665 ServiceInstance serviceInstance = Mockito.mock(ServiceInstance.class);
666 RequestDetails requestDetails = Mockito.mock(RequestDetails.class);
667 ModelInfo modelInfo = Mockito.mock(ModelInfo.class);
668 RequestInfo requestInfo = Mockito.mock(RequestInfo.class);
669 RelatedInstanceList[] relatedInstanceList = new RelatedInstanceList[] {};
670 CloudConfiguration cloudConfiguration = new CloudConfiguration();
671 org.onap.so.serviceinstancebeans.Platform platform = Mockito
672 .mock(org.onap.so.serviceinstancebeans.Platform.class);
673 org.onap.so.serviceinstancebeans.LineOfBusiness lineOfBusiness = Mockito
674 .mock(org.onap.so.serviceinstancebeans.LineOfBusiness.class);
675 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
677 doNothing().when(SPY_bbInputSetup).populateL3Network(instanceName, modelInfo, service, bbName, serviceInstance,
678 lookupKeyMap, resourceId, null);
679 doReturn(modelInfo).when(requestDetails).getModelInfo();
680 doReturn(requestInfo).when(requestDetails).getRequestInfo();
681 doReturn(instanceName).when(requestInfo).getInstanceName();
682 doReturn(platform).when(requestDetails).getPlatform();
683 doReturn(lineOfBusiness).when(requestDetails).getLineOfBusiness();
684 doReturn(relatedInstanceList).when(requestDetails).getRelatedInstanceList();
685 doReturn(cloudConfiguration).when(requestDetails).getCloudConfiguration();
687 doReturn(ModelType.network).when(modelInfo).getModelType();
688 SPY_bbInputSetup.populateObjectsOnAssignAndCreateFlows(requestDetails, service, bbName, serviceInstance,
689 lookupKeyMap, resourceId, vnfType);
690 verify(SPY_bbInputSetup, times(1)).populateL3Network(instanceName, modelInfo, service, bbName, serviceInstance,
691 lookupKeyMap, resourceId, null);
692 assertEquals("NetworkId populated", true, lookupKeyMap.get(ResourceKey.NETWORK_ID).equalsIgnoreCase(resourceId));
694 doReturn(ModelType.vnf).when(modelInfo).getModelType();
695 resourceId = "vnfId";
696 doNothing().when(SPY_bbInputSetup).populateGenericVnf(modelInfo, instanceName, platform, lineOfBusiness,
697 service, bbName, serviceInstance, lookupKeyMap, relatedInstanceList, resourceId, vnfType, null);
698 SPY_bbInputSetup.populateObjectsOnAssignAndCreateFlows(requestDetails, service, bbName, serviceInstance,
699 lookupKeyMap, resourceId, vnfType);
700 verify(SPY_bbInputSetup, times(1)).populateGenericVnf(modelInfo, instanceName, platform, lineOfBusiness,
701 service, bbName, serviceInstance, lookupKeyMap, relatedInstanceList, resourceId, vnfType, null);
702 assertEquals("VnfId populated", true, lookupKeyMap.get(ResourceKey.GENERIC_VNF_ID).equalsIgnoreCase(resourceId));
704 doReturn(ModelType.volumeGroup).when(modelInfo).getModelType();
705 resourceId = "volumeGroupId";
706 doNothing().when(SPY_bbInputSetup).populateVolumeGroup(modelInfo, service, bbName, serviceInstance,
707 lookupKeyMap, resourceId, relatedInstanceList, instanceName, vnfType, null);
708 SPY_bbInputSetup.populateObjectsOnAssignAndCreateFlows(requestDetails, service, bbName, serviceInstance,
709 lookupKeyMap, resourceId, vnfType);
710 verify(SPY_bbInputSetup, times(1)).populateVolumeGroup(modelInfo, service, bbName, serviceInstance,
711 lookupKeyMap, resourceId, relatedInstanceList, instanceName, vnfType, null);
712 assertEquals("VolumeGroupId populated", true, lookupKeyMap.get(ResourceKey.VOLUME_GROUP_ID).equalsIgnoreCase(resourceId));
714 doReturn(ModelType.vfModule).when(modelInfo).getModelType();
715 resourceId = "vfModuleId";
716 doNothing().when(SPY_bbInputSetup).populateVfModule(modelInfo, service, bbName, serviceInstance, lookupKeyMap,
717 resourceId, relatedInstanceList, instanceName, null, cloudConfiguration);
718 SPY_bbInputSetup.populateObjectsOnAssignAndCreateFlows(requestDetails, service, bbName, serviceInstance,
719 lookupKeyMap, resourceId, vnfType);
720 verify(SPY_bbInputSetup, times(1)).populateVfModule(modelInfo, service, bbName, serviceInstance, lookupKeyMap,
721 resourceId, relatedInstanceList, instanceName, null, cloudConfiguration);
722 assertEquals("VfModuleId populated", true, lookupKeyMap.get(ResourceKey.VF_MODULE_ID).equalsIgnoreCase(resourceId));
726 public void testPopulateGBBWithSIAndAdditionalInfo() throws Exception {
727 GeneralBuildingBlock expected = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
728 GeneralBuildingBlock.class);
729 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
730 ExecuteBuildingBlock.class);
731 RequestDetails requestDetails = mapper.readValue(
732 new File(RESOURCE_PATH + "RequestDetailsInput_withRelatedInstanceList.json"), RequestDetails.class);
733 RequestContext requestContext = mapper.readValue(new File(RESOURCE_PATH + "RequestContextExpected.json"),
734 RequestContext.class);
735 ServiceInstance serviceInstance = mapper.readValue(
736 new File(RESOURCE_PATH + "ServiceInstance_getServiceInstanceNOAAIExpected.json"),
737 ServiceInstance.class);
739 OrchestrationContext orchestrationContext = new OrchestrationContext();
740 orchestrationContext.setIsRollbackEnabled(false);
742 CloudRegion cloudRegion = new CloudRegion();
743 cloudRegion.setCloudOwner("att-aic");
744 cloudRegion.setLcpCloudRegionId("lcpCloudRegionId");
745 cloudRegion.setComplex("complexName");
746 cloudRegion.setTenantId("tenantId");
748 Map<String, String> uriKeys = new HashMap<>();
749 uriKeys.put("global-customer-id","global-customer-id");
750 uriKeys.put("service-type","service-type");
752 Customer customer = new Customer();
753 ServiceSubscription serviceSubscription = new ServiceSubscription();
754 serviceSubscription.setServiceType("subscriptionServiceType");
755 customer.setGlobalCustomerId("globalCustomerId");
756 customer.setSubscriberName("subscriberName");
757 customer.setSubscriberType("subscriberType");
758 customer.setServiceSubscription(serviceSubscription);
760 org.onap.aai.domain.yang.CloudRegion aaiCloudRegion = Mockito.mock(org.onap.aai.domain.yang.CloudRegion.class);
762 String requestAction = "createInstance";
764 doReturn(uriKeys).when(SPY_bbInputSetupUtils).getURIKeysFromServiceInstance(serviceInstance.getServiceInstanceId());
765 doReturn(customer).when(SPY_bbInputSetup).mapCustomer(uriKeys.get("global-customer-id"),uriKeys.get("service-type"));
766 doReturn(aaiCloudRegion).when(SPY_bbInputSetupUtils).getCloudRegion(requestDetails.getCloudConfiguration(), "att-aic");
767 doReturn(orchestrationContext).when(bbInputSetupMapperLayer).mapOrchestrationContext(requestDetails);
768 doReturn(requestContext).when(bbInputSetupMapperLayer).mapRequestContext(requestDetails);
769 doReturn(cloudRegion).when(bbInputSetupMapperLayer).mapCloudRegion(requestDetails.getCloudConfiguration(), aaiCloudRegion,
772 GeneralBuildingBlock actual = SPY_bbInputSetup.populateGBBWithSIAndAdditionalInfo(requestDetails,
773 serviceInstance, executeBB, requestAction, null);
775 assertThat(actual, sameBeanAs(expected));
779 public void testGetServiceInstanceNOAAI() throws Exception {
780 ServiceInstance expected = mapper.readValue(
781 new File(RESOURCE_PATH + "ServiceInstance_getServiceInstanceNOAAIExpected.json"),
782 ServiceInstance.class);
783 Service service = mapper.readValue(
784 new File(RESOURCE_PATH + "CatalogDBService_getServiceInstanceNOAAIInput.json"), Service.class);
785 Customer customer = mapper.readValue(new File(RESOURCE_PATH + "Customer.json"), Customer.class);
786 Project project = mapper.readValue(new File(RESOURCE_PATH + "Project.json"), Project.class);
787 OwningEntity owningEntity = mapper.readValue(new File(RESOURCE_PATH + "OwningEntity.json"), OwningEntity.class);
788 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
790 ExecuteBuildingBlock executeBB = new ExecuteBuildingBlock();
791 executeBB.setaLaCarte(true);
792 BuildingBlock buildingBlock = new BuildingBlock();
793 buildingBlock.setBpmnFlowName(AssignFlows.SERVICE_INSTANCE.toString());
794 executeBB.setBuildingBlock(buildingBlock);
795 RequestDetails requestDetails = new RequestDetails();
796 RequestInfo reqInfo = new RequestInfo();
797 reqInfo.setInstanceName("serviceInstanceName");
798 requestDetails.setRequestInfo(reqInfo);
799 ModelInfo modelInfo = new ModelInfo();
800 modelInfo.setModelType(ModelType.service);
801 requestDetails.setModelInfo(modelInfo);
802 doReturn(null).when(SPY_bbInputSetupUtils)
803 .getAAIServiceInstanceByName(requestDetails.getRequestInfo().getInstanceName(), customer);
804 doReturn(expected.getModelInfoServiceInstance()).when(bbInputSetupMapperLayer)
805 .mapCatalogServiceIntoServiceInstance(service);
806 doReturn(null).when(SPY_bbInputSetupUtils).getAAIServiceInstanceById(any(String.class));
807 String serviceInstanceId = "3655a595-05d1-433c-93c0-3afd6b572545";
808 boolean aLaCarte = true;
810 ServiceInstance actual = SPY_bbInputSetup.getALaCarteServiceInstance(service, requestDetails, customer, project,
811 owningEntity, lookupKeyMap, serviceInstanceId, aLaCarte,
812 executeBB.getBuildingBlock().getBpmnFlowName());
814 assertThat(actual, sameBeanAs(expected));
818 public void testGetServiceSubscription() throws IOException {
819 ServiceSubscription expected = new ServiceSubscription();
820 RequestDetails requestDetails = new RequestDetails();
821 RequestParameters params = new RequestParameters();
822 params.setSubscriptionServiceType("subscriptionServiceType");
823 requestDetails.setRequestParameters(params);
824 org.onap.aai.domain.yang.ServiceSubscription aaiServiceSubscription = new org.onap.aai.domain.yang.ServiceSubscription();
825 Customer customer = new Customer();
826 customer.setGlobalCustomerId("globalCustomerId");
827 doReturn(aaiServiceSubscription).when(SPY_bbInputSetupUtils).getAAIServiceSubscription(
828 customer.getGlobalCustomerId(), requestDetails.getRequestParameters().getSubscriptionServiceType());
829 doReturn(expected).when(bbInputSetupMapperLayer).mapAAIServiceSubscription(aaiServiceSubscription);
831 ServiceSubscription actual = SPY_bbInputSetup.getServiceSubscription(requestDetails, customer);
832 assertThat(actual, sameBeanAs(expected));
836 public void testGetCustomer() throws IOException {
837 Customer expected = new Customer();
838 RequestDetails requestDetails = new RequestDetails();
839 SubscriberInfo subscriberInfo = new SubscriberInfo();
840 subscriberInfo.setGlobalSubscriberId("globalSubscriberId");
841 requestDetails.setSubscriberInfo(subscriberInfo);
842 org.onap.aai.domain.yang.Customer aaiCustomer = new org.onap.aai.domain.yang.Customer();
843 doReturn(aaiCustomer).when(SPY_bbInputSetupUtils)
844 .getAAICustomer(requestDetails.getSubscriberInfo().getGlobalSubscriberId());
845 doReturn(expected).when(bbInputSetupMapperLayer).mapAAICustomer(aaiCustomer);
847 Customer actual = SPY_bbInputSetup.getCustomerFromRequest(requestDetails);
848 assertThat(actual, sameBeanAs(expected));
852 public void testGetExistingServiceInstance() throws Exception {
853 org.onap.aai.domain.yang.ServiceInstance serviceInstanceAAI = new org.onap.aai.domain.yang.ServiceInstance();
854 ServiceInstance expected = new ServiceInstance();
856 doReturn(expected).when(bbInputSetupMapperLayer)
857 .mapAAIServiceInstanceIntoServiceInstance(serviceInstanceAAI);
859 doNothing().when(SPY_bbInputSetup).addRelationshipsToSI(serviceInstanceAAI, expected);
861 ServiceInstance actual = SPY_bbInputSetup.getExistingServiceInstance(serviceInstanceAAI);
862 assertThat(actual, sameBeanAs(expected));
866 public void testPopulateNetworkCollectionAndInstanceGroupAssign() throws Exception {
867 Service service = Mockito.mock(Service.class);
868 String key = "collectionCustId";
869 ServiceInstance serviceInstance = mapper.readValue(
870 new File(RESOURCE_PATH + "ServiceInstance_getServiceInstanceNOAAIExpected.json"),
871 ServiceInstance.class);
872 String resourceId = "123";
873 Collection collection = SPY_bbInputSetup.createCollection(resourceId);
874 InstanceGroup instanceGroup = SPY_bbInputSetup.createInstanceGroup();
875 assertNull(serviceInstance.getCollection());
876 doReturn(true).when(SPY_bbInputSetup).isVlanTagging(service, key);
877 doReturn(collection).when(SPY_bbInputSetup).createCollection(resourceId);
878 doReturn(instanceGroup).when(SPY_bbInputSetup).createInstanceGroup();
879 doNothing().when(SPY_bbInputSetup).mapCatalogCollection(service, collection, key);
880 doNothing().when(SPY_bbInputSetup).mapCatalogNetworkCollectionInstanceGroup(service,
881 collection.getInstanceGroup(), key);
882 NetworkCollectionResourceCustomization networkCollection = new NetworkCollectionResourceCustomization();
883 networkCollection.setModelCustomizationUUID(key);
884 networkCollection.setCollectionResource(new CollectionResource());
885 networkCollection.getCollectionResource().setInstanceGroup(new org.onap.so.db.catalog.beans.InstanceGroup());
886 networkCollection.getCollectionResource().getInstanceGroup().setToscaNodeType("NetworkCollectionResource");
887 networkCollection.getCollectionResource().getInstanceGroup().setType(InstanceGroupType.L3_NETWORK);
888 networkCollection.getCollectionResource().getInstanceGroup().setCollectionInstanceGroupCustomizations(new ArrayList<>());
889 List<CollectionResourceCustomization> customizations = new ArrayList<>();
890 customizations.add(networkCollection);
891 doReturn(customizations).when(service).getCollectionResourceCustomizations();
893 SPY_bbInputSetup.populateNetworkCollectionAndInstanceGroupAssign(service,
894 AssignFlows.NETWORK_COLLECTION.toString(), serviceInstance, resourceId, key);
896 assertNotNull(serviceInstance.getCollection());
897 assertNotNull(serviceInstance.getCollection().getInstanceGroup());
899 verify(SPY_bbInputSetup, times(1)).mapCatalogCollection(service, serviceInstance.getCollection(), key);
900 verify(SPY_bbInputSetup, times(1)).mapCatalogNetworkCollectionInstanceGroup(service,
901 serviceInstance.getCollection().getInstanceGroup(), key);
905 public void testIsVlanTagging() throws Exception {
906 boolean expected = true;
907 Service service = Mockito.mock(Service.class);
908 String key = "collectionCustId";
909 NetworkCollectionResourceCustomization networkCollection = new NetworkCollectionResourceCustomization();
910 networkCollection.setModelCustomizationUUID(key);
911 networkCollection.setCollectionResource(new CollectionResource());
912 networkCollection.getCollectionResource().setInstanceGroup(new org.onap.so.db.catalog.beans.InstanceGroup());
913 networkCollection.getCollectionResource().getInstanceGroup().setToscaNodeType("org.openecomp.resource.cr.NetworkCollectionResource1806");
914 List<CollectionResourceCustomization> customizations = new ArrayList<>();
915 customizations.add(networkCollection);
916 doReturn(customizations).when(service).getCollectionResourceCustomizations();
917 boolean actual = SPY_bbInputSetup.isVlanTagging(service, key);
918 assertEquals("Is Vlan Tagging check.", expected, actual);
922 public void testPopulateVolumeGroup() throws Exception {
923 RequestDetails requestDetails = new RequestDetails();
924 RelatedInstanceList ril = new RelatedInstanceList();
925 RelatedInstance ri = new RelatedInstance();
926 ModelInfo mi = new ModelInfo();
927 mi.setModelType(ModelType.vnf);
928 mi.setModelCustomizationUuid("vnfModelCustomizationUUID");
930 ril.setRelatedInstance(ri);
931 requestDetails.setRelatedInstanceList(new RelatedInstanceList[] { ril });
933 ModelInfo modelInfo = new ModelInfo();
934 modelInfo.setModelType(ModelType.volumeGroup);
936 RequestInfo reqInfo = new RequestInfo();
937 reqInfo.setInstanceName("volumeGroupName");
938 requestDetails.setModelInfo(modelInfo);
939 requestDetails.setRequestInfo(reqInfo);
941 ServiceInstance serviceInstance = new ServiceInstance();
942 GenericVnf vnf = new GenericVnf();
943 vnf.setVnfId("genericVnfId");
945 VolumeGroup vg = new VolumeGroup();
946 vg.setVolumeGroupName("volumeGroupName");
947 vg.setVolumeGroupId("volumeGroupId");
948 vnf.getVolumeGroups().add(vg);
949 serviceInstance.getVnfs().add(vnf);
951 Service service = mapper.readValue(
952 new File(RESOURCE_PATH + "CatalogDBService_getServiceInstanceNOAAIInput.json"), Service.class);
953 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
954 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "genericVnfId");
956 String bbName = AssignFlows.VOLUME_GROUP.toString();
957 String resourceId = "123";
958 doNothing().when(SPY_bbInputSetup).mapCatalogVolumeGroup(isA(VolumeGroup.class), eq(modelInfo),
959 eq(service), eq("vnfModelCustomizationUUID"));
960 org.onap.aai.domain.yang.GenericVnf aaiGenericVnf = new org.onap.aai.domain.yang.GenericVnf();
961 aaiGenericVnf.setModelCustomizationId("vnfModelCustomizationUUID");
962 doReturn(aaiGenericVnf).when(SPY_bbInputSetupUtils).getAAIGenericVnf(vnf.getVnfId());
964 lookupKeyMap.put(ResourceKey.VOLUME_GROUP_ID, "volumeGroupId");
965 SPY_bbInputSetup.populateVolumeGroup(modelInfo, service, bbName, serviceInstance, lookupKeyMap, resourceId,
966 requestDetails.getRelatedInstanceList(), reqInfo.getInstanceName(), null, null);
967 verify(SPY_bbInputSetup, times(1)).mapCatalogVolumeGroup(vg, modelInfo, service, "vnfModelCustomizationUUID");
968 vnf.getVolumeGroups().clear();
969 SPY_bbInputSetup.populateVolumeGroup(modelInfo, service, bbName, serviceInstance, lookupKeyMap, resourceId,
970 requestDetails.getRelatedInstanceList(), reqInfo.getInstanceName(), null, null);
971 verify(SPY_bbInputSetup, times(1)).mapCatalogVolumeGroup(vnf.getVolumeGroups().get(0), modelInfo, service,
972 "vnfModelCustomizationUUID");
976 public void testMapCatalogVolumeGroup() {
977 VolumeGroup volumeGroup = new VolumeGroup();
978 RequestDetails requestDetails = new RequestDetails();
979 ModelInfo modelInfo = new ModelInfo();
980 modelInfo.setModelCustomizationUuid("modelCustomizationUUID");
981 requestDetails.setModelInfo(modelInfo);
982 Service service = new Service();
983 VnfResourceCustomization resourceCust = new VnfResourceCustomization();
984 resourceCust.setModelCustomizationUUID("vnfModelCustomizationUUID");
985 service.getVnfCustomizations().add(resourceCust);
986 VfModuleCustomization vfResourceCust = new VfModuleCustomization();
987 vfResourceCust.setModelCustomizationUUID("modelCustomizationUUID");
988 ModelInfoVfModule modelInfoVfModule = new ModelInfoVfModule();
989 resourceCust.getVfModuleCustomizations().add(vfResourceCust);
991 doReturn(modelInfoVfModule).when(bbInputSetupMapperLayer).mapCatalogVfModuleToVfModule(vfResourceCust);
993 SPY_bbInputSetup.mapCatalogVolumeGroup(volumeGroup, modelInfo, service, "vnfModelCustomizationUUID");
995 assertEquals(modelInfoVfModule, volumeGroup.getModelInfoVfModule());
999 public void testPopulateL3Network() throws JsonParseException, JsonMappingException, IOException {
1000 String instanceName = "networkName";
1001 ModelInfo modelInfo = new ModelInfo();
1002 modelInfo.setModelType(ModelType.network);
1004 ServiceInstance serviceInstance = new ServiceInstance();
1005 L3Network network = new L3Network();
1006 network.setNetworkId("networkId");
1007 network.setNetworkName("networkName");
1008 serviceInstance.getNetworks().add(network);
1009 String resourceId = "123";
1011 Service service = mapper.readValue(
1012 new File(RESOURCE_PATH + "CatalogDBService_getServiceInstanceNOAAIInput.json"), Service.class);
1013 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
1014 lookupKeyMap.put(ResourceKey.NETWORK_ID, "networkId");
1015 String bbName = AssignFlows.NETWORK_A_LA_CARTE.toString();
1017 doNothing().when(SPY_bbInputSetup).mapCatalogNetwork(network, modelInfo, service);
1019 SPY_bbInputSetup.populateL3Network(instanceName, modelInfo, service, bbName, serviceInstance, lookupKeyMap,
1022 lookupKeyMap.put(ResourceKey.NETWORK_ID, null);
1024 SPY_bbInputSetup.populateL3Network(instanceName, modelInfo, service, bbName, serviceInstance, lookupKeyMap,
1026 verify(SPY_bbInputSetup, times(1)).mapCatalogNetwork(network, modelInfo, service);
1028 instanceName = "networkName2";
1029 L3Network network2 = SPY_bbInputSetup.createNetwork(lookupKeyMap, instanceName, resourceId, null);
1030 doReturn(network2).when(SPY_bbInputSetup).createNetwork(lookupKeyMap, instanceName, resourceId, null);
1031 SPY_bbInputSetup.populateL3Network(instanceName, modelInfo, service, bbName, serviceInstance, lookupKeyMap,
1033 verify(SPY_bbInputSetup, times(2)).mapCatalogNetwork(network2, modelInfo, service);
1037 public void testMapCatalogNetwork() {
1038 ModelInfoNetwork modelInfoNetwork = new ModelInfoNetwork();
1039 L3Network network = new L3Network();
1041 RequestDetails requestDetails = new RequestDetails();
1042 ModelInfo modelInfo = new ModelInfo();
1043 modelInfo.setModelCustomizationUuid("modelCustomizationUUID");
1044 requestDetails.setModelInfo(modelInfo);
1045 Service service = new Service();
1046 NetworkResourceCustomization resourceCust = new NetworkResourceCustomization();
1047 resourceCust.setModelCustomizationUUID("modelCustomizationUUID");
1048 service.setNetworkCustomizations(Arrays.asList(new NetworkResourceCustomization[] { resourceCust }));
1050 doReturn(modelInfoNetwork).when(bbInputSetupMapperLayer).mapCatalogNetworkToNetwork(resourceCust);
1052 SPY_bbInputSetup.mapCatalogNetwork(network, modelInfo, service);
1054 assertEquals(modelInfoNetwork, network.getModelInfoNetwork());
1058 public void testPopulateConfiguration() throws JsonParseException, JsonMappingException, IOException {
1059 String instanceName = "configurationName";
1060 ModelInfo modelInfo = new ModelInfo();
1061 modelInfo.setModelCustomizationUuid("72d9d1cd-f46d-447a-abdb-451d6fb05fa9");
1063 ServiceInstance serviceInstance = new ServiceInstance();
1064 Configuration configuration = new Configuration();
1065 configuration.setConfigurationId("configurationId");
1066 configuration.setConfigurationName("configurationName");
1067 serviceInstance.getConfigurations().add(configuration);
1068 String resourceId = "configurationId";
1070 Service service = mapper.readValue(
1071 new File(RESOURCE_PATH + "CatalogDBService_getServiceInstanceNOAAIInput.json"), Service.class);
1072 ConfigurationResourceCustomization configurationCust = new ConfigurationResourceCustomization();
1073 configurationCust.setModelCustomizationUUID("72d9d1cd-f46d-447a-abdb-451d6fb05fa9");
1074 service.getConfigurationCustomizations().add(configurationCust);
1075 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
1076 lookupKeyMap.put(ResourceKey.CONFIGURATION_ID, "configurationId");
1077 String bbName = AssignFlows.FABRIC_CONFIGURATION.toString();
1078 ConfigurationResourceKeys configResourceKeys = new ConfigurationResourceKeys();
1079 configResourceKeys.setCvnfcCustomizationUUID("cvnfcCustomizationUUID");
1080 configResourceKeys.setVfModuleCustomizationUUID("vfModuleCustomizationUUID");
1081 configResourceKeys.setVnfResourceCustomizationUUID("vnfResourceCustomizationUUID");
1083 doNothing().when(SPY_bbInputSetup).mapCatalogConfiguration(configuration, modelInfo, service, configResourceKeys);
1085 SPY_bbInputSetup.populateConfiguration(modelInfo, service, bbName, serviceInstance, lookupKeyMap, resourceId,
1086 instanceName, configResourceKeys);
1087 verify(SPY_bbInputSetup, times(1)).mapCatalogConfiguration(configuration, modelInfo, service, configResourceKeys);
1089 lookupKeyMap.put(ResourceKey.CONFIGURATION_ID, null);
1091 SPY_bbInputSetup.populateConfiguration(modelInfo, service, bbName, serviceInstance, lookupKeyMap, resourceId,
1092 instanceName, configResourceKeys);
1093 verify(SPY_bbInputSetup, times(2)).mapCatalogConfiguration(configuration, modelInfo, service, configResourceKeys);
1095 instanceName = "configurationName2";
1096 resourceId = "resourceId2";
1097 lookupKeyMap.put(ResourceKey.CONFIGURATION_ID, "configurationId2");
1098 Configuration configuration2 = SPY_bbInputSetup.createConfiguration(lookupKeyMap, instanceName, resourceId);
1099 doReturn(configuration2).when(SPY_bbInputSetup).createConfiguration(lookupKeyMap, instanceName, resourceId);
1100 doNothing().when(SPY_bbInputSetup).mapCatalogConfiguration(configuration2, modelInfo, service, configResourceKeys);
1101 SPY_bbInputSetup.populateConfiguration(modelInfo, service, bbName, serviceInstance, lookupKeyMap, resourceId,
1102 instanceName, configResourceKeys);
1103 verify(SPY_bbInputSetup, times(1)).mapCatalogConfiguration(configuration2, modelInfo, service, configResourceKeys);
1107 public void testMapCatalogConfiguration() {
1108 ModelInfoNetwork modelInfoNetwork = new ModelInfoNetwork();
1109 L3Network network = new L3Network();
1111 RequestDetails requestDetails = new RequestDetails();
1112 ModelInfo modelInfo = new ModelInfo();
1113 modelInfo.setModelCustomizationUuid("modelCustomizationUUID");
1114 requestDetails.setModelInfo(modelInfo);
1115 Service service = new Service();
1116 NetworkResourceCustomization resourceCust = new NetworkResourceCustomization();
1117 resourceCust.setModelCustomizationUUID("modelCustomizationUUID");
1118 service.setNetworkCustomizations(Arrays.asList(new NetworkResourceCustomization[] { resourceCust }));
1120 doReturn(modelInfoNetwork).when(bbInputSetupMapperLayer).mapCatalogNetworkToNetwork(resourceCust);
1122 SPY_bbInputSetup.mapCatalogNetwork(network, modelInfo, service);
1124 assertEquals(modelInfoNetwork, network.getModelInfoNetwork());
1128 public void testPopulateGenericVnf() throws JsonParseException, JsonMappingException, IOException {
1129 org.onap.so.serviceinstancebeans.Platform platform = new org.onap.so.serviceinstancebeans.Platform();
1130 org.onap.so.serviceinstancebeans.LineOfBusiness lineOfBusiness = new org.onap.so.serviceinstancebeans.LineOfBusiness();
1131 String instanceName = "vnfName";
1132 ModelInfo modelInfo = new ModelInfo();
1133 modelInfo.setModelType(ModelType.vnf);
1135 ServiceInstance serviceInstance = new ServiceInstance();
1136 GenericVnf vnf = new GenericVnf();
1137 vnf.setVnfId("genericVnfId");
1138 vnf.setVnfName("vnfName");
1139 serviceInstance.getVnfs().add(vnf);
1140 String vnfType = "vnfType";
1141 RequestDetails requestDetails = mapper.readValue(new File(RESOURCE_PATH + "RequestDetails_CreateVnf.json"),
1142 RequestDetails.class);
1144 Service service = mapper.readValue(
1145 new File(RESOURCE_PATH + "CatalogDBService_getServiceInstanceNOAAIInput.json"), Service.class);
1146 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
1147 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "genericVnfId");
1148 String bbName = AssignFlows.VNF.toString();
1150 Platform expectedPlatform = new Platform();
1151 LineOfBusiness expectedLineOfBusiness = new LineOfBusiness();
1152 String resourceId = "123";
1153 doReturn(expectedPlatform).when(bbInputSetupMapperLayer).mapRequestPlatform(platform);
1154 doReturn(expectedLineOfBusiness).when(bbInputSetupMapperLayer).mapRequestLineOfBusiness(lineOfBusiness);
1155 org.onap.aai.domain.yang.GenericVnf vnfAAI = new org.onap.aai.domain.yang.GenericVnf();
1156 vnfAAI.setModelCustomizationId("modelCustId");
1157 doReturn(vnfAAI).when(SPY_bbInputSetupUtils).getAAIGenericVnf(vnf.getVnfId());
1158 doNothing().when(SPY_bbInputSetup).mapCatalogVnf(vnf, modelInfo, service);
1159 org.onap.aai.domain.yang.InstanceGroup instanceGroupAAI = new org.onap.aai.domain.yang.InstanceGroup();
1160 doReturn(instanceGroupAAI).when(SPY_bbInputSetupUtils).getAAIInstanceGroup(any());
1161 org.onap.so.db.catalog.beans.InstanceGroup catalogInstanceGroup = new org.onap.so.db.catalog.beans.InstanceGroup();
1162 doReturn(catalogInstanceGroup).when(SPY_bbInputSetupUtils).getCatalogInstanceGroup(any());
1164 SPY_bbInputSetup.populateGenericVnf(modelInfo, instanceName, platform, lineOfBusiness, service, bbName,
1165 serviceInstance, lookupKeyMap, requestDetails.getRelatedInstanceList(), resourceId, vnfType, null);
1167 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, null);
1169 SPY_bbInputSetup.populateGenericVnf(modelInfo, instanceName, platform, lineOfBusiness, service, bbName,
1170 serviceInstance, lookupKeyMap, requestDetails.getRelatedInstanceList(), resourceId, vnfType, null);
1171 verify(SPY_bbInputSetup, times(1)).mapCatalogVnf(vnf, modelInfo, service);
1173 instanceName = "vnfName2";
1174 GenericVnf vnf2 = SPY_bbInputSetup.createGenericVnf(lookupKeyMap, instanceName, platform, lineOfBusiness,
1175 resourceId, vnfType, null);
1176 doReturn(vnf2).when(SPY_bbInputSetup).createGenericVnf(lookupKeyMap, instanceName, platform, lineOfBusiness,
1177 resourceId, vnfType, null);
1178 doNothing().when(SPY_bbInputSetup).mapNetworkCollectionInstanceGroup(vnf2, "{instanceGroupId}");
1179 doNothing().when(SPY_bbInputSetup).mapVnfcCollectionInstanceGroup(vnf2, modelInfo, service);
1181 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "genericVnfId2");
1183 SPY_bbInputSetup.populateGenericVnf(modelInfo, instanceName, platform, lineOfBusiness, service, bbName,
1184 serviceInstance, lookupKeyMap, requestDetails.getRelatedInstanceList(), resourceId, vnfType, null);
1185 verify(SPY_bbInputSetup, times(2)).mapCatalogVnf(vnf2, modelInfo, service);
1186 verify(SPY_bbInputSetup, times(2)).mapNetworkCollectionInstanceGroup(vnf2, "{instanceGroupId}");
1187 verify(SPY_bbInputSetup, times(2)).mapVnfcCollectionInstanceGroup(vnf2, modelInfo, service);
1191 public void testPopulateGenericVnfWhereVnfTypeIsNull()
1192 throws JsonParseException, JsonMappingException, IOException {
1193 org.onap.so.serviceinstancebeans.Platform platform = new org.onap.so.serviceinstancebeans.Platform();
1194 org.onap.so.serviceinstancebeans.LineOfBusiness lineOfBusiness = new org.onap.so.serviceinstancebeans.LineOfBusiness();
1195 String instanceName = "vnfName";
1196 ModelInfo modelInfo = new ModelInfo();
1197 modelInfo.setModelType(ModelType.vnf);
1199 ServiceInstance serviceInstance = new ServiceInstance();
1200 GenericVnf vnf = new GenericVnf();
1201 vnf.setVnfId("genericVnfId");
1202 vnf.setVnfName("vnfName");
1203 serviceInstance.getVnfs().add(vnf);
1204 String vnfType = null;
1205 RequestDetails requestDetails = mapper.readValue(new File(RESOURCE_PATH + "RequestDetails_CreateVnf.json"),
1206 RequestDetails.class);
1208 Service service = mapper.readValue(
1209 new File(RESOURCE_PATH + "CatalogDBService_getServiceInstanceNOAAIInput.json"), Service.class);
1210 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
1211 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "genericVnfId");
1212 String bbName = AssignFlows.VNF.toString();
1214 Platform expectedPlatform = new Platform();
1215 LineOfBusiness expectedLineOfBusiness = new LineOfBusiness();
1216 String resourceId = "123";
1217 doReturn(expectedPlatform).when(bbInputSetupMapperLayer).mapRequestPlatform(platform);
1218 doReturn(expectedLineOfBusiness).when(bbInputSetupMapperLayer).mapRequestLineOfBusiness(lineOfBusiness);
1219 org.onap.aai.domain.yang.GenericVnf vnfAAI = new org.onap.aai.domain.yang.GenericVnf();
1220 vnfAAI.setModelCustomizationId("modelCustId");
1221 doReturn(vnfAAI).when(SPY_bbInputSetupUtils).getAAIGenericVnf(vnf.getVnfId());
1222 doNothing().when(SPY_bbInputSetup).mapCatalogVnf(vnf, modelInfo, service);
1223 org.onap.aai.domain.yang.InstanceGroup instanceGroupAAI = new org.onap.aai.domain.yang.InstanceGroup();
1224 doReturn(instanceGroupAAI).when(SPY_bbInputSetupUtils).getAAIInstanceGroup(any());
1225 org.onap.so.db.catalog.beans.InstanceGroup catalogInstanceGroup = new org.onap.so.db.catalog.beans.InstanceGroup();
1226 doReturn(catalogInstanceGroup).when(SPY_bbInputSetupUtils).getCatalogInstanceGroup(any());
1228 SPY_bbInputSetup.populateGenericVnf(modelInfo, instanceName, platform, lineOfBusiness, service, bbName,
1229 serviceInstance, lookupKeyMap, requestDetails.getRelatedInstanceList(), resourceId, vnfType, null);
1231 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, null);
1233 SPY_bbInputSetup.populateGenericVnf(modelInfo, instanceName, platform, lineOfBusiness, service, bbName,
1234 serviceInstance, lookupKeyMap, requestDetails.getRelatedInstanceList(), resourceId, vnfType, null);
1235 verify(SPY_bbInputSetup, times(1)).mapCatalogVnf(vnf, modelInfo, service);
1237 instanceName = "vnfName2";
1238 GenericVnf vnf2 = SPY_bbInputSetup.createGenericVnf(lookupKeyMap, instanceName, platform, lineOfBusiness,
1239 resourceId, vnfType, null);
1240 doReturn(vnf2).when(SPY_bbInputSetup).createGenericVnf(lookupKeyMap, instanceName, platform, lineOfBusiness,
1241 resourceId, vnfType, null);
1242 org.onap.aai.domain.yang.GenericVnf vnf2AAI = new org.onap.aai.domain.yang.GenericVnf();
1243 vnfAAI.setModelCustomizationId("modelCustId2");
1244 doReturn(vnf2AAI).when(SPY_bbInputSetupUtils).getAAIGenericVnf(vnf2.getVnfId());
1245 doNothing().when(SPY_bbInputSetup).mapCatalogVnf(vnf2, modelInfo, service);
1246 doNothing().when(SPY_bbInputSetup).mapNetworkCollectionInstanceGroup(vnf2, "{instanceGroupId}");
1247 doNothing().when(SPY_bbInputSetup).mapVnfcCollectionInstanceGroup(vnf2, modelInfo, service);
1248 SPY_bbInputSetup.populateGenericVnf(modelInfo, instanceName, platform, lineOfBusiness, service, bbName,
1249 serviceInstance, lookupKeyMap, requestDetails.getRelatedInstanceList(), resourceId, vnfType, null);
1250 verify(SPY_bbInputSetup, times(2)).mapCatalogVnf(vnf2, modelInfo, service);
1251 verify(SPY_bbInputSetup, times(2)).mapNetworkCollectionInstanceGroup(vnf2, "{instanceGroupId}");
1252 verify(SPY_bbInputSetup, times(2)).mapVnfcCollectionInstanceGroup(vnf2, modelInfo, service);
1256 public void testMapCatalogVnf() {
1257 ModelInfoGenericVnf modelInfoGenericVnf = new ModelInfoGenericVnf();
1258 GenericVnf genericVnf = new GenericVnf();
1259 RequestDetails requestDetails = new RequestDetails();
1260 ModelInfo modelInfo = new ModelInfo();
1261 modelInfo.setModelCustomizationUuid("modelCustomizationUUID");
1262 requestDetails.setModelInfo(modelInfo);
1263 Service service = new Service();
1264 VnfResourceCustomization resourceCust = new VnfResourceCustomization();
1265 resourceCust.setModelCustomizationUUID("vnfModelCustomizationUUID");
1266 service.getVnfCustomizations().add(resourceCust);
1267 resourceCust.setModelCustomizationUUID("modelCustomizationUUID");
1269 doReturn(modelInfoGenericVnf).when(bbInputSetupMapperLayer).mapCatalogVnfToVnf(resourceCust);
1271 SPY_bbInputSetup.mapCatalogVnf(genericVnf, modelInfo, service);
1273 assertEquals(modelInfoGenericVnf, genericVnf.getModelInfoGenericVnf());
1277 public void testMapCatalogCollectionAndInstanceGroup() {
1278 ModelInfoCollection modelInfoCollection = new ModelInfoCollection();
1279 modelInfoCollection.setCollectionFunction("collectionFunction");
1280 modelInfoCollection.setCollectionRole("collectionRole");
1281 modelInfoCollection.setCollectionType("collectionType");
1282 modelInfoCollection.setDescription("description");
1283 modelInfoCollection.setModelInvariantUUID("modelInvariantUUID");
1284 modelInfoCollection.setQuantity(0);
1286 ModelInfoInstanceGroup modelInfoInstanceGroup = new ModelInfoInstanceGroup();
1287 modelInfoInstanceGroup.setFunction("function");
1288 modelInfoInstanceGroup.setInstanceGroupRole("instanceGroupRole");
1289 modelInfoInstanceGroup.setModelInvariantUUID("modelInvariantUUID");
1290 modelInfoInstanceGroup.setModelUUID("modelUUID");
1291 modelInfoInstanceGroup.setType("VNFC");
1292 modelInfoInstanceGroup.setDescription("description");
1294 InstanceGroup instanceGroup = new InstanceGroup();
1295 Collection collection = new Collection();
1296 collection.setInstanceGroup(instanceGroup);
1298 CollectionResource collectionResource = new CollectionResource();
1299 org.onap.so.db.catalog.beans.InstanceGroup catalogInstanceGroup = new org.onap.so.db.catalog.beans.InstanceGroup();
1300 collectionResource.setToscaNodeType("NetworkCollection");
1301 collectionResource.setInstanceGroup(catalogInstanceGroup);
1303 CollectionResourceCustomization collectionCust = new NetworkCollectionResourceCustomization();
1304 collectionCust.setModelCustomizationUUID("modelCustomizationUUID");
1305 collectionCust.setCollectionResource(collectionResource);
1307 Service service = new Service();
1308 service.getCollectionResourceCustomizations().add(collectionCust);
1309 ServiceInstance serviceInstance = new ServiceInstance();
1310 serviceInstance.setCollection(collection);
1312 List<CollectionResourceInstanceGroupCustomization> instanceGroupCustList = new ArrayList<>();
1313 CollectionResourceInstanceGroupCustomization instanceGroupCust = new CollectionResourceInstanceGroupCustomization();
1314 instanceGroupCust.setFunction("function");
1315 instanceGroupCust.setDescription("description");
1317 doReturn(modelInfoCollection).when(bbInputSetupMapperLayer).mapCatalogCollectionToCollection(collectionCust,
1318 collectionResource);
1319 doReturn(instanceGroupCustList).when(SPY_bbInputSetupUtils)
1320 .getCollectionResourceInstanceGroupCustomization(collectionCust.getModelCustomizationUUID());
1321 doReturn(modelInfoInstanceGroup).when(bbInputSetupMapperLayer).mapCatalogInstanceGroupToInstanceGroup(collectionCust,
1322 catalogInstanceGroup);
1324 SPY_bbInputSetup.mapCatalogCollection(service, serviceInstance.getCollection(), "modelCustomizationUUID");
1325 SPY_bbInputSetup.mapCatalogNetworkCollectionInstanceGroup(service,
1326 serviceInstance.getCollection().getInstanceGroup(), collectionCust.getModelCustomizationUUID());
1328 assertThat(collection.getModelInfoCollection(), sameBeanAs(modelInfoCollection));
1329 assertThat(instanceGroup.getModelInfoInstanceGroup(), sameBeanAs(modelInfoInstanceGroup));
1333 public void testAddRelationshipsToSI() throws Exception {
1334 ServiceInstance serviceInstance = new ServiceInstance();
1335 org.onap.aai.domain.yang.ServiceInstance serviceInstanceAAI = new org.onap.aai.domain.yang.ServiceInstance();
1336 serviceInstanceAAI.setServiceInstanceId("serviceInstanceId");
1338 org.onap.aai.domain.yang.RelationshipList relationshipList = new org.onap.aai.domain.yang.RelationshipList();
1339 org.onap.aai.domain.yang.Relationship relationship = new org.onap.aai.domain.yang.Relationship();
1340 relationshipList.getRelationship().add(relationship);
1341 serviceInstanceAAI.setRelationshipList(relationshipList);
1343 Map<String, String> uriKeys = new HashMap<>();
1344 uriKeys.put("global-customer-id", "globalCustomerId");
1345 uriKeys.put("service-type", "serviceType");
1347 doReturn(uriKeys).when(SPY_bbInputSetupUtils)
1348 .getURIKeysFromServiceInstance(serviceInstanceAAI.getServiceInstanceId());
1349 doNothing().when(SPY_bbInputSetup).mapProject(any(), eq(serviceInstance));
1350 doNothing().when(SPY_bbInputSetup).mapOwningEntity(any(), eq(serviceInstance));
1351 doNothing().when(SPY_bbInputSetup).mapL3Networks(any(), eq(serviceInstance.getNetworks()));
1352 doNothing().when(SPY_bbInputSetup).mapGenericVnfs(any(), eq(serviceInstance.getVnfs()));
1353 doNothing().when(SPY_bbInputSetup).mapCollection(any(), eq(serviceInstance));
1355 SPY_bbInputSetup.addRelationshipsToSI(serviceInstanceAAI, serviceInstance);
1357 verify(SPY_bbInputSetup, times(1)).mapProject(any(), eq(serviceInstance));
1358 verify(SPY_bbInputSetup, times(1)).mapOwningEntity(any(), eq(serviceInstance));
1359 verify(SPY_bbInputSetup, times(1)).mapL3Networks(any(), eq(serviceInstance.getNetworks()));
1360 verify(SPY_bbInputSetup, times(1)).mapGenericVnfs(any(), eq(serviceInstance.getVnfs()));
1361 verify(SPY_bbInputSetup, times(1)).mapCollection(any(), eq(serviceInstance));
1362 verify(SPY_bbInputSetup, times(1)).mapConfigurations(any(), eq(serviceInstance.getConfigurations()));
1366 public void testMapConfigurations() throws JsonProcessingException {
1367 org.onap.aai.domain.yang.Configuration expectedAAI = new org.onap.aai.domain.yang.Configuration();
1368 org.onap.aai.domain.yang.RelationshipList relationshipList = new org.onap.aai.domain.yang.RelationshipList();
1369 org.onap.aai.domain.yang.Relationship relationship = new org.onap.aai.domain.yang.Relationship();
1370 relationshipList.getRelationship().add(relationship);
1371 expectedAAI.setRelationshipList(relationshipList);
1373 Configuration expected = new Configuration();
1374 AAIResourceUri aaiResourceUri = AAIUriFactory.createResourceUri(AAIObjectType.CONFIGURATION, "configurationId");
1375 AAIResultWrapper configurationWrapper = new AAIResultWrapper(
1376 new AAICommonObjectMapperProvider().getMapper().writeValueAsString(expectedAAI));
1378 doReturn(configurationWrapper).when(SPY_bbInputSetupUtils).getAAIResourceDepthOne(aaiResourceUri);
1379 doReturn(expected).when(bbInputSetupMapperLayer)
1380 .mapAAIConfiguration(isA(org.onap.aai.domain.yang.Configuration.class));
1382 List<Configuration> configurations = new ArrayList<>();
1384 SPY_bbInputSetup.mapConfigurations(Arrays.asList(new AAIResourceUri[] { aaiResourceUri }), configurations);
1386 assertEquals(expected, configurations.get(0));
1390 public void testMapGenericVnfs() throws JsonProcessingException {
1391 org.onap.aai.domain.yang.GenericVnf expectedAAI = new org.onap.aai.domain.yang.GenericVnf();
1392 org.onap.aai.domain.yang.RelationshipList relationshipList = new org.onap.aai.domain.yang.RelationshipList();
1393 org.onap.aai.domain.yang.Relationship relationship = new org.onap.aai.domain.yang.Relationship();
1394 relationshipList.getRelationship().add(relationship);
1395 expectedAAI.setRelationshipList(relationshipList);
1397 GenericVnf expected = new GenericVnf();
1398 AAIResourceUri aaiResourceUri = AAIUriFactory.createResourceUri(AAIObjectType.GENERIC_VNF, "vnfId");
1399 AAIResultWrapper vnfWrapper = new AAIResultWrapper(
1400 new AAICommonObjectMapperProvider().getMapper().writeValueAsString(expectedAAI));
1402 doReturn(vnfWrapper).when(SPY_bbInputSetupUtils).getAAIResourceDepthOne(aaiResourceUri);
1403 doReturn(expected).when(bbInputSetupMapperLayer)
1404 .mapAAIGenericVnfIntoGenericVnf(isA(org.onap.aai.domain.yang.GenericVnf.class));
1405 doNothing().when(SPY_bbInputSetup).mapPlatform(any(), eq(expected));
1406 doNothing().when(SPY_bbInputSetup).mapLineOfBusiness(any(), eq(expected));
1407 doReturn(new ArrayList<>()).when(SPY_bbInputSetup).mapVolumeGroups(any());
1409 List<GenericVnf> genericVnfs = new ArrayList<>();
1411 SPY_bbInputSetup.mapGenericVnfs(Arrays.asList(new AAIResourceUri[] { aaiResourceUri }), genericVnfs);
1413 assertEquals(expected, genericVnfs.get(0));
1414 verify(SPY_bbInputSetup, times(1)).mapPlatform(any(), eq(expected));
1415 verify(SPY_bbInputSetup, times(1)).mapLineOfBusiness(any(), eq(expected));
1416 verify(SPY_bbInputSetup, times(1)).mapVolumeGroups(any());
1420 public void testMapVolumeGroups() throws JsonProcessingException {
1421 org.onap.aai.domain.yang.VolumeGroup expectedAAI = new org.onap.aai.domain.yang.VolumeGroup();
1423 VolumeGroup expected = new VolumeGroup();
1424 AAIResultWrapper vnfWrapper = new AAIResultWrapper(
1425 new AAICommonObjectMapperProvider().getMapper().writeValueAsString(expectedAAI));
1427 doReturn(expected).when(bbInputSetupMapperLayer)
1428 .mapAAIVolumeGroup(isA(org.onap.aai.domain.yang.VolumeGroup.class));
1430 List<VolumeGroup> volumeGroupsList =
1431 SPY_bbInputSetup.mapVolumeGroups(Arrays.asList(new AAIResultWrapper[] { vnfWrapper }));
1433 assertEquals(expected, volumeGroupsList.get(0));
1437 public void testMapLineOfBusiness() throws JsonProcessingException {
1438 org.onap.aai.domain.yang.LineOfBusiness expectedAAI = new org.onap.aai.domain.yang.LineOfBusiness();
1440 LineOfBusiness expected = new LineOfBusiness();
1441 AAIResultWrapper vnfWrapper = new AAIResultWrapper(
1442 new AAICommonObjectMapperProvider().getMapper().writeValueAsString(expectedAAI));
1444 doReturn(expected).when(bbInputSetupMapperLayer)
1445 .mapAAILineOfBusiness(isA(org.onap.aai.domain.yang.LineOfBusiness.class));
1447 GenericVnf vnf = new GenericVnf();
1449 SPY_bbInputSetup.mapLineOfBusiness(Arrays.asList(new AAIResultWrapper[] { vnfWrapper }), vnf);
1451 assertEquals(expected, vnf.getLineOfBusiness());
1455 public void testMapPlatform() throws JsonProcessingException {
1456 org.onap.aai.domain.yang.Platform expectedAAI = new org.onap.aai.domain.yang.Platform();
1458 Platform expected = new Platform();
1459 AAIResultWrapper vnfWrapper = new AAIResultWrapper(
1460 new AAICommonObjectMapperProvider().getMapper().writeValueAsString(expectedAAI));
1462 doReturn(expected).when(bbInputSetupMapperLayer)
1463 .mapAAIPlatform(isA(org.onap.aai.domain.yang.Platform.class));
1465 GenericVnf vnf = new GenericVnf();
1467 SPY_bbInputSetup.mapPlatform(Arrays.asList(new AAIResultWrapper[] { vnfWrapper }), vnf);
1469 assertEquals(expected, vnf.getPlatform());
1473 public void testMapCollection() throws JsonProcessingException {
1474 List<AAIResultWrapper> collections = new ArrayList<>();
1475 ServiceInstance serviceInstance = new ServiceInstance();
1477 org.onap.aai.domain.yang.Collection aaiCollection = new org.onap.aai.domain.yang.Collection();
1478 org.onap.aai.domain.yang.RelationshipList collectionRelationshipList = new org.onap.aai.domain.yang.RelationshipList();
1479 org.onap.aai.domain.yang.Relationship collectionInstanceGroupRelationship = new org.onap.aai.domain.yang.Relationship();
1480 collectionRelationshipList.getRelationship().add(collectionInstanceGroupRelationship);
1481 aaiCollection.setRelationshipList(collectionRelationshipList);
1483 collections.add(new AAIResultWrapper(
1484 new AAICommonObjectMapperProvider().getMapper().writeValueAsString(aaiCollection)));
1486 Collection collection = new Collection();
1487 ModelInfoCollection modelInfoCollection = new ModelInfoCollection();
1488 List<InstanceGroup> instanceGroupsList = new ArrayList<>();
1489 InstanceGroup instanceGroup = new InstanceGroup();
1490 instanceGroupsList.add(instanceGroup);
1491 NetworkCollectionResourceCustomization networkCollectionCust = Mockito.mock(NetworkCollectionResourceCustomization.class);
1492 CollectionResource collectionResource = new CollectionResource();
1493 doReturn(collection).when(bbInputSetupMapperLayer)
1494 .mapAAICollectionIntoCollection(isA(org.onap.aai.domain.yang.Collection.class));
1495 doReturn(instanceGroup).when(SPY_bbInputSetup).mapInstanceGroup(isA(AAIResultWrapper.class));
1496 doReturn(instanceGroupsList).when(SPY_bbInputSetup).mapInstanceGroups(any());
1497 doReturn(networkCollectionCust).when(SPY_bbInputSetupUtils).getCatalogNetworkCollectionResourceCustByID(aaiCollection.getCollectionCustomizationId());
1498 doReturn(collectionResource).when(networkCollectionCust).getCollectionResource();
1499 doReturn(modelInfoCollection).when(bbInputSetupMapperLayer).mapCatalogCollectionToCollection(networkCollectionCust, collectionResource);
1501 SPY_bbInputSetup.mapCollection(collections, serviceInstance);
1503 assertEquals(collection, serviceInstance.getCollection());
1504 assertEquals(instanceGroup, collection.getInstanceGroup());
1506 instanceGroupsList.clear();
1507 collection = new Collection();
1509 SPY_bbInputSetup.mapCollection(collections, serviceInstance);
1510 assertEquals(collection, serviceInstance.getCollection());
1511 assertNull(collection.getInstanceGroup());
1515 public void testMapL3Networks() throws JsonProcessingException {
1516 org.onap.aai.domain.yang.L3Network expectedAAI = new org.onap.aai.domain.yang.L3Network();
1517 org.onap.aai.domain.yang.RelationshipList relationshipList = new org.onap.aai.domain.yang.RelationshipList();
1518 org.onap.aai.domain.yang.Relationship relationship = new org.onap.aai.domain.yang.Relationship();
1519 relationshipList.getRelationship().add(relationship);
1520 expectedAAI.setRelationshipList(relationshipList);
1522 L3Network expected = new L3Network();
1523 List<L3Network> l3Networks = new ArrayList<>();
1524 AAIResultWrapper l3NetworksWrapper = new AAIResultWrapper(
1525 new AAICommonObjectMapperProvider().getMapper().writeValueAsString(expectedAAI));
1526 AAIResourceUri aaiResourceUri = AAIUriFactory.createResourceUri(AAIObjectType.L3_NETWORK, "networkId");
1528 doReturn(l3NetworksWrapper).when(SPY_bbInputSetupUtils).getAAIResourceDepthTwo(aaiResourceUri);
1529 doReturn(expected).when(bbInputSetupMapperLayer)
1530 .mapAAIL3Network(isA(org.onap.aai.domain.yang.L3Network.class));
1531 doNothing().when(SPY_bbInputSetup).mapNetworkPolicies(any(), eq(expected.getNetworkPolicies()));
1532 doNothing().when(SPY_bbInputSetup).mapRouteTableReferences(any(),
1533 eq(expected.getContrailNetworkRouteTableReferences()));
1535 SPY_bbInputSetup.mapL3Networks(Arrays.asList(new AAIResourceUri[] { aaiResourceUri }), l3Networks);
1537 assertEquals(expected, l3Networks.get(0));
1538 verify(SPY_bbInputSetup, times(1)).mapNetworkPolicies(any(), eq(expected.getNetworkPolicies()));
1539 verify(SPY_bbInputSetup, times(1)).mapRouteTableReferences(any(),
1540 eq(expected.getContrailNetworkRouteTableReferences()));
1544 public void testMapRouteTableReferences() throws JsonProcessingException {
1545 org.onap.aai.domain.yang.RouteTableReference expectedAAI = new org.onap.aai.domain.yang.RouteTableReference();
1547 RouteTableReference expected = new RouteTableReference();
1548 List<RouteTableReference> contrailNetworkRouteTableReferences = new ArrayList<>();
1549 AAIResultWrapper vnfWrapper = new AAIResultWrapper(
1550 new AAICommonObjectMapperProvider().getMapper().writeValueAsString(expectedAAI));
1552 doReturn(expected).when(bbInputSetupMapperLayer).mapAAIRouteTableReferenceIntoRouteTableReference(
1553 isA(org.onap.aai.domain.yang.RouteTableReference.class));
1555 SPY_bbInputSetup.mapRouteTableReferences(Arrays.asList(new AAIResultWrapper[] { vnfWrapper }),
1556 contrailNetworkRouteTableReferences);
1558 assertEquals(expected, contrailNetworkRouteTableReferences.get(0));
1562 public void testMapOwningEntity() throws JsonProcessingException {
1563 org.onap.aai.domain.yang.OwningEntity expectedAAI = new org.onap.aai.domain.yang.OwningEntity();
1565 OwningEntity expected = new OwningEntity();
1566 AAIResultWrapper vnfWrapper = new AAIResultWrapper(
1567 new AAICommonObjectMapperProvider().getMapper().writeValueAsString(expectedAAI));
1569 doReturn(expected).when(bbInputSetupMapperLayer)
1570 .mapAAIOwningEntity(isA(org.onap.aai.domain.yang.OwningEntity.class));
1572 ServiceInstance serviceInstance = new ServiceInstance();
1574 SPY_bbInputSetup.mapOwningEntity(Arrays.asList(new AAIResultWrapper[] { vnfWrapper }), serviceInstance);
1576 assertEquals(expected, serviceInstance.getOwningEntity());
1580 public void testMapProject() throws JsonProcessingException {
1581 org.onap.aai.domain.yang.Project expectedAAI = new org.onap.aai.domain.yang.Project();
1583 Project expected = new Project();
1584 AAIResultWrapper vnfWrapper = new AAIResultWrapper(
1585 new AAICommonObjectMapperProvider().getMapper().writeValueAsString(expectedAAI));
1587 doReturn(expected).when(bbInputSetupMapperLayer).mapAAIProject(isA(org.onap.aai.domain.yang.Project.class));
1589 ServiceInstance serviceInstance = new ServiceInstance();
1591 SPY_bbInputSetup.mapProject(Arrays.asList(new AAIResultWrapper[] { vnfWrapper }), serviceInstance);
1593 assertEquals(expected, serviceInstance.getProject());
1597 public void testMapCustomer() throws Exception {
1598 org.onap.aai.domain.yang.Customer customerAAI = new org.onap.aai.domain.yang.Customer();
1599 org.onap.aai.domain.yang.ServiceSubscription serviceSubscriptionAAI = new org.onap.aai.domain.yang.ServiceSubscription();
1601 Customer expected = new Customer();
1602 ServiceSubscription serviceSubscription = new ServiceSubscription();
1604 String globalCustomerId = "globalCustomerId";
1605 String subscriptionServiceType = "subscriptionServiceType";
1607 doReturn(customerAAI).when(SPY_bbInputSetupUtils).getAAICustomer(globalCustomerId);
1608 doReturn(serviceSubscriptionAAI).when(SPY_bbInputSetupUtils).getAAIServiceSubscription(globalCustomerId,
1609 subscriptionServiceType);
1610 doReturn(expected).when(bbInputSetupMapperLayer)
1611 .mapAAICustomer(isA(org.onap.aai.domain.yang.Customer.class));
1612 doReturn(serviceSubscription).when(bbInputSetupMapperLayer)
1613 .mapAAIServiceSubscription(isA(org.onap.aai.domain.yang.ServiceSubscription.class));
1615 Customer actual = SPY_bbInputSetup.mapCustomer(globalCustomerId, subscriptionServiceType);
1617 assertEquals(expected, actual);
1618 assertEquals(serviceSubscription, expected.getServiceSubscription());
1622 public void testPopulateLookupKeyMapWithIds() {
1623 Map<ResourceKey, String> expected = new HashMap<>();
1624 Map<ResourceKey, String> actual = new HashMap<>();
1625 String serviceInstanceId = "serviceInstanceId";
1626 String networkId = "networkId";
1627 String vnfId = "vnfId";
1628 String vfModuleId = "vfModuleId";
1629 String volumeGroupId = "volumeGroupId";
1630 String configurationId = "configurationId";
1632 expected.put(ResourceKey.SERVICE_INSTANCE_ID, serviceInstanceId);
1633 expected.put(ResourceKey.NETWORK_ID, networkId);
1634 expected.put(ResourceKey.GENERIC_VNF_ID, vnfId);
1635 expected.put(ResourceKey.VF_MODULE_ID, vfModuleId);
1636 expected.put(ResourceKey.VOLUME_GROUP_ID, volumeGroupId);
1637 expected.put(ResourceKey.CONFIGURATION_ID, configurationId);
1639 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
1640 workflowResourceIds.setServiceInstanceId(serviceInstanceId);
1641 workflowResourceIds.setNetworkId(networkId);
1642 workflowResourceIds.setVnfId(vnfId);
1643 workflowResourceIds.setVfModuleId(vfModuleId);
1644 workflowResourceIds.setVolumeGroupId(volumeGroupId);
1645 workflowResourceIds.setConfigurationId(configurationId);
1647 SPY_bbInputSetup.populateLookupKeyMapWithIds(workflowResourceIds, actual);
1649 assertThat(actual, sameBeanAs(expected));
1653 public void testgetGBBMacro() throws Exception {
1654 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
1655 GeneralBuildingBlock.class);
1656 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
1657 ExecuteBuildingBlock.class);
1658 RequestDetails requestDetails = mapper
1659 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
1660 InfraActiveRequests request = Mockito.mock(InfraActiveRequests.class);
1661 org.onap.aai.domain.yang.GenericVnf aaiVnf = new org.onap.aai.domain.yang.GenericVnf();
1662 aaiVnf.setModelCustomizationId("modelCustId");
1663 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
1664 lookupKeyMap.put(ResourceKey.NETWORK_ID, "networkId");
1665 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "vnfId");
1666 lookupKeyMap.put(ResourceKey.VF_MODULE_ID, "vfModuleId");
1667 lookupKeyMap.put(ResourceKey.VOLUME_GROUP_ID, "volumeGroupId");
1668 lookupKeyMap.put(ResourceKey.SERVICE_INSTANCE_ID, "serviceInstanceId");
1669 lookupKeyMap.put(ResourceKey.CONFIGURATION_ID, "configurationId");
1670 String resourceId = "123";
1671 String vnfType = "vnfType";
1672 Service service = Mockito.mock(Service.class);
1673 String requestAction = "createInstance";
1675 ConfigurationResourceKeys configResourceKeys = new ConfigurationResourceKeys();
1676 configResourceKeys.setCvnfcCustomizationUUID("cvnfcCustomizationUUID");
1677 configResourceKeys.setVfModuleCustomizationUUID("vfModuleCustomizationUUID");
1678 configResourceKeys.setVnfResourceCustomizationUUID("vnfResourceCustomizationUUID");
1679 executeBB.setConfigurationResourceKeys(configResourceKeys);
1680 doReturn(gBB).when(SPY_bbInputSetup).getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
1681 requestAction, resourceId);
1682 doReturn(request).when(SPY_bbInputSetupUtils).getInfraActiveRequest(executeBB.getRequestId());
1683 doReturn(service).when(SPY_bbInputSetupUtils)
1684 .getCatalogServiceByModelUUID(gBB.getServiceInstance().getModelInfoServiceInstance().getModelUuid());
1685 doNothing().when(SPY_bbInputSetupUtils).updateInfraActiveRequestVnfId(request,
1686 lookupKeyMap.get(ResourceKey.GENERIC_VNF_ID));
1687 doReturn("vnfId").when(SPY_bbInputSetup).getVnfId(executeBB, lookupKeyMap);
1688 doReturn(aaiVnf).when(SPY_bbInputSetupUtils).getAAIGenericVnf(any(String.class));
1690 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.NETWORK_MACRO.toString());
1691 executeBB.getBuildingBlock().setKey("ab153b6e-c364-44c0-bef6-1f2982117f04");
1692 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
1693 verify(SPY_bbInputSetup, times(1)).populateL3Network(any(String.class), isA(ModelInfo.class),
1694 isA(Service.class), any(String.class), isA(ServiceInstance.class), any(), any(String.class), any());
1696 executeBB.getBuildingBlock().setKey("ab153b6e-c364-44c0-bef6-1f2982117f04");
1697 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.VNF.toString());
1698 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
1699 verify(SPY_bbInputSetup, times(1)).populateGenericVnf(isA(ModelInfo.class), any(String.class),
1700 isA(org.onap.so.serviceinstancebeans.Platform.class),
1701 isA(org.onap.so.serviceinstancebeans.LineOfBusiness.class), isA(Service.class), any(String.class),
1702 isA(ServiceInstance.class), any(), any(), any(String.class), any(String.class), any());
1704 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, null);
1705 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.VF_MODULE.toString());
1706 executeBB.getBuildingBlock().setKey("a25e8e8c-58b8-4eec-810c-97dcc1f5cb7f");
1707 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
1708 verify(SPY_bbInputSetup, times(1)).populateVfModule(isA(ModelInfo.class), isA(Service.class), any(String.class),
1709 isA(ServiceInstance.class), any(), any(String.class), any(), any(String.class), any(), isA(CloudConfiguration.class));
1711 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, null);
1712 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.VOLUME_GROUP.toString());
1713 executeBB.getBuildingBlock().setKey("72d9d1cd-f46d-447a-abdb-451d6fb05fa8");
1714 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
1715 verify(SPY_bbInputSetup, times(1)).populateVolumeGroup(isA(ModelInfo.class), isA(Service.class),
1716 any(String.class), isA(ServiceInstance.class), any(), any(String.class), any(), any(String.class),
1717 any(String.class), any());
1719 Configuration configuration = new Configuration();
1720 configuration.setConfigurationId("configurationId");
1721 gBB.getServiceInstance().getConfigurations().add(configuration);
1722 List<ConfigurationResourceCustomization> configurationCustList = new ArrayList<>();
1723 ConfigurationResourceCustomization configurationCust = new ConfigurationResourceCustomization();
1724 configurationCust.setModelCustomizationUUID("72d9d1cd-f46d-447a-abdb-451d6fb05fa9");
1725 doReturn(configurationCustList).when(service).getConfigurationCustomizations();
1726 configurationCustList.add(configurationCust);
1727 doNothing().when(SPY_bbInputSetup).populateConfiguration(isA(ModelInfo.class), isA(Service.class),
1728 any(String.class), isA(ServiceInstance.class), any(), any(String.class), any(String.class), isA(ConfigurationResourceKeys.class));
1730 executeBB.getBuildingBlock().setBpmnFlowName("AssignFabricConfigurationBB");
1731 executeBB.getBuildingBlock().setKey("72d9d1cd-f46d-447a-abdb-451d6fb05fa9");
1732 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
1733 verify(SPY_bbInputSetup, times(1)).populateConfiguration(isA(ModelInfo.class), isA(Service.class),
1734 any(String.class), isA(ServiceInstance.class), any(), any(String.class), any(String.class), isA(ConfigurationResourceKeys.class));
1738 public void testgetGBBMacroCloudConfiguration() throws Exception {
1739 org.onap.so.serviceinstancebeans.Service serviceMacro = mapper.readValue(
1740 new File(RESOURCE_PATH + "ServiceMacroVfModules.json"), org.onap.so.serviceinstancebeans.Service.class);
1741 CloudConfiguration cloudConfig = null;
1742 org.onap.aai.domain.yang.CloudRegion aaiCloudRegion = new org.onap.aai.domain.yang.CloudRegion();
1743 Resources resources = serviceMacro.getResources();
1744 doReturn(aaiCloudRegion).when(SPY_bbInputSetupUtils).getCloudRegion(any(CloudConfiguration.class), eq("att-aic"));
1745 CloudRegion expected = new CloudRegion();
1746 expected.setLcpCloudRegionId("mdt1");
1747 expected.setCloudOwner("att-aic");
1748 expected.setTenantId("88a6ca3ee0394ade9403f075db23167e");
1750 CloudRegion actual = SPY_bbInputSetup.getCloudRegionFromMacroRequest(cloudConfig, resources);
1751 assertThat(actual, sameBeanAs(expected));
1753 serviceMacro = mapper.readValue(
1754 new File(RESOURCE_PATH + "ServiceMacroVnfs.json"), org.onap.so.serviceinstancebeans.Service.class);
1755 resources = serviceMacro.getResources();
1757 actual = SPY_bbInputSetup.getCloudRegionFromMacroRequest(cloudConfig, resources);
1758 assertThat(actual, sameBeanAs(expected));
1760 serviceMacro = mapper.readValue(
1761 new File(RESOURCE_PATH + "ServiceMacroNetworks.json"), org.onap.so.serviceinstancebeans.Service.class);
1762 resources = serviceMacro.getResources();
1764 actual = SPY_bbInputSetup.getCloudRegionFromMacroRequest(cloudConfig, resources);
1765 assertThat(actual, sameBeanAs(expected));
1767 serviceMacro = mapper.readValue(
1768 new File(RESOURCE_PATH + "ServiceMacroNoCloudConfig.json"), org.onap.so.serviceinstancebeans.Service.class);
1769 resources = serviceMacro.getResources();
1771 actual = SPY_bbInputSetup.getCloudRegionFromMacroRequest(cloudConfig, resources);
1776 public void testgetGBBMacroWithEmptyUserParams() throws Exception {
1777 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
1778 GeneralBuildingBlock.class);
1779 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
1780 ExecuteBuildingBlock.class);
1781 RequestDetails requestDetails = mapper
1782 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
1783 requestDetails.getRequestParameters().getUserParams().clear();
1784 InfraActiveRequests request = Mockito.mock(InfraActiveRequests.class);
1785 org.onap.aai.domain.yang.GenericVnf aaiVnf = new org.onap.aai.domain.yang.GenericVnf();
1786 aaiVnf.setModelCustomizationId("modelCustId");
1787 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
1788 lookupKeyMap.put(ResourceKey.NETWORK_ID, "networkId");
1789 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "vnfId");
1790 lookupKeyMap.put(ResourceKey.VF_MODULE_ID, "vfModuleId");
1791 lookupKeyMap.put(ResourceKey.VOLUME_GROUP_ID, "volumeGroupId");
1792 lookupKeyMap.put(ResourceKey.SERVICE_INSTANCE_ID, "serviceInstanceId");
1793 String resourceId = "123";
1794 String vnfType = "vnfType";
1795 Service service = Mockito.mock(Service.class);
1796 String requestAction = "createInstance";
1797 doReturn(gBB).when(SPY_bbInputSetup).getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
1798 requestAction, resourceId);
1799 doReturn(service).when(SPY_bbInputSetupUtils)
1800 .getCatalogServiceByModelUUID(gBB.getServiceInstance().getModelInfoServiceInstance().getModelUuid());
1801 doNothing().when(SPY_bbInputSetupUtils).updateInfraActiveRequestVnfId(request,
1802 lookupKeyMap.get(ResourceKey.GENERIC_VNF_ID));
1803 doReturn("vnfId").when(SPY_bbInputSetup).getVnfId(executeBB, lookupKeyMap);
1804 doReturn(aaiVnf).when(SPY_bbInputSetupUtils).getAAIGenericVnf(any(String.class));
1805 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.NETWORK_MACRO.toString());
1806 executeBB.getBuildingBlock().setKey("ab153b6e-c364-44c0-bef6-1f2982117f04");
1807 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
1808 verify(SPY_bbInputSetup, times(1)).getGBBMacroNoUserParamsCreate(any(ExecuteBuildingBlock.class), any(),
1809 any(String.class), any(String.class), any(GeneralBuildingBlock.class), any(Service.class));
1812 @Test(expected = Exception.class)
1813 public void testgetGBBMacroException() throws Exception {
1814 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
1815 GeneralBuildingBlock.class);
1816 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
1817 ExecuteBuildingBlock.class);
1818 RequestDetails requestDetails = mapper
1819 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
1820 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
1821 String resourceId = "123";
1822 String vnfType = "vnfType";
1823 Service service = Mockito.mock(Service.class);
1824 String requestAction = "createInstance";
1825 doReturn(null).when(SPY_bbInputSetup).getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
1826 requestAction, resourceId);
1827 doReturn(service).when(SPY_bbInputSetupUtils)
1828 .getCatalogServiceByModelUUID(gBB.getServiceInstance().getModelInfoServiceInstance().getModelUuid());
1830 executeBB.getBuildingBlock().setBpmnFlowName("Network");
1831 executeBB.getBuildingBlock().setKey("ab153b6e-c364-44c0-bef6-1f2982117f04");
1832 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
1836 public void testgetGBBMacroWithVnfTypeNull() throws Exception {
1837 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
1838 GeneralBuildingBlock.class);
1839 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
1840 ExecuteBuildingBlock.class);
1841 RequestDetails requestDetails = mapper
1842 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
1843 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
1844 lookupKeyMap.put(ResourceKey.NETWORK_ID, "networkId");
1845 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "vnfId");
1846 lookupKeyMap.put(ResourceKey.VF_MODULE_ID, "vfModuleId");
1847 lookupKeyMap.put(ResourceKey.VOLUME_GROUP_ID, "volumeGroupId");
1848 lookupKeyMap.put(ResourceKey.SERVICE_INSTANCE_ID, "serviceInstanceId");
1849 org.onap.aai.domain.yang.GenericVnf aaiVnf = new org.onap.aai.domain.yang.GenericVnf();
1850 aaiVnf.setModelCustomizationId("modelCustId");
1851 InfraActiveRequests request = Mockito.mock(InfraActiveRequests.class);
1852 String resourceId = "123";
1853 String vnfType = null;
1854 Service service = Mockito.mock(Service.class);
1855 String requestAction = "createInstance";
1856 doReturn(gBB).when(SPY_bbInputSetup).getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
1857 requestAction, resourceId);
1858 doReturn(request).when(SPY_bbInputSetupUtils).getInfraActiveRequest(executeBB.getRequestId());
1859 doReturn(service).when(SPY_bbInputSetupUtils)
1860 .getCatalogServiceByModelUUID(gBB.getServiceInstance().getModelInfoServiceInstance().getModelUuid());
1861 doNothing().when(SPY_bbInputSetupUtils).updateInfraActiveRequestVnfId(request,
1862 lookupKeyMap.get(ResourceKey.GENERIC_VNF_ID));
1863 doReturn("vnfId").when(SPY_bbInputSetup).getVnfId(executeBB, lookupKeyMap);
1864 doReturn(aaiVnf).when(SPY_bbInputSetupUtils).getAAIGenericVnf(any(String.class));
1866 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.NETWORK_MACRO.toString());
1867 executeBB.getBuildingBlock().setKey("ab153b6e-c364-44c0-bef6-1f2982117f04");
1868 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
1869 verify(SPY_bbInputSetup, times(1)).populateL3Network(any(String.class), isA(ModelInfo.class),
1870 isA(Service.class), any(String.class), isA(ServiceInstance.class), any(), any(String.class), any());
1872 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.VNF.toString());
1873 executeBB.getBuildingBlock().setKey("ab153b6e-c364-44c0-bef6-1f2982117f04");
1874 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
1875 verify(SPY_bbInputSetup, times(1)).populateGenericVnf(isA(ModelInfo.class), any(String.class),
1876 isA(org.onap.so.serviceinstancebeans.Platform.class),
1877 isA(org.onap.so.serviceinstancebeans.LineOfBusiness.class), isA(Service.class), any(String.class),
1878 isA(ServiceInstance.class), any(), any(), any(String.class), any(String.class), any());
1880 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, null);
1881 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.VF_MODULE.toString());
1882 executeBB.getBuildingBlock().setKey("a25e8e8c-58b8-4eec-810c-97dcc1f5cb7f");
1883 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
1884 verify(SPY_bbInputSetup, times(1)).populateVfModule(isA(ModelInfo.class), isA(Service.class), any(String.class),
1885 isA(ServiceInstance.class), any(), any(String.class), any(), any(String.class), any(), isA(CloudConfiguration.class));
1887 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, null);
1888 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.VOLUME_GROUP.toString());
1889 executeBB.getBuildingBlock().setKey("72d9d1cd-f46d-447a-abdb-451d6fb05fa8");
1890 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
1891 verify(SPY_bbInputSetup, times(1)).populateVolumeGroup(isA(ModelInfo.class), isA(Service.class),
1892 any(String.class), isA(ServiceInstance.class), any(), any(String.class), any(), any(String.class),
1893 any(String.class), any());
1897 public void testgetGBBMacroGetServiceWithInvariantId() throws Exception {
1898 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
1899 GeneralBuildingBlock.class);
1900 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
1901 ExecuteBuildingBlock.class);
1902 RequestDetails requestDetails = mapper
1903 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
1904 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
1905 lookupKeyMap.put(ResourceKey.NETWORK_ID, "networkId");
1906 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "vnfId");
1907 lookupKeyMap.put(ResourceKey.VF_MODULE_ID, "vfModuleId");
1908 lookupKeyMap.put(ResourceKey.VOLUME_GROUP_ID, "volumeGroupId");
1909 lookupKeyMap.put(ResourceKey.SERVICE_INSTANCE_ID, "serviceInstanceId");
1910 org.onap.aai.domain.yang.GenericVnf aaiVnf = new org.onap.aai.domain.yang.GenericVnf();
1911 aaiVnf.setModelCustomizationId("modelCustId");
1912 InfraActiveRequests request = Mockito.mock(InfraActiveRequests.class);
1913 String resourceId = "123";
1914 String vnfType = "vnfType";
1915 Service service = Mockito.mock(Service.class);
1916 String requestAction = "createInstance";
1917 doReturn(gBB).when(SPY_bbInputSetup).getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
1918 requestAction, resourceId);
1919 doReturn(request).when(SPY_bbInputSetupUtils).getInfraActiveRequest(executeBB.getRequestId());
1920 doReturn(service).when(SPY_bbInputSetupUtils)
1921 .getCatalogServiceByModelUUID(gBB.getServiceInstance().getModelInfoServiceInstance().getModelUuid());
1922 doNothing().when(SPY_bbInputSetupUtils).updateInfraActiveRequestVnfId(request,
1923 lookupKeyMap.get(ResourceKey.GENERIC_VNF_ID));
1924 doReturn("vnfId").when(SPY_bbInputSetup).getVnfId(executeBB, lookupKeyMap);
1925 doReturn(aaiVnf).when(SPY_bbInputSetupUtils).getAAIGenericVnf(any(String.class));
1927 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.NETWORK_MACRO.toString());
1928 executeBB.getBuildingBlock().setKey("ab153b6e-c364-44c0-bef6-1f2982117f04");
1929 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
1930 verify(SPY_bbInputSetup, times(1)).populateL3Network(any(String.class), isA(ModelInfo.class),
1931 isA(Service.class), any(String.class), isA(ServiceInstance.class), any(), any(String.class), any());
1933 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.VNF.toString());
1934 executeBB.getBuildingBlock().setKey("ab153b6e-c364-44c0-bef6-1f2982117f04");
1935 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
1936 verify(SPY_bbInputSetup, times(1)).populateGenericVnf(isA(ModelInfo.class), any(String.class),
1937 isA(org.onap.so.serviceinstancebeans.Platform.class),
1938 isA(org.onap.so.serviceinstancebeans.LineOfBusiness.class), isA(Service.class), any(String.class),
1939 isA(ServiceInstance.class), any(), any(), any(String.class), any(String.class), any());
1941 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, null);
1942 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.VF_MODULE.toString());
1943 executeBB.getBuildingBlock().setKey("a25e8e8c-58b8-4eec-810c-97dcc1f5cb7f");
1944 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
1945 verify(SPY_bbInputSetup, times(1)).populateVfModule(isA(ModelInfo.class), isA(Service.class), any(String.class),
1946 isA(ServiceInstance.class), any(), any(String.class), any(), any(String.class), any(), isA(CloudConfiguration.class));
1948 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, null);
1949 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.VOLUME_GROUP.toString());
1950 executeBB.getBuildingBlock().setKey("72d9d1cd-f46d-447a-abdb-451d6fb05fa8");
1951 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
1952 verify(SPY_bbInputSetup, times(1)).populateVolumeGroup(isA(ModelInfo.class), isA(Service.class),
1953 any(String.class), isA(ServiceInstance.class), any(), any(String.class), any(), any(String.class),
1954 any(String.class), any());
1958 public void testgetGBBMacroNoUserParamsDeactivateInstnace() throws Exception {
1959 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
1960 GeneralBuildingBlock.class);
1961 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
1962 ExecuteBuildingBlock.class);
1963 RequestDetails requestDetails = mapper
1964 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
1965 requestDetails.getRequestParameters().setUserParams(null);
1966 org.onap.aai.domain.yang.GenericVnf aaiVnf = new org.onap.aai.domain.yang.GenericVnf();
1967 aaiVnf.setModelCustomizationId("modelCustId");
1968 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
1969 lookupKeyMap.put(ResourceKey.NETWORK_ID, "networkId");
1970 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "vnfId");
1971 lookupKeyMap.put(ResourceKey.VF_MODULE_ID, "vfModuleId");
1972 lookupKeyMap.put(ResourceKey.VOLUME_GROUP_ID, "volumeGroupId");
1973 lookupKeyMap.put(ResourceKey.SERVICE_INSTANCE_ID, "serviceInstanceId");
1974 String resourceId = "123";
1975 String vnfType = "vnfType";
1976 Service service = Mockito.mock(Service.class);
1977 String requestAction = "deactivateInstance";
1978 doReturn(gBB).when(SPY_bbInputSetup).getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
1979 requestAction, resourceId);
1980 doReturn(service).when(SPY_bbInputSetupUtils)
1981 .getCatalogServiceByModelUUID(gBB.getServiceInstance().getModelInfoServiceInstance().getModelUuid());
1982 String generatedId = "12131";
1983 doReturn(generatedId).when(SPY_bbInputSetup).generateRandomUUID();
1984 doReturn(aaiVnf).when(SPY_bbInputSetupUtils).getAAIGenericVnf(any(String.class));
1986 executeBB.getBuildingBlock().setBpmnFlowName("DeactivateServiceInstanceBB");
1987 executeBB.getBuildingBlock().setKey("3c40d244-808e-42ca-b09a-256d83d19d0a");
1988 GeneralBuildingBlock actual = SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap,
1989 requestAction, resourceId, vnfType);
1990 assertThat(actual, sameBeanAs(gBB));
1994 public void testgetGBBMacroNoUserParamsCreateInstance() throws Exception {
1995 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
1996 GeneralBuildingBlock.class);
1997 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
1998 ExecuteBuildingBlock.class);
1999 RequestDetails requestDetails = mapper
2000 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
2001 InfraActiveRequests request = Mockito.mock(InfraActiveRequests.class);
2002 requestDetails.getRequestParameters().setUserParams(null);
2003 org.onap.aai.domain.yang.GenericVnf aaiVnf = new org.onap.aai.domain.yang.GenericVnf();
2004 aaiVnf.setModelCustomizationId("modelCustId");
2005 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
2006 lookupKeyMap.put(ResourceKey.NETWORK_ID, "networkId");
2007 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "vnfId");
2008 lookupKeyMap.put(ResourceKey.VF_MODULE_ID, "vfModuleId");
2009 lookupKeyMap.put(ResourceKey.VOLUME_GROUP_ID, "volumeGroupId");
2010 lookupKeyMap.put(ResourceKey.SERVICE_INSTANCE_ID, "serviceInstanceId");
2011 lookupKeyMap.put(ResourceKey.CONFIGURATION_ID, "configurationId");
2013 ConfigurationResourceKeys configResourceKeys = new ConfigurationResourceKeys();
2014 configResourceKeys.setCvnfcCustomizationUUID("cvnfcCustomizationUUID");
2015 configResourceKeys.setVfModuleCustomizationUUID("vfModuleCustomizationUUID");
2016 configResourceKeys.setVnfResourceCustomizationUUID("vnfResourceCustomizationUUID");
2017 executeBB.setConfigurationResourceKeys(configResourceKeys);
2019 String resourceId = "123";
2020 String vnfType = "vnfType";
2021 Service service = Mockito.mock(Service.class);
2022 String requestAction = "createInstance";
2023 doReturn(gBB).when(SPY_bbInputSetup).getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
2024 requestAction, resourceId);
2025 doReturn(null).when(SPY_bbInputSetupUtils)
2026 .getCatalogServiceByModelUUID(requestDetails.getModelInfo().getModelVersionId());
2027 doReturn(service).when(SPY_bbInputSetupUtils)
2028 .getCatalogServiceByModelUUID(gBB.getServiceInstance().getModelInfoServiceInstance().getModelUuid());
2029 List<NetworkResourceCustomization> networkCustList = new ArrayList<>();
2030 NetworkResourceCustomization networkCust = Mockito.mock(NetworkResourceCustomization.class);
2031 doReturn("ab153b6e-c364-44c0-bef6-1f2982117f04").when(networkCust).getModelCustomizationUUID();
2032 networkCustList.add(networkCust);
2033 doReturn(networkCustList).when(service).getNetworkCustomizations();
2034 doNothing().when(SPY_bbInputSetup).populateL3Network(any(), isA(ModelInfo.class), isA(Service.class),
2035 any(String.class), isA(ServiceInstance.class), any(), any(String.class), any());
2037 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.NETWORK_MACRO.toString());
2038 executeBB.getBuildingBlock().setKey("ab153b6e-c364-44c0-bef6-1f2982117f04");
2039 executeBB.getBuildingBlock().setIsVirtualLink(false);
2040 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
2041 verify(SPY_bbInputSetup, times(1)).getGBBMacroNoUserParamsCreate(executeBB, lookupKeyMap,
2042 executeBB.getBuildingBlock().getBpmnFlowName(), "ab153b6e-c364-44c0-bef6-1f2982117f04", gBB, service);
2044 CollectionNetworkResourceCustomization collectionNetworkResourceCust = Mockito.mock(CollectionNetworkResourceCustomization.class);
2045 doReturn(collectionNetworkResourceCust).when(SPY_bbInputSetupUtils).getCatalogCollectionNetworkResourceCustByID(any(String.class));
2046 NetworkResourceCustomization networkResourceCustomization = Mockito.mock(NetworkResourceCustomization.class);
2047 doReturn(networkResourceCustomization).when(bbInputSetupMapperLayer).mapCollectionNetworkResourceCustToNetworkResourceCust(collectionNetworkResourceCust);
2048 ModelInfoNetwork modelInfoNetwork = Mockito.mock(ModelInfoNetwork.class);
2049 doReturn(modelInfoNetwork ).when(bbInputSetupMapperLayer).mapCatalogNetworkToNetwork(networkResourceCustomization);
2050 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.NETWORK_MACRO.toString());
2051 executeBB.getBuildingBlock().setKey("ab153b6e-c364-44c0-bef6-1f2982117f04");
2052 executeBB.getBuildingBlock().setIsVirtualLink(true);
2053 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
2054 verify(SPY_bbInputSetup, times(2)).getGBBMacroNoUserParamsCreate(executeBB, lookupKeyMap,
2055 executeBB.getBuildingBlock().getBpmnFlowName(), "ab153b6e-c364-44c0-bef6-1f2982117f04", gBB, service);
2056 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.FABRIC_CONFIGURATION.toString());
2057 executeBB.getBuildingBlock().setKey("modelCustId");
2058 doNothing().when(SPY_bbInputSetup).mapCatalogConfiguration(isA(Configuration.class), isA(ModelInfo.class), isA(Service.class), isA(ConfigurationResourceKeys.class));
2059 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
2060 verify(SPY_bbInputSetup, times(1)).getGBBMacroNoUserParamsCreate(executeBB, lookupKeyMap,
2061 executeBB.getBuildingBlock().getBpmnFlowName(), "modelCustId", gBB, service);
2065 public void testgetGBBMacroNoUserParamsOther() throws Exception {
2066 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
2067 GeneralBuildingBlock.class);
2068 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
2069 ExecuteBuildingBlock.class);
2070 RequestDetails requestDetails = mapper
2071 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
2072 requestDetails.getRequestParameters().setUserParams(null);
2073 org.onap.aai.domain.yang.GenericVnf aaiVnf = new org.onap.aai.domain.yang.GenericVnf();
2074 aaiVnf.setModelCustomizationId("modelCustId");
2075 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
2076 lookupKeyMap.put(ResourceKey.NETWORK_ID, "networkId");
2077 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "vnfId");
2078 lookupKeyMap.put(ResourceKey.VF_MODULE_ID, "vfModuleId");
2079 lookupKeyMap.put(ResourceKey.VOLUME_GROUP_ID, "volumeGroupId");
2080 lookupKeyMap.put(ResourceKey.SERVICE_INSTANCE_ID, "serviceInstanceId");
2081 String resourceId = "123";
2082 String vnfType = "vnfType";
2083 Service service = Mockito.mock(Service.class);
2084 String requestAction = "deleteInstance";
2085 doReturn(gBB).when(SPY_bbInputSetup).getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
2086 requestAction, resourceId);
2087 doReturn(service).when(SPY_bbInputSetupUtils)
2088 .getCatalogServiceByModelUUID(gBB.getServiceInstance().getModelInfoServiceInstance().getModelUuid());
2089 doReturn(aaiVnf).when(SPY_bbInputSetupUtils).getAAIGenericVnf(any(String.class));
2091 CloudConfiguration cloudConfig = new CloudConfiguration();
2092 cloudConfig.setLcpCloudRegionId("lcpCloudRegionId");
2093 requestDetails.setCloudConfiguration(cloudConfig);
2094 org.onap.aai.domain.yang.CloudRegion aaiCloudRegion = Mockito.mock(org.onap.aai.domain.yang.CloudRegion.class);
2095 doReturn(aaiCloudRegion).when(SPY_bbInputSetupUtils).getCloudRegion(requestDetails.getCloudConfiguration(),
2097 executeBB.getBuildingBlock().setBpmnFlowName("DeleteNetworkBB");
2098 executeBB.getBuildingBlock().setKey("ab153b6e-c364-44c0-bef6-1f2982117f04");
2099 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
2100 verify(SPY_bbInputSetup, times(1)).getGBBMacroExistingService(isA(ExecuteBuildingBlock.class), any(),
2101 any(String.class), any(GeneralBuildingBlock.class), isA(Service.class), isA(String.class),
2102 isA(CloudConfiguration.class));
2104 requestAction = "activateInstance";
2105 doReturn(gBB).when(SPY_bbInputSetup).getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
2106 requestAction, resourceId);
2107 executeBB.getBuildingBlock().setBpmnFlowName("ActivateNetworkBB");
2108 executeBB.getBuildingBlock().setKey("ab153b6e-c364-44c0-bef6-1f2982117f04");
2109 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
2110 verify(SPY_bbInputSetup, times(2)).getGBBMacroExistingService(isA(ExecuteBuildingBlock.class), any(),
2111 any(String.class), any(GeneralBuildingBlock.class), isA(Service.class), isA(String.class),
2112 isA(CloudConfiguration.class));
2114 requestAction = "unassignInstance";
2115 doReturn(gBB).when(SPY_bbInputSetup).getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
2116 requestAction, resourceId);
2117 executeBB.getBuildingBlock().setBpmnFlowName("UnassignNetworkBB");
2118 executeBB.getBuildingBlock().setKey("ab153b6e-c364-44c0-bef6-1f2982117f04");
2119 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
2120 verify(SPY_bbInputSetup, times(3)).getGBBMacroExistingService(isA(ExecuteBuildingBlock.class), any(),
2121 any(String.class), any(GeneralBuildingBlock.class), isA(Service.class), isA(String.class),
2122 isA(CloudConfiguration.class));
2124 requestAction = "activateFabricConfiguration";
2125 doReturn(gBB).when(SPY_bbInputSetup).getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
2126 requestAction, resourceId);
2127 executeBB.getBuildingBlock().setBpmnFlowName("ActivateFabricConfigurationBB");
2128 executeBB.getBuildingBlock().setKey("ab153b6e-c364-44c0-bef6-134534656234");
2129 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
2130 verify(SPY_bbInputSetup, times(4)).getGBBMacroExistingService(isA(ExecuteBuildingBlock.class), any(),
2131 any(String.class), any(GeneralBuildingBlock.class), isA(Service.class), isA(String.class),
2132 isA(CloudConfiguration.class));
2135 @Test(expected = IllegalArgumentException.class)
2136 public void testgetGBBMacroNoUserParamsOtherException() throws Exception {
2137 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
2138 GeneralBuildingBlock.class);
2139 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
2140 ExecuteBuildingBlock.class);
2141 RequestDetails requestDetails = mapper
2142 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
2143 requestDetails.getRequestParameters().setUserParams(null);
2144 org.onap.aai.domain.yang.GenericVnf aaiVnf = new org.onap.aai.domain.yang.GenericVnf();
2145 aaiVnf.setModelCustomizationId("modelCustId");
2146 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
2147 lookupKeyMap.put(ResourceKey.NETWORK_ID, "networkId");
2148 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "vnfId");
2149 lookupKeyMap.put(ResourceKey.VF_MODULE_ID, "vfModuleId");
2150 lookupKeyMap.put(ResourceKey.VOLUME_GROUP_ID, "volumeGroupId");
2151 lookupKeyMap.put(ResourceKey.SERVICE_INSTANCE_ID, "serviceInstanceId");
2152 String resourceId = "123";
2153 String vnfType = "vnfType";
2154 Service service = Mockito.mock(Service.class);
2155 String requestAction = "assignInstance";
2156 doReturn(gBB).when(SPY_bbInputSetup).getGBBALaCarteService(executeBB, requestDetails, lookupKeyMap,
2157 requestAction, resourceId);
2158 doReturn(service).when(SPY_bbInputSetupUtils)
2159 .getCatalogServiceByModelUUID(gBB.getServiceInstance().getModelInfoServiceInstance().getModelUuid());
2160 String generatedId = "12131";
2161 doReturn(generatedId).when(SPY_bbInputSetup).generateRandomUUID();
2162 doReturn(aaiVnf).when(SPY_bbInputSetupUtils).getAAIGenericVnf(any(String.class));
2164 executeBB.getBuildingBlock().setBpmnFlowName(AssignFlows.SERVICE_INSTANCE.toString());
2165 executeBB.getBuildingBlock().setKey("3c40d244-808e-42ca-b09a-256d83d19d0a");
2166 SPY_bbInputSetup.getGBBMacro(executeBB, requestDetails, lookupKeyMap, requestAction, resourceId, vnfType);
2169 public void testgetGBBMacroNoUserParamsExistingService() throws Exception {
2170 GeneralBuildingBlock gBB = mapper.readValue(new File(RESOURCE_PATH + "GeneralBuildingBlockExpected.json"),
2171 GeneralBuildingBlock.class);
2172 ExecuteBuildingBlock executeBB = mapper.readValue(new File(RESOURCE_PATH + "ExecuteBuildingBlockSimple.json"),
2173 ExecuteBuildingBlock.class);
2174 RequestDetails requestDetails = mapper
2175 .readValue(new File(RESOURCE_PATH + "RequestDetailsInput_serviceMacro.json"), RequestDetails.class);
2176 requestDetails.getRequestParameters().setUserParams(null);
2177 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
2178 lookupKeyMap.put(ResourceKey.NETWORK_ID, "networkId");
2179 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, "vnfId");
2180 lookupKeyMap.put(ResourceKey.VF_MODULE_ID, "vfModuleId");
2181 lookupKeyMap.put(ResourceKey.VOLUME_GROUP_ID, "volumeGroupId");
2182 lookupKeyMap.put(ResourceKey.SERVICE_INSTANCE_ID, "serviceInstanceId");
2183 lookupKeyMap.put(ResourceKey.CONFIGURATION_ID, "configurationId");
2184 Service service = Mockito.mock(Service.class);
2185 CloudConfiguration cloudConfiguration = new CloudConfiguration();
2186 cloudConfiguration.setLcpCloudRegionId("cloudRegionId");
2187 String requestAction = "unassignInstance";
2189 ConfigurationResourceKeys configResourceKeys = new ConfigurationResourceKeys();
2190 configResourceKeys.setCvnfcCustomizationUUID("cvnfcCustomizationUUID");
2191 configResourceKeys.setVfModuleCustomizationUUID("vfModuleCustomizationUUID");
2192 configResourceKeys.setVnfResourceCustomizationUUID("vnfResourceCustomizationUUID");
2193 executeBB.setConfigurationResourceKeys(configResourceKeys);
2195 L3Network network = new L3Network();
2196 network.setNetworkId("networkId");
2197 gBB.getServiceInstance().getNetworks().add(network);
2198 org.onap.aai.domain.yang.L3Network aaiNetwork = new org.onap.aai.domain.yang.L3Network();
2199 aaiNetwork.setModelCustomizationId("modelCustId");
2200 doReturn(aaiNetwork).when(SPY_bbInputSetupUtils).getAAIL3Network(network.getNetworkId());
2201 doNothing().when(SPY_bbInputSetup).mapCatalogNetwork(any(L3Network.class), any(ModelInfo.class),
2202 any(Service.class));
2204 executeBB.getBuildingBlock().setBpmnFlowName("DeleteNetworkBB");
2205 executeBB.getBuildingBlock().setKey("ab153b6e-c364-44c0-bef6-1f2982117f04");
2206 SPY_bbInputSetup.getGBBMacroExistingService(executeBB, lookupKeyMap,
2207 executeBB.getBuildingBlock().getBpmnFlowName(), gBB, service, requestAction, cloudConfiguration);
2208 verify(SPY_bbInputSetup, times(1)).mapCatalogNetwork(any(L3Network.class), any(ModelInfo.class),
2209 any(Service.class));
2211 GenericVnf vnf = new GenericVnf();
2212 vnf.setVnfId("vnfId");
2213 gBB.getServiceInstance().getVnfs().add(vnf);
2214 org.onap.aai.domain.yang.GenericVnf aaiVnf = new org.onap.aai.domain.yang.GenericVnf();
2215 aaiVnf.setModelCustomizationId("modelCustId");
2216 doReturn(aaiVnf).when(SPY_bbInputSetupUtils).getAAIGenericVnf(vnf.getVnfId());
2217 doNothing().when(SPY_bbInputSetup).mapCatalogVnf(any(GenericVnf.class), any(ModelInfo.class),
2218 any(Service.class));
2220 executeBB.getBuildingBlock().setBpmnFlowName("ActivateVnfBB");
2221 executeBB.getBuildingBlock().setKey("ab153b6e-c364-44c0-bef6-1f2982117f04");
2222 SPY_bbInputSetup.getGBBMacroExistingService(executeBB, lookupKeyMap,
2223 executeBB.getBuildingBlock().getBpmnFlowName(), gBB, service, requestAction, cloudConfiguration);
2224 verify(SPY_bbInputSetup, times(1)).mapCatalogVnf(any(GenericVnf.class), any(ModelInfo.class),
2225 any(Service.class));
2227 VfModule vfModule = new VfModule();
2228 vfModule.setVfModuleId("vfModuleId");
2229 gBB.getServiceInstance().getVnfs().get(0).getVfModules().add(vfModule);
2230 org.onap.aai.domain.yang.VfModule aaiVfModule = new org.onap.aai.domain.yang.VfModule();
2231 aaiVfModule.setModelCustomizationId("modelCustId");
2232 doReturn(aaiVfModule).when(SPY_bbInputSetupUtils).getAAIVfModule(vnf.getVnfId(), vfModule.getVfModuleId());
2234 executeBB.getBuildingBlock().setBpmnFlowName("UnassignVfModuleBB");
2235 executeBB.getBuildingBlock().setKey("a25e8e8c-58b8-4eec-810c-97dcc1f5cb7f");
2236 SPY_bbInputSetup.getGBBMacroExistingService(executeBB, lookupKeyMap,
2237 executeBB.getBuildingBlock().getBpmnFlowName(), gBB, service, requestAction, cloudConfiguration);
2238 verify(SPY_bbInputSetup, times(2)).mapCatalogVnf(any(GenericVnf.class), any(ModelInfo.class),
2239 any(Service.class));
2240 verify(SPY_bbInputSetup, times(1)).mapCatalogVfModule(any(VfModule.class), any(ModelInfo.class),
2241 any(Service.class), any(String.class));
2243 org.onap.aai.domain.yang.CloudRegion aaiCloudRegion = Mockito.mock(org.onap.aai.domain.yang.CloudRegion.class);
2244 doReturn(aaiCloudRegion).when(SPY_bbInputSetupUtils).getCloudRegion(requestDetails.getCloudConfiguration(),
2246 VolumeGroup volumeGroup = new VolumeGroup();
2247 volumeGroup.setVolumeGroupId("volumeGroupId");
2248 gBB.getServiceInstance().getVnfs().get(0).getVolumeGroups().add(volumeGroup);
2249 org.onap.aai.domain.yang.VolumeGroup aaiVolumeGroup = new org.onap.aai.domain.yang.VolumeGroup();
2250 aaiVolumeGroup.setModelCustomizationId("modelCustId");
2251 doReturn(aaiVolumeGroup).when(SPY_bbInputSetupUtils).getAAIVolumeGroup("att-aic",
2252 cloudConfiguration.getLcpCloudRegionId(), volumeGroup.getVolumeGroupId());
2254 executeBB.getBuildingBlock().setBpmnFlowName("UnassignVolumeGroupBB");
2255 executeBB.getBuildingBlock().setKey("72d9d1cd-f46d-447a-abdb-451d6fb05fa8");
2256 SPY_bbInputSetup.getGBBMacroExistingService(executeBB, lookupKeyMap,
2257 executeBB.getBuildingBlock().getBpmnFlowName(), gBB, service, requestAction, cloudConfiguration);
2258 verify(SPY_bbInputSetup, times(3)).mapCatalogVnf(any(GenericVnf.class), any(ModelInfo.class),
2259 any(Service.class));
2260 verify(SPY_bbInputSetup, times(1)).mapCatalogVolumeGroup(isA(VolumeGroup.class), isA(ModelInfo.class),
2261 isA(Service.class), isA(String.class));
2263 Configuration configuration = new Configuration();
2264 configuration.setConfigurationId("configurationId");
2265 gBB.getServiceInstance().getConfigurations().add(configuration);
2266 org.onap.aai.domain.yang.Configuration aaiConfiguration = new org.onap.aai.domain.yang.Configuration();
2267 aaiConfiguration.setModelCustomizationId("modelCustId");
2268 doReturn(aaiConfiguration).when(SPY_bbInputSetupUtils).getAAIConfiguration(configuration.getConfigurationId());
2269 doNothing().when(SPY_bbInputSetup).mapCatalogConfiguration(isA(Configuration.class), isA(ModelInfo.class), isA(Service.class), isA(ConfigurationResourceKeys.class));
2271 executeBB.getBuildingBlock().setBpmnFlowName("ActivateFabricConfigurationBB");
2272 executeBB.getBuildingBlock().setKey("72d9d1cd-f46d-447a-abdb-451d6fb05fa9");
2273 SPY_bbInputSetup.getGBBMacroExistingService(executeBB, lookupKeyMap,
2274 executeBB.getBuildingBlock().getBpmnFlowName(), gBB, service, requestAction, cloudConfiguration);
2275 verify(SPY_bbInputSetup, times(1)).mapCatalogConfiguration(any(Configuration.class), any(ModelInfo.class),
2276 any(Service.class), isA(ConfigurationResourceKeys.class));
2280 public void testGetVnfId() {
2281 String expected = "vnfId";
2282 ExecuteBuildingBlock executeBB = new ExecuteBuildingBlock();
2283 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
2284 executeBB.setRequestId("requestId");
2285 InfraActiveRequests request = new InfraActiveRequests();
2286 request.setVnfId(expected);
2287 doReturn(request).when(SPY_bbInputSetupUtils).getInfraActiveRequest(executeBB.getRequestId());
2289 String actual = SPY_bbInputSetup.getVnfId(executeBB, lookupKeyMap);
2291 assertEquals("VnfId is set correctly", expected, actual);
2295 public void testCreateVfModule() {
2296 String vfModuleId = "vfModuleId";
2297 String instanceName = "vfModuleName";
2298 Map<String, String> cloudParams = new HashMap<>();
2299 cloudParams.put("param1", "param1Value");
2300 VfModule expected = new VfModule();
2301 expected.setVfModuleId(vfModuleId);
2302 expected.setVfModuleName(instanceName);
2303 expected.setCloudParams(cloudParams);
2304 expected.setOrchestrationStatus(OrchestrationStatus.PRECREATED);
2305 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
2306 List<Map<String, String>> instanceParams = new ArrayList<>();
2307 instanceParams.add(cloudParams);
2309 VfModule actual = SPY_bbInputSetup.createVfModule(lookupKeyMap, vfModuleId, instanceName, instanceParams);
2311 assertThat(actual, sameBeanAs(expected));
2312 assertEquals("LookupKeyMap is populated", vfModuleId, lookupKeyMap.get(ResourceKey.VF_MODULE_ID));
2314 expected.getCloudParams().clear();
2315 actual = SPY_bbInputSetup.createVfModule(lookupKeyMap, vfModuleId, instanceName, null);
2316 assertThat(actual, sameBeanAs(expected));
2320 public void testCreateVolumeGroup() {
2321 String volumeGroupId = "volumeGroupId";
2322 String instanceName = "vfModuleName";
2323 String vnfType = "vnfType";
2324 Map<String, String> cloudParams = new HashMap<>();
2325 cloudParams.put("param1", "param1Value");
2326 VolumeGroup expected = new VolumeGroup();
2327 expected.setVolumeGroupId(volumeGroupId);
2328 expected.setVolumeGroupName(instanceName);
2329 expected.setCloudParams(cloudParams);
2330 expected.setVnfType(vnfType);
2331 expected.setOrchestrationStatus(OrchestrationStatus.PRECREATED);
2332 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
2333 List<Map<String, String>> instanceParams = new ArrayList<>();
2334 instanceParams.add(cloudParams);
2336 VolumeGroup actual = SPY_bbInputSetup.createVolumeGroup(lookupKeyMap, volumeGroupId, instanceName, vnfType, instanceParams);
2338 assertThat(actual, sameBeanAs(expected));
2339 assertEquals("LookupKeyMap is populated", volumeGroupId, lookupKeyMap.get(ResourceKey.VOLUME_GROUP_ID));
2341 expected.getCloudParams().clear();
2342 actual = SPY_bbInputSetup.createVolumeGroup(lookupKeyMap, volumeGroupId, instanceName, vnfType, null);
2343 assertThat(actual, sameBeanAs(expected));
2347 public void testCreateNetwork() {
2348 String networkId = "networkId";
2349 String instanceName = "networkName";
2350 Map<String, String> cloudParams = new HashMap<>();
2351 cloudParams.put("param1", "param1Value");
2352 L3Network expected = new L3Network();
2353 expected.setNetworkId(networkId);
2354 expected.setNetworkName(instanceName);
2355 expected.setCloudParams(cloudParams);
2356 expected.setOrchestrationStatus(OrchestrationStatus.PRECREATED);
2357 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
2358 List<Map<String, String>> instanceParams = new ArrayList<>();
2359 instanceParams.add(cloudParams);
2360 L3Network actual = SPY_bbInputSetup.createNetwork(lookupKeyMap, instanceName, networkId, instanceParams);
2362 assertThat(actual, sameBeanAs(expected));
2363 assertEquals("LookupKeyMap is populated", networkId, lookupKeyMap.get(ResourceKey.NETWORK_ID));
2365 expected.getCloudParams().clear();
2366 actual = SPY_bbInputSetup.createNetwork(lookupKeyMap, instanceName, networkId, null);
2367 assertThat(actual, sameBeanAs(expected));
2371 public void testCreateGenericVnf() {
2372 String vnfId = "vnfId";
2373 String instanceName = "vnfName";
2374 String vnfType = "vnfType";
2375 String platformName = "platformName";
2376 String lineOfBusinessName = "lineOfBusinessName";
2377 Platform platform = new Platform();
2378 platform.setPlatformName(platformName);
2379 LineOfBusiness lineOfBusiness = new LineOfBusiness();
2380 lineOfBusiness.setLineOfBusinessName(lineOfBusinessName);
2381 Map<String, String> cloudParams = new HashMap<>();
2382 cloudParams.put("param1", "param1Value");
2383 GenericVnf expected = new GenericVnf();
2384 expected.setVnfId(vnfId);
2385 expected.setVnfName(instanceName);
2386 expected.setVnfType(vnfType);
2387 expected.setCloudParams(cloudParams);
2388 expected.setOrchestrationStatus(OrchestrationStatus.PRECREATED);
2389 expected.setPlatform(platform);
2390 expected.setLineOfBusiness(lineOfBusiness);
2391 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
2392 List<Map<String, String>> instanceParams = new ArrayList<>();
2393 instanceParams.add(cloudParams);
2394 org.onap.so.serviceinstancebeans.Platform requestPlatform = new org.onap.so.serviceinstancebeans.Platform();
2395 platform.setPlatformName(platformName);
2396 org.onap.so.serviceinstancebeans.LineOfBusiness requestLineOfBusiness = new org.onap.so.serviceinstancebeans.LineOfBusiness();
2397 lineOfBusiness.setLineOfBusinessName(lineOfBusinessName);
2399 doReturn(platform).when(bbInputSetupMapperLayer).mapRequestPlatform(requestPlatform);
2400 doReturn(lineOfBusiness).when(bbInputSetupMapperLayer).mapRequestLineOfBusiness(requestLineOfBusiness);
2402 GenericVnf actual = SPY_bbInputSetup.createGenericVnf(lookupKeyMap, instanceName, requestPlatform, requestLineOfBusiness, vnfId, vnfType, instanceParams);
2404 assertThat(actual, sameBeanAs(expected));
2405 assertEquals("LookupKeyMap is populated", vnfId, lookupKeyMap.get(ResourceKey.GENERIC_VNF_ID));
2407 expected.getCloudParams().clear();
2408 actual = SPY_bbInputSetup.createGenericVnf(lookupKeyMap, instanceName, requestPlatform, requestLineOfBusiness, vnfId, vnfType, null);
2409 assertThat(actual, sameBeanAs(expected));
2413 public void testMapCatalogVfModule() {
2414 String vnfModelCustomizationUUID = "vnfResourceCustUUID";
2415 String vfModuleCustomizationUUID = "vfModelCustomizationUUID";
2416 VfModule vfModule = new VfModule();
2417 ModelInfo modelInfo = new ModelInfo();
2418 modelInfo.setModelCustomizationUuid(vfModuleCustomizationUUID);
2419 Service service = new Service();
2420 VnfResourceCustomization vnfResourceCust = new VnfResourceCustomization();
2421 vnfResourceCust.setModelCustomizationUUID(vnfModelCustomizationUUID);
2422 VfModuleCustomization vfModuleCust = new VfModuleCustomization();
2423 vfModuleCust.setModelCustomizationUUID(vfModuleCustomizationUUID);
2424 vnfResourceCust.getVfModuleCustomizations().add(vfModuleCust);
2425 service.getVnfCustomizations().add(vnfResourceCust);
2426 ModelInfoVfModule modelInfoVfModule = new ModelInfoVfModule();
2428 doReturn(modelInfoVfModule).when(bbInputSetupMapperLayer).mapCatalogVfModuleToVfModule(vfModuleCust);
2430 SPY_bbInputSetup.mapCatalogVfModule(vfModule, modelInfo, service, vnfModelCustomizationUUID);
2432 assertThat(vfModule.getModelInfoVfModule(), sameBeanAs(modelInfoVfModule));
2434 modelInfo.setModelCustomizationUuid(null);
2435 modelInfo.setModelCustomizationId(vfModuleCustomizationUUID);
2437 SPY_bbInputSetup.mapCatalogVfModule(vfModule, modelInfo, service, vnfModelCustomizationUUID);
2439 assertThat(vfModule.getModelInfoVfModule(), sameBeanAs(modelInfoVfModule));
2443 public void testPopulateVfModule() throws Exception {
2444 String vnfId = "vnfId";
2445 String vfModuleId = "vfModuleId";
2446 String volumeGroupId = "volumeGroupId";
2447 String vfModuleCustomizationId = "vfModuleCustomizationId";
2448 ModelInfo modelInfo = new ModelInfo();
2449 modelInfo.setModelCustomizationId(vfModuleCustomizationId);
2450 Service service = new Service();
2451 String bbName = AssignFlows.VF_MODULE.toString();
2452 ServiceInstance serviceInstance = new ServiceInstance();
2453 GenericVnf vnf = new GenericVnf();
2454 vnf.setVnfId(vnfId);
2455 VolumeGroup volumeGroup = new VolumeGroup();
2456 volumeGroup.setVolumeGroupId(volumeGroupId);
2457 vnf.getVolumeGroups().add(volumeGroup);
2458 serviceInstance.getVnfs().add(vnf);
2459 Map<ResourceKey, String> lookupKeyMap = new HashMap<>();
2460 lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, vnfId);
2461 String resourceId = vfModuleId;
2462 RelatedInstanceList[] relatedInstanceList = null;
2463 String instanceName = "vfModuleName";
2464 List<Map<String, String>> instanceParams = null;
2465 CloudConfiguration cloudConfiguration = new CloudConfiguration();
2467 org.onap.aai.domain.yang.GenericVnf vnfAAI = new org.onap.aai.domain.yang.GenericVnf();
2468 vnfAAI.setModelCustomizationId("vnfModelCustId");
2469 org.onap.aai.domain.yang.VolumeGroup volumeGroupAAI = new org.onap.aai.domain.yang.VolumeGroup();
2470 volumeGroupAAI.setModelCustomizationId(vfModuleCustomizationId);
2472 doReturn(vnfAAI).when(SPY_bbInputSetupUtils).getAAIGenericVnf(vnf.getVnfId());
2473 doReturn(volumeGroupAAI).when(SPY_bbInputSetupUtils).getAAIVolumeGroup(CLOUD_OWNER,
2474 cloudConfiguration.getLcpCloudRegionId(), volumeGroup.getVolumeGroupId());
2475 doNothing().when(SPY_bbInputSetup).mapCatalogVnf(isA(GenericVnf.class), isA(ModelInfo.class), isA(Service.class));
2476 doNothing().when(SPY_bbInputSetup).mapCatalogVfModule(isA(VfModule.class), isA(ModelInfo.class), isA(Service.class), isA(String.class));
2478 SPY_bbInputSetup.populateVfModule(modelInfo, service, bbName, serviceInstance, lookupKeyMap,
2479 resourceId, relatedInstanceList, instanceName, instanceParams, cloudConfiguration);
2481 assertEquals("Lookup Key Map populated with VfModule Id", vfModuleId, lookupKeyMap.get(ResourceKey.VF_MODULE_ID));
2482 assertEquals("Lookup Key Map populated with VolumeGroup Id", volumeGroupId, lookupKeyMap.get(ResourceKey.VOLUME_GROUP_ID));