2 * ============LICENSE_START=======================================================
4 * ================================================================================
5 * Copyright (C) 2017 - 2018 AT&T Intellectual Property. All rights reserved.
6 * ================================================================================
7 * Modifications Copyright (c) 2019 Samsung
8 * ================================================================================
9 * Modifications Copyright (c) 2020 Nokia
10 * ================================================================================
11 * Licensed under the Apache License, Version 2.0 (the "License");
12 * you may not use this file except in compliance with the License.
13 * You may obtain a copy of the License at
15 * http://www.apache.org/licenses/LICENSE-2.0
17 * Unless required by applicable law or agreed to in writing, software
18 * distributed under the License is distributed on an "AS IS" BASIS,
19 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
20 * See the License for the specific language governing permissions and
21 * limitations under the License.
22 * ============LICENSE_END=========================================================
25 package org.onap.so.bpmn.infrastructure.workflow.tasks;
27 import static org.hamcrest.CoreMatchers.containsString;
28 import static org.junit.Assert.assertEquals;
29 import static org.mockito.Mockito.when;
30 import java.util.HashMap;
32 import java.util.Optional;
33 import org.junit.Rule;
34 import org.junit.Test;
35 import org.junit.rules.ExpectedException;
36 import org.junit.runner.RunWith;
37 import org.mockito.InjectMocks;
38 import org.mockito.Mock;
39 import org.mockito.junit.MockitoJUnitRunner;
40 import org.onap.aai.domain.yang.GenericVnf;
41 import org.onap.aai.domain.yang.GenericVnfs;
42 import org.onap.aai.domain.yang.L3Network;
43 import org.onap.aai.domain.yang.ServiceInstance;
44 import org.onap.aai.domain.yang.ServiceInstances;
45 import org.onap.aai.domain.yang.VfModule;
46 import org.onap.aai.domain.yang.VfModules;
47 import org.onap.aai.domain.yang.VolumeGroup;
48 import org.onap.aaiclient.client.generated.fluentbuilders.AAIFluentTypeBuilder;
49 import org.onap.so.bpmn.servicedecomposition.entities.WorkflowResourceIds;
50 import org.onap.so.bpmn.servicedecomposition.tasks.BBInputSetupUtils;
51 import org.onap.so.bpmn.servicedecomposition.tasks.exceptions.DuplicateNameException;
52 import org.onap.so.serviceinstancebeans.ModelInfo;
53 import org.onap.so.serviceinstancebeans.RequestDetails;
54 import org.onap.so.serviceinstancebeans.RequestParameters;
55 import org.onap.so.serviceinstancebeans.SubscriberInfo;
57 @RunWith(MockitoJUnitRunner.class)
58 public class AaiResourceIdValidatorTest {
61 private BBInputSetupUtils bbInputSetupUtilsMock;
64 private AaiResourceIdValidator testedObject;
67 public ExpectedException expectedException = ExpectedException.none();
70 public void validateResourceIdInAAIVnfTest() throws Exception {
71 RequestDetails reqDetails = setupRequestDetails();
72 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
73 workflowResourceIds.setServiceInstanceId("siId123");
74 GenericVnf vnf = new GenericVnf();
75 vnf.setVnfId("id123");
76 vnf.setModelCustomizationId("1234567");
77 Optional<GenericVnf> opVnf = Optional.of(vnf);
78 GenericVnf vnf2 = new GenericVnf();
79 vnf2.setVnfId("id123");
80 vnf2.setModelCustomizationId("222");
81 Optional<GenericVnf> opVnf2 = Optional.of(vnf2);
82 when(bbInputSetupUtilsMock.getRelatedVnfByNameFromServiceInstance("siId123", "vnfName123")).thenReturn(opVnf);
83 when(bbInputSetupUtilsMock.getRelatedVnfByNameFromServiceInstance("siId123", "vnfName222")).thenReturn(opVnf2);
84 String id = testedObject.validateResourceIdInAAI("generatedId123", WorkflowType.VNF, "vnfName123", reqDetails,
86 assertEquals("id123", id);
87 String id2 = testedObject.validateResourceIdInAAI("generatedId123", WorkflowType.VNF, "nameTest", reqDetails,
89 assertEquals("generatedId123", id2);
91 this.expectedException.expect(DuplicateNameException.class);
92 this.expectedException.expectMessage(containsString(
93 "generic-vnf with name (vnfName222), same parent and different customization id (222) already exists. The name must be unique."));
94 testedObject.validateResourceIdInAAI("generatedId123", WorkflowType.VNF, "vnfName222", reqDetails,
99 public void validateResourceIdInAAIVnfNotGloballyUniqueTest() throws Exception {
100 RequestDetails reqDetails = setupRequestDetails();
101 GenericVnfs genericVnfs = new GenericVnfs();
102 GenericVnf vnf3 = new GenericVnf();
103 vnf3.setVnfId("id123");
105 genericVnfs.getGenericVnf().add(vnf3);
106 when(bbInputSetupUtilsMock.getAAIVnfsGloballyByName("vnfName333")).thenReturn(genericVnfs);
108 this.expectedException.expect(DuplicateNameException.class);
109 this.expectedException.expectMessage(containsString(
110 "generic-vnf with name (vnfName333) id (id123) and different parent relationship already exists. The name must be unique."));
111 testedObject.validateResourceIdInAAI("generatedId123", WorkflowType.VNF, "vnfName333", reqDetails,
112 new WorkflowResourceIds());
116 public void validateResourceIdInAAINetworkTest() throws Exception {
117 RequestDetails reqDetails = setupRequestDetails();
118 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
119 workflowResourceIds.setServiceInstanceId("siId123");
120 L3Network network = new L3Network();
121 network.setNetworkId("id123");
122 network.setModelCustomizationId("1234567");
123 Optional<L3Network> opNetwork = Optional.of(network);
124 L3Network network2 = new L3Network();
125 network2.setNetworkId("id123");
126 network2.setModelCustomizationId("222");
127 Optional<L3Network> opNetwork2 = Optional.of(network2);
129 when(bbInputSetupUtilsMock.getRelatedNetworkByNameFromServiceInstance("siId123", "name123"))
130 .thenReturn(opNetwork);
131 when(bbInputSetupUtilsMock.getRelatedNetworkByNameFromServiceInstance("siId123", "networkName222"))
132 .thenReturn(opNetwork2);
133 String id = testedObject.validateResourceIdInAAI("generatedId123", WorkflowType.NETWORK, "name123", reqDetails,
134 workflowResourceIds);
135 assertEquals("id123", id);
136 String id2 = testedObject.validateResourceIdInAAI("generatedId123", WorkflowType.NETWORK, "111111", reqDetails,
137 workflowResourceIds);
138 assertEquals("generatedId123", id2);
140 this.expectedException.expect(DuplicateNameException.class);
141 this.expectedException.expectMessage(containsString(
142 "l3Network with name (networkName222), same parent and different customization id (222) already exists. The name must be unique."));
143 testedObject.validateResourceIdInAAI("generatedId123", WorkflowType.NETWORK, "networkName222", reqDetails,
144 workflowResourceIds);
148 public void validateNetworkResourceNameExistsInAAITest() throws Exception {
149 RequestDetails reqDetails = setupRequestDetails();
150 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
151 workflowResourceIds.setServiceInstanceId("siId123");
153 when(bbInputSetupUtilsMock.existsAAINetworksGloballyByName("networkName333")).thenReturn(true);
155 this.expectedException.expect(DuplicateNameException.class);
156 this.expectedException.expectMessage(containsString(
157 "l3Network with name (networkName333) id (siId123) and different parent relationship already exists. The name must be unique."));
158 testedObject.validateResourceIdInAAI("generatedId123", WorkflowType.NETWORK, "networkName333", reqDetails,
159 workflowResourceIds);
163 public void validateResourceIdInAAIVfModuleTest() throws Exception {
164 RequestDetails reqDetails = setupRequestDetails();
165 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
166 workflowResourceIds.setVnfId("id123");
168 GenericVnf vnf = new GenericVnf();
169 VfModules vfModules = new VfModules();
170 VfModule vfModule = new VfModule();
171 vfModule.setVfModuleId("id123");
172 vfModule.setVfModuleName("name123");
173 vfModule.setModelCustomizationId("1234567");
174 vfModules.getVfModule().add(vfModule);
175 vnf.setVfModules(vfModules);
177 when(bbInputSetupUtilsMock.getAAIGenericVnf("id123")).thenReturn(vnf);
178 String id = testedObject.validateResourceIdInAAI("generatedId123", WorkflowType.VFMODULE, "name123", reqDetails,
179 workflowResourceIds);
180 assertEquals("id123", id);
182 GenericVnf vnf1 = new GenericVnf();
183 VfModules vfModules2 = new VfModules();
184 VfModule vfModule2 = new VfModule();
185 vfModule2.setVfModuleName("vFModName222");
186 vfModule2.setModelCustomizationId("222");
187 vfModules2.getVfModule().add(vfModule2);
188 vnf1.setVfModules(vfModules2);
189 workflowResourceIds.setVnfId("id111");
190 when(bbInputSetupUtilsMock.getAAIGenericVnf("id111")).thenReturn(vnf1);
191 String id2 = testedObject.validateResourceIdInAAI("generatedId123", WorkflowType.VFMODULE, "111111", reqDetails,
192 workflowResourceIds);
193 assertEquals("generatedId123", id2);
195 this.expectedException.expect(DuplicateNameException.class);
196 this.expectedException.expectMessage(containsString(
197 "vfModule with name (vFModName222), same parent and different customization id (1234567) already exists. The name must be unique."));
198 testedObject.validateResourceIdInAAI("generatedId123", WorkflowType.VFMODULE, "vFModName222", reqDetails,
199 workflowResourceIds);
203 public void validateResourceIdInAAIVfModuleNotGloballyUniqueTest() throws Exception {
204 RequestDetails reqDetails = setupRequestDetails();
206 when(bbInputSetupUtilsMock.existsAAIVfModuleGloballyByName("vFModName333")).thenReturn(true);
207 this.expectedException.expect(DuplicateNameException.class);
208 this.expectedException.expectMessage(
209 containsString("vfModule with name vFModName333 already exists. The name must be unique."));
210 testedObject.validateResourceIdInAAI("generatedId123", WorkflowType.VFMODULE, "vFModName333", reqDetails,
211 new WorkflowResourceIds());
215 public void validateResourceIdInAAIVolumeGroupTest() throws Exception {
216 RequestDetails reqDetails = setupRequestDetails();
217 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
218 workflowResourceIds.setVnfId("id123");
219 VolumeGroup volumeGroup = new VolumeGroup();
220 volumeGroup.setVolumeGroupId("id123");
221 volumeGroup.setVolumeGroupName("name123");
222 volumeGroup.setVfModuleModelCustomizationId("1234567");
223 Optional<VolumeGroup> opVolumeGroup = Optional.of(volumeGroup);
225 when(bbInputSetupUtilsMock.getRelatedVolumeGroupByNameFromVnf("id123", "name123")).thenReturn(opVolumeGroup);
226 String id = testedObject.validateResourceIdInAAI("generatedId123", WorkflowType.VOLUMEGROUP, "name123",
227 reqDetails, workflowResourceIds);
228 assertEquals("id123", id);
230 String id2 = testedObject.validateResourceIdInAAI("generatedId123", WorkflowType.VOLUMEGROUP, "111111",
231 reqDetails, workflowResourceIds);
232 assertEquals("generatedId123", id2);
237 public void validateSourceIdInAAIVolumeGroupNotGloballyUniqueTest() throws Exception {
238 RequestDetails reqDetails = setupRequestDetails();
239 when(bbInputSetupUtilsMock.existsAAIVolumeGroupGloballyByName("testVolumeGroup")).thenReturn(true);
240 this.expectedException.expect(DuplicateNameException.class);
241 this.expectedException.expectMessage(
242 containsString("volumeGroup with name testVolumeGroup already exists. The name must be unique."));
243 testedObject.validateResourceIdInAAI("generatedId123", WorkflowType.VOLUMEGROUP, "testVolumeGroup", reqDetails,
244 new WorkflowResourceIds());
248 public void validateResourceIdInAAIConfigurationTest() throws Exception {
249 RequestDetails reqDetails = setupRequestDetails();
250 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
251 workflowResourceIds.setServiceInstanceId("siId123");
253 org.onap.aai.domain.yang.Configuration configuration = new org.onap.aai.domain.yang.Configuration();
254 configuration.setConfigurationId("id123");
255 configuration.setModelCustomizationId("1234567");
256 Optional<org.onap.aai.domain.yang.Configuration> opConfiguration = Optional.of(configuration);
258 org.onap.aai.domain.yang.Configuration configuration2 = new org.onap.aai.domain.yang.Configuration();
259 configuration2.setConfigurationId("id123");
260 configuration2.setModelCustomizationId("222");
261 Optional<org.onap.aai.domain.yang.Configuration> opConfiguration2 = Optional.of(configuration2);
263 when(bbInputSetupUtilsMock.getRelatedConfigurationByNameFromServiceInstance("siId123", "name123"))
264 .thenReturn(opConfiguration);
265 String id = testedObject.validateResourceIdInAAI("generatedId123", WorkflowType.CONFIGURATION, "name123",
266 reqDetails, workflowResourceIds);
267 assertEquals("id123", id);
269 String id2 = testedObject.validateResourceIdInAAI("generatedId123", WorkflowType.CONFIGURATION, "111111",
270 reqDetails, workflowResourceIds);
271 assertEquals("generatedId123", id2);
273 when(bbInputSetupUtilsMock.getRelatedConfigurationByNameFromServiceInstance("siId123", "name222"))
274 .thenReturn(opConfiguration2);
275 this.expectedException.expect(DuplicateNameException.class);
276 this.expectedException.expectMessage(containsString(
277 "configuration with name (name222), same parent and different customization id (id123) already exists. The name must be unique."));
278 testedObject.validateResourceIdInAAI("generatedId123", WorkflowType.CONFIGURATION, "name222", reqDetails,
279 workflowResourceIds);
283 public void validateResourceIdInAAIConfigurationNotGloballyUniqueTest() throws Exception {
284 RequestDetails reqDetails = setupRequestDetails();
285 when(bbInputSetupUtilsMock.existsAAIConfigurationGloballyByName("testConfig")).thenReturn(true);
286 this.expectedException.expect(DuplicateNameException.class);
287 this.expectedException.expectMessage(
288 containsString("configuration with name testConfig already exists. The name must be unique."));
289 testedObject.validateResourceIdInAAI("generatedId123", WorkflowType.CONFIGURATION, "testConfig", reqDetails,
290 new WorkflowResourceIds());
294 public void validateResourceIdInAAISITest() throws Exception {
295 RequestDetails reqDetails = setupRequestDetails();
296 reqDetails.getModelInfo().setModelVersionId("1234567");
298 ServiceInstance si = new ServiceInstance();
299 si.setServiceInstanceId("siId123");
300 si.setModelVersionId("1234567");
301 ServiceInstances serviceInstances = new ServiceInstances();
302 serviceInstances.getServiceInstance().add(si);
303 Optional<ServiceInstance> siOp = Optional.of(si);
304 ServiceInstance si2 = new ServiceInstance();
305 si2.setServiceInstanceId("siId222");
306 si2.setModelVersionId("22222");
307 si2.setServiceInstanceName("siName222");
308 Optional<ServiceInstance> siOp2 = Optional.of(si2);
309 ServiceInstances serviceInstances2 = new ServiceInstances();
310 serviceInstances2.getServiceInstance().add(si2);
312 when(bbInputSetupUtilsMock.getAAIServiceInstanceByName("id123", "subServiceType123", "siName123"))
314 when(bbInputSetupUtilsMock.getAAIServiceInstanceByName("id123", "subServiceType123", "siName222"))
316 String id = testedObject.validateResourceIdInAAI("generatedId123", WorkflowType.SERVICE, "siName123",
317 reqDetails, new WorkflowResourceIds());
318 assertEquals("siId123", id);
319 String id2 = testedObject.validateResourceIdInAAI("generatedId123", WorkflowType.SERVICE, "111111", reqDetails,
320 new WorkflowResourceIds());
321 assertEquals("generatedId123", id2);
323 this.expectedException.expect(DuplicateNameException.class);
324 this.expectedException.expectMessage(containsString(
325 "serviceInstance with name (siName222) and different version id (1234567) already exists. The name must be unique."));
326 testedObject.validateResourceIdInAAI("generatedId123", WorkflowType.SERVICE, "siName222", reqDetails,
327 new WorkflowResourceIds());
331 public void validateResourceIdInAAIMultipleSITest() throws Exception {
332 RequestDetails reqDetails = setupRequestDetails();
333 reqDetails.getModelInfo().setModelVersionId("1234567");
334 ServiceInstance si = new ServiceInstance();
335 ServiceInstances serviceInstances = new ServiceInstances();
336 serviceInstances.getServiceInstance().add(si);
337 ServiceInstance si2 = new ServiceInstance();
338 serviceInstances.getServiceInstance().add(si2);
339 when(bbInputSetupUtilsMock.getAAIServiceInstancesGloballyByName("siName123")).thenReturn(serviceInstances);
341 this.expectedException.expect(DuplicateNameException.class);
342 this.expectedException.expectMessage(containsString(
343 "serviceInstance with name (siName123) and multiple combination of model-version-id + service-type + global-customer-id already exists. The name must be unique."));
344 testedObject.validateResourceIdInAAI("generatedId123", WorkflowType.SERVICE, "siName123", reqDetails,
345 new WorkflowResourceIds());
349 public void validateResourceIdInAAISIExistsTest() throws Exception {
350 RequestDetails reqDetails = setupRequestDetails();
351 reqDetails.getModelInfo().setModelVersionId("1234567");
353 ServiceInstance si = new ServiceInstance();
354 si.setServiceInstanceId("siId123");
355 si.setModelVersionId("1234567");
356 ServiceInstances serviceInstances = new ServiceInstances();
357 serviceInstances.getServiceInstance().add(si);
359 Map<String, String> uriKeys = new HashMap<>();
360 uriKeys.put(AAIFluentTypeBuilder.Types.CUSTOMER.getUriParams().globalCustomerId, "globalCustomerId");
361 uriKeys.put(AAIFluentTypeBuilder.Types.SERVICE_SUBSCRIPTION.getUriParams().serviceType, "serviceType");
363 when(bbInputSetupUtilsMock.getAAIServiceInstancesGloballyByName("siName123")).thenReturn(serviceInstances);
364 when(bbInputSetupUtilsMock.getURIKeysFromServiceInstance("siId123")).thenReturn(uriKeys);
366 this.expectedException.expect(DuplicateNameException.class);
367 this.expectedException.expectMessage(containsString(
368 "serviceInstance with name (siName123) and global-customer-id (globalCustomerId), service-type (serviceType), model-version-id (1234567) already exists. The name must be unique."));
369 testedObject.validateResourceIdInAAI("generatedId123", WorkflowType.SERVICE, "siName123", reqDetails,
370 new WorkflowResourceIds());
374 public void validateServiceResourceIdInAAINoDupTest() throws Exception {
375 RequestDetails reqDetails = setupRequestDetails();
376 String id = testedObject.validateServiceResourceIdInAAI("generatedId123", "siName123", reqDetails);
377 assertEquals("generatedId123", id);
381 public void validateServiceResourceIdInAAISameModelVersionId() throws Exception {
382 RequestDetails reqDetails = setupRequestDetails();
383 reqDetails.getModelInfo().setModelVersionId("1234567");
385 ServiceInstance si = new ServiceInstance();
386 si.setServiceInstanceId("siId123");
387 si.setModelVersionId("1234567");
388 Optional<ServiceInstance> siOp = Optional.of(si);
390 when(bbInputSetupUtilsMock.getAAIServiceInstanceByName("id123", "subServiceType123", "siName123"))
392 String id = testedObject.validateServiceResourceIdInAAI("generatedId123", "siName123", reqDetails);
393 assertEquals("siId123", id);
397 public void validateServiceResourceIdInAAIDifferentModelVersionId() throws Exception {
398 RequestDetails reqDetails = setupRequestDetails();
399 reqDetails.getModelInfo().setModelVersionId("1234567");
401 ServiceInstance si = new ServiceInstance();
402 si.setModelVersionId("9999999");
403 ServiceInstances serviceInstances = new ServiceInstances();
404 serviceInstances.getServiceInstance().add(si);
405 Optional<ServiceInstance> siOp = Optional.of(si);
407 when(bbInputSetupUtilsMock.getAAIServiceInstanceByName("id123", "subServiceType123", "siName123"))
410 this.expectedException.expect(DuplicateNameException.class);
411 this.expectedException.expectMessage(containsString(
412 "serviceInstance with name (siName123) and different version id (1234567) already exists. The name must be unique."));
414 String id = testedObject.validateServiceResourceIdInAAI("generatedId123", "siName123", reqDetails);
415 assertEquals("siId123", id);
419 public void validateServiceResourceIdInAAIDuplicateNameTest() throws Exception {
420 RequestDetails reqDetails = setupRequestDetails();
421 ServiceInstance si = new ServiceInstance();
422 si.setModelVersionId("1234567");
423 ServiceInstances serviceInstances = new ServiceInstances();
424 serviceInstances.getServiceInstance().add(si);
426 when(bbInputSetupUtilsMock.getAAIServiceInstancesGloballyByName("siName")).thenReturn(serviceInstances);
428 this.expectedException.expect(DuplicateNameException.class);
429 this.expectedException.expectMessage(containsString(
430 "serviceInstance with name (siName) and global-customer-id (null), service-type (null), model-version-id (1234567) already exists. The name must be unique."));
432 testedObject.validateServiceResourceIdInAAI("generatedId123", "siName", reqDetails);
436 public void validateServiceResourceIdInAAIDuplicateNameMultipleTest() throws Exception {
437 RequestDetails reqDetails = setupRequestDetails();
438 ServiceInstances serviceInstances = new ServiceInstances();
439 serviceInstances.getServiceInstance().add(new ServiceInstance());
440 serviceInstances.getServiceInstance().add(new ServiceInstance());
442 when(bbInputSetupUtilsMock.getAAIServiceInstancesGloballyByName("siName")).thenReturn(serviceInstances);
444 this.expectedException.expect(DuplicateNameException.class);
445 this.expectedException.expectMessage(containsString(
446 "serviceInstance with name (siName) and multiple combination of model-version-id + service-type + global-customer-id already exists. The name must be unique."));
448 testedObject.validateServiceResourceIdInAAI("generatedId123", "siName", reqDetails);
452 public void validateNetworkResourceIdInAAITest() throws Exception {
453 RequestDetails reqDetails = setupRequestDetails();
454 String id = testedObject.validateNetworkResourceIdInAAI("generatedId123", "name123", reqDetails,
455 new WorkflowResourceIds());
456 assertEquals("generatedId123", id);
460 public void validateNetworkResourceIdInAAISameModelCustIdTest() throws Exception {
461 RequestDetails reqDetails = setupRequestDetails();
462 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
463 workflowResourceIds.setServiceInstanceId("siId123");
464 L3Network network = new L3Network();
465 network.setNetworkId("id123");
466 network.setModelCustomizationId("1234567");
467 Optional<L3Network> opNetwork = Optional.of(network);
469 when(bbInputSetupUtilsMock.getRelatedNetworkByNameFromServiceInstance("siId123", "name123"))
470 .thenReturn(opNetwork);
472 String id = testedObject.validateNetworkResourceIdInAAI("generatedId123", "name123", reqDetails,
473 workflowResourceIds);
474 assertEquals("id123", id);
478 public void validateNetworkResourceIdInAAIDuplicateNameTest() throws Exception {
479 RequestDetails reqDetails = setupRequestDetails();
480 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
481 workflowResourceIds.setServiceInstanceId("siId123");
482 L3Network network = new L3Network();
483 network.setModelCustomizationId("9999999");
484 Optional<L3Network> opNetwork = Optional.of(network);
486 when(bbInputSetupUtilsMock.getRelatedNetworkByNameFromServiceInstance("siId123", "name123"))
487 .thenReturn(opNetwork);
489 this.expectedException.expect(DuplicateNameException.class);
490 this.expectedException.expectMessage(containsString(
491 "l3Network with name (name123), same parent and different customization id (9999999) already exists. The name must be unique."));
493 testedObject.validateNetworkResourceIdInAAI("generatedId123", "name123", reqDetails, workflowResourceIds);
497 public void validateNetworkResourceIdInAAINotGloballyUniqueTest() throws Exception {
498 RequestDetails reqDetails = setupRequestDetails();
499 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
500 workflowResourceIds.setServiceInstanceId("siId123");
502 when(bbInputSetupUtilsMock.existsAAINetworksGloballyByName("name123")).thenReturn(true);
504 this.expectedException.expect(DuplicateNameException.class);
505 this.expectedException.expectMessage(containsString(
506 "l3Network with name (name123) id (siId123) and different parent relationship already exists. The name must be unique."));
508 testedObject.validateNetworkResourceIdInAAI("generatedId123", "name123", reqDetails, workflowResourceIds);
512 public void validateVnfResourceIdInAAITest() throws Exception {
513 RequestDetails reqDetails = setupRequestDetails();
514 String id = testedObject.validateVnfResourceIdInAAI("generatedId123", "vnfName123", reqDetails,
515 new WorkflowResourceIds());
516 assertEquals("generatedId123", id);
520 public void validateVnfResourceIdInAAISameModelCustomizationIdTest() throws Exception {
521 RequestDetails reqDetails = setupRequestDetails();
522 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
523 workflowResourceIds.setServiceInstanceId("siId123");
525 GenericVnf vnf = new GenericVnf();
526 vnf.setVnfId("id123");
527 vnf.setModelCustomizationId("1234567");
528 Optional<GenericVnf> opVnf = Optional.of(vnf);
530 when(bbInputSetupUtilsMock.getRelatedVnfByNameFromServiceInstance("siId123", "vnfName123")).thenReturn(opVnf);
531 String id = testedObject.validateVnfResourceIdInAAI("generatedId123", "vnfName123", reqDetails,
532 workflowResourceIds);
533 assertEquals("id123", id);
537 public void validateVnfResourceIdInAAIDiffModelCustomizationIdTest() throws Exception {
538 RequestDetails reqDetails = setupRequestDetails();
539 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
540 workflowResourceIds.setServiceInstanceId("siId123");
541 GenericVnf vnf = new GenericVnf();
542 vnf.setModelCustomizationId("9999999");
543 Optional<GenericVnf> opVnf = Optional.of(vnf);
545 when(bbInputSetupUtilsMock.getRelatedVnfByNameFromServiceInstance("siId123", "vnfName123")).thenReturn(opVnf);
547 this.expectedException.expect(DuplicateNameException.class);
548 this.expectedException.expectMessage(containsString(
549 "generic-vnf with name (vnfName123), same parent and different customization id (9999999) already exists. The name must be unique."));
551 testedObject.validateVnfResourceIdInAAI("generatedId123", "vnfName123", reqDetails, workflowResourceIds);
555 public void validateVnfResourceIdInAAINotGloballyUniqueTest() throws Exception {
556 RequestDetails reqDetails = setupRequestDetails();
557 GenericVnf vnf = new GenericVnf();
558 vnf.setVnfId("id123");
559 GenericVnfs genericVnfs = new GenericVnfs();
560 genericVnfs.getGenericVnf().add(vnf);
562 when(bbInputSetupUtilsMock.getAAIVnfsGloballyByName("vnfName123")).thenReturn(genericVnfs);
564 this.expectedException.expect(DuplicateNameException.class);
565 this.expectedException.expectMessage(containsString(
566 "generic-vnf with name (vnfName123) id (id123) and different parent relationship already exists. The name must be unique."));
568 testedObject.validateVnfResourceIdInAAI("generatedId123", "vnfName123", reqDetails, new WorkflowResourceIds());
572 public void validateVfModuleResourceIdTest() throws Exception {
573 RequestDetails reqDetails = setupRequestDetails();
574 String id = testedObject.validateVfModuleResourceIdInAAI("generatedId123", "name123", reqDetails,
575 new WorkflowResourceIds());
576 assertEquals("generatedId123", id);
580 public void validateVfModuleResourceIdSameModelCustIdTest() throws Exception {
581 RequestDetails reqDetails = setupRequestDetails();
582 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
583 workflowResourceIds.setVnfId("vnfId123");
584 VfModules vfModules = new VfModules();
585 VfModule vfModule = new VfModule();
586 vfModule.setVfModuleId("id123");
587 vfModule.setVfModuleName("name123");
588 vfModule.setModelCustomizationId("1234567");
589 vfModules.getVfModule().add(vfModule);
590 GenericVnf vnf = new GenericVnf();
591 vnf.setVfModules(vfModules);
593 when(bbInputSetupUtilsMock.getAAIGenericVnf("vnfId123")).thenReturn(vnf);
595 String id = testedObject.validateVfModuleResourceIdInAAI("generatedId123", "name123", reqDetails,
596 workflowResourceIds);
597 assertEquals("id123", id);
601 public void validateVfModuleResourceIdDifferentModelCustIdTest() throws Exception {
602 RequestDetails reqDetails = setupRequestDetails();
603 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
604 workflowResourceIds.setVnfId("vnfId123");
605 VfModules vfModules = new VfModules();
606 VfModule vfModule = new VfModule();
607 vfModule.setVfModuleName("name123");
608 vfModule.setModelCustomizationId("9999999");
609 vfModules.getVfModule().add(vfModule);
610 GenericVnf vnf = new GenericVnf();
611 vnf.setVfModules(vfModules);
613 when(bbInputSetupUtilsMock.getAAIGenericVnf("vnfId123")).thenReturn(vnf);
615 this.expectedException.expect(DuplicateNameException.class);
616 this.expectedException.expectMessage(containsString(
617 "vfModule with name (name123), same parent and different customization id (1234567) already exists. The name must be unique."));
619 testedObject.validateVfModuleResourceIdInAAI("generatedId123", "name123", reqDetails, workflowResourceIds);
623 public void validateVfModuleResourceIdNotGloballyUniqueTest() throws Exception {
624 RequestDetails reqDetails = setupRequestDetails();
625 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
626 when(bbInputSetupUtilsMock.existsAAIVfModuleGloballyByName("name123")).thenReturn(true);
628 this.expectedException.expect(DuplicateNameException.class);
629 this.expectedException
630 .expectMessage(containsString("vfModule with name name123 already exists. The name must be unique."));
632 testedObject.validateVfModuleResourceIdInAAI("generatedId123", "name123", reqDetails, workflowResourceIds);
636 public void validateVolumeGroupResourceIdInAAITest() throws Exception {
637 RequestDetails reqDetails = setupRequestDetails();
638 String id = testedObject.validateVolumeGroupResourceIdInAAI("generatedId123", "name123", reqDetails,
639 new WorkflowResourceIds());
640 assertEquals("generatedId123", id);
644 public void validateVolumeGroupResourceIdInAAISameModelCustIdTest() throws Exception {
645 RequestDetails reqDetails = setupRequestDetails();
646 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
647 workflowResourceIds.setVnfId("vnfId123");
648 VolumeGroup volumeGroup = new VolumeGroup();
649 volumeGroup.setVolumeGroupId("id123");
650 volumeGroup.setVfModuleModelCustomizationId("1234567");
651 Optional<VolumeGroup> opVolumeGroup = Optional.of(volumeGroup);
653 when(bbInputSetupUtilsMock.getRelatedVolumeGroupByNameFromVnf("vnfId123", "name123")).thenReturn(opVolumeGroup);
654 String id = testedObject.validateResourceIdInAAI("generatedId123", WorkflowType.VOLUMEGROUP, "name123",
655 reqDetails, workflowResourceIds);
657 assertEquals("id123", id);
661 public void validateVolumeGroupResourceIdInAAIDifferentModelCustIdTest() throws Exception {
662 RequestDetails reqDetails = setupRequestDetails();
663 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
664 workflowResourceIds.setVnfId("vnfId123");
665 VolumeGroup volumeGroup = new VolumeGroup();
666 volumeGroup.setVolumeGroupName("name123");
667 volumeGroup.setVfModuleModelCustomizationId("9999999");
668 Optional<VolumeGroup> opVolumeGroup = Optional.of(volumeGroup);
670 when(bbInputSetupUtilsMock.getRelatedVolumeGroupByNameFromVnf("vnfId123", "name123")).thenReturn(opVolumeGroup);
672 this.expectedException.expect(DuplicateNameException.class);
673 this.expectedException.expectMessage(
674 containsString("volumeGroup with name name123 already exists. The name must be unique."));
676 testedObject.validateResourceIdInAAI("generatedId123", WorkflowType.VOLUMEGROUP, "name123", reqDetails,
677 workflowResourceIds);
681 public void validateVolumeGroupResourceIdInAAINotGloballyUniqueTest() throws Exception {
682 RequestDetails reqDetails = setupRequestDetails();
683 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
684 when(bbInputSetupUtilsMock.existsAAIVolumeGroupGloballyByName("name123")).thenReturn(true);
686 this.expectedException.expect(DuplicateNameException.class);
687 this.expectedException.expectMessage(
688 containsString("volumeGroup with name name123 already exists. The name must be unique."));
690 testedObject.validateResourceIdInAAI("generatedId123", WorkflowType.VOLUMEGROUP, "name123", reqDetails,
691 workflowResourceIds);
695 public void validateConfigurationResourceIdInAAITest() throws Exception {
696 RequestDetails reqDetails = setupRequestDetails();
697 String id = testedObject.validateConfigurationResourceIdInAAI("generatedId123", "name123", reqDetails,
698 new WorkflowResourceIds());
699 assertEquals("generatedId123", id);
703 public void validateConfigurationResourceIdInAAISameModelCustIdTest() throws Exception {
704 RequestDetails reqDetails = setupRequestDetails();
705 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
706 workflowResourceIds.setServiceInstanceId("siId123");
707 org.onap.aai.domain.yang.Configuration configuration = new org.onap.aai.domain.yang.Configuration();
708 configuration.setConfigurationId("id123");
709 configuration.setModelCustomizationId("1234567");
710 Optional<org.onap.aai.domain.yang.Configuration> opConfiguration = Optional.of(configuration);
712 when(bbInputSetupUtilsMock.getRelatedConfigurationByNameFromServiceInstance("siId123", "name123"))
713 .thenReturn(opConfiguration);
715 String id = testedObject.validateConfigurationResourceIdInAAI("generatedId123", "name123", reqDetails,
716 workflowResourceIds);
717 assertEquals("id123", id);
721 public void validateConfigurationResourceIdInAAIDifferentModelCustIdTest() throws Exception {
722 RequestDetails reqDetails = setupRequestDetails();
723 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
724 workflowResourceIds.setServiceInstanceId("siId123");
725 org.onap.aai.domain.yang.Configuration configuration = new org.onap.aai.domain.yang.Configuration();
726 configuration.setConfigurationId("id123");
727 configuration.setModelCustomizationId("9999999");
728 Optional<org.onap.aai.domain.yang.Configuration> opConfiguration = Optional.of(configuration);
730 when(bbInputSetupUtilsMock.getRelatedConfigurationByNameFromServiceInstance("siId123", "name123"))
731 .thenReturn(opConfiguration);
732 this.expectedException.expect(DuplicateNameException.class);
733 this.expectedException.expectMessage(containsString(
734 "configuration with name (name123), same parent and different customization id (id123) already exists. The name must be unique."));
736 testedObject.validateConfigurationResourceIdInAAI("generatedId123", "name123", reqDetails, workflowResourceIds);
740 public void validateConfigurationResourceIdInAAINotGloballyUniqueTest() throws Exception {
741 RequestDetails reqDetails = setupRequestDetails();
742 WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
744 when(bbInputSetupUtilsMock.existsAAIConfigurationGloballyByName("name123")).thenReturn(true);
745 this.expectedException.expect(DuplicateNameException.class);
746 this.expectedException.expectMessage(
747 containsString("configuration with name name123 already exists. The name must be unique."));
749 testedObject.validateConfigurationResourceIdInAAI("generatedId123", "name123", reqDetails, workflowResourceIds);
752 private RequestDetails setupRequestDetails() {
753 RequestDetails reqDetails = new RequestDetails();
754 SubscriberInfo subInfo = new SubscriberInfo();
755 subInfo.setGlobalSubscriberId("id123");
756 reqDetails.setSubscriberInfo(subInfo);
757 RequestParameters reqParams = new RequestParameters();
758 reqParams.setSubscriptionServiceType("subServiceType123");
759 reqDetails.setRequestParameters(reqParams);
760 ModelInfo modelInfo = new ModelInfo();
761 modelInfo.setModelCustomizationId("1234567");
762 reqDetails.setModelInfo(modelInfo);