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.assertNotEquals;
21 import static org.junit.jupiter.api.Assertions.assertNotNull;
22 import static org.junit.jupiter.api.Assertions.assertTrue;
23 import static org.mockito.ArgumentMatchers.any;
24 import static org.mockito.ArgumentMatchers.anyBoolean;
25 import static org.mockito.ArgumentMatchers.anyMap;
26 import static org.mockito.ArgumentMatchers.anyString;
27 import static org.mockito.Mockito.mock;
28 import static org.mockito.Mockito.times;
29 import static org.mockito.Mockito.verify;
30 import static org.mockito.Mockito.when;
32 import fj.data.Either;
33 import java.io.IOException;
34 import java.nio.file.FileSystems;
35 import java.nio.file.Files;
36 import java.util.ArrayList;
37 import java.util.Collections;
38 import java.util.EnumMap;
39 import java.util.HashMap;
40 import java.util.HashSet;
41 import java.util.List;
43 import java.util.Map.Entry;
44 import java.util.NoSuchElementException;
46 import org.apache.commons.collections.map.HashedMap;
47 import org.apache.commons.lang3.tuple.ImmutablePair;
48 import org.junit.jupiter.api.Assertions;
49 import org.junit.jupiter.api.BeforeEach;
50 import org.junit.jupiter.api.Test;
51 import org.mockito.MockitoAnnotations;
52 import org.openecomp.sdc.ElementOperationMock;
53 import org.openecomp.sdc.be.auditing.impl.AuditingManager;
54 import org.openecomp.sdc.be.components.csar.CsarInfo;
55 import org.openecomp.sdc.be.components.impl.ArtifactsBusinessLogic.ArtifactOperationEnum;
56 import org.openecomp.sdc.be.components.impl.exceptions.ComponentException;
57 import org.openecomp.sdc.be.components.lifecycle.LifecycleBusinessLogic;
58 import org.openecomp.sdc.be.components.lifecycle.LifecycleChangeInfoWithAction;
59 import org.openecomp.sdc.be.dao.api.ActionStatus;
60 import org.openecomp.sdc.be.datatypes.elements.CINodeFilterDataDefinition;
61 import org.openecomp.sdc.be.datatypes.elements.GetInputValueDataDefinition;
62 import org.openecomp.sdc.be.datatypes.elements.ListCapabilityDataDefinition;
63 import org.openecomp.sdc.be.datatypes.elements.ListDataDefinition;
64 import org.openecomp.sdc.be.datatypes.elements.ListRequirementDataDefinition;
65 import org.openecomp.sdc.be.datatypes.elements.PropertyDataDefinition;
66 import org.openecomp.sdc.be.datatypes.elements.RequirementNodeFilterPropertyDataDefinition;
67 import org.openecomp.sdc.be.datatypes.enums.ComponentTypeEnum;
68 import org.openecomp.sdc.be.datatypes.enums.ResourceTypeEnum;
69 import org.openecomp.sdc.be.impl.ComponentsUtils;
70 import org.openecomp.sdc.be.model.ArtifactDefinition;
71 import org.openecomp.sdc.be.model.AttributeDefinition;
72 import org.openecomp.sdc.be.model.CapabilityDefinition;
73 import org.openecomp.sdc.be.model.CapabilityTypeDefinition;
74 import org.openecomp.sdc.be.model.Component;
75 import org.openecomp.sdc.be.model.ComponentInstance;
76 import org.openecomp.sdc.be.model.ComponentInstanceInput;
77 import org.openecomp.sdc.be.model.ComponentInstanceProperty;
78 import org.openecomp.sdc.be.model.ComponentParametersView;
79 import org.openecomp.sdc.be.model.GroupDefinition;
80 import org.openecomp.sdc.be.model.InputDefinition;
81 import org.openecomp.sdc.be.model.InterfaceDefinition;
82 import org.openecomp.sdc.be.model.LifeCycleTransitionEnum;
83 import org.openecomp.sdc.be.model.LifecycleStateEnum;
84 import org.openecomp.sdc.be.model.NodeTypeInfo;
85 import org.openecomp.sdc.be.model.PropertyDefinition;
86 import org.openecomp.sdc.be.model.RequirementCapabilityRelDef;
87 import org.openecomp.sdc.be.model.RequirementDefinition;
88 import org.openecomp.sdc.be.model.Resource;
89 import org.openecomp.sdc.be.model.Service;
90 import org.openecomp.sdc.be.model.UploadCapInfo;
91 import org.openecomp.sdc.be.model.UploadComponentInstanceInfo;
92 import org.openecomp.sdc.be.model.UploadNodeFilterInfo;
93 import org.openecomp.sdc.be.model.UploadNodeFilterPropertyInfo;
94 import org.openecomp.sdc.be.model.UploadPropInfo;
95 import org.openecomp.sdc.be.model.UploadReqInfo;
96 import org.openecomp.sdc.be.model.User;
97 import org.openecomp.sdc.be.model.category.CategoryDefinition;
98 import org.openecomp.sdc.be.model.category.SubCategoryDefinition;
99 import org.openecomp.sdc.be.model.jsonjanusgraph.operations.ToscaOperationFacade;
100 import org.openecomp.sdc.be.model.operations.api.ICapabilityTypeOperation;
101 import org.openecomp.sdc.be.model.operations.api.IElementOperation;
102 import org.openecomp.sdc.be.model.operations.api.IInterfaceLifecycleOperation;
103 import org.openecomp.sdc.be.model.operations.api.StorageOperationStatus;
104 import org.openecomp.sdc.be.resources.data.auditing.AuditingActionEnum;
105 import org.openecomp.sdc.be.user.Role;
106 import org.openecomp.sdc.common.api.Constants;
107 import org.openecomp.sdc.exception.ResponseFormat;
109 class ServiceImportParseLogicTest extends ServiceImportBussinessLogicBaseTestSetup {
111 private static final String RESOURCE_NAME = "My-Resource_Name with space";
112 private static final String RESOURCE_TOSCA_NAME = "My-Resource_Tosca_Name";
113 private static final String GENERIC_ROOT_NAME = "tosca.nodes.Root";
114 private static final String GENERIC_VF_NAME = "org.openecomp.resource.abstract.nodes.VF";
115 private static final String GENERIC_CR_NAME = "org.openecomp.resource.abstract.nodes.CR";
116 private static final String GENERIC_PNF_NAME = "org.openecomp.resource.abstract.nodes.PNF";
117 private static final String RESOURCE_CATEGORY1 = "Network Layer 2-3";
118 private static final String RESOURCE_SUBCATEGORY = "Router";
120 private final ComponentsUtils componentsUtils = new ComponentsUtils(mock(AuditingManager.class));
121 private final ToscaOperationFacade toscaOperationFacade = mock(ToscaOperationFacade.class);
122 private final ServiceBusinessLogic serviceBusinessLogic = mock(ServiceBusinessLogic.class);
123 private final ICapabilityTypeOperation capabilityTypeOperation = mock(ICapabilityTypeOperation.class);
124 private final IElementOperation elementDao = mock(IElementOperation.class);
125 private final IInterfaceLifecycleOperation interfaceTypeOperation = mock(IInterfaceLifecycleOperation.class);
126 private final InputsBusinessLogic inputsBusinessLogic = mock(InputsBusinessLogic.class);
127 private final LifecycleBusinessLogic lifecycleBusinessLogic = mock(LifecycleBusinessLogic.class);
128 private final ComponentNodeFilterBusinessLogic componentNodeFilterBusinessLogic = mock(ComponentNodeFilterBusinessLogic.class);
130 private ResponseFormatManager responseManager = null;
131 private User user = null;
132 private ServiceImportParseLogic testSubject;
134 private ServiceImportParseLogic createTestSubject() {
135 return new ServiceImportParseLogic();
139 public void setup() {
140 MockitoAnnotations.openMocks(this);
143 mockElementDao = new ElementOperationMock();
145 // User data and management
147 user.setUserId("jh0003");
148 user.setFirstName("Jimmi");
149 user.setLastName("Hendrix");
150 user.setRole(Role.ADMIN.name());
151 responseManager = ResponseFormatManager.getInstance();
153 testSubject = createTestSubject();
154 testSubject.setComponentsUtils(componentsUtils);
155 testSubject.setToscaOperationFacade(toscaOperationFacade);
156 serviceBusinessLogic.setElementDao(elementDao);
157 testSubject.setServiceBusinessLogic(serviceBusinessLogic);
158 testSubject.setCapabilityTypeOperation(capabilityTypeOperation);
159 testSubject.setInterfaceTypeOperation(interfaceTypeOperation);
160 testSubject.setInputsBusinessLogic(inputsBusinessLogic);
161 testSubject.setLifecycleBusinessLogic(lifecycleBusinessLogic);
162 testSubject.setComponentNodeFilterBusinessLogic(componentNodeFilterBusinessLogic);
166 void testFindNodeTypesArtifactsToHandle() {
167 testSubject = createTestSubject();
168 Map<String, NodeTypeInfo> nodeTypesInfo = new HashedMap();
169 final Service service = createServiceObject(false);
170 Assertions.assertNotNull(
171 this.testSubject.findNodeTypesArtifactsToHandle(
172 nodeTypesInfo, getCsarInfo(), service));
177 void testBuildNodeTypeYaml() {
178 Map.Entry<String, Object> nodeNameValue = new Entry<String, Object>() {
180 public String getKey() {
185 public Object getValue() {
190 public Object setValue(Object value) {
194 Map<String, Object> mapToConvert = new HashMap<>();
195 String nodeResourceType = Constants.USER_DEFINED_RESOURCE_NAMESPACE_PREFIX;
197 final CsarInfo csarInfo = getCsarInfo();
198 Assertions.assertThrows(ComponentException.class, () ->
199 testSubject.buildNodeTypeYaml(nodeNameValue, mapToConvert, nodeResourceType, csarInfo));
204 void testFindAddNodeTypeArtifactsToHandle() {
206 Map<String, List<ArtifactDefinition>> extractedVfcsArtifacts = new HashMap<>();
207 Map<String, EnumMap<ArtifactOperationEnum, List<ArtifactDefinition>>> nodeTypesArtifactsToHandle = new HashMap<>();
208 String namespace = "namespace";
210 ImmutablePair p1 = ImmutablePair.<String, String>of("s", "sd");
211 Map<String, NodeTypeInfo> nodeTypesInfo = new HashedMap();
212 final Service service = createServiceObject(false);
213 Resource resource = new Resource();
214 Either<Component, StorageOperationStatus> getCompLatestResult = Either.left(resource);
215 when(toscaOperationFacade.getLatestByToscaResourceName(anyString(), any()))
216 .thenReturn(getCompLatestResult);
218 final CsarInfo csarInfo = getCsarInfo();
219 Assertions.assertThrows(ComponentException.class, () ->
220 testSubject.findAddNodeTypeArtifactsToHandle(csarInfo, nodeTypesArtifactsToHandle, service,
221 extractedVfcsArtifacts, namespace, p1));
226 void testFindAddNodeTypeArtifactsToHandleNotNull() {
228 Map<String, List<ArtifactDefinition>> extractedVfcsArtifacts = new HashMap<>();
229 Map<String, EnumMap<ArtifactOperationEnum, List<ArtifactDefinition>>> nodeTypesArtifactsToHandle = new HashMap<>();
230 String namespace = "namespace";
231 List<ArtifactDefinition> vfcArtifacts = new ArrayList<>();
232 ArtifactDefinition artifactDefinition = new ArtifactDefinition();
233 artifactDefinition.setArtifactName("artifactDefinitionName");
234 vfcArtifacts.add(artifactDefinition);
235 extractedVfcsArtifacts.put(namespace, vfcArtifacts);
236 ImmutablePair p1 = ImmutablePair.<String, String>of("s", "sd");
237 Map<String, NodeTypeInfo> nodeTypesInfo = new HashedMap();
238 final Service service = createServiceObject(false);
239 Resource resource = new Resource();
240 Either<Component, StorageOperationStatus> getCompLatestResult = Either.left(resource);
241 when(toscaOperationFacade.getLatestByToscaResourceName(anyString(), any()))
242 .thenReturn(getCompLatestResult);
243 Assertions.assertNotNull(extractedVfcsArtifacts);
244 testSubject.findAddNodeTypeArtifactsToHandle(getCsarInfo(), nodeTypesArtifactsToHandle, service,
245 extractedVfcsArtifacts, namespace, p1);
249 void testHandleAndAddExtractedVfcsArtifacts() {
250 List<ArtifactDefinition> vfcArtifacts = new ArrayList<>();
251 ArtifactDefinition artifactDefinition = new ArtifactDefinition();
252 artifactDefinition.setArtifactName("artifactDefinitionName");
253 vfcArtifacts.add(artifactDefinition);
254 List<ArtifactDefinition> artifactsToAdd = new ArrayList<>();
255 ArtifactDefinition artifactDefinitionToAdd = new ArtifactDefinition();
256 artifactDefinitionToAdd.setArtifactName("artifactDefinitionToAddName");
257 artifactsToAdd.add(artifactDefinitionToAdd);
258 Assertions.assertNotNull(vfcArtifacts);
260 testSubject.handleAndAddExtractedVfcsArtifacts(vfcArtifacts, artifactsToAdd);
264 void testFindNodeTypeArtifactsToHandle() {
266 Resource curNodeType = createParseResourceObject(true);
267 List<ArtifactDefinition> extractedArtifacts = new ArrayList<>();
269 Assertions.assertNull(
270 testSubject.findNodeTypeArtifactsToHandle(curNodeType, extractedArtifacts));
274 void testCollectExistingArtifacts() {
276 Resource curNodeType = createParseResourceObject(true);
277 Assertions.assertNotNull(
278 testSubject.collectExistingArtifacts(curNodeType));
282 void testPutFoundArtifacts() {
283 ArtifactDefinition artifactDefinition = new ArtifactDefinition();
284 List<ArtifactDefinition> artifactsToUpload = new ArrayList<>();
285 artifactsToUpload.add(artifactDefinition);
286 List<ArtifactDefinition> artifactsToUpdate = new ArrayList<>();
287 artifactsToUpdate.add(artifactDefinition);
288 List<ArtifactDefinition> artifactsToDelete = new ArrayList<>();
289 artifactsToDelete.add(artifactDefinition);
290 Assertions.assertNotNull(
291 testSubject.putFoundArtifacts(artifactsToUpload, artifactsToUpdate, artifactsToDelete));
295 void testProcessExistingNodeTypeArtifacts() {
296 ArtifactDefinition artifactDefinition = new ArtifactDefinition();
297 List<ArtifactDefinition> extractedArtifacts = new ArrayList<>();
298 extractedArtifacts.add(artifactDefinition);
299 List<ArtifactDefinition> artifactsToUpload = new ArrayList<>();
300 artifactsToUpload.add(artifactDefinition);
301 List<ArtifactDefinition> artifactsToUpdate = new ArrayList<>();
302 artifactsToUpdate.add(artifactDefinition);
303 List<ArtifactDefinition> artifactsToDelete = new ArrayList<>();
304 artifactsToDelete.add(artifactDefinition);
305 Map<String, ArtifactDefinition> existingArtifacts = new HashMap<>();
306 existingArtifacts.put("test", artifactDefinition);
307 Assertions.assertThrows(ComponentException.class, () ->
308 testSubject.processExistingNodeTypeArtifacts(extractedArtifacts, artifactsToUpload, artifactsToUpdate,
309 artifactsToDelete, existingArtifacts));
314 void testProcessNodeTypeArtifact() {
315 List<ArtifactDefinition> artifactsToUpload = new ArrayList<>();
316 List<ArtifactDefinition> artifactsToUpdate = new ArrayList<>();
317 Map<String, ArtifactDefinition> existingArtifacts = new HashMap<>();
318 ArtifactDefinition existingArtifact = new ArtifactDefinition();
319 existingArtifact.setArtifactName("ArtifactName");
320 existingArtifact.setArtifactType("ArtifactType");
321 existingArtifact.setArtifactChecksum("ArtifactChecksum");
322 existingArtifacts.put("existingArtifactMap", existingArtifact);
323 ArtifactDefinition currNewArtifact = new ArtifactDefinition();
324 currNewArtifact.setArtifactName("ArtifactName");
325 currNewArtifact.setArtifactType("ArtifactType");
326 currNewArtifact.setPayload("Payload".getBytes());
327 Assertions.assertNotNull(existingArtifact);
328 testSubject.processNodeTypeArtifact(artifactsToUpload, artifactsToUpdate, existingArtifacts, currNewArtifact);
332 void testUpdateFoundArtifact() {
333 List<ArtifactDefinition> artifactsToUpdate = new ArrayList<>();
334 ArtifactDefinition currNewArtifact = new ArtifactDefinition();
335 currNewArtifact.setArtifactChecksum("090909");
336 currNewArtifact.setPayloadData("data");
337 ArtifactDefinition foundArtifact = new ArtifactDefinition();
338 foundArtifact.setArtifactChecksum("08767");
339 Assertions.assertNotNull(currNewArtifact);
341 testSubject.updateFoundArtifact(artifactsToUpdate, currNewArtifact, foundArtifact);
345 void testIsArtifactDeletionRequired() {
346 String artifactId = "artifactId";
347 byte[] artifactFileBytes = new byte[100];
348 boolean isFromCsar = true;
349 Assertions.assertFalse(testSubject.isArtifactDeletionRequired(artifactId, artifactFileBytes, isFromCsar));
353 void testFillGroupsFinalFields() {
354 List<GroupDefinition> groupsAsList = new ArrayList<>();
355 GroupDefinition groupDefinition = new GroupDefinition();
356 groupDefinition.setName("groupDefinitionName");
357 groupsAsList.add(groupDefinition);
358 Assertions.assertNotNull(groupsAsList);
359 testSubject.fillGroupsFinalFields(groupsAsList);
363 void testGetComponentTypeForResponse() {
364 Resource resource = createParseResourceObject(true);
365 Assertions.assertNotNull(
366 testSubject.getComponentTypeForResponse(resource));
370 void testGetComponentTypeForResponseByService() {
371 Service service = createServiceObject(true);
372 Assertions.assertNotNull(
373 testSubject.getComponentTypeForResponse(service));
377 void testIsfillGroupMemebersRecursivlyStopCondition() {
378 String groupName = "groupName";
379 Map<String, GroupDefinition> allGroups = new HashMap<>();
380 Set<String> allGroupMembers = new HashSet<>();
381 Assertions.assertTrue(testSubject.isfillGroupMemebersRecursivlyStopCondition(groupName, allGroups, allGroupMembers));
385 void testIsfillGroupMemebersRecursivlyStopCondition2() {
386 String groupName = "groupName";
387 Map<String, GroupDefinition> allGroups = new HashMap<>();
388 GroupDefinition groupDefinition = new GroupDefinition();
389 Map<String, String> members = new HashMap<>();
390 members.put("members", "members");
391 groupDefinition.setMembers(members);
392 allGroups.put(groupName, groupDefinition);
393 Set<String> allGroupMembers = new HashSet<>();
394 Assertions.assertTrue(testSubject.isfillGroupMemebersRecursivlyStopCondition(groupName, allGroups, allGroupMembers));
398 void testBuildValidComplexVfc() {
399 Resource resource = createParseResourceObject(true);
400 String nodeName = "org.openecomp.resource.derivedFrom.zxjTestImportServiceAb.test";
401 Map<String, NodeTypeInfo> nodesInfo = new HashMap<>();
402 NodeTypeInfo nodeTypeInfo = new NodeTypeInfo();
403 List<String> derivedFrom = new ArrayList<>();
404 derivedFrom.add("derivedFrom");
405 nodeTypeInfo.setDerivedFrom(derivedFrom);
406 nodesInfo.put(nodeName, nodeTypeInfo);
407 final CsarInfo csarInfo = getCsarInfo();
408 Assertions.assertThrows(ComponentException.class, () ->
409 testSubject.buildValidComplexVfc(resource, csarInfo, nodeName, nodesInfo));
414 void testValidateResourceBeforeCreate() {
415 Resource resource = createParseResourceObject(true);
417 testSubject.getServiceBusinessLogic().setElementDao(elementDao);
418 final CsarInfo csarInfo = getCsarInfo();
419 Assertions.assertThrows(ComponentException.class, () ->
420 testSubject.validateResourceBeforeCreate(resource, user, AuditingActionEnum.IMPORT_RESOURCE, false, csarInfo));
425 void testValidateResourceType() {
426 Resource resource = createParseResourceObject(true);
427 Assertions.assertNotNull(
428 testSubject.validateResourceType(user, resource, AuditingActionEnum.IMPORT_RESOURCE));
432 void testValidateResourceTypeIsEmpty() {
433 Resource resource = new Resource();
434 resource.setResourceType(null);
435 Assertions.assertNotNull(
436 testSubject.validateResourceType(user, resource, AuditingActionEnum.IMPORT_RESOURCE));
440 void testValidateLifecycleTypesCreate() {
441 Resource resource = createParseResourceObject(true);
442 Map<String, InterfaceDefinition> mapInterfaces = new HashMap<>();
443 InterfaceDefinition interfaceDefinition = new InterfaceDefinition();
444 String uniqueId = "01932342212";
445 interfaceDefinition.setUniqueId(uniqueId);
446 mapInterfaces.put("uniqueId", interfaceDefinition);
447 resource.setInterfaces(mapInterfaces);
448 when(interfaceTypeOperation.getInterface(anyString()))
449 .thenReturn(Either.right(StorageOperationStatus.NOT_FOUND));
450 Assertions.assertNotNull(
451 testSubject.validateLifecycleTypesCreate(user, resource, AuditingActionEnum.IMPORT_RESOURCE));
455 void testValidateCapabilityTypesCreate() {
456 Resource resource = createParseResourceObject(true);
457 Map<String, List<CapabilityDefinition>> capabilities = new HashMap<>();
458 String uniqueId = "18982938994";
459 List<CapabilityDefinition> capabilityDefinitionList = new ArrayList<>();
460 CapabilityDefinition capabilityDefinition = new CapabilityDefinition();
461 capabilityDefinitionList.add(capabilityDefinition);
462 capabilities.put(uniqueId, capabilityDefinitionList);
463 resource.setCapabilities(capabilities);
464 when(capabilityTypeOperation.getCapabilityType(anyString(), anyBoolean())).
465 thenReturn(Either.right(StorageOperationStatus.NOT_FOUND));
466 Assertions.assertNotNull(
467 testSubject.validateCapabilityTypesCreate(user, testSubject.getCapabilityTypeOperation(), resource,
468 AuditingActionEnum.IMPORT_RESOURCE, true));
473 void testValidateCapabilityTypesCreateWhenHaveCapability() {
474 Resource resource = createParseResourceObject(true);
475 Map<String, List<CapabilityDefinition>> capabilities = new HashMap<>();
476 String uniqueId = "18982938994";
477 List<CapabilityDefinition> capabilityDefinitionList = new ArrayList<>();
478 CapabilityDefinition capabilityDefinition = new CapabilityDefinition();
479 capabilityDefinitionList.add(capabilityDefinition);
480 capabilities.put(uniqueId, capabilityDefinitionList);
481 resource.setCapabilities(capabilities);
482 CapabilityTypeDefinition capabilityTypeDefinition = new CapabilityTypeDefinition();
483 when(capabilityTypeOperation.getCapabilityType(anyString(), anyBoolean())).
484 thenReturn(Either.left(capabilityTypeDefinition));
486 Assertions.assertNotNull(
487 testSubject.validateCapabilityTypesCreate(user, testSubject.getCapabilityTypeOperation(), resource,
488 AuditingActionEnum.IMPORT_RESOURCE, true));
493 void testValidateCapabilityTypeExists() {
494 Resource resource = createParseResourceObject(true);
495 Either<Boolean, ResponseFormat> eitherResult = Either.left(true);
496 for (Map.Entry<String, List<CapabilityDefinition>> typeEntry : resource.getCapabilities().entrySet()) {
498 Assertions.assertNotNull(
499 testSubject.validateCapabilityTypeExists(user, testSubject.getCapabilityTypeOperation(), resource,
500 AuditingActionEnum.IMPORT_RESOURCE,
501 eitherResult, typeEntry, false));
506 void testValidateCapabilityTypeExistsWhenPropertiesIsNull() {
507 Resource resource = createParseResourceObject(true);
508 Either<Boolean, ResponseFormat> eitherResult = Either.left(true);
509 CapabilityTypeDefinition capabilityTypeDefinition = new CapabilityTypeDefinition();
511 String uniqueId = "0987348532";
512 PropertyDefinition propertyDefinition = new PropertyDefinition();
513 Map<String, PropertyDefinition> properties = new HashMap<>();
514 properties.put(uniqueId, propertyDefinition);
515 capabilityTypeDefinition.setProperties(properties);
517 Map<String, List<CapabilityDefinition>> capabilities = new HashMap<>();
518 List<CapabilityDefinition> capabilityDefinitionList = new ArrayList<>();
519 CapabilityDefinition capabilityDefinition = new CapabilityDefinition();
520 capabilityDefinitionList.add(capabilityDefinition);
521 capabilities.put(uniqueId, capabilityDefinitionList);
522 resource.setCapabilities(capabilities);
524 when(capabilityTypeOperation.getCapabilityType(anyString(), anyBoolean())).
525 thenReturn(Either.left(capabilityTypeDefinition));
526 for (Map.Entry<String, List<CapabilityDefinition>> typeEntry : resource.getCapabilities().entrySet()) {
528 Assertions.assertNotNull(
529 testSubject.validateCapabilityTypeExists(user, testSubject.getCapabilityTypeOperation(), resource,
530 AuditingActionEnum.IMPORT_RESOURCE,
531 eitherResult, typeEntry, false));
536 void testValidateCapabilityTypeExistsWhenPropertiesNotNull() {
537 Resource resource = createParseResourceObject(true);
538 Either<Boolean, ResponseFormat> eitherResult = Either.left(true);
539 CapabilityTypeDefinition capabilityTypeDefinition = new CapabilityTypeDefinition();
541 String uniqueId = "0987348532";
542 PropertyDefinition propertyDefinition = new PropertyDefinition();
543 propertyDefinition.setName(uniqueId);
544 Map<String, PropertyDefinition> properties = new HashMap<>();
545 properties.put(uniqueId, propertyDefinition);
546 capabilityTypeDefinition.setProperties(properties);
548 Map<String, List<CapabilityDefinition>> capabilities = new HashMap<>();
550 List<CapabilityDefinition> capabilityDefinitionList = new ArrayList<>();
551 List<ComponentInstanceProperty> componentInstancePropertyList = new ArrayList<>();
552 ComponentInstanceProperty componentInstanceProperty = new ComponentInstanceProperty();
553 componentInstanceProperty.setValueUniqueUid(uniqueId);
554 componentInstanceProperty.setName(uniqueId);
555 componentInstancePropertyList.add(componentInstanceProperty);
556 CapabilityDefinition capabilityDefinition = new CapabilityDefinition();
557 capabilityDefinition.setProperties(componentInstancePropertyList);
558 capabilityDefinitionList.add(capabilityDefinition);
560 capabilities.put(uniqueId, capabilityDefinitionList);
561 resource.setCapabilities(capabilities);
563 when(capabilityTypeOperation.getCapabilityType(anyString(), anyBoolean())).
564 thenReturn(Either.left(capabilityTypeDefinition));
565 for (Map.Entry<String, List<CapabilityDefinition>> typeEntry : resource.getCapabilities().entrySet()) {
567 Assertions.assertNotNull(
568 testSubject.validateCapabilityTypeExists(user, testSubject.getCapabilityTypeOperation(), resource,
569 AuditingActionEnum.IMPORT_RESOURCE,
570 eitherResult, typeEntry, false));
575 void testValidateCapabilityTypeExists2() {
576 Resource resource = createParseResourceObject(true);
577 Either<Boolean, ResponseFormat> eitherResult = Either.left(true);
578 when(capabilityTypeOperation.getCapabilityType(anyString(), anyBoolean())).
579 thenReturn(Either.right(StorageOperationStatus.NOT_FOUND));
581 for (String type : resource.getRequirements().keySet()) {
582 Assertions.assertNotNull(
583 testSubject.validateCapabilityTypeExists(user, testSubject.getCapabilityTypeOperation(), resource,
584 resource.getRequirements().get(type), AuditingActionEnum.IMPORT_RESOURCE, eitherResult, type,
591 void testValidateResourceFieldsBeforeCreate() {
592 Resource resource = createParseResourceObject(true);
593 Assertions.assertThrows(ComponentException.class, () ->
594 testSubject.validateResourceFieldsBeforeCreate(user, resource, AuditingActionEnum.IMPORT_RESOURCE, true));
598 void testValidateDerivedFromExist() {
599 Resource resource = createParseResourceObject(true);
600 when(toscaOperationFacade.validateToscaResourceNameExists(anyString())).thenReturn(Either.left(true));
601 Assertions.assertNotNull(resource);
603 testSubject.validateDerivedFromExist(user, resource, AuditingActionEnum.IMPORT_RESOURCE);
607 void testValidateLicenseType() {
608 Resource resource = createParseResourceObject(true);
610 Assertions.assertThrows(ComponentException.class, () ->
611 testSubject.validateLicenseType(user, resource, AuditingActionEnum.IMPORT_RESOURCE));
617 void testValidateCost() {
618 Resource resource = createParseResourceObject(true);
619 Assertions.assertThrows(ComponentException.class, () ->
620 testSubject.validateCost(resource));
624 void testValidateResourceVendorModelNumber() {
625 Resource resource = createParseResourceObject(true);
626 Assertions.assertNotNull(resource);
628 testSubject.validateResourceVendorModelNumber(user, resource, AuditingActionEnum.IMPORT_RESOURCE);
632 void testValidateResourceVendorModelNumberWrongLen() {
633 Resource resource = createParseResourceObject(true);
634 resource.setResourceVendorModelNumber("000000000011122221111222333444443222556677788778889999998776554332340");
635 Assertions.assertThrows(ComponentException.class, () ->
636 testSubject.validateResourceVendorModelNumber(user, resource, AuditingActionEnum.IMPORT_RESOURCE));
640 void testValidateResourceVendorModelNumberWrongValue() {
641 Resource resource = createParseResourceObject(true);
642 resource.setResourceVendorModelNumber("");
643 Assertions.assertNotNull(resource);
645 testSubject.validateResourceVendorModelNumber(user, resource, AuditingActionEnum.IMPORT_RESOURCE);
649 void testValidateVendorReleaseName() {
650 Resource resource = createParseResourceObject(true);
651 resource.setVendorRelease("0.1");
652 Assertions.assertNotNull(resource);
654 testSubject.validateVendorReleaseName(user, resource, AuditingActionEnum.IMPORT_RESOURCE);
658 void testValidateVendorReleaseNameFailure() {
659 Resource resource = createParseResourceObject(true);
660 resource.setVendorRelease("");
661 Assertions.assertThrows(ComponentException.class, () ->
662 testSubject.validateVendorReleaseName(user, resource, AuditingActionEnum.IMPORT_RESOURCE));
667 void testValidateVendorReleaseNameWrongLen() {
668 Resource resource = createParseResourceObject(true);
669 resource.setVendorRelease("000000000011122221111222333444443222556677788778889999998776554332340");
670 Assertions.assertThrows(ComponentException.class, () ->
671 testSubject.validateVendorReleaseName(user, resource, AuditingActionEnum.IMPORT_RESOURCE));
676 void testValidateCategory() {
677 Resource resource = createParseResourceObject(true);
678 Assertions.assertThrows(ComponentException.class, () ->
679 testSubject.validateCategory(user, resource, AuditingActionEnum.IMPORT_RESOURCE, true));
683 void testValidateEmptyCategory() {
684 Resource resource = createParseResourceObject(true);
685 resource.setCategories(null);
686 Assertions.assertThrows(ComponentException.class, () ->
687 testSubject.validateCategory(user, resource, AuditingActionEnum.IMPORT_RESOURCE, true));
692 void testValidateCategorySizeBiggerThan1() {
693 Resource resource = createParseResourceObject(true);
694 List<CategoryDefinition> categories = new ArrayList<>();
695 CategoryDefinition categoryDefinition1 = new CategoryDefinition();
696 CategoryDefinition categoryDefinition2 = new CategoryDefinition();
697 categories.add(categoryDefinition1);
698 categories.add(categoryDefinition2);
700 resource.setCategories(categories);
701 Assertions.assertThrows(ComponentException.class, () ->
702 testSubject.validateCategory(user, resource, AuditingActionEnum.IMPORT_RESOURCE, true));
707 void testValidateEmptySubCategory() {
708 Resource resource = createParseResourceObject(true);
709 List<CategoryDefinition> categories = resource.getCategories();
710 CategoryDefinition categoryDefinition = categories.get(0);
711 categoryDefinition.setSubcategories(null);
713 Assertions.assertThrows(ComponentException.class, () ->
714 testSubject.validateCategory(user, resource, AuditingActionEnum.IMPORT_RESOURCE, true));
719 void testValidateEmptySubCategorySizeBiggerThan1() {
720 Resource resource = createParseResourceObject(true);
721 List<CategoryDefinition> categories = resource.getCategories();
722 CategoryDefinition categoryDefinition = categories.get(0);
723 List<SubCategoryDefinition> subcategories = categoryDefinition.getSubcategories();
724 SubCategoryDefinition subCategoryDefinition1 = new SubCategoryDefinition();
725 SubCategoryDefinition subCategoryDefinition2 = new SubCategoryDefinition();
726 subcategories.add(subCategoryDefinition1);
727 subcategories.add(subCategoryDefinition2);
729 Assertions.assertThrows(ComponentException.class, () ->
730 testSubject.validateCategory(user, resource, AuditingActionEnum.IMPORT_RESOURCE, true));
735 void testValidateEmptyCategoryName() {
736 Resource resource = createParseResourceObject(true);
737 List<CategoryDefinition> categories = resource.getCategories();
738 CategoryDefinition categoryDefinition = categories.get(0);
739 categoryDefinition.setName(null);
741 Assertions.assertThrows(ComponentException.class, () ->
742 testSubject.validateCategory(user, resource, AuditingActionEnum.IMPORT_RESOURCE, true));
746 void testValidateEmptySubCategoryName() {
747 Resource resource = createParseResourceObject(true);
748 List<CategoryDefinition> categories = resource.getCategories();
749 CategoryDefinition categoryDefinition = categories.get(0);
750 List<SubCategoryDefinition> subcategories = categoryDefinition.getSubcategories();
751 SubCategoryDefinition subCategoryDefinition1 = subcategories.get(0);
752 subCategoryDefinition1.setName(null);
754 Assertions.assertThrows(ComponentException.class, () ->
755 testSubject.validateCategory(user, resource, AuditingActionEnum.IMPORT_RESOURCE, true));
759 void testValidateCategoryListed() {
760 Resource resource = createParseResourceObject(true);
761 CategoryDefinition category = resource.getCategories().get(0);
762 SubCategoryDefinition subcategory = category.getSubcategories().get(0);
763 Assertions.assertThrows(ComponentException.class, () ->
764 testSubject.validateCategoryListed(category, subcategory, user, resource, AuditingActionEnum.IMPORT_RESOURCE, true));
768 void testFailOnInvalidCategory() {
769 Resource resource = createParseResourceObject(true);
770 Assertions.assertThrows(ComponentException.class, () ->
771 testSubject.failOnInvalidCategory(user, resource, AuditingActionEnum.IMPORT_RESOURCE));
776 void testValidateVendorName() {
777 Resource resource = createParseResourceObject(true);
778 Assertions.assertNotNull(resource);
779 testSubject.validateVendorName(user, resource, AuditingActionEnum.IMPORT_RESOURCE);
783 void testValidateVendorNameEmpty() {
784 Resource resource = createParseResourceObject(true);
785 resource.setVendorName(null);
786 Assertions.assertThrows(ComponentException.class, () ->
787 testSubject.validateVendorName(user, resource, AuditingActionEnum.IMPORT_RESOURCE));
791 void testValidateVendorNameWrongLen() {
792 Resource resource = createParseResourceObject(true);
793 resource.setVendorName("000000000011122221111222333444443222556677788778889999998776554332340");
794 Assertions.assertThrows(ComponentException.class, () ->
795 testSubject.validateVendorName(user, resource, AuditingActionEnum.IMPORT_RESOURCE));
799 void testValidateVendorName2() {
800 Resource resource = createParseResourceObject(true);
801 CategoryDefinition category = resource.getCategories().get(0);
802 SubCategoryDefinition subcategory = category.getSubcategories().get(0);
803 String vendorName = "vendorName";
804 Assertions.assertNotNull(resource);
806 testSubject.validateVendorName(vendorName, user, resource, AuditingActionEnum.IMPORT_RESOURCE);
810 void testFillResourceMetadata2() {
811 String yamlName = "yamlName";
812 Resource resourceVf = createParseResourceObject(true);
813 String nodeName = Constants.USER_DEFINED_RESOURCE_NAMESPACE_PREFIX + "test";
814 resourceVf.setSystemName("systemName");
815 Assertions.assertThrows(ComponentException.class, () ->
816 testSubject.fillResourceMetadata(yamlName, resourceVf, nodeName, user));
820 void testFillResourceMetadataWrongStart() {
821 String yamlName = "yamlName";
822 Resource resourceVf = createParseResourceObject(true);
823 String nodeName = "WrongStart" + "test";
824 Assertions.assertThrows(ComponentException.class, () ->
825 testSubject.fillResourceMetadata(yamlName, resourceVf, nodeName, user));
829 void testFillResourceMetadataResourceTypeIsAbs() {
830 String yamlName = "yamlName";
831 Resource resourceVf = createParseResourceObject(true);
832 String nodeName = Constants.USER_DEFINED_RESOURCE_NAMESPACE_PREFIX + Constants.ABSTRACT;
833 Assertions.assertNotNull(
834 testSubject.fillResourceMetadata(yamlName, resourceVf, nodeName, user));
838 void testGetNodeTypeActualName() {
839 String fullName = Constants.USER_DEFINED_RESOURCE_NAMESPACE_PREFIX + "test";
840 Assertions.assertNotNull(
841 testSubject.getNodeTypeActualName(fullName));
845 void testAddInput() {
846 Map<String, InputDefinition> currPropertiesMap = new HashMap<>();
847 InputDefinition prop = new InputDefinition();
848 Assertions.assertNotNull(currPropertiesMap);
850 testSubject.addInput(currPropertiesMap, prop);
854 void testFindAviableRequirement() {
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 = "capName";
873 Assertions.assertNotNull(
874 testSubject.findAviableRequiremen(regName, yamlName, uploadComponentInstanceInfo, currentCompInstance, capName));
878 void testFindAviableRequirementSameCapName() {
879 String uniqueId = "101929382910";
880 String regName = uniqueId;
881 String yamlName = uniqueId;
882 UploadComponentInstanceInfo uploadComponentInstanceInfo = new UploadComponentInstanceInfo();
883 ComponentInstance currentCompInstance = new ComponentInstance();
885 Map<String, List<RequirementDefinition>> requirements = new HashMap<>();
886 List<RequirementDefinition> requirementDefinitionList = new ArrayList<>();
887 RequirementDefinition requirementDefinition = new RequirementDefinition();
888 requirementDefinition.setName(uniqueId);
889 requirementDefinition.setMaxOccurrences("10");
890 requirementDefinition.setLeftOccurrences("3");
891 requirementDefinitionList.add(requirementDefinition);
892 requirements.put(uniqueId, requirementDefinitionList);
893 currentCompInstance.setRequirements(requirements);
895 String capName = uniqueId;
896 Assertions.assertNotNull(
897 testSubject.findAviableRequiremen(regName, yamlName, uploadComponentInstanceInfo, currentCompInstance, capName));
901 void testFindAvailableCapabilityByTypeOrName() {
902 RequirementDefinition validReq = new RequirementDefinition();
903 ComponentInstance currentCapCompInstance = new ComponentInstance();
904 UploadReqInfo uploadReqInfo = new UploadReqInfo();
906 Assertions.assertThrows(ComponentException.class, () ->
907 testSubject.findAvailableCapabilityByTypeOrName(validReq, currentCapCompInstance, uploadReqInfo));
911 void testFindAvailableCapability() {
912 String uniqueId = "23422345677";
913 RequirementDefinition validReq = new RequirementDefinition();
914 validReq.setCapability(uniqueId);
915 ComponentInstance instance = new ComponentInstance();
916 Map<String, List<CapabilityDefinition>> capabilityMap = new HashMap<>();
917 List<CapabilityDefinition> capabilityDefinitionList = new ArrayList<>();
918 CapabilityDefinition capabilityDefinition = new CapabilityDefinition();
919 capabilityDefinition.setMaxOccurrences("3");
920 capabilityDefinition.setLeftOccurrences("2");
921 capabilityDefinitionList.add(capabilityDefinition);
922 capabilityMap.put(uniqueId, capabilityDefinitionList);
923 instance.setCapabilities(capabilityMap);
925 Assertions.assertNotNull(
926 testSubject.findAvailableCapability(validReq, instance));
930 void testfindAvailableCapability2() {
931 String uniqueId = "23422345677";
932 RequirementDefinition validReq = new RequirementDefinition();
933 validReq.setCapability(uniqueId);
934 ComponentInstance instance = new ComponentInstance();
935 Map<String, List<CapabilityDefinition>> capabilityMap = new HashMap<>();
936 List<CapabilityDefinition> capabilityDefinitionList = new ArrayList<>();
937 CapabilityDefinition capabilityDefinition = new CapabilityDefinition();
938 capabilityDefinition.setName(uniqueId);
939 capabilityDefinition.setMaxOccurrences("3");
940 capabilityDefinition.setLeftOccurrences("2");
941 capabilityDefinitionList.add(capabilityDefinition);
942 capabilityMap.put(uniqueId, capabilityDefinitionList);
943 instance.setCapabilities(capabilityMap);
944 UploadReqInfo uploadReqInfo = new UploadReqInfo();
945 uploadReqInfo.setCapabilityName(uniqueId);
947 Assertions.assertNotNull(
948 testSubject.findAvailableCapability(validReq, instance, uploadReqInfo));
952 void testGetComponentWithInstancesFilter() {
954 Assertions.assertNotNull(
955 testSubject.getComponentWithInstancesFilter());
959 void testCreateParseResourceObject() {
960 String key = "0923928394";
961 List<UploadCapInfo> capabilities = new ArrayList<>();
962 UploadCapInfo uploadCapInfo = new UploadCapInfo();
963 uploadCapInfo.setType(key);
964 capabilities.add(uploadCapInfo);
966 String resourceId = "resourceId";
967 Map<String, List<CapabilityDefinition>> defaultCapabilities = new HashMap<>();
968 CapabilityDefinition capabilityDefinition = new CapabilityDefinition();
969 capabilityDefinition.setName(key);
970 List<CapabilityDefinition> capabilityDefinitionList = new ArrayList<>();
971 capabilityDefinitionList.add(capabilityDefinition);
972 defaultCapabilities.put(key, capabilityDefinitionList);
974 Map<String, List<CapabilityDefinition>> validCapabilitiesMap = new HashMap<>();
975 InputDefinition prop = new InputDefinition();
977 Resource resource = createParseResourceObject(true);
978 Map<String, List<CapabilityDefinition>> capabilitiesMap = resource.getCapabilities();
979 capabilitiesMap.put(key, capabilityDefinitionList);
981 when(toscaOperationFacade.getToscaFullElement(anyString()))
982 .thenReturn(Either.left(resource));
984 Assertions.assertNotNull(resource);
986 testSubject.addValidComponentInstanceCapabilities(key, capabilities, resourceId, defaultCapabilities,
987 validCapabilitiesMap);
991 void testGetCapabilityFailure() {
992 String resourceId = "resourceId";
993 String key = "0923928394";
994 Map<String, List<CapabilityDefinition>> defaultCapabilities = new HashMap<>();
995 CapabilityDefinition capabilityDefinition = new CapabilityDefinition();
996 capabilityDefinition.setName(key);
997 List<CapabilityDefinition> capabilityDefinitionList = new ArrayList<>();
998 capabilityDefinitionList.add(capabilityDefinition);
999 defaultCapabilities.put(key, capabilityDefinitionList);
1000 String capabilityType = key;
1001 when(toscaOperationFacade.getToscaFullElement(anyString()))
1002 .thenReturn(Either.right(StorageOperationStatus.NOT_FOUND));
1003 Assertions.assertThrows(ComponentException.class, () ->
1004 testSubject.getCapability(resourceId, defaultCapabilities, capabilityType));
1008 void testValidateCapabilityProperties() {
1009 List<UploadCapInfo> capabilities = new ArrayList<>();
1010 UploadCapInfo uploadCapInfo = new UploadCapInfo();
1011 List<UploadPropInfo> properties = new ArrayList<>();
1012 UploadPropInfo uploadPropInfo = new UploadPropInfo();
1013 properties.add(uploadPropInfo);
1014 uploadCapInfo.setProperties(properties);
1015 capabilities.add(uploadCapInfo);
1016 String resourceId = "resourceId";
1017 CapabilityDefinition defaultCapability = new CapabilityDefinition();
1018 defaultCapability.setProperties(null);
1019 defaultCapability.setName("test");
1021 Assertions.assertThrows(ComponentException.class, () ->
1022 testSubject.validateCapabilityProperties(capabilities, resourceId, defaultCapability));
1026 void testValidateUniquenessUpdateUploadedComponentInstanceCapability() {
1027 String key = "02124568";
1028 List<UploadCapInfo> capabilities = new ArrayList<>();
1029 UploadCapInfo uploadCapInfo = new UploadCapInfo();
1030 List<UploadPropInfo> properties = new ArrayList<>();
1031 UploadPropInfo uploadPropInfo = new UploadPropInfo();
1032 uploadPropInfo.setName(key);
1033 properties.add(uploadPropInfo);
1034 uploadCapInfo.setProperties(properties);
1035 capabilities.add(uploadCapInfo);
1036 String resourceId = "resourceId";
1037 CapabilityDefinition defaultCapability = new CapabilityDefinition();
1038 List<ComponentInstanceProperty> componentInstancePropertyList = new ArrayList<>();
1039 ComponentInstanceProperty componentInstanceProperty = new ComponentInstanceProperty();
1040 componentInstancePropertyList.add(componentInstanceProperty);
1041 defaultCapability.setProperties(componentInstancePropertyList);
1042 defaultCapability.setName(key);
1044 Assertions.assertNotNull(defaultCapability);
1046 testSubject.validateUniquenessUpdateUploadedComponentInstanceCapability(defaultCapability, uploadCapInfo);
1050 void testSetDeploymentArtifactsPlaceHolderByResource() {
1051 Resource resource = createParseResourceObject(true);
1053 Assertions.assertNotNull(resource);
1055 testSubject.setDeploymentArtifactsPlaceHolder(resource, user);
1059 void testSetDeploymentArtifactsPlaceHolderByService() {
1060 Service Service = createServiceObject(true);
1062 Assertions.assertNotNull(Service);
1064 testSubject.setDeploymentArtifactsPlaceHolder(Service, user);
1068 void testProcessDeploymentResourceArtifacts() {
1069 Resource resource = createParseResourceObject(true);
1070 resource.setResourceType(ResourceTypeEnum.VF);
1071 Map<String, ArtifactDefinition> artifactMap = new HashMap<>();
1073 Object v = new Object();
1074 Map<String, List<String>> artifactDetails = new HashMap<>();
1075 List<String> artifactTypes = new ArrayList<>();
1076 artifactTypes.add(ResourceTypeEnum.VF.name());
1077 artifactDetails.put("validForResourceTypes", artifactTypes);
1078 v = artifactDetails;
1079 Assertions.assertNotNull(resource);
1081 testSubject.processDeploymentResourceArtifacts(user, resource, artifactMap, k, v);
1085 void testMergeOldResourceMetadataWithNew() {
1086 Resource oldResource = createParseResourceObject(true);
1087 Resource newResource = new Resource();
1089 Assertions.assertNotNull(oldResource);
1091 testSubject.mergeOldResourceMetadataWithNew(oldResource, newResource);
1095 void testBuildComplexVfcMetadata() {
1096 Resource resource = createParseResourceObject(true);
1097 String nodeName = "org.openecomp.resource.derivedFrom.zxjTestImportServiceAb.test";
1098 Map<String, NodeTypeInfo> nodesInfo = new HashMap<>();
1099 NodeTypeInfo nodeTypeInfo = new NodeTypeInfo();
1100 List<String> derivedFrom = new ArrayList<>();
1101 derivedFrom.add("derivedFrom");
1102 nodeTypeInfo.setDerivedFrom(derivedFrom);
1103 nodesInfo.put(nodeName, nodeTypeInfo);
1105 Assertions.assertNotNull(
1106 testSubject.buildComplexVfcMetadata(getCsarInfo(), nodeName, nodesInfo));
1110 void testValidateResourceCreationFromNodeType() {
1111 Resource resource = createParseResourceObject(true);
1112 resource.setDerivedFrom(null);
1113 Assertions.assertThrows(ComponentException.class, () ->
1114 testSubject.validateResourceCreationFromNodeType(resource, user));
1118 void testCreateInputsOnResource() {
1119 Resource resource = createParseResourceObject(true);
1120 Map<String, InputDefinition> inputs = new HashMap<>();
1122 Assertions.assertNotNull(
1123 testSubject.createInputsOnResource(resource, inputs));
1127 void testCreateInputsOnResourceWhenIsNotEmpty() {
1128 String key = "12345667";
1129 Resource resource = createParseResourceObject(true);
1130 List<InputDefinition> inputDefinitionList = new ArrayList<>();
1131 InputDefinition inputDefinition = new InputDefinition();
1132 inputDefinitionList.add(inputDefinition);
1133 resource.setInputs(inputDefinitionList);
1134 Map<String, InputDefinition> inputs = new HashMap<>();
1135 inputs.put(key, inputDefinition);
1136 when(inputsBusinessLogic.createInputsInGraph(anyMap(),
1137 any(Component.class))).thenReturn(Either.left(inputDefinitionList));
1138 when(toscaOperationFacade
1139 .getToscaElement(anyString())).thenReturn(Either.left(resource));
1140 Assertions.assertNotNull(
1141 testSubject.createInputsOnResource(resource, inputs));
1145 void testCreateInputsOnService() {
1146 Service service = createServiceObject(true);
1147 List<InputDefinition> resourceProperties = new ArrayList<>();
1148 InputDefinition inputDefinition = new InputDefinition();
1149 inputDefinition.setName("inputDefinitionName");
1150 service.setInputs(resourceProperties);
1151 Map<String, InputDefinition> inputs = new HashMap<>();
1152 InputDefinition inputDefinitionMap = new InputDefinition();
1153 inputDefinition.setName("inputDefinitionName");
1154 inputs.put("inputsMap", inputDefinitionMap);
1155 List<InputDefinition> inputDefinitionList = new ArrayList<>();
1156 Service newService = new Service();
1158 when(inputsBusinessLogic.createInputsInGraph(any(Map.class), any(Component.class)))
1159 .thenReturn(Either.left(inputDefinitionList));
1160 when(toscaOperationFacade.getToscaElement(anyString())).thenReturn(Either.left(newService));
1161 Service inputsOnService = testSubject.createInputsOnService(service, inputs);
1162 assertNotNull(inputsOnService);
1166 public void testAssociateCINodeFilterToComponent() {
1167 String yamlName = "yamlName.yml";
1168 Service service = createServiceObject(true);
1169 Map<String, UploadNodeFilterInfo> nodeFilterMap = new HashMap<>();
1170 nodeFilterMap.put("componentInstanceID", new UploadNodeFilterInfo());
1172 when(componentNodeFilterBusinessLogic.associateNodeFilterToComponentInstance(service.getUniqueId(), nodeFilterMap))
1173 .thenReturn(StorageOperationStatus.OK);
1175 testSubject.associateCINodeFilterToComponent(yamlName, service, nodeFilterMap);
1176 verify(componentNodeFilterBusinessLogic, times(1)).associateNodeFilterToComponentInstance(service.getUniqueId(),
1181 public void testAssociateCINodeFilterToComponentFail() {
1182 String yamlName = "yamlName.yml";
1183 Service service = createServiceObject(true);
1184 Map<String, UploadNodeFilterInfo> nodeFilterMap = new HashMap<>();
1185 nodeFilterMap.put("componentInstanceID", new UploadNodeFilterInfo());
1187 when(componentNodeFilterBusinessLogic.associateNodeFilterToComponentInstance(service.getUniqueId(), nodeFilterMap))
1188 .thenReturn(StorageOperationStatus.NOT_FOUND);
1190 Assertions.assertThrows(ComponentException.class, () -> testSubject.associateCINodeFilterToComponent(yamlName, service, nodeFilterMap));
1194 void testCreateServiceTransaction() {
1195 Service service = createServiceObject(true);
1196 List<ComponentInstance> list = new ArrayList<>();
1197 ComponentInstance componentInstance = new ComponentInstance();
1198 componentInstance.setName("name");
1199 service.setComponentInstances(list);
1200 when(toscaOperationFacade.validateComponentNameExists(
1201 anyString(), any(ResourceTypeEnum.class), any(ComponentTypeEnum.class))).thenReturn(Either.left(false));
1203 when(toscaOperationFacade.createToscaComponent(any(Service.class))).thenReturn(Either.left(service));
1205 Assertions.assertThrows(NullPointerException.class, () -> testSubject.createServiceTransaction(service, user, true));
1209 void testCreateArtifactsPlaceHolderData() {
1210 Service service = createServiceObject(true);
1211 CategoryDefinition category = new CategoryDefinition();
1212 category.setName("");
1213 List<CategoryDefinition> categories = new ArrayList<>();
1214 categories.add(category);
1215 service.setCategories(categories);
1216 Assertions.assertNotNull(service);
1218 testSubject.createArtifactsPlaceHolderData(service, user);
1223 void testSetInformationalArtifactsPlaceHolder() {
1224 Service service = createServiceObject(true);
1226 Assertions.assertNotNull(service);
1228 testSubject.setInformationalArtifactsPlaceHolder(service, user);
1233 void testValidateNestedDerivedFromDuringUpdate() {
1234 Resource currentResource = createParseResourceObject(true);
1235 Resource updateInfoResource = createParseResourceObject(true);
1236 String key = "2323456";
1238 List<String> currentDerivedFromList = new ArrayList<>();
1239 currentDerivedFromList.add(key);
1240 currentResource.setDerivedFrom(currentDerivedFromList);
1241 List<String> updatedDerivedFromList = new ArrayList<>();
1242 updatedDerivedFromList.add("23344567778");
1243 updateInfoResource.setDerivedFrom(updatedDerivedFromList);
1245 when(toscaOperationFacade.validateToscaResourceNameExtends(anyString(), anyString(), any()))
1246 .thenReturn(Either.right(StorageOperationStatus.NOT_FOUND));
1248 Assertions.assertNotNull(
1249 testSubject.validateNestedDerivedFromDuringUpdate(currentResource, updateInfoResource, true));
1254 void testValidateDerivedFromExtending() {
1255 Resource currentResource = createParseResourceObject(true);
1256 Resource updateInfoResource = createParseResourceObject(true);
1258 when(toscaOperationFacade.validateToscaResourceNameExtends(anyString(), anyString(), any()))
1259 .thenReturn(Either.left(false));
1261 Assertions.assertNotNull(
1262 testSubject.validateDerivedFromExtending(user, currentResource, updateInfoResource,
1263 AuditingActionEnum.IMPORT_RESOURCE));
1268 void testValidateResourceFieldsBeforeUpdate() {
1269 Resource currentResource = createParseResourceObject(true);
1270 Resource updateInfoResource = createParseResourceObject(true);
1272 Assertions.assertNotNull(currentResource);
1274 testSubject.validateResourceFieldsBeforeUpdate(currentResource, updateInfoResource, true, true);
1279 void testValidateResourceName() {
1280 Resource currentResource = createParseResourceObject(true);
1281 Resource updateInfoResource = createParseResourceObject(true);
1282 currentResource.setName("test1");
1283 updateInfoResource.setName("test2");
1285 Assertions.assertThrows(ComponentException.class, () ->
1286 testSubject.validateResourceName(currentResource, updateInfoResource, true, false));
1291 void testIsResourceNameEquals() {
1292 Resource currentResource = createParseResourceObject(true);
1293 Resource updateInfoResource = createParseResourceObject(true);
1295 boolean resourceNameEquals = testSubject.isResourceNameEquals(currentResource, updateInfoResource);
1296 assertTrue(resourceNameEquals);
1300 void testPrepareResourceForUpdate() {
1301 Resource oldResource = createParseResourceObject(true);
1302 Resource newResource = createParseResourceObject(true);
1303 when(lifecycleBusinessLogic.changeState(anyString(), any(User.class), any(LifeCycleTransitionEnum.class),
1304 any(LifecycleChangeInfoWithAction.class), anyBoolean(), anyBoolean())).thenReturn(Either.left(oldResource));
1306 Assertions.assertNotNull(
1307 testSubject.prepareResourceForUpdate(oldResource, newResource, user, true, true));
1312 void testFailOnChangeState() {
1313 ResponseFormat response = new ResponseFormat();
1314 Resource oldResource = createParseResourceObject(true);
1315 oldResource.setUniqueId("123");
1316 Resource newResource = createParseResourceObject(true);
1318 Assertions.assertThrows(ComponentException.class, () ->
1319 testSubject.failOnChangeState(response, user, oldResource, newResource));
1323 void testHandleResourceGenericType() {
1324 Resource resource = createParseResourceObject(true);
1326 Resource resource1 = testSubject.handleResourceGenericType(resource);
1327 assertNotEquals(resource, resource1);
1331 void testUpdateOrCreateGroups() {
1332 Resource resource = createParseResourceObject(true);
1333 Map<String, GroupDefinition> groups = new HashMap<>();
1334 Assertions.assertNotNull(resource);
1336 testSubject.updateOrCreateGroups(resource, groups);
1340 void testAddGroupsToCreateOrUpdate() {
1341 List<GroupDefinition> groupsFromResource = new ArrayList<>();
1342 GroupDefinition groupDefinition = new GroupDefinition();
1343 groupDefinition.setInvariantName("groupDefinitionName");
1344 groupsFromResource.add(groupDefinition);
1345 List<GroupDefinition> groupsAsList = new ArrayList<>();
1346 GroupDefinition groupNewDefinition = getGroupDefinition();
1347 groupsAsList.add(groupNewDefinition);
1348 List<GroupDefinition> groupsToUpdate = new ArrayList<>();
1349 List<GroupDefinition> groupsToCreate = new ArrayList<>();
1350 Assertions.assertNotNull(groupDefinition);
1352 testSubject.addGroupsToCreateOrUpdate(groupsFromResource, groupsAsList, groupsToUpdate, groupsToCreate);
1356 void testAddGroupsToDelete() {
1357 List<GroupDefinition> groupsFromResource = new ArrayList<>();
1358 GroupDefinition groupDefinition = new GroupDefinition();
1359 groupDefinition.setName("groupDefinitionName");
1360 groupsFromResource.add(groupDefinition);
1361 List<GroupDefinition> groupsAsList = new ArrayList<>();
1362 GroupDefinition groupNewDefinition = new GroupDefinition();
1363 groupNewDefinition.setName("groupNewDefinitionName");
1364 groupsAsList.add(groupNewDefinition);
1365 List<GroupDefinition> groupsToDelete = new ArrayList<>();
1366 Assertions.assertNotNull(groupsFromResource);
1368 testSubject.addGroupsToDelete(groupsFromResource, groupsAsList, groupsToDelete);
1372 void testUpdateGroupsMembersUsingResource() {
1373 Service component = createServiceObject(true);
1374 Map<String, GroupDefinition> groups = new HashMap<>();
1375 GroupDefinition groupDefinition = getGroupDefinition();
1376 groupDefinition.setMembers(null);
1377 groups.put("groupsMap", groupDefinition);
1379 Assertions.assertNotNull(
1380 testSubject.updateGroupsMembersUsingResource(groups, component));
1384 void testupdateGroupMembers() {
1385 Service component = createServiceObject(true);
1386 Map<String, GroupDefinition> groups = new HashMap<>();
1387 GroupDefinition updatedGroupDefinition = new GroupDefinition();
1388 List<ComponentInstance> componentInstances = new ArrayList<>();
1389 String groupName = "groupName";
1390 Map<String, String> members = new HashMap<>();
1392 Assertions.assertThrows(ComponentException.class, () ->
1393 testSubject.updateGroupMembers(groups, updatedGroupDefinition, component, componentInstances, groupName, members));
1397 void testupdateGroupMembersNotNull() {
1398 Service component = createServiceObject(true);
1399 Map<String, GroupDefinition> groups = getGroups();
1400 GroupDefinition updatedGroupDefinition = new GroupDefinition();
1401 List<ComponentInstance> componentInstances = new ArrayList<>();
1402 ComponentInstance componentInstance = new ComponentInstance();
1403 componentInstance.setName("componentInstanceName");
1404 componentInstance.setUniqueId("componentInstanceUniqueId");
1405 componentInstances.add(componentInstance);
1406 String groupName = "groupName";
1407 Map<String, String> members = new HashMap<>();
1408 members.put("members", "members");
1409 members.put("componentInstanceName", "members");
1411 Assertions.assertThrows(ComponentException.class, () ->
1412 testSubject.updateGroupMembers(groups, updatedGroupDefinition, component, componentInstances, groupName, members));
1416 void testValidateCyclicGroupsDependencies() {
1417 Service component = createServiceObject(true);
1418 Map<String, GroupDefinition> groups = new HashMap<>();
1419 String key = "098738485";
1420 GroupDefinition groupDefinition = new GroupDefinition();
1421 groups.put(key, groupDefinition);
1423 Assertions.assertNotNull(
1424 testSubject.validateCyclicGroupsDependencies(groups));
1428 void testFillAllGroupMemebersRecursivly() {
1429 Map<String, GroupDefinition> allGroups = new HashMap<>();
1430 Set<String> allGroupMembers = new HashSet<>();
1431 String groupName = "groupName";
1432 Assertions.assertNotNull(groupName);
1434 testSubject.fillAllGroupMemebersRecursivly(groupName, allGroups, allGroupMembers);
1438 void testFillAllGroupMemebersRecursivlyAllGroups() {
1439 String groupName = "groupName";
1440 Map<String, GroupDefinition> allGroups = new HashMap<>();
1441 GroupDefinition groupDefinition = new GroupDefinition();
1442 Map<String, String> members = new HashMap<>();
1443 members.put("members", "members");
1444 groupDefinition.setMembers(members);
1445 allGroups.put(groupName, groupDefinition);
1446 allGroups.put("members", groupDefinition);
1447 Set<String> allGroupMembers = new HashSet<>();
1448 allGroupMembers.add("allGroupMembers");
1449 Assertions.assertNotNull(allGroups);
1451 testSubject.fillAllGroupMemebersRecursivly(groupName, allGroups, allGroupMembers);
1455 void testFillResourceMetadataForServiceFailure() {
1456 String yamlName = "yamlName";
1457 Service resourceVf = createServiceObject(true);
1458 String nodeName = "nodeName";
1460 Assertions.assertThrows(ComponentException.class, () ->
1461 testSubject.fillResourceMetadata(yamlName, resourceVf, nodeName, user));
1465 void testFillResourceMetadataForServiceWrongType() {
1466 String yamlName = "yamlName";
1467 Service resourceVf = createServiceObject(true);
1468 String nodeName = Constants.USER_DEFINED_RESOURCE_NAMESPACE_PREFIX + "nodeName";
1470 Assertions.assertThrows(ComponentException.class, () ->
1471 testSubject.fillResourceMetadata(yamlName, resourceVf, nodeName, user));
1475 void testFillResourceMetadataForServiceSuccess() {
1476 String yamlName = "yamlName";
1477 Service resourceVf = createServiceObject(true);
1478 String nodeName = Constants.USER_DEFINED_RESOURCE_NAMESPACE_PREFIX + "VFC";
1480 Assertions.assertNotNull(
1481 testSubject.fillResourceMetadata(yamlName, resourceVf, nodeName, user));
1485 void testpropagateStateToCertified() {
1486 String yamlName = "yamlName";
1487 Resource resource = createParseResourceObject(true);
1488 resource.setLifecycleState(LifecycleStateEnum.CERTIFIED);
1489 LifecycleChangeInfoWithAction lifecycleChangeInfo = new LifecycleChangeInfoWithAction();
1491 Assertions.assertNotNull(
1492 testSubject.propagateStateToCertified(user, resource, lifecycleChangeInfo, true, true, true));
1496 void testpropagateStateToCertifiedIsTrue() {
1497 String yamlName = "yamlName";
1498 Resource resource = createParseResourceObject(true);
1499 LifecycleChangeInfoWithAction lifecycleChangeInfo = new LifecycleChangeInfoWithAction();
1500 resource.setLifecycleState(LifecycleStateEnum.CERTIFIED);
1502 Assertions.assertNotNull(
1503 testSubject.propagateStateToCertified(user, resource, lifecycleChangeInfo, true, true, true));
1507 void testBuildValidComplexVfc2() {
1508 String nodeName = "org.openecomp.resource.derivedFrom.zxjTestImportServiceAb.test";
1509 Map<String, NodeTypeInfo> nodesInfo = new HashMap<>();
1510 NodeTypeInfo nodeTypeInfo = new NodeTypeInfo();
1511 List<String> derivedFrom = new ArrayList<>();
1512 derivedFrom.add("derivedFrom");
1513 nodeTypeInfo.setDerivedFrom(derivedFrom);
1514 nodesInfo.put(nodeName, nodeTypeInfo);
1516 final CsarInfo csarInfo = getCsarInfo();
1517 Assertions.assertThrows(ComponentException.class, () ->
1518 testSubject.buildValidComplexVfc(csarInfo, nodeName, nodesInfo));
1522 void testUpdateGroupsOnResourceEmptyGroups() {
1523 Resource resource = createParseResourceObject(true);
1524 Map<String, GroupDefinition> groups = new HashMap<>();
1526 Assertions.assertNotNull(
1527 testSubject.updateGroupsOnResource(resource, groups));
1531 void testSetInformationalArtifactsPlaceHolder2() {
1532 Resource resource = createParseResourceObject(true);
1533 List<CategoryDefinition> categoryDefinitions = new ArrayList<>();
1534 CategoryDefinition categoryDefinition = new CategoryDefinition();
1535 categoryDefinition.setName("");
1536 categoryDefinitions.add(categoryDefinition);
1537 resource.setCategories(categoryDefinitions);
1538 Assertions.assertNotNull(resource);
1540 testSubject.setInformationalArtifactsPlaceHolder(resource, user);
1544 void testRollback() {
1545 Resource resource = createParseResourceObject(true);
1546 List<ArtifactDefinition> createdArtifacts = new ArrayList<>();
1547 ArtifactDefinition artifactDefinition = new ArtifactDefinition();
1548 createdArtifacts.add(artifactDefinition);
1549 List<ArtifactDefinition> nodeTypesNewCreatedArtifacts = new ArrayList<>();
1550 nodeTypesNewCreatedArtifacts.add(artifactDefinition);
1551 Assertions.assertNotNull(resource);
1553 testSubject.rollback(true, resource, createdArtifacts, nodeTypesNewCreatedArtifacts);
1557 void testRollback_NotNull() {
1558 Resource resource = createParseResourceObject(true);
1559 List<ArtifactDefinition> createdArtifacts = new ArrayList<>();
1560 ArtifactDefinition artifactDefinition = new ArtifactDefinition();
1561 artifactDefinition.setArtifactName("artifactName");
1562 createdArtifacts.add(artifactDefinition);
1563 List<ArtifactDefinition> nodeTypesNewCreatedArtifacts = new ArrayList<>();
1564 ArtifactDefinition artifactDefinition2 = new ArtifactDefinition();
1565 artifactDefinition2.setArtifactChecksum("artifactChecksum");
1566 nodeTypesNewCreatedArtifacts.add(artifactDefinition2);
1567 Assertions.assertNotNull(resource);
1569 testSubject.rollback(true, resource, createdArtifacts, nodeTypesNewCreatedArtifacts);
1573 void testCreateArtifactsPlaceHolderData2() {
1574 Resource resource = createParseResourceObject(true);
1576 Assertions.assertNotNull(resource);
1578 testSubject.createArtifactsPlaceHolderData(resource, user);
1582 void testHandleGroupsProperties() {
1583 Service service = createServiceObject(true);
1584 Map<String, GroupDefinition> groups = getGroups();
1585 Assertions.assertNotNull(service);
1587 testSubject.handleGroupsProperties(service, groups);
1591 void testHandleGroupsProperties2() {
1592 Resource resource = createParseResourceObject(true);
1593 Map<String, GroupDefinition> groups = getGroups();
1594 Assertions.assertNotNull(resource);
1596 testSubject.handleGroupsProperties(resource, groups);
1600 void testHandleGetInputs() {
1601 PropertyDataDefinition property = new PropertyDataDefinition();
1602 List<GetInputValueDataDefinition> getInputValues = new ArrayList<>();
1603 GetInputValueDataDefinition getInputValueDataDefinition = new GetInputValueDataDefinition();
1604 GetInputValueDataDefinition getInput = new GetInputValueDataDefinition();
1605 getInput.setInputId("inputId");
1606 getInput.setInputName("inputName");
1607 getInputValueDataDefinition.setInputName("inputName");
1608 getInputValueDataDefinition.setPropName("getInputValueDataDefinitionName");
1609 getInputValueDataDefinition.setGetInputIndex(getInputValueDataDefinition);
1610 getInputValues.add(getInputValueDataDefinition);
1611 property.setGetInputValues(getInputValues);
1612 List<InputDefinition> inputs = new ArrayList<>();
1613 InputDefinition inputDefinition = new InputDefinition();
1614 inputDefinition.setName("inputName");
1615 inputDefinition.setUniqueId("abc12345");
1616 inputs.add(inputDefinition);
1617 Assertions.assertNotNull(inputs);
1619 testSubject.handleGetInputs(property, inputs);
1623 void testHandleGetInputs_null() {
1624 PropertyDataDefinition property = new PropertyDataDefinition();
1625 List<GetInputValueDataDefinition> getInputValues = new ArrayList<>();
1626 GetInputValueDataDefinition getInputValueDataDefinition = new GetInputValueDataDefinition();
1627 getInputValueDataDefinition.setInputName("inputName");
1628 getInputValueDataDefinition.setPropName("getInputValueDataDefinitionName");
1629 getInputValues.add(getInputValueDataDefinition);
1630 property.setGetInputValues(getInputValues);
1631 List<InputDefinition> inputs = new ArrayList<>();
1632 Assertions.assertThrows(NoSuchElementException.class, () ->
1633 testSubject.handleGetInputs(property, inputs));
1637 void testFindInputByName() {
1638 GetInputValueDataDefinition getInput = new GetInputValueDataDefinition();
1639 getInput.setInputId("inputId");
1640 getInput.setInputName("inputName");
1641 List<InputDefinition> inputs = new ArrayList<>();
1642 InputDefinition inputDefinition = new InputDefinition();
1643 inputDefinition.setName("inputName");
1644 inputDefinition.setUniqueId("abc12345");
1645 inputs.add(inputDefinition);
1647 Assertions.assertNotNull(
1648 testSubject.findInputByName(inputs, getInput));
1652 void testAssociateComponentInstancePropertiesToComponent() {
1653 String yamlName = "yamlName";
1654 Resource resource = createParseResourceObject(true);
1655 Map<String, List<ComponentInstanceProperty>> instProperties = new HashMap<>();
1656 Assertions.assertThrows(ComponentException.class, () ->
1657 testSubject.associateComponentInstancePropertiesToComponent(yamlName, resource, instProperties));
1661 void testAssociateComponentInstanceInputsToComponent() {
1662 String yamlName = "yamlName";
1663 Resource resource = createParseResourceObject(true);
1664 Map<String, List<ComponentInstanceInput>> instInputs = new HashMap<>();
1665 List<ComponentInstanceInput> componentInstanceInputList = new ArrayList<>();
1666 ComponentInstanceInput componentInstanceInput = new ComponentInstanceInput();
1667 componentInstanceInput.setName("componentInstanceInputName");
1668 componentInstanceInputList.add(componentInstanceInput);
1669 Assertions.assertNotNull(resource);
1671 testSubject.associateComponentInstanceInputsToComponent(yamlName, resource, instInputs);
1675 void testAssociateDeploymentArtifactsToInstances() {
1676 String yamlName = "yamlName";
1677 Resource resource = createParseResourceObject(true);
1678 Map<String, Map<String, ArtifactDefinition>> instDeploymentArtifacts = new HashMap<>();
1680 Assertions.assertThrows(ComponentException.class, () ->
1681 testSubject.associateDeploymentArtifactsToInstances(user, yamlName, resource, instDeploymentArtifacts));
1685 void testAssociateArtifactsToInstances() {
1686 String yamlName = "yamlName";
1687 Resource resource = createParseResourceObject(true);
1688 Map<String, Map<String, ArtifactDefinition>> instDeploymentArtifacts = new HashMap<>();
1690 Assertions.assertThrows(ComponentException.class, () ->
1691 testSubject.associateDeploymentArtifactsToInstances(user, yamlName, resource, instDeploymentArtifacts));
1695 void testAssociateArtifactsToInstances2() {
1696 String yamlName = "yamlName";
1697 Resource resource = createParseResourceObject(true);
1698 Map<String, Map<String, ArtifactDefinition>> instDeploymentArtifacts = new HashMap<>();
1700 Assertions.assertThrows(ComponentException.class, () ->
1701 testSubject.associateArtifactsToInstances(yamlName, resource, instDeploymentArtifacts));
1705 void testAssociateOrAddCalculatedCapReq() {
1706 String yamlName = "yamlName";
1707 Resource resource = createParseResourceObject(true);
1708 Map<ComponentInstance, Map<String, List<CapabilityDefinition>>> instCapabilities = new HashMap<>();
1709 Map<ComponentInstance, Map<String, List<RequirementDefinition>>> instRequirements = new HashMap<>();
1710 Assertions.assertThrows(ComponentException.class, () ->
1711 testSubject.associateOrAddCalculatedCapReq(yamlName, resource, instCapabilities, instRequirements));
1715 void testAssociateInstAttributeToComponentToInstances() {
1716 String yamlName = "yamlName";
1717 Resource resource = createParseResourceObject(true);
1718 Map<String, List<AttributeDefinition>> instAttributes = new HashMap<>();
1719 Assertions.assertThrows(ComponentException.class, () ->
1720 testSubject.associateInstAttributeToComponentToInstances(yamlName, resource, instAttributes));
1724 void testThrowComponentExceptionByResource() {
1725 StorageOperationStatus status = StorageOperationStatus.OK;
1726 Resource resource = createParseResourceObject(true);
1727 Assertions.assertThrows(ComponentException.class, () ->
1728 testSubject.throwComponentExceptionByResource(status, resource));
1732 void testGetResourceAfterCreateRelations() {
1733 Resource resource = createParseResourceObject(true);
1734 Resource newResource = new Resource();
1736 when(toscaOperationFacade.getToscaElement(anyString(), any(ComponentParametersView.class)))
1737 .thenReturn(Either.left(newResource));
1738 Resource resourceAfterCreateRelations = testSubject.getResourceAfterCreateRelations(resource);
1739 assertNotNull(resourceAfterCreateRelations);
1743 void testSetCapabilityNamesTypes() {
1744 Map<String, List<CapabilityDefinition>> originCapabilities = new HashMap<>();
1745 List<CapabilityDefinition> capabilityDefinitionList = new ArrayList<>();
1746 CapabilityDefinition capabilityDefinition = new CapabilityDefinition();
1747 capabilityDefinition.setName("Capability");
1748 capabilityDefinition.setType("Resource");
1749 capabilityDefinitionList.add(capabilityDefinition);
1750 originCapabilities.put("Capability", capabilityDefinitionList);
1751 Map<String, List<UploadCapInfo>> uploadedCapabilities = new HashMap<>();
1752 List<UploadCapInfo> uploadCapInfoList = new ArrayList<>();
1753 UploadCapInfo uploadCapInfo = new UploadCapInfo();
1754 uploadCapInfoList.add(uploadCapInfo);
1755 uploadedCapabilities.put("Capability", uploadCapInfoList);
1756 Assertions.assertNotNull(originCapabilities);
1758 testSubject.setCapabilityNamesTypes(originCapabilities, uploadedCapabilities);
1762 void testAssociateComponentInstanceInputsToComponent2() {
1763 String yamlName = "yamlName";
1764 Service service = createServiceObject(true);
1765 Map<String, List<ComponentInstanceInput>> instInputs = new HashMap<>();
1767 Assertions.assertNotNull(service);
1769 testSubject.associateComponentInstanceInputsToComponent(yamlName, service, instInputs);
1773 void testAssociateComponentInstanceInputsNotNullToComponent2() {
1774 String yamlName = "yamlName";
1775 Service service = createServiceObject(true);
1776 Map<String, List<ComponentInstanceInput>> instInputs = new HashMap<>();
1777 List<ComponentInstanceInput> componentInstanceInputs = new ArrayList<>();
1778 ComponentInstanceInput componentInstanceInput = new ComponentInstanceInput();
1779 componentInstanceInput.setName("ComponentInstanceInputName");
1780 componentInstanceInputs.add(componentInstanceInput);
1781 instInputs.put("instInputs", componentInstanceInputs);
1782 when(toscaOperationFacade.associateComponentInstanceInputsToComponent(any(Map.class),
1783 anyString())).thenReturn(Either.right(StorageOperationStatus.BAD_REQUEST));
1784 Assertions.assertThrows(ComponentException.class, () ->
1785 testSubject.associateComponentInstanceInputsToComponent(yamlName, service, instInputs));
1789 void testAssociateComponentInstancePropertiesToComponent2() {
1790 String yamlName = "yamlName";
1791 Service service = createServiceObject(true);
1792 Map<String, List<ComponentInstanceProperty>> instInputs = new HashMap<>();
1793 Map<String, List<ComponentInstanceProperty>> instInputMap = new HashMap<>();
1794 when(toscaOperationFacade.associateComponentInstancePropertiesToComponent(any(), anyString()))
1795 .thenReturn(Either.left(instInputMap));
1796 Assertions.assertNotNull(service);
1798 testSubject.associateComponentInstancePropertiesToComponent(yamlName, service, instInputs);
1802 void testAssociateDeploymentArtifactsToInstances2() {
1803 String yamlName = "yamlName";
1804 Service service = createServiceObject(true);
1805 Map<String, Map<String, ArtifactDefinition>> instDeploymentArtifacts = new HashMap<>();
1807 Assertions.assertThrows(ComponentException.class, () ->
1808 testSubject.associateDeploymentArtifactsToInstances(user, yamlName, service, instDeploymentArtifacts));
1812 void testAssociateArtifactsToInstances3() {
1813 String yamlName = "yamlName";
1814 Service service = createServiceObject(true);
1815 Map<String, Map<String, ArtifactDefinition>> instArtifacts = new HashMap<>();
1817 Assertions.assertThrows(ComponentException.class, () ->
1818 testSubject.associateArtifactsToInstances(yamlName, service, instArtifacts));
1822 void testAssociateOrAddCalculatedCapReq2() {
1823 String yamlName = "yamlName";
1824 Service resource = createServiceObject(true);
1825 Map<ComponentInstance, Map<String, List<CapabilityDefinition>>> instCapabilities = new HashMap<>();
1826 Map<ComponentInstance, Map<String, List<RequirementDefinition>>> instRequirements = new HashMap<>();
1827 Assertions.assertThrows(ComponentException.class, () ->
1828 testSubject.associateOrAddCalculatedCapReq(yamlName, resource, instCapabilities, instRequirements));
1832 void testAssociateInstAttributeToComponentToInstances2() {
1833 String yamlName = "yamlName";
1834 Service resource = createServiceObject(true);
1835 Map<String, List<AttributeDefinition>> instAttributes = new HashMap<>();
1836 Assertions.assertThrows(ComponentException.class, () ->
1837 testSubject.associateInstAttributeToComponentToInstances(yamlName, resource, instAttributes));
1841 void testAssociateRequirementsToService() {
1842 String yamlName = "yamlName";
1843 Service resource = createServiceObject(true);
1844 Map<String, ListRequirementDataDefinition> requirements = new HashMap<>();
1845 Assertions.assertThrows(ComponentException.class, () ->
1846 testSubject.associateRequirementsToService(yamlName, resource, requirements));
1850 void testAssociateCapabilitiesToService() {
1851 String yamlName = "yamlName";
1852 Service resource = createServiceObject(true);
1853 Map<String, ListCapabilityDataDefinition> capabilities = new HashMap<>();
1854 Assertions.assertThrows(ComponentException.class, () ->
1855 testSubject.associateCapabilitiesToService(yamlName, resource, capabilities));
1859 void testAssociateResourceInstances() {
1860 String yamlName = "yamlName";
1861 Service resource = createServiceObject(true);
1862 List<RequirementCapabilityRelDef> relations = new ArrayList<>();
1863 when(toscaOperationFacade.associateResourceInstances(any(Component.class),
1864 anyString(), any(ArrayList.class))).thenReturn(Either.left(relations));
1865 Assertions.assertNotNull(resource);
1867 testSubject.associateResourceInstances(yamlName, resource, relations);
1871 void testAddCapabilities() {
1872 Map<String, List<CapabilityDefinition>> originCapabilities = new HashMap<>();
1873 String type = "type";
1874 List<CapabilityDefinition> capabilities = new ArrayList<>();
1875 Assertions.assertNotNull(type);
1877 testSubject.addCapabilities(originCapabilities, type, capabilities);
1881 void testAddCapabilitiesProperties() {
1882 Map<String, Map<String, UploadPropInfo>> newPropertiesMap = new HashMap<>();
1883 List<UploadCapInfo> capabilities = new ArrayList<>();
1884 UploadCapInfo capability = new UploadCapInfo();
1885 List<UploadPropInfo> properties = new ArrayList<>();
1886 UploadPropInfo uploadPropInfo = new UploadPropInfo();
1887 uploadPropInfo.setName("uploadPropInfoName");
1888 properties.add(uploadPropInfo);
1889 capability.setProperties(properties);
1890 capability.setName("capabilityName");
1891 capabilities.add(capability);
1892 Assertions.assertNotNull(capabilities);
1894 testSubject.addCapabilitiesProperties(newPropertiesMap, capabilities);
1898 void testGetServiceWithGroups() {
1899 String resourceId = "resourceId";
1900 Service service = createServiceObject(true);
1901 when(toscaOperationFacade.getToscaElement(anyString(), any(ComponentParametersView.class)))
1902 .thenReturn(Either.left(service));
1903 Assertions.assertNotNull(
1904 testSubject.getServiceWithGroups(resourceId));
1908 void testGetResourceWithGroups() {
1909 String resourceId = "resourceId";
1910 Resource resource = createParseResourceObject(false);
1911 when(toscaOperationFacade.getToscaElement(anyString(), any(ComponentParametersView.class)))
1912 .thenReturn(Either.left(resource));
1913 Assertions.assertNotNull(
1914 testSubject.getResourceWithGroups(resourceId));
1918 void testAssociateResourceInstances2() {
1919 String yamlName = "yamlName";
1920 Resource resource = createParseResourceObject(true);
1921 List<RequirementCapabilityRelDef> relations = new ArrayList<>();
1922 when(toscaOperationFacade.associateResourceInstances(any(Resource.class),
1923 anyString(), any(ArrayList.class))).thenReturn(Either.right(StorageOperationStatus.BAD_REQUEST));
1924 Assertions.assertThrows(ComponentException.class, () ->
1925 testSubject.associateResourceInstances(yamlName, resource, relations));
1929 void testAddRelationsToRI() {
1930 String yamlName = "group.yml";
1931 Resource resource = createResourceObject(false);
1933 Map<String, UploadComponentInstanceInfo> uploadResInstancesMap = new HashMap<>();
1934 UploadComponentInstanceInfo nodesInfoValue = getuploadComponentInstanceInfo();
1935 nodesInfoValue.getRequirements().get("requirements").get(0).setName("zxjtestimportserviceab0.mme_ipu_vdu.dependency.test");
1936 uploadResInstancesMap.put("uploadComponentInstanceInfo", nodesInfoValue);
1937 List<ComponentInstance> componentInstancesList = creatComponentInstances();
1938 ComponentInstance componentInstance = new ComponentInstance();
1939 componentInstance.setName("zxjTestImportServiceAb");
1940 componentInstancesList.add(componentInstance);
1941 resource.setComponentInstances(componentInstancesList);
1942 componentInstancesList.get(0).getRequirements().get("tosca.capabilities.Node").get(0).setLeftOccurrences("1");
1943 componentInstancesList.get(0).getRequirements().get("tosca.capabilities.Node").get(0).setMaxOccurrences("1");
1944 componentInstancesList.get(0).getRequirements().get("tosca.capabilities.Node").get(0).setCapability("tosca.capabilities.Node");
1945 List<RequirementCapabilityRelDef> relations = new ArrayList<>();
1946 RequirementDefinition requirementDefinition = new RequirementDefinition();
1947 requirementDefinition.setOwnerId("1");
1948 requirementDefinition.setUniqueId("2");
1949 requirementDefinition.setCapability("3");
1950 CapabilityDefinition capabilityDefinition = new CapabilityDefinition();
1951 capabilityDefinition.setName("4");
1952 capabilityDefinition.setUniqueId("5");
1953 capabilityDefinition.setOwnerId("6");
1954 ResponseFormat responseFormat = new ResponseFormat();
1955 responseFormat.setStatus(200);
1956 Assertions.assertNotNull(resource);
1958 testSubject.addRelationsToRI(yamlName, resource, uploadResInstancesMap, componentInstancesList, relations);
1962 void testAddRelationsToRI_null() {
1963 String yamlName = "group.yml";
1964 Resource resource = createParseResourceObject(true);
1965 Map<String, UploadComponentInstanceInfo> uploadResInstancesMap = new HashMap<>();
1966 UploadComponentInstanceInfo nodesInfoValue = getuploadComponentInstanceInfo();
1967 uploadResInstancesMap.put("uploadComponentInstanceInfo", nodesInfoValue);
1968 List<ComponentInstance> componentInstancesList = new ArrayList<>();
1969 List<RequirementCapabilityRelDef> relations = new ArrayList<>();
1971 Assertions.assertThrows(ComponentException.class, () ->
1972 testSubject.addRelationsToRI(yamlName, resource, uploadResInstancesMap, componentInstancesList,
1977 void testAddRelationToRI() {
1978 String yamlName = "yamlName";
1979 Resource resource = createParseResourceObject(true);
1980 resource.setComponentInstances(creatComponentInstances());
1981 UploadComponentInstanceInfo nodesInfoValue = getuploadComponentInstanceInfo();
1982 List<RequirementCapabilityRelDef> relations = new ArrayList<>();
1984 Assertions.assertNotNull(
1985 testSubject.addRelationToRI(yamlName, resource, nodesInfoValue, relations));
1989 void testAddRelationToRI_null() {
1990 String yamlName = "yamlName.yml";
1991 Resource resource = createParseResourceObject(false);
1992 List<ComponentInstance> componentInstancesList = new ArrayList<>();
1993 resource.setComponentInstances(componentInstancesList);
1994 UploadComponentInstanceInfo nodesInfoValue = getuploadComponentInstanceInfo();
1995 List<RequirementCapabilityRelDef> relations = new ArrayList<>();
1996 Assertions.assertNotNull(
1997 testSubject.addRelationToRI(yamlName, resource, nodesInfoValue, relations));
2001 void testFindVfcResource() {
2002 Service service = createServiceObject(true);
2003 String currVfcToscaName = "currVfcToscaName";
2004 String previousVfcToscaName = "previousVfcToscaName";
2005 UploadComponentInstanceInfo nodesInfoValue = new UploadComponentInstanceInfo();
2006 List<RequirementCapabilityRelDef> relations = new ArrayList<>();
2007 final CsarInfo csarInfo = getCsarInfo();
2008 Assertions.assertThrows(ComponentException.class, () ->
2009 testSubject.findVfcResource(csarInfo, service, currVfcToscaName, previousVfcToscaName,
2010 StorageOperationStatus.OK));
2013 private GroupDefinition getGroupDefinition() {
2014 GroupDefinition groupDefinition = new GroupDefinition();
2015 Map<String, String> members = new HashMap<>();
2016 members.put("members", "members");
2017 Map<String, List<CapabilityDefinition>> capabilities = new HashMap<>();
2018 List<PropertyDataDefinition> properties = new ArrayList<>();
2019 groupDefinition.setInvariantName("groupDefinitionName");
2020 groupDefinition.setMembers(members);
2021 groupDefinition.setProperties(properties);
2022 groupDefinition.setCapabilities(capabilities);
2023 return groupDefinition;
2026 protected Resource createParseResourceObject(boolean afterCreate) {
2027 Resource resource = new Resource();
2028 resource.setName(RESOURCE_NAME);
2029 resource.setToscaResourceName(RESOURCE_TOSCA_NAME);
2030 resource.addCategory(RESOURCE_CATEGORY1, RESOURCE_SUBCATEGORY);
2031 resource.setDescription("My short description");
2032 List<String> tgs = new ArrayList<>();
2034 tgs.add(resource.getName());
2035 resource.setTags(tgs);
2036 List<String> template = new ArrayList<>();
2037 template.add("tosca.nodes.Root");
2038 resource.setDerivedFrom(template);
2039 resource.setVendorName("Motorola");
2040 resource.setVendorRelease("1.0.0");
2041 resource.setContactId("ya5467");
2042 resource.setIcon("defaulticon");
2043 Map<String, List<RequirementDefinition>> requirements = new HashMap<>();
2044 List<RequirementDefinition> requirementDefinitionList = new ArrayList<>();
2045 requirements.put("test", requirementDefinitionList);
2046 resource.setRequirements(requirements);
2047 resource.setCost("cost");
2048 resource.setResourceVendorModelNumber("02312233");
2050 Map<String, ArtifactDefinition> artifacts = new HashMap<>();
2051 ArtifactDefinition artifactDefinition = new ArtifactDefinition();
2052 artifacts.put("artifact", artifactDefinition);
2053 resource.setArtifacts(artifacts);
2055 resource.setLicenseType("licType");
2058 resource.setName(resource.getName());
2059 resource.setVersion("0.1");
2060 resource.setUniqueId(resource.getName()
2061 .toLowerCase() + ":" + resource.getVersion());
2062 resource.setCreatorUserId(user.getUserId());
2063 resource.setCreatorFullName(user.getFirstName() + " " + user.getLastName());
2064 resource.setLifecycleState(LifecycleStateEnum.NOT_CERTIFIED_CHECKOUT);
2069 protected CsarInfo getCsarInfo() {
2070 String csarUuid = "0010";
2071 User user = new User();
2072 Map<String, byte[]> csar = new HashMap<>();
2073 String vfReousrceName = "resouceName";
2074 String mainTemplateName = "mainTemplateName";
2075 String mainTemplateContent = null;
2077 mainTemplateContent = loadFileNameToJsonString("service_import_template.yml");
2078 } catch (IOException e) {
2079 e.printStackTrace();
2081 return new CsarInfo(user, csarUuid, csar, vfReousrceName, mainTemplateName, mainTemplateContent, false);
2084 private String loadFileNameToJsonString(String fileName) throws IOException {
2085 String sourceDir = "src/test/resources/normativeTypes";
2086 return loadFileNameToJsonString(sourceDir, fileName);
2089 private String loadFileNameToJsonString(String sourceDir, String fileName) throws IOException {
2090 java.nio.file.Path filePath = FileSystems.getDefault().getPath(sourceDir, fileName);
2091 byte[] fileContent = Files.readAllBytes(filePath);
2092 return new String(fileContent);
2095 protected Service createServiceObject(boolean afterCreate) {
2096 Service service = new Service();
2097 service.setUniqueId("sid");
2098 service.setName("Service");
2099 CategoryDefinition category = new CategoryDefinition();
2100 category.setName(SERVICE_CATEGORY);
2101 category.setIcons(Collections.singletonList("defaulticon"));
2102 List<CategoryDefinition> categories = new ArrayList<>();
2103 categories.add(category);
2104 service.setCategories(categories);
2105 service.setInstantiationType(INSTANTIATION_TYPE);
2107 service.setDescription("description");
2108 List<String> tgs = new ArrayList<>();
2109 tgs.add(service.getName());
2110 service.setTags(tgs);
2111 service.setIcon("defaulticon");
2112 service.setContactId("aa1234");
2113 service.setProjectCode("12345");
2114 service.setEcompGeneratedNaming(true);
2117 service.setVersion("0.1");
2118 service.setUniqueId(service.getName() + ":" + service.getVersion());
2119 service.setCreatorUserId(user.getUserId());
2120 service.setCreatorFullName(user.getFirstName() + " " + user.getLastName());
2125 protected void assertComponentException(ComponentException e, ActionStatus expectedStatus, String... variables) {
2126 ResponseFormat actualResponse = e.getResponseFormat() != null ?
2127 e.getResponseFormat() : componentsUtils.getResponseFormat(e.getActionStatus(), e.getParams());
2128 assertParseResponse(actualResponse, expectedStatus, variables);
2131 private void assertParseResponse(ResponseFormat actualResponse, ActionStatus expectedStatus, String... variables) {
2132 ResponseFormat expectedResponse = responseManager.getResponseFormat(expectedStatus, variables);
2133 assertThat(expectedResponse.getStatus()).isEqualTo(actualResponse.getStatus());
2134 assertThat(expectedResponse.getFormattedMessage()).isEqualTo(actualResponse.getFormattedMessage());