2 * Copyright (C) 2020 CMCC, Inc. and others. All rights reserved.
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
17 package org.openecomp.sdc.be.components.impl;
19 import static org.assertj.core.api.Java6Assertions.assertThat;
20 import static org.junit.jupiter.api.Assertions.assertEquals;
21 import static org.junit.jupiter.api.Assertions.assertNotEquals;
22 import static org.junit.jupiter.api.Assertions.assertNotNull;
23 import static org.junit.jupiter.api.Assertions.assertSame;
24 import static org.junit.jupiter.api.Assertions.assertThrows;
25 import static org.junit.jupiter.api.Assertions.assertTrue;
26 import static org.junit.jupiter.api.Assertions.fail;
27 import static org.mockito.ArgumentMatchers.any;
28 import static org.mockito.ArgumentMatchers.anyBoolean;
29 import static org.mockito.ArgumentMatchers.anyMap;
30 import static org.mockito.ArgumentMatchers.anyString;
31 import static org.mockito.Mockito.mock;
32 import static org.mockito.Mockito.times;
33 import static org.mockito.Mockito.verify;
34 import static org.mockito.Mockito.when;
36 import fj.data.Either;
38 import java.io.IOException;
39 import java.net.URISyntaxException;
40 import java.nio.file.FileSystems;
41 import java.nio.file.Files;
42 import java.util.ArrayList;
43 import java.util.Collections;
44 import java.util.EnumMap;
45 import java.util.HashMap;
46 import java.util.List;
48 import java.util.Map.Entry;
49 import java.util.NoSuchElementException;
50 import java.util.Optional;
51 import org.apache.commons.collections.map.HashedMap;
52 import org.apache.commons.lang3.tuple.ImmutablePair;
53 import org.glassfish.grizzly.http.util.HttpStatus;
54 import org.junit.jupiter.api.Assertions;
55 import org.junit.jupiter.api.BeforeEach;
56 import org.junit.jupiter.api.Test;
57 import org.mockito.MockitoAnnotations;
58 import org.openecomp.sdc.ElementOperationMock;
59 import org.openecomp.sdc.be.auditing.impl.AuditingManager;
60 import org.openecomp.sdc.be.components.csar.CsarInfo;
61 import org.openecomp.sdc.be.components.csar.ServiceCsarInfo;
62 import org.openecomp.sdc.be.components.impl.ArtifactsBusinessLogic.ArtifactOperationEnum;
63 import org.openecomp.sdc.be.components.impl.exceptions.ComponentException;
64 import org.openecomp.sdc.be.components.lifecycle.LifecycleBusinessLogic;
65 import org.openecomp.sdc.be.components.lifecycle.LifecycleChangeInfoWithAction;
66 import org.openecomp.sdc.be.dao.api.ActionStatus;
67 import org.openecomp.sdc.be.datatypes.elements.GetInputValueDataDefinition;
68 import org.openecomp.sdc.be.datatypes.elements.ListCapabilityDataDefinition;
69 import org.openecomp.sdc.be.datatypes.elements.ListRequirementDataDefinition;
70 import org.openecomp.sdc.be.datatypes.elements.PropertyDataDefinition;
71 import org.openecomp.sdc.be.datatypes.enums.ComponentTypeEnum;
72 import org.openecomp.sdc.be.datatypes.enums.ResourceTypeEnum;
73 import org.openecomp.sdc.be.impl.ComponentsUtils;
74 import org.openecomp.sdc.be.model.ArtifactDefinition;
75 import org.openecomp.sdc.be.model.AttributeDefinition;
76 import org.openecomp.sdc.be.model.CapabilityDefinition;
77 import org.openecomp.sdc.be.model.CapabilityTypeDefinition;
78 import org.openecomp.sdc.be.model.Component;
79 import org.openecomp.sdc.be.model.ComponentInstance;
80 import org.openecomp.sdc.be.model.ComponentInstanceInput;
81 import org.openecomp.sdc.be.model.ComponentInstanceProperty;
82 import org.openecomp.sdc.be.model.ComponentParametersView;
83 import org.openecomp.sdc.be.model.GroupDefinition;
84 import org.openecomp.sdc.be.model.InputDefinition;
85 import org.openecomp.sdc.be.model.InterfaceDefinition;
86 import org.openecomp.sdc.be.model.LifeCycleTransitionEnum;
87 import org.openecomp.sdc.be.model.LifecycleStateEnum;
88 import org.openecomp.sdc.be.model.NodeTypeInfo;
89 import org.openecomp.sdc.be.model.OutputDefinition;
90 import org.openecomp.sdc.be.model.PropertyDefinition;
91 import org.openecomp.sdc.be.model.RequirementCapabilityRelDef;
92 import org.openecomp.sdc.be.model.RequirementDefinition;
93 import org.openecomp.sdc.be.model.Resource;
94 import org.openecomp.sdc.be.model.Service;
95 import org.openecomp.sdc.be.model.UploadCapInfo;
96 import org.openecomp.sdc.be.model.UploadComponentInstanceInfo;
97 import org.openecomp.sdc.be.model.UploadNodeFilterInfo;
98 import org.openecomp.sdc.be.model.UploadPropInfo;
99 import org.openecomp.sdc.be.model.UploadReqInfo;
100 import org.openecomp.sdc.be.model.User;
101 import org.openecomp.sdc.be.model.category.CategoryDefinition;
102 import org.openecomp.sdc.be.model.category.SubCategoryDefinition;
103 import org.openecomp.sdc.be.model.jsonjanusgraph.operations.ToscaOperationFacade;
104 import org.openecomp.sdc.be.model.operations.api.ICapabilityTypeOperation;
105 import org.openecomp.sdc.be.model.operations.api.IElementOperation;
106 import org.openecomp.sdc.be.model.operations.api.IInterfaceLifecycleOperation;
107 import org.openecomp.sdc.be.model.operations.api.StorageOperationStatus;
108 import org.openecomp.sdc.be.resources.data.auditing.AuditingActionEnum;
109 import org.openecomp.sdc.be.user.Role;
110 import org.openecomp.sdc.common.api.Constants;
111 import org.openecomp.sdc.common.zip.ZipUtils;
112 import org.openecomp.sdc.common.zip.exception.ZipException;
113 import org.openecomp.sdc.exception.ResponseFormat;
115 class ServiceImportParseLogicTest extends ServiceImportBussinessLogicBaseTestSetup {
117 private static final String RESOURCE_NAME = "My-Resource_Name with space";
118 private static final String RESOURCE_TOSCA_NAME = "My-Resource_Tosca_Name";
119 private static final String RESOURCE_CATEGORY1 = "Network Layer 2-3";
120 private static final String RESOURCE_SUBCATEGORY = "Router";
122 private final ComponentsUtils componentsUtils = new ComponentsUtils(mock(AuditingManager.class));
123 private final ToscaOperationFacade toscaOperationFacade = mock(ToscaOperationFacade.class);
124 private final ServiceBusinessLogic serviceBusinessLogic = mock(ServiceBusinessLogic.class);
125 private final ICapabilityTypeOperation capabilityTypeOperation = mock(ICapabilityTypeOperation.class);
126 private final IElementOperation elementDao = mock(IElementOperation.class);
127 private final IInterfaceLifecycleOperation interfaceTypeOperation = mock(IInterfaceLifecycleOperation.class);
128 private final InputsBusinessLogic inputsBusinessLogic = mock(InputsBusinessLogic.class);
129 private final OutputsBusinessLogic outputsBusinessLogic = mock(OutputsBusinessLogic.class);
130 private final LifecycleBusinessLogic lifecycleBusinessLogic = mock(LifecycleBusinessLogic.class);
131 private final ComponentNodeFilterBusinessLogic componentNodeFilterBusinessLogic = mock(ComponentNodeFilterBusinessLogic.class);
133 private ResponseFormatManager responseManager = null;
134 private User user = null;
135 private ServiceImportParseLogic testSubject;
137 private ServiceImportParseLogic createTestSubject() {
138 return new ServiceImportParseLogic(serviceBusinessLogic, componentsUtils, toscaOperationFacade, lifecycleBusinessLogic, inputsBusinessLogic,
139 null, null, interfaceTypeOperation, capabilityTypeOperation, componentNodeFilterBusinessLogic,
140 groupBusinessLogic, outputsBusinessLogic);
144 public void setup() {
145 MockitoAnnotations.openMocks(this);
148 mockElementDao = new ElementOperationMock();
150 // User data and management
152 user.setUserId("jh0003");
153 user.setFirstName("Jimmi");
154 user.setLastName("Hendrix");
155 user.setRole(Role.ADMIN.name());
156 responseManager = ResponseFormatManager.getInstance();
158 testSubject = createTestSubject();
159 serviceBusinessLogic.setElementDao(elementDao);
163 void testFindNodeTypesArtifactsToHandle() {
164 testSubject = createTestSubject();
165 Map<String, NodeTypeInfo> nodeTypesInfo = new HashedMap();
166 final Service service = createServiceObject(false);
167 Assertions.assertNotNull(
168 this.testSubject.findNodeTypesArtifactsToHandle(
169 nodeTypesInfo, getCsarInfo(), service));
174 void testBuildNodeTypeYaml() {
175 Map.Entry<String, Object> nodeNameValue = new Entry<String, Object>() {
177 public String getKey() {
182 public Object getValue() {
187 public Object setValue(Object value) {
191 Map<String, Object> mapToConvert = new HashMap<>();
192 String nodeResourceType = Constants.USER_DEFINED_RESOURCE_NAMESPACE_PREFIX;
194 final CsarInfo csarInfo = getCsarInfo();
195 Assertions.assertThrows(ComponentException.class, () ->
196 testSubject.buildNodeTypeYaml(nodeNameValue, mapToConvert, nodeResourceType, csarInfo));
201 void testFindAddNodeTypeArtifactsToHandle() {
203 Map<String, List<ArtifactDefinition>> extractedVfcsArtifacts = new HashMap<>();
204 Map<String, EnumMap<ArtifactOperationEnum, List<ArtifactDefinition>>> nodeTypesArtifactsToHandle = new HashMap<>();
205 String namespace = "namespace";
207 ImmutablePair p1 = ImmutablePair.<String, String>of("s", "sd");
208 Map<String, NodeTypeInfo> nodeTypesInfo = new HashedMap();
209 final Service service = createServiceObject(false);
210 Resource resource = new Resource();
211 Either<Component, StorageOperationStatus> getCompLatestResult = Either.left(resource);
212 when(toscaOperationFacade.getLatestByToscaResourceName(anyString(), any()))
213 .thenReturn(getCompLatestResult);
215 final CsarInfo csarInfo = getCsarInfo();
216 Assertions.assertThrows(ComponentException.class, () ->
217 testSubject.findAddNodeTypeArtifactsToHandle(csarInfo, nodeTypesArtifactsToHandle, service,
218 extractedVfcsArtifacts, namespace, p1));
223 void testFindAddNodeTypeArtifactsToHandleNotNull() {
225 Map<String, List<ArtifactDefinition>> extractedVfcsArtifacts = new HashMap<>();
226 Map<String, EnumMap<ArtifactOperationEnum, List<ArtifactDefinition>>> nodeTypesArtifactsToHandle = new HashMap<>();
227 String namespace = "namespace";
228 List<ArtifactDefinition> vfcArtifacts = new ArrayList<>();
229 ArtifactDefinition artifactDefinition = new ArtifactDefinition();
230 artifactDefinition.setArtifactName("artifactDefinitionName");
231 vfcArtifacts.add(artifactDefinition);
232 extractedVfcsArtifacts.put(namespace, vfcArtifacts);
233 ImmutablePair p1 = ImmutablePair.<String, String>of("s", "sd");
234 Map<String, NodeTypeInfo> nodeTypesInfo = new HashedMap();
235 final Service service = createServiceObject(false);
236 Resource resource = new Resource();
237 Either<Component, StorageOperationStatus> getCompLatestResult = Either.left(resource);
238 when(toscaOperationFacade.getLatestByToscaResourceName(anyString(), any()))
239 .thenReturn(getCompLatestResult);
240 Assertions.assertNotNull(extractedVfcsArtifacts);
241 testSubject.findAddNodeTypeArtifactsToHandle(getCsarInfo(), nodeTypesArtifactsToHandle, service,
242 extractedVfcsArtifacts, namespace, p1);
246 void testHandleAndAddExtractedVfcsArtifacts() {
247 List<ArtifactDefinition> vfcArtifacts = new ArrayList<>();
248 ArtifactDefinition artifactDefinition = new ArtifactDefinition();
249 artifactDefinition.setArtifactName("artifactDefinitionName");
250 vfcArtifacts.add(artifactDefinition);
251 List<ArtifactDefinition> artifactsToAdd = new ArrayList<>();
252 ArtifactDefinition artifactDefinitionToAdd = new ArtifactDefinition();
253 artifactDefinitionToAdd.setArtifactName("artifactDefinitionToAddName");
254 artifactsToAdd.add(artifactDefinitionToAdd);
255 Assertions.assertNotNull(vfcArtifacts);
257 testSubject.handleAndAddExtractedVfcsArtifacts(vfcArtifacts, artifactsToAdd);
261 void testFindNodeTypeArtifactsToHandle() {
263 Resource curNodeType = createParseResourceObject(true);
264 List<ArtifactDefinition> extractedArtifacts = new ArrayList<>();
266 Assertions.assertNull(
267 testSubject.findNodeTypeArtifactsToHandle(curNodeType, extractedArtifacts));
271 void testCollectExistingArtifacts() {
273 Resource curNodeType = createParseResourceObject(true);
274 Assertions.assertNotNull(
275 testSubject.collectExistingArtifacts(curNodeType));
279 void testPutFoundArtifacts() {
280 ArtifactDefinition artifactDefinition = new ArtifactDefinition();
281 List<ArtifactDefinition> artifactsToUpload = new ArrayList<>();
282 artifactsToUpload.add(artifactDefinition);
283 List<ArtifactDefinition> artifactsToUpdate = new ArrayList<>();
284 artifactsToUpdate.add(artifactDefinition);
285 List<ArtifactDefinition> artifactsToDelete = new ArrayList<>();
286 artifactsToDelete.add(artifactDefinition);
287 Assertions.assertNotNull(
288 testSubject.putFoundArtifacts(artifactsToUpload, artifactsToUpdate, artifactsToDelete));
292 void testProcessExistingNodeTypeArtifacts() {
293 ArtifactDefinition artifactDefinition = new ArtifactDefinition();
294 List<ArtifactDefinition> extractedArtifacts = new ArrayList<>();
295 extractedArtifacts.add(artifactDefinition);
296 List<ArtifactDefinition> artifactsToUpload = new ArrayList<>();
297 artifactsToUpload.add(artifactDefinition);
298 List<ArtifactDefinition> artifactsToUpdate = new ArrayList<>();
299 artifactsToUpdate.add(artifactDefinition);
300 List<ArtifactDefinition> artifactsToDelete = new ArrayList<>();
301 artifactsToDelete.add(artifactDefinition);
302 Map<String, ArtifactDefinition> existingArtifacts = new HashMap<>();
303 existingArtifacts.put("test", artifactDefinition);
304 Assertions.assertThrows(ComponentException.class, () ->
305 testSubject.processExistingNodeTypeArtifacts(extractedArtifacts, artifactsToUpload, artifactsToUpdate,
306 artifactsToDelete, existingArtifacts));
311 void testProcessNodeTypeArtifact() {
312 List<ArtifactDefinition> artifactsToUpload = new ArrayList<>();
313 List<ArtifactDefinition> artifactsToUpdate = new ArrayList<>();
314 Map<String, ArtifactDefinition> existingArtifacts = new HashMap<>();
315 ArtifactDefinition existingArtifact = new ArtifactDefinition();
316 existingArtifact.setArtifactName("ArtifactName");
317 existingArtifact.setArtifactType("ArtifactType");
318 existingArtifact.setArtifactChecksum("ArtifactChecksum");
319 existingArtifacts.put("existingArtifactMap", existingArtifact);
320 ArtifactDefinition currNewArtifact = new ArtifactDefinition();
321 currNewArtifact.setArtifactName("ArtifactName");
322 currNewArtifact.setArtifactType("ArtifactType");
323 currNewArtifact.setPayload("Payload".getBytes());
324 Assertions.assertNotNull(existingArtifact);
325 testSubject.processNodeTypeArtifact(artifactsToUpload, artifactsToUpdate, existingArtifacts, currNewArtifact);
329 void testUpdateFoundArtifact() {
330 List<ArtifactDefinition> artifactsToUpdate = new ArrayList<>();
331 ArtifactDefinition currNewArtifact = new ArtifactDefinition();
332 currNewArtifact.setArtifactChecksum("090909");
333 currNewArtifact.setPayloadData("data");
334 ArtifactDefinition foundArtifact = new ArtifactDefinition();
335 foundArtifact.setArtifactChecksum("08767");
336 Assertions.assertNotNull(currNewArtifact);
338 testSubject.updateFoundArtifact(artifactsToUpdate, currNewArtifact, foundArtifact);
342 void testIsArtifactDeletionRequired() {
343 String artifactId = "artifactId";
344 byte[] artifactFileBytes = new byte[100];
345 boolean isFromCsar = true;
346 Assertions.assertFalse(testSubject.isArtifactDeletionRequired(artifactId, artifactFileBytes, isFromCsar));
350 void testFillGroupsFinalFields() {
351 List<GroupDefinition> groupsAsList = new ArrayList<>();
352 GroupDefinition groupDefinition = new GroupDefinition();
353 groupDefinition.setName("groupDefinitionName");
354 groupsAsList.add(groupDefinition);
355 Assertions.assertNotNull(groupsAsList);
356 testSubject.fillGroupsFinalFields(groupsAsList);
360 void testGetComponentTypeForResponse() {
361 Resource resource = createParseResourceObject(true);
362 Assertions.assertNotNull(
363 testSubject.getComponentTypeForResponse(resource));
367 void testGetComponentTypeForResponseByService() {
368 Service service = createServiceObject(true);
369 Assertions.assertNotNull(
370 testSubject.getComponentTypeForResponse(service));
374 void testBuildValidComplexVfc() {
375 Resource resource = createParseResourceObject(true);
376 String nodeName = "org.openecomp.resource.derivedFrom.zxjTestImportServiceAb.test";
377 Map<String, NodeTypeInfo> nodesInfo = new HashMap<>();
378 NodeTypeInfo nodeTypeInfo = new NodeTypeInfo();
379 List<String> derivedFrom = new ArrayList<>();
380 derivedFrom.add("derivedFrom");
381 nodeTypeInfo.setDerivedFrom(derivedFrom);
382 nodesInfo.put(nodeName, nodeTypeInfo);
383 final CsarInfo csarInfo = getCsarInfo();
384 Assertions.assertThrows(ComponentException.class, () ->
385 testSubject.buildValidComplexVfc(resource, csarInfo, nodeName, nodesInfo));
390 void testValidateResourceBeforeCreate() {
391 Resource resource = createParseResourceObject(true);
393 testSubject.getServiceBusinessLogic().setElementDao(elementDao);
394 final CsarInfo csarInfo = getCsarInfo();
395 Assertions.assertThrows(ComponentException.class, () ->
396 testSubject.validateResourceBeforeCreate(resource, user, AuditingActionEnum.IMPORT_RESOURCE, false, csarInfo));
401 void testValidateResourceType() {
402 Resource resource = createParseResourceObject(true);
403 Assertions.assertNotNull(
404 testSubject.validateResourceType(user, resource, AuditingActionEnum.IMPORT_RESOURCE));
408 void testValidateResourceTypeIsEmpty() {
409 Resource resource = new Resource();
410 resource.setResourceType(null);
411 Assertions.assertNotNull(
412 testSubject.validateResourceType(user, resource, AuditingActionEnum.IMPORT_RESOURCE));
416 void testValidateLifecycleTypesCreate() {
417 Resource resource = createParseResourceObject(true);
418 Map<String, InterfaceDefinition> mapInterfaces = new HashMap<>();
419 InterfaceDefinition interfaceDefinition = new InterfaceDefinition();
420 String uniqueId = "01932342212";
421 interfaceDefinition.setUniqueId(uniqueId);
422 mapInterfaces.put("uniqueId", interfaceDefinition);
423 resource.setInterfaces(mapInterfaces);
424 when(interfaceTypeOperation.getInterface(anyString()))
425 .thenReturn(Either.right(StorageOperationStatus.NOT_FOUND));
426 Assertions.assertNotNull(
427 testSubject.validateLifecycleTypesCreate(user, resource, AuditingActionEnum.IMPORT_RESOURCE));
431 void testValidateCapabilityTypesCreate() {
432 Resource resource = createParseResourceObject(true);
433 Map<String, List<CapabilityDefinition>> capabilities = new HashMap<>();
434 String uniqueId = "18982938994";
435 List<CapabilityDefinition> capabilityDefinitionList = new ArrayList<>();
436 CapabilityDefinition capabilityDefinition = new CapabilityDefinition();
437 capabilityDefinitionList.add(capabilityDefinition);
438 capabilities.put(uniqueId, capabilityDefinitionList);
439 resource.setCapabilities(capabilities);
440 when(capabilityTypeOperation.getCapabilityType(anyString(), anyBoolean())).
441 thenReturn(Either.right(StorageOperationStatus.NOT_FOUND));
442 Assertions.assertNotNull(
443 testSubject.validateCapabilityTypesCreate(user, testSubject.getCapabilityTypeOperation(), resource,
444 AuditingActionEnum.IMPORT_RESOURCE, true));
449 void testValidateCapabilityTypesCreateWhenHaveCapability() {
450 Resource resource = createParseResourceObject(true);
451 Map<String, List<CapabilityDefinition>> capabilities = new HashMap<>();
452 String uniqueId = "18982938994";
453 List<CapabilityDefinition> capabilityDefinitionList = new ArrayList<>();
454 CapabilityDefinition capabilityDefinition = new CapabilityDefinition();
455 capabilityDefinitionList.add(capabilityDefinition);
456 capabilities.put(uniqueId, capabilityDefinitionList);
457 resource.setCapabilities(capabilities);
458 CapabilityTypeDefinition capabilityTypeDefinition = new CapabilityTypeDefinition();
459 when(capabilityTypeOperation.getCapabilityType(anyString(), anyBoolean())).
460 thenReturn(Either.left(capabilityTypeDefinition));
462 Assertions.assertNotNull(
463 testSubject.validateCapabilityTypesCreate(user, testSubject.getCapabilityTypeOperation(), resource,
464 AuditingActionEnum.IMPORT_RESOURCE, true));
469 void testValidateCapabilityTypeExists() {
470 Resource resource = createParseResourceObject(true);
471 Either<Boolean, ResponseFormat> eitherResult = Either.left(true);
472 for (Map.Entry<String, List<CapabilityDefinition>> typeEntry : resource.getCapabilities().entrySet()) {
474 Assertions.assertNotNull(
475 testSubject.validateCapabilityTypeExists(user, testSubject.getCapabilityTypeOperation(), resource,
476 AuditingActionEnum.IMPORT_RESOURCE,
477 eitherResult, typeEntry, false));
482 void testValidateCapabilityTypeExistsWhenPropertiesIsNull() {
483 Resource resource = createParseResourceObject(true);
484 Either<Boolean, ResponseFormat> eitherResult = Either.left(true);
485 CapabilityTypeDefinition capabilityTypeDefinition = new CapabilityTypeDefinition();
487 String uniqueId = "0987348532";
488 PropertyDefinition propertyDefinition = new PropertyDefinition();
489 Map<String, PropertyDefinition> properties = new HashMap<>();
490 properties.put(uniqueId, propertyDefinition);
491 capabilityTypeDefinition.setProperties(properties);
493 Map<String, List<CapabilityDefinition>> capabilities = new HashMap<>();
494 List<CapabilityDefinition> capabilityDefinitionList = new ArrayList<>();
495 CapabilityDefinition capabilityDefinition = new CapabilityDefinition();
496 capabilityDefinitionList.add(capabilityDefinition);
497 capabilities.put(uniqueId, capabilityDefinitionList);
498 resource.setCapabilities(capabilities);
500 when(capabilityTypeOperation.getCapabilityType(anyString(), anyBoolean())).
501 thenReturn(Either.left(capabilityTypeDefinition));
502 for (Map.Entry<String, List<CapabilityDefinition>> typeEntry : resource.getCapabilities().entrySet()) {
504 Assertions.assertNotNull(
505 testSubject.validateCapabilityTypeExists(user, testSubject.getCapabilityTypeOperation(), resource,
506 AuditingActionEnum.IMPORT_RESOURCE,
507 eitherResult, typeEntry, false));
512 void testValidateCapabilityTypeExistsWhenPropertiesNotNull() {
513 Resource resource = createParseResourceObject(true);
514 Either<Boolean, ResponseFormat> eitherResult = Either.left(true);
515 CapabilityTypeDefinition capabilityTypeDefinition = new CapabilityTypeDefinition();
517 String uniqueId = "0987348532";
518 PropertyDefinition propertyDefinition = new PropertyDefinition();
519 propertyDefinition.setName(uniqueId);
520 Map<String, PropertyDefinition> properties = new HashMap<>();
521 properties.put(uniqueId, propertyDefinition);
522 capabilityTypeDefinition.setProperties(properties);
524 Map<String, List<CapabilityDefinition>> capabilities = new HashMap<>();
526 List<CapabilityDefinition> capabilityDefinitionList = new ArrayList<>();
527 List<ComponentInstanceProperty> componentInstancePropertyList = new ArrayList<>();
528 ComponentInstanceProperty componentInstanceProperty = new ComponentInstanceProperty();
529 componentInstanceProperty.setValueUniqueUid(uniqueId);
530 componentInstanceProperty.setName(uniqueId);
531 componentInstancePropertyList.add(componentInstanceProperty);
532 CapabilityDefinition capabilityDefinition = new CapabilityDefinition();
533 capabilityDefinition.setProperties(componentInstancePropertyList);
534 capabilityDefinitionList.add(capabilityDefinition);
536 capabilities.put(uniqueId, capabilityDefinitionList);
537 resource.setCapabilities(capabilities);
539 when(capabilityTypeOperation.getCapabilityType(anyString(), anyBoolean())).
540 thenReturn(Either.left(capabilityTypeDefinition));
541 for (Map.Entry<String, List<CapabilityDefinition>> typeEntry : resource.getCapabilities().entrySet()) {
543 Assertions.assertNotNull(
544 testSubject.validateCapabilityTypeExists(user, testSubject.getCapabilityTypeOperation(), resource,
545 AuditingActionEnum.IMPORT_RESOURCE,
546 eitherResult, typeEntry, false));
551 void testValidateCapabilityTypeExists2() {
552 Resource resource = createParseResourceObject(true);
553 Either<Boolean, ResponseFormat> eitherResult = Either.left(true);
554 when(capabilityTypeOperation.getCapabilityType(anyString(), anyBoolean())).
555 thenReturn(Either.right(StorageOperationStatus.NOT_FOUND));
557 for (String type : resource.getRequirements().keySet()) {
558 Assertions.assertNotNull(
559 testSubject.validateCapabilityTypeExists(user, testSubject.getCapabilityTypeOperation(), resource,
560 resource.getRequirements().get(type), AuditingActionEnum.IMPORT_RESOURCE, eitherResult, type,
567 void testValidateResourceFieldsBeforeCreate() {
568 Resource resource = createParseResourceObject(true);
569 Assertions.assertThrows(ComponentException.class, () ->
570 testSubject.validateResourceFieldsBeforeCreate(user, resource, AuditingActionEnum.IMPORT_RESOURCE, true));
574 void testValidateDerivedFromExist() {
575 Resource resource = createParseResourceObject(true);
576 when(toscaOperationFacade.validateToscaResourceNameExists(anyString())).thenReturn(Either.left(true));
577 Assertions.assertNotNull(resource);
579 testSubject.validateDerivedFromExist(user, resource, AuditingActionEnum.IMPORT_RESOURCE);
583 void testValidateLicenseType() {
584 Resource resource = createParseResourceObject(true);
586 Assertions.assertThrows(ComponentException.class, () ->
587 testSubject.validateLicenseType(user, resource, AuditingActionEnum.IMPORT_RESOURCE));
593 void testValidateCost() {
594 Resource resource = createParseResourceObject(true);
595 Assertions.assertThrows(ComponentException.class, () ->
596 testSubject.validateCost(resource));
600 void testValidateResourceVendorModelNumber() {
601 Resource resource = createParseResourceObject(true);
602 Assertions.assertNotNull(resource);
604 testSubject.validateResourceVendorModelNumber(user, resource, AuditingActionEnum.IMPORT_RESOURCE);
608 void testValidateResourceVendorModelNumberWrongLen() {
609 Resource resource = createParseResourceObject(true);
610 resource.setResourceVendorModelNumber("000000000011122221111222333444443222556677788778889999998776554332340");
611 Assertions.assertThrows(ComponentException.class, () ->
612 testSubject.validateResourceVendorModelNumber(user, resource, AuditingActionEnum.IMPORT_RESOURCE));
616 void testValidateResourceVendorModelNumberWrongValue() {
617 Resource resource = createParseResourceObject(true);
618 resource.setResourceVendorModelNumber("");
619 Assertions.assertNotNull(resource);
621 testSubject.validateResourceVendorModelNumber(user, resource, AuditingActionEnum.IMPORT_RESOURCE);
625 void testValidateVendorReleaseName() {
626 Resource resource = createParseResourceObject(true);
627 resource.setVendorRelease("0.1");
628 Assertions.assertNotNull(resource);
630 testSubject.validateVendorReleaseName(user, resource, AuditingActionEnum.IMPORT_RESOURCE);
634 void testValidateVendorReleaseNameFailure() {
635 Resource resource = createParseResourceObject(true);
636 resource.setVendorRelease("");
637 Assertions.assertThrows(ComponentException.class, () ->
638 testSubject.validateVendorReleaseName(user, resource, AuditingActionEnum.IMPORT_RESOURCE));
643 void testValidateVendorReleaseNameWrongLen() {
644 Resource resource = createParseResourceObject(true);
645 resource.setVendorRelease("000000000011122221111222333444443222556677788778889999998776554332340");
646 Assertions.assertThrows(ComponentException.class, () ->
647 testSubject.validateVendorReleaseName(user, resource, AuditingActionEnum.IMPORT_RESOURCE));
652 void testValidateCategory() {
653 Resource resource = createParseResourceObject(true);
654 Assertions.assertThrows(ComponentException.class, () ->
655 testSubject.validateCategory(user, resource, AuditingActionEnum.IMPORT_RESOURCE, true));
659 void testValidateEmptyCategory() {
660 Resource resource = createParseResourceObject(true);
661 resource.setCategories(null);
662 Assertions.assertThrows(ComponentException.class, () ->
663 testSubject.validateCategory(user, resource, AuditingActionEnum.IMPORT_RESOURCE, true));
668 void testValidateCategorySizeBiggerThan1() {
669 Resource resource = createParseResourceObject(true);
670 List<CategoryDefinition> categories = new ArrayList<>();
671 CategoryDefinition categoryDefinition1 = new CategoryDefinition();
672 CategoryDefinition categoryDefinition2 = new CategoryDefinition();
673 categories.add(categoryDefinition1);
674 categories.add(categoryDefinition2);
676 resource.setCategories(categories);
677 Assertions.assertThrows(ComponentException.class, () ->
678 testSubject.validateCategory(user, resource, AuditingActionEnum.IMPORT_RESOURCE, true));
683 void testValidateEmptySubCategory() {
684 Resource resource = createParseResourceObject(true);
685 List<CategoryDefinition> categories = resource.getCategories();
686 CategoryDefinition categoryDefinition = categories.get(0);
687 categoryDefinition.setSubcategories(null);
689 Assertions.assertThrows(ComponentException.class, () ->
690 testSubject.validateCategory(user, resource, AuditingActionEnum.IMPORT_RESOURCE, true));
695 void testValidateEmptySubCategorySizeBiggerThan1() {
696 Resource resource = createParseResourceObject(true);
697 List<CategoryDefinition> categories = resource.getCategories();
698 CategoryDefinition categoryDefinition = categories.get(0);
699 List<SubCategoryDefinition> subcategories = categoryDefinition.getSubcategories();
700 SubCategoryDefinition subCategoryDefinition1 = new SubCategoryDefinition();
701 SubCategoryDefinition subCategoryDefinition2 = new SubCategoryDefinition();
702 subcategories.add(subCategoryDefinition1);
703 subcategories.add(subCategoryDefinition2);
705 Assertions.assertThrows(ComponentException.class, () ->
706 testSubject.validateCategory(user, resource, AuditingActionEnum.IMPORT_RESOURCE, true));
711 void testValidateEmptyCategoryName() {
712 Resource resource = createParseResourceObject(true);
713 List<CategoryDefinition> categories = resource.getCategories();
714 CategoryDefinition categoryDefinition = categories.get(0);
715 categoryDefinition.setName(null);
717 Assertions.assertThrows(ComponentException.class, () ->
718 testSubject.validateCategory(user, resource, AuditingActionEnum.IMPORT_RESOURCE, true));
722 void testValidateEmptySubCategoryName() {
723 Resource resource = createParseResourceObject(true);
724 List<CategoryDefinition> categories = resource.getCategories();
725 CategoryDefinition categoryDefinition = categories.get(0);
726 List<SubCategoryDefinition> subcategories = categoryDefinition.getSubcategories();
727 SubCategoryDefinition subCategoryDefinition1 = subcategories.get(0);
728 subCategoryDefinition1.setName(null);
730 Assertions.assertThrows(ComponentException.class, () ->
731 testSubject.validateCategory(user, resource, AuditingActionEnum.IMPORT_RESOURCE, true));
735 void testValidateCategoryListed() {
736 Resource resource = createParseResourceObject(true);
737 CategoryDefinition category = resource.getCategories().get(0);
738 SubCategoryDefinition subcategory = category.getSubcategories().get(0);
739 Assertions.assertThrows(ComponentException.class, () ->
740 testSubject.validateCategoryListed(category, subcategory, user, resource, AuditingActionEnum.IMPORT_RESOURCE, true));
744 void testFailOnInvalidCategory() {
745 Resource resource = createParseResourceObject(true);
746 Assertions.assertThrows(ComponentException.class, () ->
747 testSubject.failOnInvalidCategory(user, resource, AuditingActionEnum.IMPORT_RESOURCE));
752 void testValidateVendorName() {
753 Resource resource = createParseResourceObject(true);
754 Assertions.assertNotNull(resource);
755 testSubject.validateVendorName(user, resource, AuditingActionEnum.IMPORT_RESOURCE);
759 void testValidateVendorNameEmpty() {
760 Resource resource = createParseResourceObject(true);
761 resource.setVendorName(null);
762 Assertions.assertThrows(ComponentException.class, () ->
763 testSubject.validateVendorName(user, resource, AuditingActionEnum.IMPORT_RESOURCE));
767 void testValidateVendorNameWrongLen() {
768 Resource resource = createParseResourceObject(true);
769 resource.setVendorName("000000000011122221111222333444443222556677788778889999998776554332340");
770 Assertions.assertThrows(ComponentException.class, () ->
771 testSubject.validateVendorName(user, resource, AuditingActionEnum.IMPORT_RESOURCE));
775 void testValidateVendorName2() {
776 Resource resource = createParseResourceObject(true);
777 CategoryDefinition category = resource.getCategories().get(0);
778 SubCategoryDefinition subcategory = category.getSubcategories().get(0);
779 String vendorName = "vendorName";
780 Assertions.assertNotNull(resource);
782 testSubject.validateVendorName(vendorName, user, resource, AuditingActionEnum.IMPORT_RESOURCE);
786 void testFillResourceMetadata2() {
787 String yamlName = "yamlName";
788 Resource resourceVf = createParseResourceObject(true);
789 String nodeName = Constants.USER_DEFINED_RESOURCE_NAMESPACE_PREFIX + "test";
790 resourceVf.setSystemName("systemName");
791 Assertions.assertThrows(ComponentException.class, () ->
792 testSubject.fillResourceMetadata(yamlName, resourceVf, nodeName, user));
796 void testFillResourceMetadataWrongStart() {
797 String yamlName = "yamlName";
798 Resource resourceVf = createParseResourceObject(true);
799 String nodeName = "WrongStart" + "test";
800 Assertions.assertThrows(ComponentException.class, () ->
801 testSubject.fillResourceMetadata(yamlName, resourceVf, nodeName, user));
805 void testFillResourceMetadataResourceTypeIsAbs() {
806 String yamlName = "yamlName";
807 Resource resourceVf = createParseResourceObject(true);
808 String nodeName = Constants.USER_DEFINED_RESOURCE_NAMESPACE_PREFIX + Constants.ABSTRACT;
809 Assertions.assertNotNull(
810 testSubject.fillResourceMetadata(yamlName, resourceVf, nodeName, user));
814 void testGetNodeTypeActualName() {
815 String fullName = Constants.USER_DEFINED_RESOURCE_NAMESPACE_PREFIX + "test";
816 Assertions.assertNotNull(
817 testSubject.getNodeTypeActualName(fullName));
821 void testAddInput() {
822 Map<String, InputDefinition> currPropertiesMap = new HashMap<>();
823 InputDefinition prop = new InputDefinition();
824 Assertions.assertNotNull(currPropertiesMap);
826 testSubject.addInput(currPropertiesMap, prop);
830 void testFindAviableRequirement() {
831 String uniqueId = "101929382910";
832 String regName = uniqueId;
833 String yamlName = uniqueId;
834 UploadComponentInstanceInfo uploadComponentInstanceInfo = new UploadComponentInstanceInfo();
835 ComponentInstance currentCompInstance = new ComponentInstance();
837 Map<String, List<RequirementDefinition>> requirements = new HashMap<>();
838 List<RequirementDefinition> requirementDefinitionList = new ArrayList<>();
839 RequirementDefinition requirementDefinition = new RequirementDefinition();
840 requirementDefinition.setName(uniqueId);
841 requirementDefinition.setMaxOccurrences("10");
842 requirementDefinition.setLeftOccurrences("3");
843 requirementDefinitionList.add(requirementDefinition);
844 requirements.put(uniqueId, requirementDefinitionList);
845 currentCompInstance.setRequirements(requirements);
847 String capName = "capName";
849 Assertions.assertNotNull(
850 testSubject.findAvailableRequirement(regName, yamlName, uploadComponentInstanceInfo, currentCompInstance, capName));
854 void testFindAviableRequirementSameCapName() {
855 String uniqueId = "101929382910";
856 String regName = uniqueId;
857 String yamlName = uniqueId;
858 UploadComponentInstanceInfo uploadComponentInstanceInfo = new UploadComponentInstanceInfo();
859 ComponentInstance currentCompInstance = new ComponentInstance();
861 Map<String, List<RequirementDefinition>> requirements = new HashMap<>();
862 List<RequirementDefinition> requirementDefinitionList = new ArrayList<>();
863 RequirementDefinition requirementDefinition = new RequirementDefinition();
864 requirementDefinition.setName(uniqueId);
865 requirementDefinition.setMaxOccurrences("10");
866 requirementDefinition.setLeftOccurrences("3");
867 requirementDefinitionList.add(requirementDefinition);
868 requirements.put(uniqueId, requirementDefinitionList);
869 currentCompInstance.setRequirements(requirements);
871 String capName = uniqueId;
872 Assertions.assertNotNull(
873 testSubject.findAvailableRequirement(regName, yamlName, uploadComponentInstanceInfo, currentCompInstance, capName));
877 void testFindAvailableCapabilityByTypeOrName() {
878 RequirementDefinition validReq = new RequirementDefinition();
879 ComponentInstance currentCapCompInstance = new ComponentInstance();
880 UploadReqInfo uploadReqInfo = new UploadReqInfo();
882 Assertions.assertThrows(ComponentException.class, () ->
883 testSubject.findAvailableCapabilityByTypeOrName(validReq, currentCapCompInstance, uploadReqInfo));
887 void testFindAvailableCapability() {
888 String uniqueId = "23422345677";
889 RequirementDefinition validReq = new RequirementDefinition();
890 validReq.setCapability(uniqueId);
891 ComponentInstance instance = new ComponentInstance();
892 Map<String, List<CapabilityDefinition>> capabilityMap = new HashMap<>();
893 List<CapabilityDefinition> capabilityDefinitionList = new ArrayList<>();
894 CapabilityDefinition capabilityDefinition = new CapabilityDefinition();
895 capabilityDefinition.setMaxOccurrences("3");
896 capabilityDefinition.setLeftOccurrences("2");
897 capabilityDefinitionList.add(capabilityDefinition);
898 capabilityMap.put(uniqueId, capabilityDefinitionList);
899 instance.setCapabilities(capabilityMap);
901 Assertions.assertNotNull(
902 testSubject.findAvailableCapability(validReq, instance));
906 void testfindAvailableCapability2() {
907 String uniqueId = "23422345677";
908 RequirementDefinition validReq = new RequirementDefinition();
909 validReq.setCapability(uniqueId);
910 ComponentInstance instance = new ComponentInstance();
911 Map<String, List<CapabilityDefinition>> capabilityMap = new HashMap<>();
912 List<CapabilityDefinition> capabilityDefinitionList = new ArrayList<>();
913 CapabilityDefinition capabilityDefinition = new CapabilityDefinition();
914 capabilityDefinition.setName(uniqueId);
915 capabilityDefinition.setMaxOccurrences("3");
916 capabilityDefinition.setLeftOccurrences("2");
917 capabilityDefinitionList.add(capabilityDefinition);
918 capabilityMap.put(uniqueId, capabilityDefinitionList);
919 instance.setCapabilities(capabilityMap);
920 UploadReqInfo uploadReqInfo = new UploadReqInfo();
921 uploadReqInfo.setCapabilityName(uniqueId);
923 Assertions.assertNotNull(
924 testSubject.findAvailableCapability(validReq, instance, uploadReqInfo));
928 void testGetComponentWithInstancesFilter() {
930 Assertions.assertNotNull(
931 testSubject.getComponentWithInstancesFilter());
935 void testCreateParseResourceObject() {
936 String key = "0923928394";
937 List<UploadCapInfo> capabilities = new ArrayList<>();
938 UploadCapInfo uploadCapInfo = new UploadCapInfo();
939 uploadCapInfo.setType(key);
940 capabilities.add(uploadCapInfo);
942 String resourceId = "resourceId";
943 Map<String, List<CapabilityDefinition>> defaultCapabilities = new HashMap<>();
944 CapabilityDefinition capabilityDefinition = new CapabilityDefinition();
945 capabilityDefinition.setName(key);
946 List<CapabilityDefinition> capabilityDefinitionList = new ArrayList<>();
947 capabilityDefinitionList.add(capabilityDefinition);
948 defaultCapabilities.put(key, capabilityDefinitionList);
950 Map<String, List<CapabilityDefinition>> validCapabilitiesMap = new HashMap<>();
951 InputDefinition prop = new InputDefinition();
953 Resource resource = createParseResourceObject(true);
954 Map<String, List<CapabilityDefinition>> capabilitiesMap = resource.getCapabilities();
955 capabilitiesMap.put(key, capabilityDefinitionList);
957 when(toscaOperationFacade.getToscaFullElement(anyString()))
958 .thenReturn(Either.left(resource));
960 Assertions.assertNotNull(resource);
962 testSubject.addValidComponentInstanceCapabilities(key, capabilities, resourceId, defaultCapabilities,
963 validCapabilitiesMap);
967 void testGetCapabilityFailure() {
968 String resourceId = "resourceId";
969 String key = "0923928394";
970 Map<String, List<CapabilityDefinition>> defaultCapabilities = new HashMap<>();
971 CapabilityDefinition capabilityDefinition = new CapabilityDefinition();
972 capabilityDefinition.setName(key);
973 List<CapabilityDefinition> capabilityDefinitionList = new ArrayList<>();
974 capabilityDefinitionList.add(capabilityDefinition);
975 defaultCapabilities.put(key, capabilityDefinitionList);
976 String capabilityType = key;
977 when(toscaOperationFacade.getToscaFullElement(anyString()))
978 .thenReturn(Either.right(StorageOperationStatus.NOT_FOUND));
979 Assertions.assertThrows(ComponentException.class, () ->
980 testSubject.getCapability(resourceId, defaultCapabilities, capabilityType));
984 void testValidateCapabilityProperties() {
985 List<UploadCapInfo> capabilities = new ArrayList<>();
986 UploadCapInfo uploadCapInfo = new UploadCapInfo();
987 List<UploadPropInfo> properties = new ArrayList<>();
988 UploadPropInfo uploadPropInfo = new UploadPropInfo();
989 properties.add(uploadPropInfo);
990 uploadCapInfo.setProperties(properties);
991 capabilities.add(uploadCapInfo);
992 String resourceId = "resourceId";
993 CapabilityDefinition defaultCapability = new CapabilityDefinition();
994 defaultCapability.setProperties(null);
995 defaultCapability.setName("test");
997 Assertions.assertThrows(ComponentException.class, () ->
998 testSubject.validateCapabilityProperties(capabilities, resourceId, defaultCapability));
1002 void testValidateUniquenessUpdateUploadedComponentInstanceCapability() {
1003 String key = "02124568";
1004 List<UploadCapInfo> capabilities = new ArrayList<>();
1005 UploadCapInfo uploadCapInfo = new UploadCapInfo();
1006 List<UploadPropInfo> properties = new ArrayList<>();
1007 UploadPropInfo uploadPropInfo = new UploadPropInfo();
1008 uploadPropInfo.setName(key);
1009 properties.add(uploadPropInfo);
1010 uploadCapInfo.setProperties(properties);
1011 capabilities.add(uploadCapInfo);
1012 String resourceId = "resourceId";
1013 CapabilityDefinition defaultCapability = new CapabilityDefinition();
1014 List<ComponentInstanceProperty> componentInstancePropertyList = new ArrayList<>();
1015 ComponentInstanceProperty componentInstanceProperty = new ComponentInstanceProperty();
1016 componentInstancePropertyList.add(componentInstanceProperty);
1017 defaultCapability.setProperties(componentInstancePropertyList);
1018 defaultCapability.setName(key);
1020 Assertions.assertNotNull(defaultCapability);
1022 testSubject.validateUniquenessUpdateUploadedComponentInstanceCapability(defaultCapability, uploadCapInfo);
1026 void testSetDeploymentArtifactsPlaceHolderByResource() {
1027 Resource resource = createParseResourceObject(true);
1029 Assertions.assertNotNull(resource);
1031 testSubject.setDeploymentArtifactsPlaceHolder(resource, user);
1035 void testSetDeploymentArtifactsPlaceHolderByService() {
1036 Service Service = createServiceObject(true);
1038 Assertions.assertNotNull(Service);
1040 testSubject.setDeploymentArtifactsPlaceHolder(Service, user);
1044 void testProcessDeploymentResourceArtifacts() {
1045 Resource resource = createParseResourceObject(true);
1046 resource.setResourceType(ResourceTypeEnum.VF);
1047 Map<String, ArtifactDefinition> artifactMap = new HashMap<>();
1049 Object v = new Object();
1050 Map<String, List<String>> artifactDetails = new HashMap<>();
1051 List<String> artifactTypes = new ArrayList<>();
1052 artifactTypes.add(ResourceTypeEnum.VF.name());
1053 artifactDetails.put("validForResourceTypes", artifactTypes);
1054 v = artifactDetails;
1055 Assertions.assertNotNull(resource);
1057 testSubject.processDeploymentResourceArtifacts(user, resource, artifactMap, k, v);
1061 void testMergeOldResourceMetadataWithNew() {
1062 Resource oldResource = createParseResourceObject(true);
1063 Resource newResource = new Resource();
1065 Assertions.assertNotNull(oldResource);
1067 testSubject.mergeOldResourceMetadataWithNew(oldResource, newResource);
1071 void testBuildComplexVfcMetadata() {
1072 Resource resource = createParseResourceObject(true);
1073 String nodeName = "org.openecomp.resource.derivedFrom.zxjTestImportServiceAb.test";
1074 Map<String, NodeTypeInfo> nodesInfo = new HashMap<>();
1075 NodeTypeInfo nodeTypeInfo = new NodeTypeInfo();
1076 List<String> derivedFrom = new ArrayList<>();
1077 derivedFrom.add("derivedFrom");
1078 nodeTypeInfo.setDerivedFrom(derivedFrom);
1079 nodesInfo.put(nodeName, nodeTypeInfo);
1081 Assertions.assertNotNull(
1082 testSubject.buildComplexVfcMetadata(getCsarInfo(), nodeName, nodesInfo));
1086 void testValidateResourceCreationFromNodeType() {
1087 Resource resource = createParseResourceObject(true);
1088 resource.setDerivedFrom(null);
1089 Assertions.assertThrows(ComponentException.class, () ->
1090 testSubject.validateResourceCreationFromNodeType(resource, user));
1094 void testCreateInputsOnResource() {
1095 Resource resource = createParseResourceObject(true);
1096 Map<String, InputDefinition> inputs = new HashMap<>();
1098 Assertions.assertNotNull(
1099 testSubject.createInputsOnResource(resource, inputs));
1103 void testCreateInputsOnResourceWhenIsNotEmpty() {
1104 String key = "12345667";
1105 Resource resource = createParseResourceObject(true);
1106 List<InputDefinition> inputDefinitionList = new ArrayList<>();
1107 InputDefinition inputDefinition = new InputDefinition();
1108 inputDefinitionList.add(inputDefinition);
1109 resource.setInputs(inputDefinitionList);
1110 Map<String, InputDefinition> inputs = new HashMap<>();
1111 inputs.put(key, inputDefinition);
1112 when(inputsBusinessLogic.createInputsInGraph(anyMap(),
1113 any(Component.class))).thenReturn(Either.left(inputDefinitionList));
1114 when(toscaOperationFacade
1115 .getToscaElement(anyString())).thenReturn(Either.left(resource));
1116 Assertions.assertNotNull(
1117 testSubject.createInputsOnResource(resource, inputs));
1121 void testCreateInputsOnService() {
1122 Service service = createServiceObject(true);
1123 List<InputDefinition> resourceProperties = new ArrayList<>();
1124 InputDefinition inputDefinition = new InputDefinition();
1125 inputDefinition.setName("inputDefinitionName");
1126 service.setInputs(resourceProperties);
1127 Map<String, InputDefinition> inputs = new HashMap<>();
1128 InputDefinition inputDefinitionMap = new InputDefinition();
1129 inputDefinition.setName("inputDefinitionName");
1130 inputs.put("inputsMap", inputDefinitionMap);
1131 List<InputDefinition> inputDefinitionList = new ArrayList<>();
1132 Service newService = new Service();
1134 when(inputsBusinessLogic.createInputsInGraph(any(Map.class), any(Component.class)))
1135 .thenReturn(Either.left(inputDefinitionList));
1136 when(toscaOperationFacade.getToscaElement(anyString())).thenReturn(Either.left(newService));
1137 Service inputsOnService = testSubject.createInputsOnService(service, inputs);
1138 assertNotNull(inputsOnService);
1142 void testCreateOutputsOnService_OK() {
1143 Service service = createServiceObject(true);
1144 List<OutputDefinition> resourceOutputs = new ArrayList<>();
1145 OutputDefinition outputDefinition = new OutputDefinition();
1146 resourceOutputs.add(outputDefinition);
1147 outputDefinition.setName("outputDefinitionName");
1148 service.setOutputs(resourceOutputs);
1149 Map<String, OutputDefinition> outputs = new HashMap<>();
1150 outputs.put("outputsMap", outputDefinition);
1152 when(outputsBusinessLogic.createOutputsInGraph(outputs, service, user.getUserId())).thenReturn(Either.left(resourceOutputs));
1153 when(toscaOperationFacade.getToscaElement(service.getUniqueId())).thenReturn(Either.left(service));
1154 Service outputsOnService = testSubject.createOutputsOnService(service, outputs, user.getUserId());
1155 assertNotNull(outputsOnService);
1156 assertSame(service, outputsOnService);
1160 void testCreateOutputsOnService_Fail_whenOutputsIsEmpty() {
1161 Service service = createServiceObject(true);
1162 Map<String, OutputDefinition> outputs = new HashMap<>();
1163 Service outputsOnService = testSubject.createOutputsOnService(service, outputs, user.getUserId());
1164 assertNotNull(outputsOnService);
1165 assertSame(service, outputsOnService);
1169 void testCreateOutputsOnService_Fail_createOutputsInGraph() {
1170 Service service = createServiceObject(true);
1171 List<OutputDefinition> resourceOutputs = new ArrayList<>();
1172 OutputDefinition outputDefinition = new OutputDefinition();
1173 resourceOutputs.add(outputDefinition);
1174 outputDefinition.setName("outputDefinitionName");
1175 service.setOutputs(resourceOutputs);
1176 Map<String, OutputDefinition> outputs = new HashMap<>();
1177 outputs.put("outputsMap", outputDefinition);
1179 when(outputsBusinessLogic.createOutputsInGraph(outputs, service, user.getUserId()))
1180 .thenReturn(Either.right(new ResponseFormat(HttpStatus.BAD_REQUEST_400.getStatusCode())));
1182 final var componentException = assertThrows(ComponentException.class, () -> {
1183 testSubject.createOutputsOnService(service, outputs, user.getUserId());
1185 assertNotNull(componentException);
1186 assertEquals(ActionStatus.OK, componentException.getActionStatus());
1187 assertEquals(400, componentException.getResponseFormat().getStatus());
1191 void testCreateOutputsOnService_Fail_getToscaElement() {
1192 Service service = createServiceObject(true);
1193 List<OutputDefinition> resourceOutputs = new ArrayList<>();
1194 OutputDefinition outputDefinition = new OutputDefinition();
1195 resourceOutputs.add(outputDefinition);
1196 outputDefinition.setName("outputDefinitionName");
1197 service.setOutputs(resourceOutputs);
1198 Map<String, OutputDefinition> outputs = new HashMap<>();
1199 outputs.put("outputsMap", outputDefinition);
1201 when(outputsBusinessLogic.createOutputsInGraph(outputs, service, user.getUserId())).thenReturn(Either.left(resourceOutputs));
1202 when(toscaOperationFacade.getToscaElement(service.getUniqueId())).thenReturn(Either.right(StorageOperationStatus.BAD_REQUEST));
1204 final var componentException = assertThrows(ComponentException.class, () -> {
1205 testSubject.createOutputsOnService(service, outputs, user.getUserId());
1207 assertNotNull(componentException);
1208 assertEquals(ActionStatus.OK, componentException.getActionStatus());
1209 assertEquals(400, componentException.getResponseFormat().getStatus());
1213 void testAssociateCINodeFilterToComponent() {
1214 String yamlName = "yamlName.yml";
1215 Service service = createServiceObject(true);
1216 Map<String, UploadNodeFilterInfo> nodeFilterMap = new HashMap<>();
1217 nodeFilterMap.put("componentInstanceID", new UploadNodeFilterInfo());
1219 when(componentNodeFilterBusinessLogic.associateNodeFilterToComponentInstance(service.getUniqueId(), nodeFilterMap))
1220 .thenReturn(StorageOperationStatus.OK);
1222 testSubject.associateCINodeFilterToComponent(yamlName, service, nodeFilterMap);
1223 verify(componentNodeFilterBusinessLogic, times(1)).associateNodeFilterToComponentInstance(service.getUniqueId(),
1228 void testAssociateCINodeFilterToComponentFail() {
1229 String yamlName = "yamlName.yml";
1230 Service service = createServiceObject(true);
1231 Map<String, UploadNodeFilterInfo> nodeFilterMap = new HashMap<>();
1232 nodeFilterMap.put("componentInstanceID", new UploadNodeFilterInfo());
1234 when(componentNodeFilterBusinessLogic.associateNodeFilterToComponentInstance(service.getUniqueId(), nodeFilterMap))
1235 .thenReturn(StorageOperationStatus.NOT_FOUND);
1237 Assertions.assertThrows(ComponentException.class, () -> testSubject.associateCINodeFilterToComponent(yamlName, service, nodeFilterMap));
1241 void testCreateServiceTransaction() {
1242 Service service = createServiceObject(true);
1243 List<ComponentInstance> list = new ArrayList<>();
1244 ComponentInstance componentInstance = new ComponentInstance();
1245 componentInstance.setName("name");
1246 service.setComponentInstances(list);
1247 when(toscaOperationFacade.validateComponentNameExists(
1248 anyString(), any(ResourceTypeEnum.class), any(ComponentTypeEnum.class))).thenReturn(Either.left(false));
1250 when(toscaOperationFacade.createToscaComponent(any(Service.class))).thenReturn(Either.left(service));
1252 Assertions.assertThrows(NullPointerException.class, () -> testSubject.createServiceTransaction(service, user, true));
1256 void testCreateArtifactsPlaceHolderData() {
1257 Service service = createServiceObject(true);
1258 CategoryDefinition category = new CategoryDefinition();
1259 category.setName("");
1260 List<CategoryDefinition> categories = new ArrayList<>();
1261 categories.add(category);
1262 service.setCategories(categories);
1263 Assertions.assertNotNull(service);
1265 testSubject.createArtifactsPlaceHolderData(service, user);
1270 void testSetInformationalArtifactsPlaceHolder() {
1271 Service service = createServiceObject(true);
1273 Assertions.assertNotNull(service);
1275 testSubject.setInformationalArtifactsPlaceHolder(service, user);
1280 void testValidateNestedDerivedFromDuringUpdate() {
1281 Resource currentResource = createParseResourceObject(true);
1282 Resource updateInfoResource = createParseResourceObject(true);
1283 String key = "2323456";
1285 List<String> currentDerivedFromList = new ArrayList<>();
1286 currentDerivedFromList.add(key);
1287 currentResource.setDerivedFrom(currentDerivedFromList);
1288 List<String> updatedDerivedFromList = new ArrayList<>();
1289 updatedDerivedFromList.add("23344567778");
1290 updateInfoResource.setDerivedFrom(updatedDerivedFromList);
1292 when(toscaOperationFacade.validateToscaResourceNameExtends(anyString(), anyString(), any()))
1293 .thenReturn(Either.right(StorageOperationStatus.NOT_FOUND));
1295 Assertions.assertNotNull(
1296 testSubject.validateNestedDerivedFromDuringUpdate(currentResource, updateInfoResource, true));
1301 void testValidateDerivedFromExtending() {
1302 Resource currentResource = createParseResourceObject(true);
1303 Resource updateInfoResource = createParseResourceObject(true);
1305 when(toscaOperationFacade.validateToscaResourceNameExtends(anyString(), anyString(), any()))
1306 .thenReturn(Either.left(false));
1308 Assertions.assertNotNull(
1309 testSubject.validateDerivedFromExtending(user, currentResource, updateInfoResource,
1310 AuditingActionEnum.IMPORT_RESOURCE));
1315 void testValidateResourceFieldsBeforeUpdate() {
1316 Resource currentResource = createParseResourceObject(true);
1317 Resource updateInfoResource = createParseResourceObject(true);
1319 Assertions.assertNotNull(currentResource);
1321 testSubject.validateResourceFieldsBeforeUpdate(currentResource, updateInfoResource, true, true);
1326 void testValidateResourceName() {
1327 Resource currentResource = createParseResourceObject(true);
1328 Resource updateInfoResource = createParseResourceObject(true);
1329 currentResource.setName("test1");
1330 updateInfoResource.setName("test2");
1332 Assertions.assertThrows(ComponentException.class, () ->
1333 testSubject.validateResourceName(currentResource, updateInfoResource, true, false));
1338 void testIsResourceNameEquals() {
1339 Resource currentResource = createParseResourceObject(true);
1340 Resource updateInfoResource = createParseResourceObject(true);
1342 boolean resourceNameEquals = testSubject.isResourceNameEquals(currentResource, updateInfoResource);
1343 assertTrue(resourceNameEquals);
1347 void testPrepareResourceForUpdate() {
1348 Resource oldResource = createParseResourceObject(true);
1349 Resource newResource = createParseResourceObject(true);
1350 when(lifecycleBusinessLogic.changeState(anyString(), any(User.class), any(LifeCycleTransitionEnum.class),
1351 any(LifecycleChangeInfoWithAction.class), anyBoolean(), anyBoolean())).thenReturn(Either.left(oldResource));
1353 Assertions.assertNotNull(
1354 testSubject.prepareResourceForUpdate(oldResource, newResource, user, true, true));
1359 void testFailOnChangeState() {
1360 ResponseFormat response = new ResponseFormat();
1361 Resource oldResource = createParseResourceObject(true);
1362 oldResource.setUniqueId("123");
1363 Resource newResource = createParseResourceObject(true);
1365 Assertions.assertThrows(ComponentException.class, () ->
1366 testSubject.failOnChangeState(response, user, oldResource, newResource));
1370 void testHandleResourceGenericType() {
1371 Resource resource = createParseResourceObject(true);
1373 Resource resource1 = testSubject.handleResourceGenericType(resource);
1374 assertNotEquals(resource, resource1);
1378 void testUpdateOrCreateGroups() {
1379 Resource resource = createParseResourceObject(true);
1380 Map<String, GroupDefinition> groups = new HashMap<>();
1381 Assertions.assertNotNull(resource);
1383 testSubject.updateOrCreateGroups(resource, groups);
1387 void testAddGroupsToCreateOrUpdate() {
1388 List<GroupDefinition> groupsFromResource = new ArrayList<>();
1389 GroupDefinition groupDefinition = new GroupDefinition();
1390 groupDefinition.setInvariantName("groupDefinitionName");
1391 groupsFromResource.add(groupDefinition);
1392 List<GroupDefinition> groupsAsList = new ArrayList<>();
1393 GroupDefinition groupNewDefinition = getGroupDefinition();
1394 groupsAsList.add(groupNewDefinition);
1395 List<GroupDefinition> groupsToUpdate = new ArrayList<>();
1396 List<GroupDefinition> groupsToCreate = new ArrayList<>();
1397 Assertions.assertNotNull(groupDefinition);
1399 testSubject.addGroupsToCreateOrUpdate(groupsFromResource, groupsAsList, groupsToUpdate, groupsToCreate);
1403 void testAddGroupsToDelete() {
1404 List<GroupDefinition> groupsFromResource = new ArrayList<>();
1405 GroupDefinition groupDefinition = new GroupDefinition();
1406 groupDefinition.setName("groupDefinitionName");
1407 groupsFromResource.add(groupDefinition);
1408 List<GroupDefinition> groupsAsList = new ArrayList<>();
1409 GroupDefinition groupNewDefinition = new GroupDefinition();
1410 groupNewDefinition.setName("groupNewDefinitionName");
1411 groupsAsList.add(groupNewDefinition);
1412 List<GroupDefinition> groupsToDelete = new ArrayList<>();
1413 Assertions.assertNotNull(groupsFromResource);
1415 testSubject.addGroupsToDelete(groupsFromResource, groupsAsList, groupsToDelete);
1419 void testUpdateGroupsMembersUsingResource() {
1420 Service component = createServiceObject(true);
1421 Map<String, GroupDefinition> groups = new HashMap<>();
1422 GroupDefinition groupDefinition = getGroupDefinition();
1423 groupDefinition.setMembers(null);
1424 groups.put("groupsMap", groupDefinition);
1426 Assertions.assertNotNull(
1427 testSubject.updateGroupsMembersUsingResource(groups, component));
1431 void testupdateGroupMembers() {
1432 Service component = createServiceObject(true);
1433 Map<String, GroupDefinition> groups = new HashMap<>();
1434 GroupDefinition updatedGroupDefinition = new GroupDefinition();
1435 List<ComponentInstance> componentInstances = new ArrayList<>();
1436 String groupName = "groupName";
1437 Map<String, String> members = new HashMap<>();
1439 Assertions.assertThrows(ComponentException.class, () ->
1440 testSubject.updateGroupMembers(groups, updatedGroupDefinition, component, componentInstances, groupName, members));
1444 void testupdateGroupMembersNotNull() {
1445 Service component = createServiceObject(true);
1446 Map<String, GroupDefinition> groups = getGroups();
1447 GroupDefinition updatedGroupDefinition = new GroupDefinition();
1448 List<ComponentInstance> componentInstances = new ArrayList<>();
1449 ComponentInstance componentInstance = new ComponentInstance();
1450 componentInstance.setName("componentInstanceName");
1451 componentInstance.setUniqueId("componentInstanceUniqueId");
1452 componentInstances.add(componentInstance);
1453 String groupName = "groupName";
1454 Map<String, String> members = new HashMap<>();
1455 members.put("members", "members");
1456 members.put("componentInstanceName", "members");
1458 Assertions.assertThrows(ComponentException.class, () ->
1459 testSubject.updateGroupMembers(groups, updatedGroupDefinition, component, componentInstances, groupName, members));
1463 void testFillResourceMetadataForServiceFailure() {
1464 String yamlName = "yamlName";
1465 Service resourceVf = createServiceObject(true);
1466 String nodeName = "nodeName";
1468 Assertions.assertThrows(ComponentException.class, () ->
1469 testSubject.fillResourceMetadata(yamlName, resourceVf, nodeName, user));
1473 void testFillResourceMetadataForServiceWrongType() {
1474 String yamlName = "yamlName";
1475 Service resourceVf = createServiceObject(true);
1476 String nodeName = Constants.USER_DEFINED_RESOURCE_NAMESPACE_PREFIX + "nodeName";
1478 Assertions.assertThrows(ComponentException.class, () ->
1479 testSubject.fillResourceMetadata(yamlName, resourceVf, nodeName, user));
1483 void testFillResourceMetadataForServiceSuccess() {
1484 String yamlName = "yamlName";
1485 Service resourceVf = createServiceObject(true);
1486 String nodeName = Constants.USER_DEFINED_RESOURCE_NAMESPACE_PREFIX + "VFC";
1488 Assertions.assertNotNull(
1489 testSubject.fillResourceMetadata(yamlName, resourceVf, nodeName, user));
1493 void testpropagateStateToCertified() {
1494 String yamlName = "yamlName";
1495 Resource resource = createParseResourceObject(true);
1496 resource.setLifecycleState(LifecycleStateEnum.CERTIFIED);
1497 LifecycleChangeInfoWithAction lifecycleChangeInfo = new LifecycleChangeInfoWithAction();
1499 Assertions.assertNotNull(
1500 testSubject.propagateStateToCertified(user, resource, lifecycleChangeInfo, true, true, true));
1504 void testpropagateStateToCertifiedIsTrue() {
1505 String yamlName = "yamlName";
1506 Resource resource = createParseResourceObject(true);
1507 LifecycleChangeInfoWithAction lifecycleChangeInfo = new LifecycleChangeInfoWithAction();
1508 resource.setLifecycleState(LifecycleStateEnum.CERTIFIED);
1510 Assertions.assertNotNull(
1511 testSubject.propagateStateToCertified(user, resource, lifecycleChangeInfo, true, true, true));
1515 void testBuildValidComplexVfc2() {
1516 String nodeName = "org.openecomp.resource.derivedFrom.zxjTestImportServiceAb.test";
1517 Map<String, NodeTypeInfo> nodesInfo = new HashMap<>();
1518 NodeTypeInfo nodeTypeInfo = new NodeTypeInfo();
1519 List<String> derivedFrom = new ArrayList<>();
1520 derivedFrom.add("derivedFrom");
1521 nodeTypeInfo.setDerivedFrom(derivedFrom);
1522 nodesInfo.put(nodeName, nodeTypeInfo);
1524 final CsarInfo csarInfo = getCsarInfo();
1525 Assertions.assertThrows(ComponentException.class, () ->
1526 testSubject.buildValidComplexVfc(csarInfo, nodeName, nodesInfo));
1530 void testUpdateGroupsOnResourceEmptyGroups() {
1531 Resource resource = createParseResourceObject(true);
1532 Map<String, GroupDefinition> groups = new HashMap<>();
1534 Assertions.assertNotNull(
1535 testSubject.updateGroupsOnResource(resource, groups));
1539 void testSetInformationalArtifactsPlaceHolder2() {
1540 Resource resource = createParseResourceObject(true);
1541 List<CategoryDefinition> categoryDefinitions = new ArrayList<>();
1542 CategoryDefinition categoryDefinition = new CategoryDefinition();
1543 categoryDefinition.setName("");
1544 categoryDefinitions.add(categoryDefinition);
1545 resource.setCategories(categoryDefinitions);
1546 Assertions.assertNotNull(resource);
1548 testSubject.setInformationalArtifactsPlaceHolder(resource, user);
1552 void testRollback() {
1553 Resource resource = createParseResourceObject(true);
1554 List<ArtifactDefinition> createdArtifacts = new ArrayList<>();
1555 ArtifactDefinition artifactDefinition = new ArtifactDefinition();
1556 createdArtifacts.add(artifactDefinition);
1557 List<ArtifactDefinition> nodeTypesNewCreatedArtifacts = new ArrayList<>();
1558 nodeTypesNewCreatedArtifacts.add(artifactDefinition);
1559 Assertions.assertNotNull(resource);
1561 testSubject.rollback(true, resource, createdArtifacts, nodeTypesNewCreatedArtifacts);
1565 void testRollback_NotNull() {
1566 Resource resource = createParseResourceObject(true);
1567 List<ArtifactDefinition> createdArtifacts = new ArrayList<>();
1568 ArtifactDefinition artifactDefinition = new ArtifactDefinition();
1569 artifactDefinition.setArtifactName("artifactName");
1570 createdArtifacts.add(artifactDefinition);
1571 List<ArtifactDefinition> nodeTypesNewCreatedArtifacts = new ArrayList<>();
1572 ArtifactDefinition artifactDefinition2 = new ArtifactDefinition();
1573 artifactDefinition2.setArtifactChecksum("artifactChecksum");
1574 nodeTypesNewCreatedArtifacts.add(artifactDefinition2);
1575 Assertions.assertNotNull(resource);
1577 testSubject.rollback(true, resource, createdArtifacts, nodeTypesNewCreatedArtifacts);
1581 void testCreateArtifactsPlaceHolderData2() {
1582 Resource resource = createParseResourceObject(true);
1584 Assertions.assertNotNull(resource);
1586 testSubject.createArtifactsPlaceHolderData(resource, user);
1590 void testHandleGroupsProperties() {
1591 Service service = createServiceObject(true);
1592 Map<String, GroupDefinition> groups = getGroups();
1593 Assertions.assertNotNull(service);
1595 testSubject.handleGroupsProperties(service, groups);
1599 void testHandleGroupsProperties2() {
1600 Resource resource = createParseResourceObject(true);
1601 Map<String, GroupDefinition> groups = getGroups();
1602 Assertions.assertNotNull(resource);
1604 testSubject.handleGroupsProperties(resource, groups);
1608 void testHandleGetInputs() {
1609 PropertyDataDefinition property = new PropertyDataDefinition();
1610 List<GetInputValueDataDefinition> getInputValues = new ArrayList<>();
1611 GetInputValueDataDefinition getInputValueDataDefinition = new GetInputValueDataDefinition();
1612 GetInputValueDataDefinition getInput = new GetInputValueDataDefinition();
1613 getInput.setInputId("inputId");
1614 getInput.setInputName("inputName");
1615 getInputValueDataDefinition.setInputName("inputName");
1616 getInputValueDataDefinition.setPropName("getInputValueDataDefinitionName");
1617 getInputValueDataDefinition.setGetInputIndex(getInputValueDataDefinition);
1618 getInputValues.add(getInputValueDataDefinition);
1619 property.setGetInputValues(getInputValues);
1620 List<InputDefinition> inputs = new ArrayList<>();
1621 InputDefinition inputDefinition = new InputDefinition();
1622 inputDefinition.setName("inputName");
1623 inputDefinition.setUniqueId("abc12345");
1624 inputs.add(inputDefinition);
1625 Assertions.assertNotNull(inputs);
1627 testSubject.handleGetInputs(property, inputs);
1631 void testHandleGetInputs_null() {
1632 PropertyDataDefinition property = new PropertyDataDefinition();
1633 List<GetInputValueDataDefinition> getInputValues = new ArrayList<>();
1634 GetInputValueDataDefinition getInputValueDataDefinition = new GetInputValueDataDefinition();
1635 getInputValueDataDefinition.setInputName("inputName");
1636 getInputValueDataDefinition.setPropName("getInputValueDataDefinitionName");
1637 getInputValues.add(getInputValueDataDefinition);
1638 property.setGetInputValues(getInputValues);
1639 List<InputDefinition> inputs = new ArrayList<>();
1640 Assertions.assertThrows(NoSuchElementException.class, () ->
1641 testSubject.handleGetInputs(property, inputs));
1645 void testFindInputByName() {
1646 GetInputValueDataDefinition getInput = new GetInputValueDataDefinition();
1647 getInput.setInputId("inputId");
1648 getInput.setInputName("inputName");
1649 List<InputDefinition> inputs = new ArrayList<>();
1650 InputDefinition inputDefinition = new InputDefinition();
1651 inputDefinition.setName("inputName");
1652 inputDefinition.setUniqueId("abc12345");
1653 inputs.add(inputDefinition);
1655 Assertions.assertNotNull(
1656 testSubject.findInputByName(inputs, getInput));
1660 void testAssociateComponentInstancePropertiesToComponent() {
1661 String yamlName = "yamlName";
1662 Resource resource = createParseResourceObject(true);
1663 Map<String, List<ComponentInstanceProperty>> instProperties = new HashMap<>();
1664 Assertions.assertThrows(ComponentException.class, () ->
1665 testSubject.associateComponentInstancePropertiesToComponent(yamlName, resource, instProperties));
1669 void testAssociateComponentInstanceInputsToComponent() {
1670 String yamlName = "yamlName";
1671 Resource resource = createParseResourceObject(true);
1672 Map<String, List<ComponentInstanceInput>> instInputs = new HashMap<>();
1673 List<ComponentInstanceInput> componentInstanceInputList = new ArrayList<>();
1674 ComponentInstanceInput componentInstanceInput = new ComponentInstanceInput();
1675 componentInstanceInput.setName("componentInstanceInputName");
1676 componentInstanceInputList.add(componentInstanceInput);
1677 Assertions.assertNotNull(resource);
1679 testSubject.associateComponentInstanceInputsToComponent(yamlName, resource, instInputs);
1683 void testAssociateDeploymentArtifactsToInstances() {
1684 String yamlName = "yamlName";
1685 Resource resource = createParseResourceObject(true);
1686 Map<String, Map<String, ArtifactDefinition>> instDeploymentArtifacts = new HashMap<>();
1688 Assertions.assertThrows(ComponentException.class, () ->
1689 testSubject.associateDeploymentArtifactsToInstances(user, yamlName, resource, instDeploymentArtifacts));
1693 void testAssociateArtifactsToInstances() {
1694 String yamlName = "yamlName";
1695 Resource resource = createParseResourceObject(true);
1696 Map<String, Map<String, ArtifactDefinition>> instDeploymentArtifacts = new HashMap<>();
1698 Assertions.assertThrows(ComponentException.class, () ->
1699 testSubject.associateDeploymentArtifactsToInstances(user, yamlName, resource, instDeploymentArtifacts));
1703 void testAssociateArtifactsToInstances2() {
1704 String yamlName = "yamlName";
1705 Resource resource = createParseResourceObject(true);
1706 Map<String, Map<String, ArtifactDefinition>> instDeploymentArtifacts = new HashMap<>();
1708 Assertions.assertThrows(ComponentException.class, () ->
1709 testSubject.associateArtifactsToInstances(yamlName, resource, instDeploymentArtifacts));
1713 void testAssociateOrAddCalculatedCapReq() {
1714 String yamlName = "yamlName";
1715 Resource resource = createParseResourceObject(true);
1716 Map<ComponentInstance, Map<String, List<CapabilityDefinition>>> instCapabilities = new HashMap<>();
1717 Map<ComponentInstance, Map<String, List<RequirementDefinition>>> instRequirements = new HashMap<>();
1718 Assertions.assertThrows(ComponentException.class, () ->
1719 testSubject.associateOrAddCalculatedCapReq(yamlName, resource, instCapabilities, instRequirements));
1723 void testAssociateInstAttributeToComponentToInstances() {
1724 String yamlName = "yamlName";
1725 Resource resource = createParseResourceObject(true);
1726 Map<String, List<AttributeDefinition>> instAttributes = new HashMap<>();
1727 Assertions.assertThrows(ComponentException.class, () ->
1728 testSubject.associateInstAttributeToComponentToInstances(yamlName, resource, instAttributes));
1732 void testThrowComponentExceptionByResource() {
1733 StorageOperationStatus status = StorageOperationStatus.OK;
1734 Resource resource = createParseResourceObject(true);
1735 Assertions.assertThrows(ComponentException.class, () ->
1736 testSubject.throwComponentExceptionByResource(status, resource));
1740 void testGetResourceAfterCreateRelations() {
1741 Resource resource = createParseResourceObject(true);
1742 Resource newResource = new Resource();
1744 when(toscaOperationFacade.getToscaElement(anyString(), any(ComponentParametersView.class)))
1745 .thenReturn(Either.left(newResource));
1746 Resource resourceAfterCreateRelations = testSubject.getResourceAfterCreateRelations(resource);
1747 assertNotNull(resourceAfterCreateRelations);
1751 void testSetCapabilityNamesTypes() {
1752 Map<String, List<CapabilityDefinition>> originCapabilities = new HashMap<>();
1753 List<CapabilityDefinition> capabilityDefinitionList = new ArrayList<>();
1754 CapabilityDefinition capabilityDefinition = new CapabilityDefinition();
1755 capabilityDefinition.setName("Capability");
1756 capabilityDefinition.setType("Resource");
1757 capabilityDefinitionList.add(capabilityDefinition);
1758 originCapabilities.put("Capability", capabilityDefinitionList);
1759 Map<String, List<UploadCapInfo>> uploadedCapabilities = new HashMap<>();
1760 List<UploadCapInfo> uploadCapInfoList = new ArrayList<>();
1761 UploadCapInfo uploadCapInfo = new UploadCapInfo();
1762 uploadCapInfoList.add(uploadCapInfo);
1763 uploadedCapabilities.put("Capability", uploadCapInfoList);
1764 Assertions.assertNotNull(originCapabilities);
1766 testSubject.setCapabilityNamesTypes(originCapabilities, uploadedCapabilities);
1770 void testAssociateComponentInstanceInputsToComponent2() {
1771 String yamlName = "yamlName";
1772 Service service = createServiceObject(true);
1773 Map<String, List<ComponentInstanceInput>> instInputs = new HashMap<>();
1775 Assertions.assertNotNull(service);
1777 testSubject.associateComponentInstanceInputsToComponent(yamlName, service, instInputs);
1781 void testAssociateComponentInstanceInputsNotNullToComponent2() {
1782 String yamlName = "yamlName";
1783 Service service = createServiceObject(true);
1784 Map<String, List<ComponentInstanceInput>> instInputs = new HashMap<>();
1785 List<ComponentInstanceInput> componentInstanceInputs = new ArrayList<>();
1786 ComponentInstanceInput componentInstanceInput = new ComponentInstanceInput();
1787 componentInstanceInput.setName("ComponentInstanceInputName");
1788 componentInstanceInputs.add(componentInstanceInput);
1789 instInputs.put("instInputs", componentInstanceInputs);
1790 when(toscaOperationFacade.associateComponentInstanceInputsToComponent(any(Map.class),
1791 anyString())).thenReturn(Either.right(StorageOperationStatus.BAD_REQUEST));
1792 Assertions.assertThrows(ComponentException.class, () ->
1793 testSubject.associateComponentInstanceInputsToComponent(yamlName, service, instInputs));
1797 void testAssociateComponentInstancePropertiesToComponent2() {
1798 String yamlName = "yamlName";
1799 Service service = createServiceObject(true);
1800 Map<String, List<ComponentInstanceProperty>> instInputs = new HashMap<>();
1801 Map<String, List<ComponentInstanceProperty>> instInputMap = new HashMap<>();
1802 when(toscaOperationFacade.associateComponentInstancePropertiesToComponent(any(), anyString()))
1803 .thenReturn(Either.left(instInputMap));
1804 Assertions.assertNotNull(service);
1806 testSubject.associateComponentInstancePropertiesToComponent(yamlName, service, instInputs);
1810 void testAssociateDeploymentArtifactsToInstances2() {
1811 String yamlName = "yamlName";
1812 Service service = createServiceObject(true);
1813 Map<String, Map<String, ArtifactDefinition>> instDeploymentArtifacts = new HashMap<>();
1815 Assertions.assertThrows(ComponentException.class, () ->
1816 testSubject.associateDeploymentArtifactsToInstances(user, yamlName, service, instDeploymentArtifacts));
1820 void testAssociateArtifactsToInstances3() {
1821 String yamlName = "yamlName";
1822 Service service = createServiceObject(true);
1823 Map<String, Map<String, ArtifactDefinition>> instArtifacts = new HashMap<>();
1825 Assertions.assertThrows(ComponentException.class, () ->
1826 testSubject.associateArtifactsToInstances(yamlName, service, instArtifacts));
1830 void testAssociateOrAddCalculatedCapReq2() {
1831 String yamlName = "yamlName";
1832 Service resource = createServiceObject(true);
1833 Map<ComponentInstance, Map<String, List<CapabilityDefinition>>> instCapabilities = new HashMap<>();
1834 Map<ComponentInstance, Map<String, List<RequirementDefinition>>> instRequirements = new HashMap<>();
1835 Assertions.assertThrows(ComponentException.class, () ->
1836 testSubject.associateOrAddCalculatedCapReq(yamlName, resource, instCapabilities, instRequirements));
1840 void testAssociateInstAttributeToComponentToInstances2() {
1841 String yamlName = "yamlName";
1842 Service resource = createServiceObject(true);
1843 Map<String, List<AttributeDefinition>> instAttributes = new HashMap<>();
1844 Assertions.assertThrows(ComponentException.class, () ->
1845 testSubject.associateInstAttributeToComponentToInstances(yamlName, resource, instAttributes));
1849 void testAssociateRequirementsToService() {
1850 String yamlName = "yamlName";
1851 Service resource = createServiceObject(true);
1852 Map<String, ListRequirementDataDefinition> requirements = new HashMap<>();
1853 Assertions.assertThrows(ComponentException.class, () ->
1854 testSubject.associateRequirementsToService(yamlName, resource, requirements));
1858 void testAssociateCapabilitiesToService() {
1859 String yamlName = "yamlName";
1860 Service resource = createServiceObject(true);
1861 Map<String, ListCapabilityDataDefinition> capabilities = new HashMap<>();
1862 Assertions.assertThrows(ComponentException.class, () ->
1863 testSubject.associateCapabilitiesToService(yamlName, resource, capabilities));
1867 void testAssociateResourceInstances() {
1868 String yamlName = "yamlName";
1869 Service resource = createServiceObject(true);
1870 List<RequirementCapabilityRelDef> relations = new ArrayList<>();
1871 when(toscaOperationFacade.associateResourceInstances(any(Component.class),
1872 anyString(), any(ArrayList.class))).thenReturn(Either.left(relations));
1873 Assertions.assertNotNull(resource);
1875 testSubject.associateResourceInstances(yamlName, resource, relations);
1879 void testAddCapabilities() {
1880 Map<String, List<CapabilityDefinition>> originCapabilities = new HashMap<>();
1881 String type = "type";
1882 List<CapabilityDefinition> capabilities = new ArrayList<>();
1883 Assertions.assertNotNull(type);
1885 testSubject.addCapabilities(originCapabilities, type, capabilities);
1889 void testAddCapabilitiesProperties() {
1890 Map<String, Map<String, UploadPropInfo>> newPropertiesMap = new HashMap<>();
1891 List<UploadCapInfo> capabilities = new ArrayList<>();
1892 UploadCapInfo capability = new UploadCapInfo();
1893 List<UploadPropInfo> properties = new ArrayList<>();
1894 UploadPropInfo uploadPropInfo = new UploadPropInfo();
1895 uploadPropInfo.setName("uploadPropInfoName");
1896 properties.add(uploadPropInfo);
1897 capability.setProperties(properties);
1898 capability.setName("capabilityName");
1899 capabilities.add(capability);
1900 Assertions.assertNotNull(capabilities);
1902 testSubject.addCapabilitiesProperties(newPropertiesMap, capabilities);
1906 void testGetServiceWithGroups() {
1907 String resourceId = "resourceId";
1908 Service service = createServiceObject(true);
1909 when(toscaOperationFacade.getToscaElement(anyString(), any(ComponentParametersView.class)))
1910 .thenReturn(Either.left(service));
1911 Assertions.assertNotNull(
1912 testSubject.getServiceWithGroups(resourceId));
1916 void testGetResourceWithGroups() {
1917 String resourceId = "resourceId";
1918 Resource resource = createParseResourceObject(false);
1919 when(toscaOperationFacade.getToscaElement(anyString(), any(ComponentParametersView.class)))
1920 .thenReturn(Either.left(resource));
1921 Assertions.assertNotNull(
1922 testSubject.getResourceWithGroups(resourceId));
1926 void testAssociateResourceInstances2() {
1927 String yamlName = "yamlName";
1928 Resource resource = createParseResourceObject(true);
1929 List<RequirementCapabilityRelDef> relations = new ArrayList<>();
1930 when(toscaOperationFacade.associateResourceInstances(any(Resource.class),
1931 anyString(), any(ArrayList.class))).thenReturn(Either.right(StorageOperationStatus.BAD_REQUEST));
1932 Assertions.assertThrows(ComponentException.class, () ->
1933 testSubject.associateResourceInstances(yamlName, resource, relations));
1937 void testAddRelationsToRI() {
1938 String yamlName = "group.yml";
1939 Resource resource = createResourceObject(false);
1941 Map<String, UploadComponentInstanceInfo> uploadResInstancesMap = new HashMap<>();
1942 UploadComponentInstanceInfo nodesInfoValue = getUploadComponentInstanceInfo();
1943 nodesInfoValue.getRequirements().get("requirements").get(0).setName("zxjtestimportserviceab0.mme_ipu_vdu.dependency.test");
1944 uploadResInstancesMap.put("uploadComponentInstanceInfo", nodesInfoValue);
1945 List<ComponentInstance> componentInstancesList = creatComponentInstances();
1946 ComponentInstance componentInstance = new ComponentInstance();
1947 componentInstance.setName("zxjTestImportServiceAb");
1948 componentInstancesList.add(componentInstance);
1949 resource.setComponentInstances(componentInstancesList);
1950 componentInstancesList.get(0).getRequirements().get("tosca.capabilities.Node").get(0).setLeftOccurrences("1");
1951 componentInstancesList.get(0).getRequirements().get("tosca.capabilities.Node").get(0).setMaxOccurrences("1");
1952 componentInstancesList.get(0).getRequirements().get("tosca.capabilities.Node").get(0).setCapability("tosca.capabilities.Node");
1953 List<RequirementCapabilityRelDef> relations = new ArrayList<>();
1954 RequirementDefinition requirementDefinition = new RequirementDefinition();
1955 requirementDefinition.setOwnerId("1");
1956 requirementDefinition.setUniqueId("2");
1957 requirementDefinition.setCapability("3");
1958 CapabilityDefinition capabilityDefinition = new CapabilityDefinition();
1959 capabilityDefinition.setName("4");
1960 capabilityDefinition.setUniqueId("5");
1961 capabilityDefinition.setOwnerId("6");
1962 ResponseFormat responseFormat = new ResponseFormat();
1963 responseFormat.setStatus(200);
1964 Assertions.assertNotNull(resource);
1966 testSubject.addRelationsToRI(yamlName, resource, uploadResInstancesMap, componentInstancesList, relations);
1970 void testAddRelationsToRI_null() {
1971 String yamlName = "group.yml";
1972 Resource resource = createParseResourceObject(true);
1973 Map<String, UploadComponentInstanceInfo> uploadResInstancesMap = new HashMap<>();
1974 UploadComponentInstanceInfo nodesInfoValue = getUploadComponentInstanceInfo();
1975 uploadResInstancesMap.put("uploadComponentInstanceInfo", nodesInfoValue);
1976 List<ComponentInstance> componentInstancesList = new ArrayList<>();
1977 List<RequirementCapabilityRelDef> relations = new ArrayList<>();
1979 Assertions.assertThrows(ComponentException.class, () ->
1980 testSubject.addRelationsToRI(yamlName, resource, uploadResInstancesMap, componentInstancesList,
1985 void testAddRelationToRI() {
1986 String yamlName = "yamlName";
1987 Resource resource = createParseResourceObject(true);
1988 resource.setComponentInstances(creatComponentInstances());
1989 UploadComponentInstanceInfo nodesInfoValue = getUploadComponentInstanceInfo();
1990 List<RequirementCapabilityRelDef> relations = new ArrayList<>();
1992 Assertions.assertNotNull(
1993 testSubject.addRelationToRI(yamlName, resource, nodesInfoValue, relations));
1997 void testAddRelationToRI_null() {
1998 String yamlName = "yamlName.yml";
1999 Resource resource = createParseResourceObject(false);
2000 List<ComponentInstance> componentInstancesList = new ArrayList<>();
2001 resource.setComponentInstances(componentInstancesList);
2002 UploadComponentInstanceInfo nodesInfoValue = getUploadComponentInstanceInfo();
2003 List<RequirementCapabilityRelDef> relations = new ArrayList<>();
2004 Assertions.assertNotNull(
2005 testSubject.addRelationToRI(yamlName, resource, nodesInfoValue, relations));
2009 void testFindVfcResource() {
2010 Service service = createServiceObject(true);
2011 String currVfcToscaName = "currVfcToscaName";
2012 String previousVfcToscaName = "previousVfcToscaName";
2013 UploadComponentInstanceInfo nodesInfoValue = new UploadComponentInstanceInfo();
2014 List<RequirementCapabilityRelDef> relations = new ArrayList<>();
2015 final CsarInfo csarInfo = getCsarInfo();
2016 Assertions.assertThrows(ComponentException.class, () ->
2017 testSubject.findVfcResource(csarInfo, service, currVfcToscaName, previousVfcToscaName,
2018 StorageOperationStatus.OK));
2021 private GroupDefinition getGroupDefinition() {
2022 GroupDefinition groupDefinition = new GroupDefinition();
2023 Map<String, String> members = new HashMap<>();
2024 members.put("members", "members");
2025 Map<String, List<CapabilityDefinition>> capabilities = new HashMap<>();
2026 List<PropertyDataDefinition> properties = new ArrayList<>();
2027 groupDefinition.setInvariantName("groupDefinitionName");
2028 groupDefinition.setMembers(members);
2029 groupDefinition.setProperties(properties);
2030 groupDefinition.setCapabilities(capabilities);
2031 return groupDefinition;
2034 protected Resource createParseResourceObject(boolean afterCreate) {
2035 Resource resource = new Resource();
2036 resource.setName(RESOURCE_NAME);
2037 resource.setToscaResourceName(RESOURCE_TOSCA_NAME);
2038 resource.addCategory(RESOURCE_CATEGORY1, RESOURCE_SUBCATEGORY);
2039 resource.setDescription("My short description");
2040 List<String> tgs = new ArrayList<>();
2042 tgs.add(resource.getName());
2043 resource.setTags(tgs);
2044 List<String> template = new ArrayList<>();
2045 template.add("tosca.nodes.Root");
2046 resource.setDerivedFrom(template);
2047 resource.setVendorName("Motorola");
2048 resource.setVendorRelease("1.0.0");
2049 resource.setContactId("ya5467");
2050 resource.setIcon("defaulticon");
2051 Map<String, List<RequirementDefinition>> requirements = new HashMap<>();
2052 List<RequirementDefinition> requirementDefinitionList = new ArrayList<>();
2053 requirements.put("test", requirementDefinitionList);
2054 resource.setRequirements(requirements);
2055 resource.setCost("cost");
2056 resource.setResourceVendorModelNumber("02312233");
2058 Map<String, ArtifactDefinition> artifacts = new HashMap<>();
2059 ArtifactDefinition artifactDefinition = new ArtifactDefinition();
2060 artifacts.put("artifact", artifactDefinition);
2061 resource.setArtifacts(artifacts);
2063 resource.setLicenseType("licType");
2066 resource.setName(resource.getName());
2067 resource.setVersion("0.1");
2068 resource.setUniqueId(resource.getName()
2069 .toLowerCase() + ":" + resource.getVersion());
2070 resource.setCreatorUserId(user.getUserId());
2071 resource.setCreatorFullName(user.getFirstName() + " " + user.getLastName());
2072 resource.setLifecycleState(LifecycleStateEnum.NOT_CERTIFIED_CHECKOUT);
2077 protected CsarInfo getCsarInfo() {
2078 String csarUuid = "0010";
2079 User user = new User();
2082 csarFile = new File(
2083 ServiceImportBusinessLogicTest.class.getClassLoader().getResource("csars/service-Ser09080002-csar.csar").toURI());
2084 Map<String, byte[]> csar = ZipUtils.readZip(csarFile, false);
2086 String vfReousrceName = "resouceName";
2087 String mainTemplateName = "Definitions/service_import_template.yml";
2089 Optional<String> keyOp = csar.keySet().stream().filter(k -> k.endsWith("service-Ser09080002-template.yml")).findAny();
2090 byte[] mainTemplateService = keyOp.map(csar::get).orElse(null);
2091 assertNotNull(mainTemplateService);
2092 final String mainTemplateContent = new String(mainTemplateService);
2094 return new ServiceCsarInfo(user, csarUuid, csar, vfReousrceName, null, mainTemplateName, mainTemplateContent, false);
2095 } catch (URISyntaxException | ZipException e) {
2101 private String loadFileNameToJsonString(String fileName) throws IOException {
2102 String sourceDir = "src/test/resources/normativeTypes";
2103 return loadFileNameToJsonString(sourceDir, fileName);
2106 private String loadFileNameToJsonString(String sourceDir, String fileName) throws IOException {
2107 java.nio.file.Path filePath = FileSystems.getDefault().getPath(sourceDir, fileName);
2108 byte[] fileContent = Files.readAllBytes(filePath);
2109 return new String(fileContent);
2112 protected Service createServiceObject(boolean afterCreate) {
2113 Service service = new Service();
2114 service.setUniqueId("sid");
2115 service.setName("Service");
2116 CategoryDefinition category = new CategoryDefinition();
2117 category.setName(SERVICE_CATEGORY);
2118 category.setIcons(Collections.singletonList("defaulticon"));
2119 List<CategoryDefinition> categories = new ArrayList<>();
2120 categories.add(category);
2121 service.setCategories(categories);
2122 service.setInstantiationType(INSTANTIATION_TYPE);
2124 service.setDescription("description");
2125 List<String> tgs = new ArrayList<>();
2126 tgs.add(service.getName());
2127 service.setTags(tgs);
2128 service.setIcon("defaulticon");
2129 service.setContactId("aa1234");
2130 service.setProjectCode("12345");
2131 service.setEcompGeneratedNaming(true);
2134 service.setVersion("0.1");
2135 service.setUniqueId(service.getName() + ":" + service.getVersion());
2136 service.setCreatorUserId(user.getUserId());
2137 service.setCreatorFullName(user.getFirstName() + " " + user.getLastName());
2142 protected void assertComponentException(ComponentException e, ActionStatus expectedStatus, String... variables) {
2143 ResponseFormat actualResponse = e.getResponseFormat() != null ?
2144 e.getResponseFormat() : componentsUtils.getResponseFormat(e.getActionStatus(), e.getParams());
2145 assertParseResponse(actualResponse, expectedStatus, variables);
2148 private void assertParseResponse(ResponseFormat actualResponse, ActionStatus expectedStatus, String... variables) {
2149 ResponseFormat expectedResponse = responseManager.getResponseFormat(expectedStatus, variables);
2150 assertThat(expectedResponse.getStatus()).isEqualTo(actualResponse.getStatus());
2151 assertThat(expectedResponse.getFormattedMessage()).isEqualTo(actualResponse.getFormattedMessage());