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.mockito.ArgumentMatchers.anyBoolean;
21 import static org.mockito.ArgumentMatchers.anyString;
22 import static org.mockito.Mockito.when;
24 import fj.data.Either;
25 import java.io.IOException;
26 import java.nio.file.FileSystems;
27 import java.nio.file.Files;
28 import java.util.ArrayList;
29 import java.util.Collections;
30 import java.util.EnumMap;
31 import java.util.HashMap;
32 import java.util.HashSet;
33 import java.util.List;
35 import java.util.Map.Entry;
37 import org.apache.commons.collections.map.HashedMap;
38 import org.apache.commons.lang3.tuple.ImmutablePair;
39 import org.junit.Before;
40 import org.junit.Test;
41 import org.mockito.InjectMocks;
42 import org.mockito.Mockito;
43 import org.mockito.MockitoAnnotations;
44 import org.openecomp.sdc.ElementOperationMock;
45 import org.openecomp.sdc.be.auditing.impl.AuditingManager;
46 import org.openecomp.sdc.be.components.csar.CsarInfo;
47 import org.openecomp.sdc.be.components.impl.ArtifactsBusinessLogic.ArtifactOperationEnum;
48 import org.openecomp.sdc.be.components.impl.exceptions.ComponentException;
49 import org.openecomp.sdc.be.components.lifecycle.LifecycleBusinessLogic;
50 import org.openecomp.sdc.be.components.lifecycle.LifecycleChangeInfoWithAction;
51 import org.openecomp.sdc.be.dao.api.ActionStatus;
52 import org.openecomp.sdc.be.datatypes.elements.GetInputValueDataDefinition;
53 import org.openecomp.sdc.be.datatypes.elements.ListCapabilityDataDefinition;
54 import org.openecomp.sdc.be.datatypes.elements.ListRequirementDataDefinition;
55 import org.openecomp.sdc.be.datatypes.elements.PropertyDataDefinition;
56 import org.openecomp.sdc.be.datatypes.enums.ComponentTypeEnum;
57 import org.openecomp.sdc.be.datatypes.enums.ResourceTypeEnum;
58 import org.openecomp.sdc.be.impl.ComponentsUtils;
59 import org.openecomp.sdc.be.model.ArtifactDefinition;
60 import org.openecomp.sdc.be.model.AttributeDefinition;
61 import org.openecomp.sdc.be.model.CapabilityDefinition;
62 import org.openecomp.sdc.be.model.CapabilityTypeDefinition;
63 import org.openecomp.sdc.be.model.Component;
64 import org.openecomp.sdc.be.model.ComponentInstance;
65 import org.openecomp.sdc.be.model.ComponentInstanceInput;
66 import org.openecomp.sdc.be.model.ComponentInstanceProperty;
67 import org.openecomp.sdc.be.model.GroupDefinition;
68 import org.openecomp.sdc.be.model.InputDefinition;
69 import org.openecomp.sdc.be.model.InterfaceDefinition;
70 import org.openecomp.sdc.be.model.LifecycleStateEnum;
71 import org.openecomp.sdc.be.model.NodeTypeInfo;
72 import org.openecomp.sdc.be.model.PropertyDefinition;
73 import org.openecomp.sdc.be.model.RequirementCapabilityRelDef;
74 import org.openecomp.sdc.be.model.RequirementDefinition;
75 import org.openecomp.sdc.be.model.Resource;
76 import org.openecomp.sdc.be.model.Service;
77 import org.openecomp.sdc.be.model.UploadCapInfo;
78 import org.openecomp.sdc.be.model.UploadComponentInstanceInfo;
79 import org.openecomp.sdc.be.model.UploadPropInfo;
80 import org.openecomp.sdc.be.model.UploadReqInfo;
81 import org.openecomp.sdc.be.model.User;
82 import org.openecomp.sdc.be.model.category.CategoryDefinition;
83 import org.openecomp.sdc.be.model.category.SubCategoryDefinition;
84 import org.openecomp.sdc.be.model.jsonjanusgraph.operations.ToscaOperationFacade;
85 import org.openecomp.sdc.be.model.operations.api.ICapabilityTypeOperation;
86 import org.openecomp.sdc.be.model.operations.api.IElementOperation;
87 import org.openecomp.sdc.be.model.operations.api.IInterfaceLifecycleOperation;
88 import org.openecomp.sdc.be.model.operations.api.StorageOperationStatus;
89 import org.openecomp.sdc.be.resources.data.auditing.AuditingActionEnum;
90 import org.openecomp.sdc.be.user.Role;
91 import org.openecomp.sdc.common.api.Constants;
92 import org.openecomp.sdc.exception.ResponseFormat;
94 public class ServiceImportParseLogicTest extends ServiceImportBussinessLogicBaseTestSetup {
96 ComponentsUtils componentsUtils = new ComponentsUtils(Mockito.mock(AuditingManager.class));
97 ToscaOperationFacade toscaOperationFacade = Mockito.mock(ToscaOperationFacade.class);
98 ServiceBusinessLogic serviceBusinessLogic = Mockito.mock(ServiceBusinessLogic.class);
99 ICapabilityTypeOperation capabilityTypeOperation = Mockito.mock(ICapabilityTypeOperation.class);
100 IElementOperation elementDao = Mockito.mock(IElementOperation.class);
101 IInterfaceLifecycleOperation interfaceTypeOperation = Mockito.mock(IInterfaceLifecycleOperation.class);
102 InputsBusinessLogic inputsBusinessLogic = Mockito.mock(InputsBusinessLogic.class);
103 LifecycleBusinessLogic lifecycleBusinessLogic = Mockito.mock(LifecycleBusinessLogic.class);
105 private static final String RESOURCE_NAME = "My-Resource_Name with space";
106 private static final String RESOURCE_TOSCA_NAME = "My-Resource_Tosca_Name";
107 private static final String GENERIC_ROOT_NAME = "tosca.nodes.Root";
108 private static final String GENERIC_VF_NAME = "org.openecomp.resource.abstract.nodes.VF";
109 private static final String GENERIC_CR_NAME = "org.openecomp.resource.abstract.nodes.CR";
110 private static final String GENERIC_PNF_NAME = "org.openecomp.resource.abstract.nodes.PNF";
111 private static final String RESOURCE_CATEGORY1 = "Network Layer 2-3";
112 private static final String RESOURCE_SUBCATEGORY = "Router";
115 private ServiceImportParseLogic serviceImportParseLogic;
116 ResponseFormatManager responseManager = null;
119 private ServiceImportParseLogic createTestSubject() {
120 return new ServiceImportParseLogic();
123 ServiceImportParseLogic bl;
127 public void setup() {
128 MockitoAnnotations.initMocks(this);
131 mockElementDao = new ElementOperationMock();
133 // User data and management
135 user.setUserId("jh0003");
136 user.setFirstName("Jimmi");
137 user.setLastName("Hendrix");
138 user.setRole(Role.ADMIN.name());
139 responseManager = ResponseFormatManager.getInstance();
141 bl = new ServiceImportParseLogic();
142 bl.setComponentsUtils(componentsUtils);
143 bl.setToscaOperationFacade(toscaOperationFacade);
144 serviceBusinessLogic.setElementDao(elementDao);
145 bl.setServiceBusinessLogic(serviceBusinessLogic);
146 bl.setCapabilityTypeOperation(capabilityTypeOperation);
147 bl.setInterfaceTypeOperation(interfaceTypeOperation);
148 bl.setInputsBusinessLogic(inputsBusinessLogic);
149 bl.setLifecycleBusinessLogic(lifecycleBusinessLogic);
153 public void testGetServiceBusinessLogic() {
154 ServiceImportParseLogic testSubject;
155 ServiceBusinessLogic result;
157 testSubject = createTestSubject();
158 result = testSubject.getServiceBusinessLogic();
162 public void testSetServiceBusinessLogic() {
163 ServiceImportParseLogic testSubject;
164 ServiceBusinessLogic serviceBusinessLogic = null;
166 testSubject = createTestSubject();
167 testSubject.setServiceBusinessLogic(serviceBusinessLogic);
171 public void testGetCapabilityTypeOperation() {
172 ServiceImportParseLogic testSubject;
173 ICapabilityTypeOperation result;
175 testSubject = createTestSubject();
176 result = testSubject.getCapabilityTypeOperation();
180 public void testSetCapabilityTypeOperation() {
181 ServiceImportParseLogic testSubject;
182 ICapabilityTypeOperation iCapabilityTypeOperation = null;
184 testSubject = createTestSubject();
185 testSubject.setCapabilityTypeOperation(iCapabilityTypeOperation);
188 private CsarInfo createCsarInfo() {
189 Map<String, byte[]> csar = new HashMap<>();
190 User user = new User();
191 CsarInfo csarInfo = new CsarInfo(user, "csar_UUID", csar, "vfResourceName", "mainTemplateName",
192 "mainTemplateContent", true);
193 csarInfo.setVfResourceName("vfResourceName");
194 csarInfo.setCsar(csar);
195 csarInfo.setCsarUUID("csarUUID");
196 csarInfo.setModifier(user);
197 csarInfo.setUpdate(true);
202 public void testFindNodeTypesArtifactsToHandle() {
203 ServiceImportParseLogic testSubject = createTestSubject();
204 Map<String, NodeTypeInfo> nodeTypesInfo = new HashedMap();
205 final Service service = createServiceObject(false);
207 bl.findNodeTypesArtifactsToHandle(
208 nodeTypesInfo, getCsarInfo(), service);
212 public void testBuildNodeTypeYaml() {
213 Map.Entry<String, Object> nodeNameValue = new Entry<String, Object>() {
215 public String getKey() {
220 public Object getValue() {
225 public Object setValue(Object value) {
229 Map<String, Object> mapToConvert = new HashMap<>();
230 String nodeResourceType = Constants.USER_DEFINED_RESOURCE_NAMESPACE_PREFIX;
233 bl.buildNodeTypeYaml(
234 nodeNameValue, mapToConvert, nodeResourceType, getCsarInfo());
235 } catch (ComponentException e) {
236 assertComponentException(e, ActionStatus.INVALID_TOSCA_TEMPLATE,
237 ComponentTypeEnum.RESOURCE.getValue());
242 public void testFindAddNodeTypeArtifactsToHandle() {
244 Map<String, List<ArtifactDefinition>> extractedVfcsArtifacts = new HashMap<>();
245 Map<String, EnumMap<ArtifactOperationEnum, List<ArtifactDefinition>>> nodeTypesArtifactsToHandle = new HashMap<>();
246 String namespace = "namespace";
248 ImmutablePair p1 = ImmutablePair.<String, String>of("s", "sd");
249 Map<String, NodeTypeInfo> nodeTypesInfo = new HashedMap();
250 final Service service = createServiceObject(false);
251 Resource resource = new Resource();
252 Either<Component, StorageOperationStatus> getCompLatestResult = Either.left(resource);
253 when(toscaOperationFacade.getLatestByToscaResourceName(anyString()))
254 .thenReturn(getCompLatestResult);
256 bl.findAddNodeTypeArtifactsToHandle(getCsarInfo(), nodeTypesArtifactsToHandle, service,
257 extractedVfcsArtifacts, namespace, p1);
258 } catch (ComponentException e) {
259 assertComponentException(e, ActionStatus.INVALID_TOSCA_TEMPLATE,
260 ComponentTypeEnum.RESOURCE.getValue());
265 public void testFindAddNodeTypeArtifactsToHandleNotNull() {
267 Map<String, List<ArtifactDefinition>> extractedVfcsArtifacts = new HashMap<>();
268 Map<String, EnumMap<ArtifactOperationEnum, List<ArtifactDefinition>>> nodeTypesArtifactsToHandle = new HashMap<>();
269 String namespace = "namespace";
270 List<ArtifactDefinition> vfcArtifacts = new ArrayList<>();
271 ArtifactDefinition artifactDefinition = new ArtifactDefinition();
272 artifactDefinition.setArtifactName("artifactDefinitionName");
273 vfcArtifacts.add(artifactDefinition);
274 extractedVfcsArtifacts.put(namespace, vfcArtifacts);
275 ImmutablePair p1 = ImmutablePair.<String, String>of("s", "sd");
276 Map<String, NodeTypeInfo> nodeTypesInfo = new HashedMap();
277 final Service service = createServiceObject(false);
278 Resource resource = new Resource();
279 Either<Component, StorageOperationStatus> getCompLatestResult = Either.left(resource);
280 when(toscaOperationFacade.getLatestByToscaResourceName(anyString()))
281 .thenReturn(getCompLatestResult);
283 bl.findAddNodeTypeArtifactsToHandle(getCsarInfo(), nodeTypesArtifactsToHandle, service,
284 extractedVfcsArtifacts, namespace, p1);
285 } catch (ComponentException e) {
286 assertComponentException(e, ActionStatus.INVALID_TOSCA_TEMPLATE,
287 ComponentTypeEnum.RESOURCE.getValue());
292 public void testHandleAndAddExtractedVfcsArtifacts() {
293 List<ArtifactDefinition> vfcArtifacts = new ArrayList<>();
294 ArtifactDefinition artifactDefinition = new ArtifactDefinition();
295 artifactDefinition.setArtifactName("artifactDefinitionName");
296 vfcArtifacts.add(artifactDefinition);
297 List<ArtifactDefinition> artifactsToAdd = new ArrayList<>();
298 ArtifactDefinition artifactDefinitionToAdd = new ArtifactDefinition();
299 artifactDefinitionToAdd.setArtifactName("artifactDefinitionToAddName");
300 artifactsToAdd.add(artifactDefinitionToAdd);
301 bl.handleAndAddExtractedVfcsArtifacts(vfcArtifacts, artifactsToAdd);
305 public void testFindNodeTypeArtifactsToHandle() {
307 Resource curNodeType = createParseResourceObject(true);
308 List<ArtifactDefinition> extractedArtifacts = new ArrayList<>();
309 bl.findNodeTypeArtifactsToHandle(curNodeType, extractedArtifacts);
313 public void testCollectExistingArtifacts() {
315 Resource curNodeType = createParseResourceObject(true);
316 bl.collectExistingArtifacts(curNodeType);
320 public void testPutFoundArtifacts() {
321 ArtifactDefinition artifactDefinition = new ArtifactDefinition();
322 List<ArtifactDefinition> artifactsToUpload = new ArrayList<>();
323 artifactsToUpload.add(artifactDefinition);
324 List<ArtifactDefinition> artifactsToUpdate = new ArrayList<>();
325 artifactsToUpdate.add(artifactDefinition);
326 List<ArtifactDefinition> artifactsToDelete = new ArrayList<>();
327 artifactsToDelete.add(artifactDefinition);
328 bl.putFoundArtifacts(artifactsToUpload, artifactsToUpdate, artifactsToDelete);
332 public void testProcessExistingNodeTypeArtifacts() {
333 ArtifactDefinition artifactDefinition = new ArtifactDefinition();
334 List<ArtifactDefinition> extractedArtifacts = new ArrayList<>();
335 extractedArtifacts.add(artifactDefinition);
336 List<ArtifactDefinition> artifactsToUpload = new ArrayList<>();
337 artifactsToUpload.add(artifactDefinition);
338 List<ArtifactDefinition> artifactsToUpdate = new ArrayList<>();
339 artifactsToUpdate.add(artifactDefinition);
340 List<ArtifactDefinition> artifactsToDelete = new ArrayList<>();
341 artifactsToDelete.add(artifactDefinition);
342 Map<String, ArtifactDefinition> existingArtifacts = new HashMap<>();
343 existingArtifacts.put("test", artifactDefinition);
345 bl.processExistingNodeTypeArtifacts(extractedArtifacts, artifactsToUpload, artifactsToUpdate,
346 artifactsToDelete, existingArtifacts);
347 } catch (ComponentException e) {
348 assertComponentException(e, ActionStatus.GENERAL_ERROR,
349 ComponentTypeEnum.RESOURCE.getValue());
355 public void testProcessNodeTypeArtifact() {
356 List<ArtifactDefinition> artifactsToUpload = new ArrayList<>();
357 List<ArtifactDefinition> artifactsToUpdate = new ArrayList<>();
358 Map<String, ArtifactDefinition> existingArtifacts = new HashMap<>();
359 ArtifactDefinition existingArtifact = new ArtifactDefinition();
360 existingArtifact.setArtifactName("ArtifactName");
361 existingArtifact.setArtifactType("ArtifactType");
362 existingArtifact.setArtifactChecksum("ArtifactChecksum");
363 existingArtifacts.put("existingArtifactMap", existingArtifact);
364 ArtifactDefinition currNewArtifact = new ArtifactDefinition();
365 currNewArtifact.setArtifactName("ArtifactName");
366 currNewArtifact.setArtifactType("ArtifactType");
367 currNewArtifact.setPayload("Payload".getBytes());
368 bl.processNodeTypeArtifact(artifactsToUpload, artifactsToUpdate, existingArtifacts, currNewArtifact);
372 public void testUpdateFoundArtifact() {
373 List<ArtifactDefinition> artifactsToUpdate = new ArrayList<>();
374 ArtifactDefinition currNewArtifact = new ArtifactDefinition();
375 currNewArtifact.setArtifactChecksum("090909");
376 currNewArtifact.setPayloadData("data");
377 ArtifactDefinition foundArtifact = new ArtifactDefinition();
378 foundArtifact.setArtifactChecksum("08767");
379 bl.updateFoundArtifact(artifactsToUpdate, currNewArtifact, foundArtifact);
383 public void testIsArtifactDeletionRequired() {
384 String artifactId = "artifactId";
385 byte[] artifactFileBytes = new byte[100];
386 boolean isFromCsar = true;
387 bl.isArtifactDeletionRequired(artifactId, artifactFileBytes, isFromCsar);
391 public void testFillGroupsFinalFields() {
392 List<GroupDefinition> groupsAsList = new ArrayList<>();
393 GroupDefinition groupDefinition = new GroupDefinition();
394 groupDefinition.setName("groupDefinitionName");
395 groupsAsList.add(groupDefinition);
396 bl.fillGroupsFinalFields(groupsAsList);
400 public void testGetComponentTypeForResponse() {
401 Resource resource = createParseResourceObject(true);
402 bl.getComponentTypeForResponse(resource);
406 public void testGetComponentTypeForResponseByService() {
407 Service service = createServiceObject(true);
408 bl.getComponentTypeForResponse(service);
412 public void testIsfillGroupMemebersRecursivlyStopCondition() {
413 String groupName = "groupName";
414 Map<String, GroupDefinition> allGroups = new HashMap<>();
415 Set<String> allGroupMembers = new HashSet<>();
416 bl.isfillGroupMemebersRecursivlyStopCondition(groupName, allGroups, allGroupMembers);
420 public void testIsfillGroupMemebersRecursivlyStopCondition2() {
421 String groupName = "groupName";
422 Map<String, GroupDefinition> allGroups = new HashMap<>();
423 GroupDefinition groupDefinition = new GroupDefinition();
424 Map<String, String> members = new HashMap<>();
425 members.put("members", "members");
426 groupDefinition.setMembers(members);
427 allGroups.put(groupName, groupDefinition);
428 Set<String> allGroupMembers = new HashSet<>();
429 bl.isfillGroupMemebersRecursivlyStopCondition(groupName, allGroups, allGroupMembers);
433 public void testBuildValidComplexVfc() {
434 Resource resource = createParseResourceObject(true);
435 String nodeName = "org.openecomp.resource.derivedFrom.zxjTestImportServiceAb.test";
436 Map<String, NodeTypeInfo> nodesInfo = new HashMap<>();
437 NodeTypeInfo nodeTypeInfo = new NodeTypeInfo();
438 List<String> derivedFrom = new ArrayList<>();
439 derivedFrom.add("derivedFrom");
440 nodeTypeInfo.setDerivedFrom(derivedFrom);
441 nodesInfo.put(nodeName, nodeTypeInfo);
444 bl.buildValidComplexVfc(resource, getCsarInfo(), nodeName, nodesInfo);
445 } catch (ComponentException e) {
446 assertComponentException(e, ActionStatus.GENERAL_ERROR,
447 ComponentTypeEnum.RESOURCE.getValue());
452 public void testValidateResourceBeforeCreate() {
453 Resource resource = createParseResourceObject(true);
456 bl.getServiceBusinessLogic().setElementDao(elementDao);
457 bl.validateResourceBeforeCreate(resource, user, AuditingActionEnum.IMPORT_RESOURCE, false, getCsarInfo());
458 } catch (ComponentException e) {
459 assertComponentException(e, ActionStatus.GENERAL_ERROR,
460 ComponentTypeEnum.RESOURCE.getValue());
466 public void testValidateResourceType() {
467 Resource resource = createParseResourceObject(true);
468 bl.validateResourceType(user, resource, AuditingActionEnum.IMPORT_RESOURCE);
472 public void testValidateResourceTypeIsEmpty() {
473 Resource resource = new Resource();
474 resource.setResourceType(null);
475 bl.validateResourceType(user, resource, AuditingActionEnum.IMPORT_RESOURCE);
479 public void testValidateLifecycleTypesCreate() {
480 Resource resource = createParseResourceObject(true);
481 Map<String, InterfaceDefinition> mapInterfaces = new HashMap<>();
482 InterfaceDefinition interfaceDefinition = new InterfaceDefinition();
483 String uniqueId = "01932342212";
484 interfaceDefinition.setUniqueId(uniqueId);
485 mapInterfaces.put("uniqueId", interfaceDefinition);
486 resource.setInterfaces(mapInterfaces);
487 when(interfaceTypeOperation.getInterface(anyString()))
488 .thenReturn(Either.right(StorageOperationStatus.NOT_FOUND));
489 bl.validateLifecycleTypesCreate(user, resource, AuditingActionEnum.IMPORT_RESOURCE);
493 public void testValidateCapabilityTypesCreate() {
494 Resource resource = createParseResourceObject(true);
495 Map<String, List<CapabilityDefinition>> capabilities = new HashMap<>();
496 String uniqueId = "18982938994";
497 List<CapabilityDefinition> capabilityDefinitionList = new ArrayList<>();
498 CapabilityDefinition capabilityDefinition = new CapabilityDefinition();
499 capabilityDefinitionList.add(capabilityDefinition);
500 capabilities.put(uniqueId, capabilityDefinitionList);
501 resource.setCapabilities(capabilities);
502 when(capabilityTypeOperation.getCapabilityType(anyString(), anyBoolean())).
503 thenReturn(Either.right(StorageOperationStatus.NOT_FOUND));
505 bl.validateCapabilityTypesCreate(user, bl.getCapabilityTypeOperation(), resource,
506 AuditingActionEnum.IMPORT_RESOURCE, true);
507 } catch (ComponentException e) {
508 assertComponentException(e, ActionStatus.INVALID_TOSCA_TEMPLATE,
509 ComponentTypeEnum.RESOURCE.getValue());
514 public void testValidateCapabilityTypesCreateWhenHaveCapability() {
515 Resource resource = createParseResourceObject(true);
516 Map<String, List<CapabilityDefinition>> capabilities = new HashMap<>();
517 String uniqueId = "18982938994";
518 List<CapabilityDefinition> capabilityDefinitionList = new ArrayList<>();
519 CapabilityDefinition capabilityDefinition = new CapabilityDefinition();
520 capabilityDefinitionList.add(capabilityDefinition);
521 capabilities.put(uniqueId, capabilityDefinitionList);
522 resource.setCapabilities(capabilities);
523 CapabilityTypeDefinition capabilityTypeDefinition = new CapabilityTypeDefinition();
524 when(capabilityTypeOperation.getCapabilityType(anyString(), anyBoolean())).
525 thenReturn(Either.left(capabilityTypeDefinition));
527 bl.validateCapabilityTypesCreate(user, bl.getCapabilityTypeOperation(), resource,
528 AuditingActionEnum.IMPORT_RESOURCE, true);
529 } catch (ComponentException e) {
530 assertComponentException(e, ActionStatus.INVALID_TOSCA_TEMPLATE,
531 ComponentTypeEnum.RESOURCE.getValue());
536 public void testValidateCapabilityTypeExists() {
537 Resource resource = createParseResourceObject(true);
538 Either<Boolean, ResponseFormat> eitherResult = Either.left(true);
539 for (Map.Entry<String, List<CapabilityDefinition>> typeEntry : resource.getCapabilities().entrySet()) {
541 bl.validateCapabilityTypeExists(user, bl.getCapabilityTypeOperation(), resource,
542 AuditingActionEnum.IMPORT_RESOURCE,
543 eitherResult, typeEntry, false);
548 public void testValidateCapabilityTypeExistsWhenPropertiesIsNull() {
549 Resource resource = createParseResourceObject(true);
550 Either<Boolean, ResponseFormat> eitherResult = Either.left(true);
551 CapabilityTypeDefinition capabilityTypeDefinition = new CapabilityTypeDefinition();
553 String uniqueId = "0987348532";
554 PropertyDefinition propertyDefinition = new PropertyDefinition();
555 Map<String, PropertyDefinition> properties = new HashMap<>();
556 properties.put(uniqueId, propertyDefinition);
557 capabilityTypeDefinition.setProperties(properties);
559 Map<String, List<CapabilityDefinition>> capabilities = new HashMap<>();
560 List<CapabilityDefinition> capabilityDefinitionList = new ArrayList<>();
561 CapabilityDefinition capabilityDefinition = new CapabilityDefinition();
562 capabilityDefinitionList.add(capabilityDefinition);
563 capabilities.put(uniqueId, capabilityDefinitionList);
564 resource.setCapabilities(capabilities);
566 when(capabilityTypeOperation.getCapabilityType(anyString(), anyBoolean())).
567 thenReturn(Either.left(capabilityTypeDefinition));
568 for (Map.Entry<String, List<CapabilityDefinition>> typeEntry : resource.getCapabilities().entrySet()) {
570 bl.validateCapabilityTypeExists(user, bl.getCapabilityTypeOperation(), resource,
571 AuditingActionEnum.IMPORT_RESOURCE,
572 eitherResult, typeEntry, false);
577 public void testValidateCapabilityTypeExistsWhenPropertiesNotNull() {
578 Resource resource = createParseResourceObject(true);
579 Either<Boolean, ResponseFormat> eitherResult = Either.left(true);
580 CapabilityTypeDefinition capabilityTypeDefinition = new CapabilityTypeDefinition();
582 String uniqueId = "0987348532";
583 PropertyDefinition propertyDefinition = new PropertyDefinition();
584 propertyDefinition.setName(uniqueId);
585 Map<String, PropertyDefinition> properties = new HashMap<>();
586 properties.put(uniqueId, propertyDefinition);
587 capabilityTypeDefinition.setProperties(properties);
589 Map<String, List<CapabilityDefinition>> capabilities = new HashMap<>();
591 List<CapabilityDefinition> capabilityDefinitionList = new ArrayList<>();
592 List<ComponentInstanceProperty> componentInstancePropertyList = new ArrayList<>();
593 ComponentInstanceProperty componentInstanceProperty = new ComponentInstanceProperty();
594 componentInstanceProperty.setValueUniqueUid(uniqueId);
595 componentInstanceProperty.setName(uniqueId);
596 componentInstancePropertyList.add(componentInstanceProperty);
597 CapabilityDefinition capabilityDefinition = new CapabilityDefinition();
598 capabilityDefinition.setProperties(componentInstancePropertyList);
599 capabilityDefinitionList.add(capabilityDefinition);
601 capabilities.put(uniqueId, capabilityDefinitionList);
602 resource.setCapabilities(capabilities);
604 when(capabilityTypeOperation.getCapabilityType(anyString(), anyBoolean())).
605 thenReturn(Either.left(capabilityTypeDefinition));
606 for (Map.Entry<String, List<CapabilityDefinition>> typeEntry : resource.getCapabilities().entrySet()) {
608 bl.validateCapabilityTypeExists(user, bl.getCapabilityTypeOperation(), resource,
609 AuditingActionEnum.IMPORT_RESOURCE,
610 eitherResult, typeEntry, false);
615 public void testValidateCapabilityTypeExists2() {
616 Resource resource = createParseResourceObject(true);
617 Either<Boolean, ResponseFormat> eitherResult = Either.left(true);
618 when(capabilityTypeOperation.getCapabilityType(anyString(), anyBoolean())).
619 thenReturn(Either.right(StorageOperationStatus.NOT_FOUND));
621 for (String type : resource.getRequirements().keySet()) {
622 bl.validateCapabilityTypeExists(user, bl.getCapabilityTypeOperation(), resource,
623 resource.getRequirements().get(type), AuditingActionEnum.IMPORT_RESOURCE, eitherResult, type,
626 } catch (ComponentException e) {
627 assertComponentException(e, ActionStatus.INVALID_TOSCA_TEMPLATE,
628 ComponentTypeEnum.RESOURCE.getValue());
635 public void testValidateResourceFieldsBeforeCreate() {
636 Resource resource = createParseResourceObject(true);
638 bl.validateResourceFieldsBeforeCreate(user, resource, AuditingActionEnum.IMPORT_RESOURCE, true);
639 } catch (ComponentException e) {
640 assertComponentException(e, ActionStatus.GENERAL_ERROR,
641 ComponentTypeEnum.RESOURCE.getValue());
646 public void testValidateDerivedFromExist() {
647 Resource resource = createParseResourceObject(true);
649 when(toscaOperationFacade.validateToscaResourceNameExists(anyString()))
650 .thenReturn(Either.left(true));
651 bl.validateDerivedFromExist(user, resource, AuditingActionEnum.IMPORT_RESOURCE);
652 } catch (ComponentException e) {
653 assertComponentException(e, ActionStatus.GENERAL_ERROR,
654 ComponentTypeEnum.RESOURCE.getValue());
659 public void testValidateDerivedFromExistFailure1() {
660 Resource resource = createParseResourceObject(true);
662 when(toscaOperationFacade.validateToscaResourceNameExists(anyString()))
663 .thenReturn(Either.left(false));
664 bl.validateDerivedFromExist(user, resource, AuditingActionEnum.IMPORT_RESOURCE);
665 } catch (ComponentException e) {
666 assertComponentException(e, ActionStatus.PARENT_RESOURCE_NOT_FOUND,
667 ComponentTypeEnum.RESOURCE.getValue());
672 public void testValidateDerivedFromExistFailure2() {
673 Resource resource = createParseResourceObject(true);
675 when(toscaOperationFacade.validateToscaResourceNameExists(anyString()))
676 .thenReturn(Either.right(StorageOperationStatus.OK));
677 bl.validateDerivedFromExist(user, resource, AuditingActionEnum.IMPORT_RESOURCE);
678 } catch (ComponentException e) {
679 assertComponentException(e, ActionStatus.OK,
680 ComponentTypeEnum.RESOURCE.getValue());
685 public void testValidateLicenseType() {
686 Resource resource = createParseResourceObject(true);
689 bl.validateLicenseType(user, resource, AuditingActionEnum.IMPORT_RESOURCE);
690 } catch (ComponentException e) {
691 assertComponentException(e, ActionStatus.INVALID_CONTENT,
692 ComponentTypeEnum.RESOURCE.getValue());
699 public void testValidateCost() {
700 Resource resource = createParseResourceObject(true);
702 bl.validateCost(resource);
703 } catch (ComponentException e) {
704 assertComponentException(e, ActionStatus.INVALID_CONTENT,
705 ComponentTypeEnum.RESOURCE.getValue());
710 public void testValidateResourceVendorModelNumber() {
711 Resource resource = createParseResourceObject(true);
712 bl.validateResourceVendorModelNumber(user, resource, AuditingActionEnum.IMPORT_RESOURCE);
716 public void testValidateResourceVendorModelNumberWrongLen() {
717 Resource resource = createParseResourceObject(true);
718 resource.setResourceVendorModelNumber("000000000011122221111222333444443222556677788778889999998776554332340");
720 bl.validateResourceVendorModelNumber(user, resource, AuditingActionEnum.IMPORT_RESOURCE);
721 } catch (ComponentException e) {
727 public void testValidateResourceVendorModelNumberWrongValue() {
728 Resource resource = createParseResourceObject(true);
729 resource.setResourceVendorModelNumber("");
731 bl.validateResourceVendorModelNumber(user, resource, AuditingActionEnum.IMPORT_RESOURCE);
732 } catch (ComponentException e) {
733 assertComponentException(e, ActionStatus.INVALID_RESOURCE_VENDOR_MODEL_NUMBER,
734 ComponentTypeEnum.RESOURCE.getValue());
739 public void testValidateVendorReleaseName() {
740 Resource resource = createParseResourceObject(true);
741 resource.setVendorRelease("0.1");
742 bl.validateVendorReleaseName(user, resource, AuditingActionEnum.IMPORT_RESOURCE);
746 public void testValidateVendorReleaseNameFailure() {
747 Resource resource = createParseResourceObject(true);
748 resource.setVendorRelease("");
750 bl.validateVendorReleaseName(user, resource, AuditingActionEnum.IMPORT_RESOURCE);
751 } catch (ComponentException e) {
752 assertComponentException(e, ActionStatus.MISSING_VENDOR_RELEASE,
753 ComponentTypeEnum.RESOURCE.getValue());
759 public void testValidateVendorReleaseNameWrongLen() {
760 Resource resource = createParseResourceObject(true);
761 resource.setVendorRelease("000000000011122221111222333444443222556677788778889999998776554332340");
763 bl.validateVendorReleaseName(user, resource, AuditingActionEnum.IMPORT_RESOURCE);
764 } catch (ComponentException e) {
770 public void testValidateCategory() {
771 Resource resource = createParseResourceObject(true);
773 bl.validateCategory(user, resource, AuditingActionEnum.IMPORT_RESOURCE, true);
774 } catch (ComponentException e) {
775 assertComponentException(e, ActionStatus.GENERAL_ERROR,
776 ComponentTypeEnum.RESOURCE.getValue());
781 public void testValidateEmptyCategory() {
782 Resource resource = createParseResourceObject(true);
783 resource.setCategories(null);
785 bl.validateCategory(user, resource, AuditingActionEnum.IMPORT_RESOURCE, true);
786 } catch (ComponentException e) {
787 assertComponentException(e, ActionStatus.COMPONENT_MISSING_CATEGORY,
788 ComponentTypeEnum.RESOURCE.getValue());
793 public void testValidateCategorySizeBiggerThan1() {
794 Resource resource = createParseResourceObject(true);
795 List<CategoryDefinition> categories = new ArrayList<>();
796 CategoryDefinition categoryDefinition1 = new CategoryDefinition();
797 CategoryDefinition categoryDefinition2 = new CategoryDefinition();
798 categories.add(categoryDefinition1);
799 categories.add(categoryDefinition2);
801 resource.setCategories(categories);
803 bl.validateCategory(user, resource, AuditingActionEnum.IMPORT_RESOURCE, true);
804 } catch (ComponentException e) {
805 assertComponentException(e, ActionStatus.COMPONENT_TOO_MUCH_CATEGORIES,
806 ComponentTypeEnum.RESOURCE.getValue());
811 public void testValidateEmptySubCategory() {
812 Resource resource = createParseResourceObject(true);
813 List<CategoryDefinition> categories = resource.getCategories();
814 CategoryDefinition categoryDefinition = categories.get(0);
815 categoryDefinition.setSubcategories(null);
818 bl.validateCategory(user, resource, AuditingActionEnum.IMPORT_RESOURCE, true);
819 } catch (ComponentException e) {
820 assertComponentException(e, ActionStatus.COMPONENT_MISSING_SUBCATEGORY,
821 ComponentTypeEnum.RESOURCE.getValue());
826 public void testValidateEmptySubCategorySizeBiggerThan1() {
827 Resource resource = createParseResourceObject(true);
828 List<CategoryDefinition> categories = resource.getCategories();
829 CategoryDefinition categoryDefinition = categories.get(0);
830 List<SubCategoryDefinition> subcategories = categoryDefinition.getSubcategories();
831 SubCategoryDefinition subCategoryDefinition1 = new SubCategoryDefinition();
832 SubCategoryDefinition subCategoryDefinition2 = new SubCategoryDefinition();
833 subcategories.add(subCategoryDefinition1);
834 subcategories.add(subCategoryDefinition2);
837 bl.validateCategory(user, resource, AuditingActionEnum.IMPORT_RESOURCE, true);
838 } catch (ComponentException e) {
839 assertComponentException(e, ActionStatus.RESOURCE_TOO_MUCH_SUBCATEGORIES,
840 ComponentTypeEnum.RESOURCE.getValue());
845 public void testValidateEmptyCategoryName() {
846 Resource resource = createParseResourceObject(true);
847 List<CategoryDefinition> categories = resource.getCategories();
848 CategoryDefinition categoryDefinition = categories.get(0);
849 categoryDefinition.setName(null);
852 bl.validateCategory(user, resource, AuditingActionEnum.IMPORT_RESOURCE, true);
853 } catch (ComponentException e) {
854 assertComponentException(e, ActionStatus.COMPONENT_MISSING_CATEGORY,
855 ComponentTypeEnum.RESOURCE.getValue());
860 public void testValidateEmptySubCategoryName() {
861 Resource resource = createParseResourceObject(true);
862 List<CategoryDefinition> categories = resource.getCategories();
863 CategoryDefinition categoryDefinition = categories.get(0);
864 List<SubCategoryDefinition> subcategories = categoryDefinition.getSubcategories();
865 SubCategoryDefinition subCategoryDefinition1 = subcategories.get(0);
866 subCategoryDefinition1.setName(null);
869 bl.validateCategory(user, resource, AuditingActionEnum.IMPORT_RESOURCE, true);
870 } catch (ComponentException e) {
871 assertComponentException(e, ActionStatus.COMPONENT_MISSING_SUBCATEGORY,
872 ComponentTypeEnum.RESOURCE.getValue());
877 public void testValidateCategoryListed() {
878 Resource resource = createParseResourceObject(true);
879 CategoryDefinition category = resource.getCategories().get(0);
880 SubCategoryDefinition subcategory = category.getSubcategories().get(0);
882 bl.validateCategoryListed(category, subcategory, user, resource, AuditingActionEnum.IMPORT_RESOURCE, true);
883 } catch (ComponentException e) {
884 assertComponentException(e, ActionStatus.GENERAL_ERROR,
885 ComponentTypeEnum.RESOURCE.getValue());
890 public void testFailOnInvalidCategory() {
891 Resource resource = createParseResourceObject(true);
893 bl.failOnInvalidCategory(user, resource, AuditingActionEnum.IMPORT_RESOURCE);
894 } catch (ComponentException e) {
895 assertComponentException(e, ActionStatus.COMPONENT_INVALID_CATEGORY,
896 ComponentTypeEnum.RESOURCE.getValue());
902 public void testValidateVendorName() {
903 Resource resource = createParseResourceObject(true);
905 bl.validateVendorName(user, resource, AuditingActionEnum.IMPORT_RESOURCE);
906 } catch (ComponentException e) {
907 assertComponentException(e, ActionStatus.GENERAL_ERROR,
908 ComponentTypeEnum.RESOURCE.getValue());
913 public void testValidateVendorNameEmpty() {
914 Resource resource = createParseResourceObject(true);
915 resource.setVendorName(null);
917 bl.validateVendorName(user, resource, AuditingActionEnum.IMPORT_RESOURCE);
918 } catch (ComponentException e) {
919 assertComponentException(e, ActionStatus.MISSING_VENDOR_NAME,
920 ComponentTypeEnum.RESOURCE.getValue());
925 public void testValidateVendorNameWrongLen() {
926 Resource resource = createParseResourceObject(true);
927 resource.setVendorName("000000000011122221111222333444443222556677788778889999998776554332340");
929 bl.validateVendorName(user, resource, AuditingActionEnum.IMPORT_RESOURCE);
930 } catch (ComponentException e) {
936 public void testValidateVendorName2() {
937 Resource resource = createParseResourceObject(true);
938 CategoryDefinition category = resource.getCategories().get(0);
939 SubCategoryDefinition subcategory = category.getSubcategories().get(0);
940 String vendorName = "vendorName";
942 bl.validateVendorName(vendorName, user, resource, AuditingActionEnum.IMPORT_RESOURCE);
943 } catch (ComponentException e) {
944 assertComponentException(e, ActionStatus.GENERAL_ERROR,
945 ComponentTypeEnum.RESOURCE.getValue());
950 public void testFillResourceMetadata2() {
951 String yamlName = "yamlName";
952 Resource resourceVf = createParseResourceObject(true);
953 String nodeName = Constants.USER_DEFINED_RESOURCE_NAMESPACE_PREFIX + "test";
954 resourceVf.setSystemName("systemName");
956 bl.fillResourceMetadata(yamlName, resourceVf, nodeName, user);
957 } catch (ComponentException e) {
963 public void testFillResourceMetadataWrongStart() {
964 String yamlName = "yamlName";
965 Resource resourceVf = createParseResourceObject(true);
966 String nodeName = "WrongStart" + "test";
968 bl.fillResourceMetadata(yamlName, resourceVf, nodeName, user);
969 } catch (ComponentException e) {
975 public void testFillResourceMetadataResourceTypeIsAbs() {
976 String yamlName = "yamlName";
977 Resource resourceVf = createParseResourceObject(true);
978 String nodeName = Constants.USER_DEFINED_RESOURCE_NAMESPACE_PREFIX + Constants.ABSTRACT;
980 bl.fillResourceMetadata(yamlName, resourceVf, nodeName, user);
981 } catch (ComponentException e) {
982 assertComponentException(e, ActionStatus.INVALID_NODE_TEMPLATE,
983 ComponentTypeEnum.RESOURCE.getValue());
988 public void testGetNodeTypeActualName() {
989 String fullName = Constants.USER_DEFINED_RESOURCE_NAMESPACE_PREFIX + "test";
991 bl.getNodeTypeActualName(fullName);
992 } catch (ComponentException e) {
993 assertComponentException(e, ActionStatus.GENERAL_ERROR,
994 ComponentTypeEnum.RESOURCE.getValue());
999 public void testAddInput() {
1000 Map<String, InputDefinition> currPropertiesMap = new HashMap<>();
1001 InputDefinition prop = new InputDefinition();
1003 bl.addInput(currPropertiesMap, prop);
1004 } catch (ComponentException e) {
1005 assertComponentException(e, ActionStatus.GENERAL_ERROR,
1006 ComponentTypeEnum.RESOURCE.getValue());
1011 public void testFindAviableRequirement() {
1012 String uniqueId = "101929382910";
1013 String regName = uniqueId;
1014 String yamlName = uniqueId;
1015 UploadComponentInstanceInfo uploadComponentInstanceInfo = new UploadComponentInstanceInfo();
1016 ComponentInstance currentCompInstance = new ComponentInstance();
1018 Map<String, List<RequirementDefinition>> requirements = new HashMap<>();
1019 List<RequirementDefinition> requirementDefinitionList = new ArrayList<>();
1020 RequirementDefinition requirementDefinition = new RequirementDefinition();
1021 requirementDefinition.setName(uniqueId);
1022 requirementDefinition.setMaxOccurrences("10");
1023 requirementDefinition.setLeftOccurrences("3");
1024 requirementDefinitionList.add(requirementDefinition);
1025 requirements.put(uniqueId, requirementDefinitionList);
1026 currentCompInstance.setRequirements(requirements);
1028 String capName = "capName";
1030 bl.findAviableRequiremen(regName, yamlName, uploadComponentInstanceInfo, currentCompInstance, capName);
1031 } catch (ComponentException e) {
1032 assertComponentException(e, ActionStatus.INVALID_NODE_TEMPLATE,
1033 ComponentTypeEnum.RESOURCE.getValue());
1038 public void testFindAviableRequirementSameCapName() {
1039 String uniqueId = "101929382910";
1040 String regName = uniqueId;
1041 String yamlName = uniqueId;
1042 UploadComponentInstanceInfo uploadComponentInstanceInfo = new UploadComponentInstanceInfo();
1043 ComponentInstance currentCompInstance = new ComponentInstance();
1045 Map<String, List<RequirementDefinition>> requirements = new HashMap<>();
1046 List<RequirementDefinition> requirementDefinitionList = new ArrayList<>();
1047 RequirementDefinition requirementDefinition = new RequirementDefinition();
1048 requirementDefinition.setName(uniqueId);
1049 requirementDefinition.setMaxOccurrences("10");
1050 requirementDefinition.setLeftOccurrences("3");
1051 requirementDefinitionList.add(requirementDefinition);
1052 requirements.put(uniqueId, requirementDefinitionList);
1053 currentCompInstance.setRequirements(requirements);
1055 String capName = uniqueId;
1057 bl.findAviableRequiremen(regName, yamlName, uploadComponentInstanceInfo, currentCompInstance, capName);
1058 } catch (ComponentException e) {
1059 assertComponentException(e, ActionStatus.INVALID_NODE_TEMPLATE,
1060 ComponentTypeEnum.RESOURCE.getValue());
1065 public void testFindAvailableCapabilityByTypeOrName() {
1066 RequirementDefinition validReq = new RequirementDefinition();
1067 ComponentInstance currentCapCompInstance = new ComponentInstance();
1068 UploadReqInfo uploadReqInfo = new UploadReqInfo();
1071 bl.findAvailableCapabilityByTypeOrName(validReq, currentCapCompInstance, uploadReqInfo);
1072 } catch (ComponentException e) {
1073 assertComponentException(e, ActionStatus.GENERAL_ERROR,
1074 ComponentTypeEnum.RESOURCE.getValue());
1080 public void testFindAvailableCapability() {
1081 String uniqueId = "23422345677";
1082 RequirementDefinition validReq = new RequirementDefinition();
1083 validReq.setCapability(uniqueId);
1084 ComponentInstance instance = new ComponentInstance();
1085 Map<String, List<CapabilityDefinition>> capabilityMap = new HashMap<>();
1086 List<CapabilityDefinition> capabilityDefinitionList = new ArrayList<>();
1087 CapabilityDefinition capabilityDefinition = new CapabilityDefinition();
1088 capabilityDefinition.setMaxOccurrences("3");
1089 capabilityDefinition.setLeftOccurrences("2");
1090 capabilityDefinitionList.add(capabilityDefinition);
1091 capabilityMap.put(uniqueId, capabilityDefinitionList);
1092 instance.setCapabilities(capabilityMap);
1095 bl.findAvailableCapability(validReq, instance);
1096 } catch (ComponentException e) {
1097 assertComponentException(e, ActionStatus.GENERAL_ERROR,
1098 ComponentTypeEnum.RESOURCE.getValue());
1103 public void testfindAvailableCapability2() {
1104 String uniqueId = "23422345677";
1105 RequirementDefinition validReq = new RequirementDefinition();
1106 validReq.setCapability(uniqueId);
1107 ComponentInstance instance = new ComponentInstance();
1108 Map<String, List<CapabilityDefinition>> capabilityMap = new HashMap<>();
1109 List<CapabilityDefinition> capabilityDefinitionList = new ArrayList<>();
1110 CapabilityDefinition capabilityDefinition = new CapabilityDefinition();
1111 capabilityDefinition.setName(uniqueId);
1112 capabilityDefinition.setMaxOccurrences("3");
1113 capabilityDefinition.setLeftOccurrences("2");
1114 capabilityDefinitionList.add(capabilityDefinition);
1115 capabilityMap.put(uniqueId, capabilityDefinitionList);
1116 instance.setCapabilities(capabilityMap);
1117 UploadReqInfo uploadReqInfo = new UploadReqInfo();
1118 uploadReqInfo.setCapabilityName(uniqueId);
1120 bl.findAvailableCapability(validReq, instance, uploadReqInfo);
1121 } catch (ComponentException e) {
1122 assertComponentException(e, ActionStatus.GENERAL_ERROR,
1123 ComponentTypeEnum.RESOURCE.getValue());
1128 public void testGetComponentWithInstancesFilter() {
1130 bl.getComponentWithInstancesFilter();
1131 } catch (ComponentException e) {
1132 assertComponentException(e, ActionStatus.GENERAL_ERROR,
1133 ComponentTypeEnum.RESOURCE.getValue());
1138 public void testCreateParseResourceObject() {
1139 String key = "0923928394";
1140 List<UploadCapInfo> capabilities = new ArrayList<>();
1141 UploadCapInfo uploadCapInfo = new UploadCapInfo();
1142 uploadCapInfo.setType(key);
1143 capabilities.add(uploadCapInfo);
1145 String resourceId = "resourceId";
1146 Map<String, List<CapabilityDefinition>> defaultCapabilities = new HashMap<>();
1147 CapabilityDefinition capabilityDefinition = new CapabilityDefinition();
1148 capabilityDefinition.setName(key);
1149 List<CapabilityDefinition> capabilityDefinitionList = new ArrayList<>();
1150 capabilityDefinitionList.add(capabilityDefinition);
1151 defaultCapabilities.put(key, capabilityDefinitionList);
1153 Map<String, List<CapabilityDefinition>> validCapabilitiesMap = new HashMap<>();
1154 InputDefinition prop = new InputDefinition();
1156 Resource resource = createParseResourceObject(true);
1157 Map<String, List<CapabilityDefinition>> capabilitiesMap = resource.getCapabilities();
1158 capabilitiesMap.put(key, capabilityDefinitionList);
1160 when(toscaOperationFacade.getToscaFullElement(anyString()))
1161 .thenReturn(Either.left(resource));
1164 bl.addValidComponentInstanceCapabilities(key, capabilities, resourceId, defaultCapabilities,
1165 validCapabilitiesMap);
1166 } catch (ComponentException e) {
1167 assertComponentException(e, ActionStatus.GENERAL_ERROR,
1168 ComponentTypeEnum.RESOURCE.getValue());
1173 public void testGetCapabilityFailure() {
1174 String resourceId = "resourceId";
1175 String key = "0923928394";
1176 Map<String, List<CapabilityDefinition>> defaultCapabilities = new HashMap<>();
1177 CapabilityDefinition capabilityDefinition = new CapabilityDefinition();
1178 capabilityDefinition.setName(key);
1179 List<CapabilityDefinition> capabilityDefinitionList = new ArrayList<>();
1180 capabilityDefinitionList.add(capabilityDefinition);
1181 defaultCapabilities.put(key, capabilityDefinitionList);
1182 String capabilityType = key;
1183 when(toscaOperationFacade.getToscaFullElement(anyString()))
1184 .thenReturn(Either.right(StorageOperationStatus.NOT_FOUND));
1186 bl.getCapability(resourceId, defaultCapabilities, capabilityType);
1187 } catch (ComponentException e) {
1188 assertComponentException(e, ActionStatus.COMPONENT_NOT_FOUND,
1189 ComponentTypeEnum.RESOURCE.getValue());
1195 public void testValidateCapabilityProperties() {
1196 List<UploadCapInfo> capabilities = new ArrayList<>();
1197 UploadCapInfo uploadCapInfo = new UploadCapInfo();
1198 List<UploadPropInfo> properties = new ArrayList<>();
1199 UploadPropInfo uploadPropInfo = new UploadPropInfo();
1200 properties.add(uploadPropInfo);
1201 uploadCapInfo.setProperties(properties);
1202 capabilities.add(uploadCapInfo);
1203 String resourceId = "resourceId";
1204 CapabilityDefinition defaultCapability = new CapabilityDefinition();
1205 defaultCapability.setProperties(null);
1206 defaultCapability.setName("test");
1209 bl.validateCapabilityProperties(capabilities, resourceId, defaultCapability);
1210 } catch (ComponentException e) {
1211 e.printStackTrace();
1216 public void testValidateUniquenessUpdateUploadedComponentInstanceCapability() {
1217 String key = "02124568";
1218 List<UploadCapInfo> capabilities = new ArrayList<>();
1219 UploadCapInfo uploadCapInfo = new UploadCapInfo();
1220 List<UploadPropInfo> properties = new ArrayList<>();
1221 UploadPropInfo uploadPropInfo = new UploadPropInfo();
1222 uploadPropInfo.setName(key);
1223 properties.add(uploadPropInfo);
1224 uploadCapInfo.setProperties(properties);
1225 capabilities.add(uploadCapInfo);
1226 String resourceId = "resourceId";
1227 CapabilityDefinition defaultCapability = new CapabilityDefinition();
1228 List<ComponentInstanceProperty> componentInstancePropertyList = new ArrayList<>();
1229 ComponentInstanceProperty componentInstanceProperty = new ComponentInstanceProperty();
1230 componentInstancePropertyList.add(componentInstanceProperty);
1231 defaultCapability.setProperties(componentInstancePropertyList);
1232 defaultCapability.setName(key);
1235 bl.validateUniquenessUpdateUploadedComponentInstanceCapability(defaultCapability, uploadCapInfo);
1236 } catch (ComponentException e) {
1237 assertComponentException(e, ActionStatus.GENERAL_ERROR,
1238 ComponentTypeEnum.RESOURCE.getValue());
1243 public void testSetDeploymentArtifactsPlaceHolderByResource() {
1244 Resource resource = createParseResourceObject(true);
1247 bl.setDeploymentArtifactsPlaceHolder(resource, user);
1248 } catch (ComponentException e) {
1249 assertComponentException(e, ActionStatus.GENERAL_ERROR,
1250 ComponentTypeEnum.RESOURCE.getValue());
1255 public void testSetDeploymentArtifactsPlaceHolderByService() {
1256 Service Service = createServiceObject(true);
1259 bl.setDeploymentArtifactsPlaceHolder(Service, user);
1260 } catch (ComponentException e) {
1261 assertComponentException(e, ActionStatus.GENERAL_ERROR,
1262 ComponentTypeEnum.RESOURCE.getValue());
1267 public void testProcessDeploymentResourceArtifacts() {
1268 Resource resource = createParseResourceObject(true);
1269 resource.setResourceType(ResourceTypeEnum.VF);
1270 Map<String, ArtifactDefinition> artifactMap = new HashMap<>();
1272 Object v = new Object();
1273 Map<String, List<String>> artifactDetails = new HashMap<>();
1274 List<String> artifactTypes = new ArrayList<>();
1275 artifactTypes.add(ResourceTypeEnum.VF.name());
1276 artifactDetails.put("validForResourceTypes", artifactTypes);
1277 v = artifactDetails;
1279 bl.processDeploymentResourceArtifacts(user, resource, artifactMap, k, v);
1283 public void testMergeOldResourceMetadataWithNew() {
1284 Resource oldResource = createParseResourceObject(true);
1285 Resource newResource = new Resource();
1288 bl.mergeOldResourceMetadataWithNew(oldResource, newResource);
1289 } catch (ComponentException e) {
1290 assertComponentException(e, ActionStatus.GENERAL_ERROR,
1291 ComponentTypeEnum.RESOURCE.getValue());
1296 public void testBuildComplexVfcMetadata() {
1297 Resource resource = createParseResourceObject(true);
1298 String nodeName = "org.openecomp.resource.derivedFrom.zxjTestImportServiceAb.test";
1299 Map<String, NodeTypeInfo> nodesInfo = new HashMap<>();
1300 NodeTypeInfo nodeTypeInfo = new NodeTypeInfo();
1301 List<String> derivedFrom = new ArrayList<>();
1302 derivedFrom.add("derivedFrom");
1303 nodeTypeInfo.setDerivedFrom(derivedFrom);
1304 nodesInfo.put(nodeName, nodeTypeInfo);
1307 bl.buildComplexVfcMetadata(getCsarInfo(), nodeName, nodesInfo);
1308 } catch (ComponentException e) {
1309 assertComponentException(e, ActionStatus.GENERAL_ERROR,
1310 ComponentTypeEnum.RESOURCE.getValue());
1315 public void testValidateResourceCreationFromNodeType() {
1316 Resource resource = createParseResourceObject(true);
1317 resource.setDerivedFrom(null);
1319 bl.validateResourceCreationFromNodeType(resource, user);
1320 } catch (ComponentException e) {
1321 assertComponentException(e, ActionStatus.MISSING_DERIVED_FROM_TEMPLATE,
1322 ComponentTypeEnum.RESOURCE.getValue());
1327 public void testCreateInputsOnResource() {
1328 Resource resource = createParseResourceObject(true);
1329 Map<String, InputDefinition> inputs = new HashMap<>();
1332 bl.createInputsOnResource(resource, inputs);
1333 } catch (ComponentException e) {
1334 assertComponentException(e, ActionStatus.GENERAL_ERROR,
1335 ComponentTypeEnum.RESOURCE.getValue());
1340 public void testCreateInputsOnResourceWhenIsNotEmpty() {
1341 String key = "12345667";
1342 Resource resource = createParseResourceObject(true);
1343 List<InputDefinition> inputDefinitionList = new ArrayList<>();
1344 InputDefinition inputDefinition = new InputDefinition();
1345 inputDefinitionList.add(inputDefinition);
1346 resource.setInputs(inputDefinitionList);
1347 Map<String, InputDefinition> inputs = new HashMap<>();
1348 inputs.put(key, inputDefinition);
1351 bl.createInputsOnResource(resource, inputs);
1352 } catch (Exception e) {
1353 e.printStackTrace();
1358 public void testCreateInputsOnService() {
1359 Service service = createServiceObject(true);
1360 List<InputDefinition> resourceProperties = new ArrayList<>();
1361 InputDefinition inputDefinition = new InputDefinition();
1362 inputDefinition.setName("inputDefinitionName");
1363 service.setInputs(resourceProperties);
1364 Map<String, InputDefinition> inputs = new HashMap<>();
1365 InputDefinition inputDefinitionMap = new InputDefinition();
1366 inputDefinition.setName("inputDefinitionName");
1367 inputs.put("inputsMap", inputDefinitionMap);
1370 bl.createInputsOnService(service, inputs);
1371 } catch (Exception e) {
1372 e.printStackTrace();
1377 public void testCreateServiceTransaction() {
1378 Service service = createServiceObject(true);
1381 bl.createServiceTransaction(service, user, true);
1382 } catch (Exception e) {
1383 e.printStackTrace();
1388 public void testCreateArtifactsPlaceHolderData() {
1389 Service service = createServiceObject(true);
1392 bl.createArtifactsPlaceHolderData(service, user);
1393 } catch (Exception e) {
1394 e.printStackTrace();
1399 public void testSetInformationalArtifactsPlaceHolder() {
1400 Service service = createServiceObject(true);
1403 bl.setInformationalArtifactsPlaceHolder(service, user);
1404 } catch (Exception e) {
1405 e.printStackTrace();
1410 public void testValidateNestedDerivedFromDuringUpdate() {
1411 Resource currentResource = createParseResourceObject(true);
1412 Resource updateInfoResource = createParseResourceObject(true);
1413 String key = "2323456";
1415 List<String> currentDerivedFromList = new ArrayList<>();
1416 currentDerivedFromList.add(key);
1417 currentResource.setDerivedFrom(currentDerivedFromList);
1418 List<String> updatedDerivedFromList = new ArrayList<>();
1419 updatedDerivedFromList.add("23344567778");
1420 updateInfoResource.setDerivedFrom(updatedDerivedFromList);
1422 when(toscaOperationFacade.validateToscaResourceNameExtends(anyString(), anyString()))
1423 .thenReturn(Either.right(StorageOperationStatus.NOT_FOUND));
1426 bl.validateNestedDerivedFromDuringUpdate(currentResource, updateInfoResource, true);
1427 } catch (ComponentException e) {
1428 assertComponentException(e, ActionStatus.GENERAL_ERROR,
1429 ComponentTypeEnum.RESOURCE.getValue());
1434 public void testValidateDerivedFromExtending() {
1435 Resource currentResource = createParseResourceObject(true);
1436 Resource updateInfoResource = createParseResourceObject(true);
1438 when(toscaOperationFacade.validateToscaResourceNameExtends(anyString(), anyString()))
1439 .thenReturn(Either.left(false));
1441 bl.validateDerivedFromExtending(user, currentResource, updateInfoResource,
1442 AuditingActionEnum.IMPORT_RESOURCE);
1443 } catch (ComponentException e) {
1444 assertComponentException(e, ActionStatus.PARENT_RESOURCE_DOES_NOT_EXTEND,
1445 ComponentTypeEnum.RESOURCE.getValue());
1450 public void testValidateResourceFieldsBeforeUpdate() {
1451 Resource currentResource = createParseResourceObject(true);
1452 Resource updateInfoResource = createParseResourceObject(true);
1455 bl.validateResourceFieldsBeforeUpdate(currentResource, updateInfoResource, true, true);
1456 } catch (Exception e) {
1457 e.printStackTrace();
1462 public void testValidateResourceName() {
1463 Resource currentResource = createParseResourceObject(true);
1464 Resource updateInfoResource = createParseResourceObject(true);
1465 currentResource.setName("test1");
1466 updateInfoResource.setName("test2");
1469 bl.validateResourceName(currentResource, updateInfoResource, true, false);
1470 } catch (ComponentException e) {
1471 assertComponentException(e, ActionStatus.RESOURCE_NAME_CANNOT_BE_CHANGED,
1472 ComponentTypeEnum.RESOURCE.getValue());
1477 public void testIsResourceNameEquals() {
1478 Resource currentResource = createParseResourceObject(true);
1479 Resource updateInfoResource = createParseResourceObject(true);
1482 bl.isResourceNameEquals(currentResource, updateInfoResource);
1483 } catch (Exception e) {
1484 e.printStackTrace();
1489 public void testPrepareResourceForUpdate() {
1490 Resource oldResource = createParseResourceObject(true);
1491 Resource newResource = createParseResourceObject(true);
1494 bl.prepareResourceForUpdate(oldResource, newResource, user, true, true);
1495 } catch (Exception e) {
1496 e.printStackTrace();
1501 public void testFailOnChangeState() {
1502 ResponseFormat response = new ResponseFormat();
1503 Resource oldResource = createParseResourceObject(true);
1504 Resource newResource = createParseResourceObject(true);
1507 bl.failOnChangeState(response, user, oldResource, newResource);
1508 } catch (Exception e) {
1509 e.printStackTrace();
1514 public void testHandleResourceGenericType() {
1515 Resource resource = createParseResourceObject(true);
1518 bl.handleResourceGenericType(resource);
1519 } catch (Exception e) {
1520 e.printStackTrace();
1525 public void testUpdateOrCreateGroups() {
1526 Resource resource = createParseResourceObject(true);
1527 Map<String, GroupDefinition> groups = new HashMap<>();
1530 bl.updateOrCreateGroups(resource, groups);
1531 } catch (Exception e) {
1532 e.printStackTrace();
1537 public void testAddGroupsToCreateOrUpdate() {
1538 List<GroupDefinition> groupsFromResource = new ArrayList<>();
1539 GroupDefinition groupDefinition = new GroupDefinition();
1540 groupDefinition.setInvariantName("groupDefinitionName");
1541 groupsFromResource.add(groupDefinition);
1542 List<GroupDefinition> groupsAsList = new ArrayList<>();
1543 GroupDefinition groupNewDefinition = getGroupDefinition();
1544 groupsAsList.add(groupNewDefinition);
1545 List<GroupDefinition> groupsToUpdate = new ArrayList<>();
1546 List<GroupDefinition> groupsToCreate = new ArrayList<>();
1548 bl.addGroupsToCreateOrUpdate(groupsFromResource, groupsAsList, groupsToUpdate, groupsToCreate);
1552 public void testAddGroupsToDelete() {
1553 List<GroupDefinition> groupsFromResource = new ArrayList<>();
1554 GroupDefinition groupDefinition = new GroupDefinition();
1555 groupDefinition.setName("groupDefinitionName");
1556 groupsFromResource.add(groupDefinition);
1557 List<GroupDefinition> groupsAsList = new ArrayList<>();
1558 GroupDefinition groupNewDefinition = new GroupDefinition();
1559 groupNewDefinition.setName("groupNewDefinitionName");
1560 groupsAsList.add(groupNewDefinition);
1561 List<GroupDefinition> groupsToDelete = new ArrayList<>();
1563 bl.addGroupsToDelete(groupsFromResource, groupsAsList, groupsToDelete);
1567 public void testUpdateGroupsMembersUsingResource() {
1568 Service component = createServiceObject(true);
1569 Map<String, GroupDefinition> groups = new HashMap<>();
1570 GroupDefinition groupDefinition = getGroupDefinition();
1571 groupDefinition.setMembers(null);
1572 groups.put("groupsMap", groupDefinition);
1574 bl.updateGroupsMembersUsingResource(groups, component);
1578 public void testupdateGroupMembers() {
1579 Service component = createServiceObject(true);
1580 Map<String, GroupDefinition> groups = new HashMap<>();
1581 GroupDefinition updatedGroupDefinition = new GroupDefinition();
1582 List<ComponentInstance> componentInstances = new ArrayList<>();
1583 String groupName = "groupName";
1584 Map<String, String> members = new HashMap<>();
1587 bl.updateGroupMembers(groups, updatedGroupDefinition, component, componentInstances, groupName, members);
1588 } catch (ComponentException e) {
1589 e.printStackTrace();
1594 public void testupdateGroupMembersNotNull() {
1595 Service component = createServiceObject(true);
1596 Map<String, GroupDefinition> groups = getGroups();
1597 GroupDefinition updatedGroupDefinition = new GroupDefinition();
1598 List<ComponentInstance> componentInstances = new ArrayList<>();
1599 ComponentInstance componentInstance = new ComponentInstance();
1600 componentInstance.setName("componentInstanceName");
1601 componentInstance.setUniqueId("componentInstanceUniqueId");
1602 componentInstances.add(componentInstance);
1603 String groupName = "groupName";
1604 Map<String, String> members = new HashMap<>();
1605 members.put("members", "members");
1606 members.put("componentInstanceName", "members");
1609 bl.updateGroupMembers(groups, updatedGroupDefinition, component, componentInstances, groupName, members);
1610 } catch (ComponentException e) {
1611 e.printStackTrace();
1616 public void testValidateCyclicGroupsDependencies() {
1617 Service component = createServiceObject(true);
1618 Map<String, GroupDefinition> groups = new HashMap<>();
1619 String key = "098738485";
1620 GroupDefinition groupDefinition = new GroupDefinition();
1621 groups.put(key, groupDefinition);
1624 bl.validateCyclicGroupsDependencies(groups);
1625 } catch (ComponentException e) {
1626 assertComponentException(e, ActionStatus.GENERAL_ERROR,
1627 ComponentTypeEnum.RESOURCE.getValue());
1632 public void testFillAllGroupMemebersRecursivly() {
1633 Map<String, GroupDefinition> allGroups = new HashMap<>();
1634 Set<String> allGroupMembers = new HashSet<>();
1635 String groupName = "groupName";
1637 bl.fillAllGroupMemebersRecursivly(groupName, allGroups, allGroupMembers);
1641 public void testFillAllGroupMemebersRecursivlyAllGroups() {
1642 String groupName = "groupName";
1643 Map<String, GroupDefinition> allGroups = new HashMap<>();
1644 GroupDefinition groupDefinition = new GroupDefinition();
1645 Map<String, String> members = new HashMap<>();
1646 members.put("members", "members");
1647 groupDefinition.setMembers(members);
1648 allGroups.put(groupName, groupDefinition);
1649 allGroups.put("members", groupDefinition);
1650 Set<String> allGroupMembers = new HashSet<>();
1651 allGroupMembers.add("allGroupMembers");
1653 bl.fillAllGroupMemebersRecursivly(groupName, allGroups, allGroupMembers);
1657 public void testFillResourceMetadataForServiceFailure() {
1658 String yamlName = "yamlName";
1659 Service resourceVf = createServiceObject(true);
1660 String nodeName = "nodeName";
1663 bl.fillResourceMetadata(yamlName, resourceVf, nodeName, user);
1664 } catch (Exception e) {
1665 e.printStackTrace();
1670 public void testFillResourceMetadataForServiceWrongType() {
1671 String yamlName = "yamlName";
1672 Service resourceVf = createServiceObject(true);
1673 String nodeName = Constants.USER_DEFINED_RESOURCE_NAMESPACE_PREFIX + "nodeName";
1676 bl.fillResourceMetadata(yamlName, resourceVf, nodeName, user);
1677 } catch (ComponentException e) {
1678 e.printStackTrace();
1683 public void testFillResourceMetadataForServiceSuccess() {
1684 String yamlName = "yamlName";
1685 Service resourceVf = createServiceObject(true);
1686 String nodeName = Constants.USER_DEFINED_RESOURCE_NAMESPACE_PREFIX + "VFC";
1689 bl.fillResourceMetadata(yamlName, resourceVf, nodeName, user);
1690 } catch (ComponentException e) {
1691 assertComponentException(e, ActionStatus.INVALID_NODE_TEMPLATE,
1692 ComponentTypeEnum.RESOURCE.getValue());
1697 public void testpropagateStateToCertified() {
1698 String yamlName = "yamlName";
1699 Resource resource = createParseResourceObject(true);
1700 LifecycleChangeInfoWithAction lifecycleChangeInfo = new LifecycleChangeInfoWithAction();
1703 bl.propagateStateToCertified(user, resource, lifecycleChangeInfo, true, true, true);
1704 } catch (Exception e) {
1705 e.printStackTrace();
1710 public void testpropagateStateToCertifiedIsTrue() {
1711 String yamlName = "yamlName";
1712 Resource resource = createParseResourceObject(true);
1713 LifecycleChangeInfoWithAction lifecycleChangeInfo = new LifecycleChangeInfoWithAction();
1714 resource.setLifecycleState(LifecycleStateEnum.CERTIFIED);
1716 bl.propagateStateToCertified(user, resource, lifecycleChangeInfo, true, true, true);
1717 } catch (ComponentException e) {
1718 assertComponentException(e, ActionStatus.GENERAL_ERROR,
1719 ComponentTypeEnum.RESOURCE.getValue());
1724 public void testBuildValidComplexVfc2() {
1725 String nodeName = "org.openecomp.resource.derivedFrom.zxjTestImportServiceAb.test";
1726 Map<String, NodeTypeInfo> nodesInfo = new HashMap<>();
1727 NodeTypeInfo nodeTypeInfo = new NodeTypeInfo();
1728 List<String> derivedFrom = new ArrayList<>();
1729 derivedFrom.add("derivedFrom");
1730 nodeTypeInfo.setDerivedFrom(derivedFrom);
1731 nodesInfo.put(nodeName, nodeTypeInfo);
1734 bl.buildValidComplexVfc(getCsarInfo(), nodeName, nodesInfo);
1735 } catch (ComponentException e) {
1736 assertComponentException(e, ActionStatus.GENERAL_ERROR,
1737 ComponentTypeEnum.RESOURCE.getValue());
1742 public void testUpdateGroupsOnResourceEmptyGroups() {
1743 Resource resource = createParseResourceObject(true);
1744 Map<String, GroupDefinition> groups = new HashMap<>();
1747 bl.updateGroupsOnResource(resource, groups);
1748 } catch (ComponentException e) {
1749 assertComponentException(e, ActionStatus.GENERAL_ERROR,
1750 ComponentTypeEnum.RESOURCE.getValue());
1755 public void testSetInformationalArtifactsPlaceHolder2() {
1756 Resource resource = createParseResourceObject(true);
1759 bl.setInformationalArtifactsPlaceHolder(resource, user);
1760 } catch (Exception e) {
1761 e.printStackTrace();
1766 public void testRollback() {
1767 Resource resource = createParseResourceObject(true);
1768 List<ArtifactDefinition> createdArtifacts = new ArrayList<>();
1769 List<ArtifactDefinition> nodeTypesNewCreatedArtifacts = new ArrayList<>();
1772 bl.rollback(false, resource, createdArtifacts, nodeTypesNewCreatedArtifacts);
1773 } catch (Exception e) {
1774 e.printStackTrace();
1779 public void testRollback_NotNull() {
1780 Resource resource = createParseResourceObject(true);
1781 List<ArtifactDefinition> createdArtifacts = new ArrayList<>();
1782 ArtifactDefinition artifactDefinition = new ArtifactDefinition();
1783 artifactDefinition.setArtifactName("artifactName");
1784 createdArtifacts.add(artifactDefinition);
1785 List<ArtifactDefinition> nodeTypesNewCreatedArtifacts = new ArrayList<>();
1786 ArtifactDefinition artifactDefinition2 = new ArtifactDefinition();
1787 artifactDefinition2.setArtifactChecksum("artifactChecksum");
1788 nodeTypesNewCreatedArtifacts.add(artifactDefinition2);
1790 bl.rollback(true, resource, createdArtifacts, nodeTypesNewCreatedArtifacts);
1794 public void testCreateArtifactsPlaceHolderData2() {
1795 Resource resource = createParseResourceObject(true);
1798 bl.createArtifactsPlaceHolderData(resource, user);
1799 } catch (Exception e) {
1800 e.printStackTrace();
1805 public void testHandleGroupsProperties() {
1806 Service service = createServiceObject(true);
1807 Map<String, GroupDefinition> groups = getGroups();
1809 bl.handleGroupsProperties(service, groups);
1813 public void testHandleGroupsProperties2() {
1814 Resource resource = createParseResourceObject(true);
1815 Map<String, GroupDefinition> groups = getGroups();
1817 bl.handleGroupsProperties(resource, groups);
1821 public void testHandleGetInputs() {
1822 PropertyDataDefinition property = new PropertyDataDefinition();
1823 List<GetInputValueDataDefinition> getInputValues = new ArrayList<>();
1824 GetInputValueDataDefinition getInputValueDataDefinition = new GetInputValueDataDefinition();
1825 GetInputValueDataDefinition getInput = new GetInputValueDataDefinition();
1826 getInput.setInputId("inputId");
1827 getInput.setInputName("inputName");
1828 getInputValueDataDefinition.setInputName("inputName");
1829 getInputValueDataDefinition.setPropName("getInputValueDataDefinitionName");
1830 getInputValueDataDefinition.setGetInputIndex(getInputValueDataDefinition);
1831 getInputValues.add(getInputValueDataDefinition);
1832 property.setGetInputValues(getInputValues);
1833 List<InputDefinition> inputs = new ArrayList<>();
1834 InputDefinition inputDefinition = new InputDefinition();
1835 inputDefinition.setName("inputName");
1836 inputDefinition.setUniqueId("abc12345");
1837 inputs.add(inputDefinition);
1839 bl.handleGetInputs(property, inputs);
1843 public void testHandleGetInputs_null() {
1844 PropertyDataDefinition property = new PropertyDataDefinition();
1845 List<GetInputValueDataDefinition> getInputValues = new ArrayList<>();
1846 GetInputValueDataDefinition getInputValueDataDefinition = new GetInputValueDataDefinition();
1847 getInputValueDataDefinition.setInputName("inputName");
1848 getInputValueDataDefinition.setPropName("getInputValueDataDefinitionName");
1849 getInputValues.add(getInputValueDataDefinition);
1850 property.setGetInputValues(getInputValues);
1851 List<InputDefinition> inputs = new ArrayList<>();
1853 bl.handleGetInputs(property, inputs);
1854 } catch (Exception e) {
1855 e.printStackTrace();
1860 public void testFindInputByName() {
1861 GetInputValueDataDefinition getInput = new GetInputValueDataDefinition();
1862 getInput.setInputId("inputId");
1863 getInput.setInputName("inputName");
1864 List<InputDefinition> inputs = new ArrayList<>();
1865 InputDefinition inputDefinition = new InputDefinition();
1866 inputDefinition.setName("inputName");
1867 inputDefinition.setUniqueId("abc12345");
1868 inputs.add(inputDefinition);
1870 bl.findInputByName(inputs, getInput);
1874 public void testAssociateComponentInstancePropertiesToComponent() {
1875 String yamlName = "yamlName";
1876 Resource resource = createParseResourceObject(true);
1877 Map<String, List<ComponentInstanceProperty>> instProperties = new HashMap<>();
1879 bl.associateComponentInstancePropertiesToComponent(yamlName, resource, instProperties);
1880 } catch (ComponentException e) {
1881 assertComponentException(e, ActionStatus.GENERAL_ERROR,
1882 ComponentTypeEnum.RESOURCE.getValue());
1887 public void testAssociateComponentInstanceInputsToComponent() {
1888 String yamlName = "yamlName";
1889 Resource resource = createParseResourceObject(true);
1890 Map<String, List<ComponentInstanceInput>> instInputs = new HashMap<>();
1891 List<ComponentInstanceInput> componentInstanceInputList = new ArrayList<>();
1892 ComponentInstanceInput componentInstanceInput = new ComponentInstanceInput();
1893 componentInstanceInput.setName("componentInstanceInputName");
1894 componentInstanceInputList.add(componentInstanceInput);
1896 bl.associateComponentInstanceInputsToComponent(yamlName, resource, instInputs);
1900 public void testAssociateDeploymentArtifactsToInstances() {
1901 String yamlName = "yamlName";
1902 Resource resource = createParseResourceObject(true);
1903 Map<String, Map<String, ArtifactDefinition>> instDeploymentArtifacts = new HashMap<>();
1906 bl.associateDeploymentArtifactsToInstances(user, yamlName, resource, instDeploymentArtifacts);
1907 } catch (ComponentException e) {
1908 assertComponentException(e, ActionStatus.GENERAL_ERROR,
1909 ComponentTypeEnum.RESOURCE.getValue());
1914 public void testAssociateArtifactsToInstances() {
1915 String yamlName = "yamlName";
1916 Resource resource = createParseResourceObject(true);
1917 Map<String, Map<String, ArtifactDefinition>> instDeploymentArtifacts = new HashMap<>();
1920 bl.associateDeploymentArtifactsToInstances(user, yamlName, resource, instDeploymentArtifacts);
1921 } catch (ComponentException e) {
1922 assertComponentException(e, ActionStatus.GENERAL_ERROR,
1923 ComponentTypeEnum.RESOURCE.getValue());
1928 public void testAssociateArtifactsToInstances2() {
1929 String yamlName = "yamlName";
1930 Resource resource = createParseResourceObject(true);
1931 Map<String, Map<String, ArtifactDefinition>> instDeploymentArtifacts = new HashMap<>();
1934 bl.associateArtifactsToInstances(yamlName, resource, instDeploymentArtifacts);
1935 } catch (ComponentException e) {
1936 assertComponentException(e, ActionStatus.GENERAL_ERROR,
1937 ComponentTypeEnum.RESOURCE.getValue());
1942 public void testAssociateOrAddCalculatedCapReq() {
1943 String yamlName = "yamlName";
1944 Resource resource = createParseResourceObject(true);
1945 Map<ComponentInstance, Map<String, List<CapabilityDefinition>>> instCapabilities = new HashMap<>();
1946 Map<ComponentInstance, Map<String, List<RequirementDefinition>>> instRequirements = new HashMap<>();
1948 bl.associateOrAddCalculatedCapReq(yamlName, resource, instCapabilities, instRequirements);
1949 } catch (ComponentException e) {
1950 assertComponentException(e, ActionStatus.GENERAL_ERROR,
1951 ComponentTypeEnum.RESOURCE.getValue());
1956 public void testAssociateInstAttributeToComponentToInstances() {
1957 String yamlName = "yamlName";
1958 Resource resource = createParseResourceObject(true);
1959 Map<String, List<AttributeDefinition>> instAttributes = new HashMap<>();
1961 bl.associateInstAttributeToComponentToInstances(yamlName, resource, instAttributes);
1962 } catch (ComponentException e) {
1963 assertComponentException(e, ActionStatus.GENERAL_ERROR,
1964 ComponentTypeEnum.RESOURCE.getValue());
1969 public void testThrowComponentExceptionByResource() {
1970 StorageOperationStatus status = StorageOperationStatus.OK;
1971 Resource resource = createParseResourceObject(true);
1973 bl.throwComponentExceptionByResource(status, resource);
1974 } catch (ComponentException e) {
1975 assertComponentException(e, ActionStatus.OK,
1976 ComponentTypeEnum.RESOURCE.getValue());
1981 public void testGetResourceAfterCreateRelations() {
1982 Resource resource = createParseResourceObject(true);
1985 bl.getResourceAfterCreateRelations(resource);
1986 } catch (Exception e) {
1987 e.printStackTrace();
1992 public void testSetCapabilityNamesTypes() {
1993 Map<String, List<CapabilityDefinition>> originCapabilities = new HashMap<>();
1994 List<CapabilityDefinition> capabilityDefinitionList = new ArrayList<>();
1995 CapabilityDefinition capabilityDefinition = new CapabilityDefinition();
1996 capabilityDefinition.setName("Capability");
1997 capabilityDefinition.setType("Resource");
1998 capabilityDefinitionList.add(capabilityDefinition);
1999 originCapabilities.put("Capability", capabilityDefinitionList);
2000 Map<String, List<UploadCapInfo>> uploadedCapabilities = new HashMap<>();
2001 List<UploadCapInfo> uploadCapInfoList = new ArrayList<>();
2002 UploadCapInfo uploadCapInfo = new UploadCapInfo();
2003 uploadCapInfoList.add(uploadCapInfo);
2004 uploadedCapabilities.put("Capability", uploadCapInfoList);
2006 bl.setCapabilityNamesTypes(originCapabilities, uploadedCapabilities);
2010 public void testAssociateComponentInstanceInputsToComponent2() {
2011 String yamlName = "yamlName";
2012 Service service = createServiceObject(true);
2013 Map<String, List<ComponentInstanceInput>> instInputs = new HashMap<>();
2016 bl.associateComponentInstanceInputsToComponent(yamlName, service, instInputs);
2017 } catch (ComponentException e) {
2018 assertComponentException(e, ActionStatus.OK,
2019 ComponentTypeEnum.RESOURCE.getValue());
2024 public void testAssociateComponentInstancePropertiesToComponent2() {
2025 String yamlName = "yamlName";
2026 Service service = createServiceObject(true);
2027 Map<String, List<ComponentInstanceProperty>> instInputs = new HashMap<>();
2030 bl.associateComponentInstancePropertiesToComponent(yamlName, service, instInputs);
2031 } catch (Exception e) {
2032 e.printStackTrace();
2037 public void testAssociateDeploymentArtifactsToInstances2() {
2038 String yamlName = "yamlName";
2039 Service service = createServiceObject(true);
2040 Map<String, Map<String, ArtifactDefinition>> instDeploymentArtifacts = new HashMap<>();
2043 bl.associateDeploymentArtifactsToInstances(user, yamlName, service, instDeploymentArtifacts);
2044 } catch (ComponentException e) {
2045 assertComponentException(e, ActionStatus.GENERAL_ERROR,
2046 ComponentTypeEnum.RESOURCE.getValue());
2051 public void testAssociateArtifactsToInstances3() {
2052 String yamlName = "yamlName";
2053 Service service = createServiceObject(true);
2054 Map<String, Map<String, ArtifactDefinition>> instArtifacts = new HashMap<>();
2057 bl.associateArtifactsToInstances(yamlName, service, instArtifacts);
2058 } catch (ComponentException e) {
2059 assertComponentException(e, ActionStatus.GENERAL_ERROR,
2060 ComponentTypeEnum.RESOURCE.getValue());
2065 public void testAssociateOrAddCalculatedCapReq2() {
2066 String yamlName = "yamlName";
2067 Service resource = createServiceObject(true);
2068 Map<ComponentInstance, Map<String, List<CapabilityDefinition>>> instCapabilities = new HashMap<>();
2069 Map<ComponentInstance, Map<String, List<RequirementDefinition>>> instRequirements = new HashMap<>();
2071 bl.associateOrAddCalculatedCapReq(yamlName, resource, instCapabilities, instRequirements);
2072 } catch (ComponentException e) {
2073 assertComponentException(e, ActionStatus.GENERAL_ERROR,
2074 ComponentTypeEnum.RESOURCE.getValue());
2079 public void testAssociateInstAttributeToComponentToInstances2() {
2080 String yamlName = "yamlName";
2081 Service resource = createServiceObject(true);
2082 Map<String, List<AttributeDefinition>> instAttributes = new HashMap<>();
2084 bl.associateInstAttributeToComponentToInstances(yamlName, resource, instAttributes);
2085 } catch (ComponentException e) {
2086 assertComponentException(e, ActionStatus.GENERAL_ERROR,
2087 ComponentTypeEnum.RESOURCE.getValue());
2092 public void testAssociateRequirementsToService() {
2093 String yamlName = "yamlName";
2094 Service resource = createServiceObject(true);
2095 Map<String, ListRequirementDataDefinition> requirements = new HashMap<>();
2097 bl.associateRequirementsToService(yamlName, resource, requirements);
2098 } catch (ComponentException e) {
2099 assertComponentException(e, ActionStatus.GENERAL_ERROR,
2100 ComponentTypeEnum.RESOURCE.getValue());
2105 public void testAssociateCapabilitiesToService() {
2106 String yamlName = "yamlName";
2107 Service resource = createServiceObject(true);
2108 Map<String, ListCapabilityDataDefinition> capabilities = new HashMap<>();
2110 bl.associateCapabilitiesToService(yamlName, resource, capabilities);
2111 } catch (ComponentException e) {
2112 assertComponentException(e, ActionStatus.GENERAL_ERROR,
2113 ComponentTypeEnum.RESOURCE.getValue());
2118 public void testAssociateResourceInstances() {
2119 String yamlName = "yamlName";
2120 Service resource = createServiceObject(true);
2121 List<RequirementCapabilityRelDef> relations = new ArrayList<>();
2123 bl.associateResourceInstances(yamlName, resource, relations);
2124 } catch (Exception e) {
2125 e.printStackTrace();
2130 public void testAddCapabilities() {
2131 Map<String, List<CapabilityDefinition>> originCapabilities = new HashMap<>();
2132 String type = "type";
2133 List<CapabilityDefinition> capabilities = new ArrayList<>();
2135 bl.addCapabilities(originCapabilities, type, capabilities);
2139 public void testAddCapabilitiesProperties() {
2140 Map<String, Map<String, UploadPropInfo>> newPropertiesMap = new HashMap<>();
2141 List<UploadCapInfo> capabilities = new ArrayList<>();
2142 UploadCapInfo capability = new UploadCapInfo();
2143 List<UploadPropInfo> properties = new ArrayList<>();
2144 UploadPropInfo uploadPropInfo = new UploadPropInfo();
2145 uploadPropInfo.setName("uploadPropInfoName");
2146 properties.add(uploadPropInfo);
2147 capability.setProperties(properties);
2148 capability.setName("capabilityName");
2149 capabilities.add(capability);
2151 bl.addCapabilitiesProperties(newPropertiesMap, capabilities);
2155 public void testGetServiceWithGroups() {
2156 String resourceId = "resourceId";
2158 bl.getServiceWithGroups(resourceId);
2159 } catch (Exception e) {
2160 e.printStackTrace();
2165 public void testGetResourceWithGroups() {
2166 String resourceId = "resourceId";
2168 bl.getResourceWithGroups(resourceId);
2169 } catch (Exception e) {
2170 e.printStackTrace();
2175 public void testAssociateResourceInstances2() {
2176 String yamlName = "yamlName";
2177 Resource resource = createParseResourceObject(true);
2178 List<RequirementCapabilityRelDef> relations = new ArrayList<>();
2180 bl.associateResourceInstances(yamlName, resource, relations);
2181 } catch (Exception e) {
2182 e.printStackTrace();
2187 public void testAddRelationsToRI() {
2188 String yamlName = "yamlName";
2189 Resource resource = createParseResourceObject(true);
2190 Map<String, UploadComponentInstanceInfo> uploadResInstancesMap = new HashMap<>();
2191 UploadComponentInstanceInfo nodesInfoValue = getuploadComponentInstanceInfo();
2192 uploadResInstancesMap.put("uploadComponentInstanceInfo", nodesInfoValue);
2193 List<ComponentInstance> componentInstancesList = creatComponentInstances();
2194 List<RequirementCapabilityRelDef> relations = new ArrayList<>();
2196 bl.addRelationsToRI(yamlName, resource, uploadResInstancesMap, componentInstancesList, relations);
2197 } catch (Exception e) {
2198 e.printStackTrace();
2203 public void testAddRelationsToRI_null() {
2204 String yamlName = "group.yml";
2205 Resource resource = createParseResourceObject(true);
2206 Map<String, UploadComponentInstanceInfo> uploadResInstancesMap = new HashMap<>();
2207 UploadComponentInstanceInfo nodesInfoValue = getuploadComponentInstanceInfo();
2208 uploadResInstancesMap.put("uploadComponentInstanceInfo", nodesInfoValue);
2209 List<ComponentInstance> componentInstancesList = new ArrayList<>();
2210 List<RequirementCapabilityRelDef> relations = new ArrayList<>();
2213 bl.addRelationsToRI(yamlName, resource, uploadResInstancesMap, componentInstancesList,
2215 } catch (Exception e) {
2216 e.printStackTrace();
2221 public void testAddRelationToRI() {
2222 String yamlName = "yamlName";
2223 Resource resource = createParseResourceObject(true);
2224 resource.setComponentInstances(creatComponentInstances());
2225 UploadComponentInstanceInfo nodesInfoValue = getuploadComponentInstanceInfo();
2226 List<RequirementCapabilityRelDef> relations = new ArrayList<>();
2228 bl.addRelationToRI(yamlName, resource, nodesInfoValue, relations);
2232 public void testAddRelationToRI_null() {
2233 String yamlName = "yamlName.yml";
2234 Resource resource = createParseResourceObject(false);
2235 List<ComponentInstance> componentInstancesList = new ArrayList<>();
2236 resource.setComponentInstances(componentInstancesList);
2237 UploadComponentInstanceInfo nodesInfoValue = getuploadComponentInstanceInfo();
2238 List<RequirementCapabilityRelDef> relations = new ArrayList<>();
2240 bl.addRelationToRI(yamlName, resource, nodesInfoValue, relations);
2244 public void testFindVfcResource() {
2245 Service service = createServiceObject(true);
2246 String currVfcToscaName = "currVfcToscaName";
2247 String previousVfcToscaName = "previousVfcToscaName";
2248 UploadComponentInstanceInfo nodesInfoValue = new UploadComponentInstanceInfo();
2249 List<RequirementCapabilityRelDef> relations = new ArrayList<>();
2251 bl.findVfcResource(getCsarInfo(), service, currVfcToscaName, previousVfcToscaName,
2252 StorageOperationStatus.OK);
2253 } catch (ComponentException e) {
2254 assertComponentException(e, ActionStatus.OK,
2255 ComponentTypeEnum.RESOURCE.getValue());
2259 protected GroupDefinition getGroupDefinition() {
2260 GroupDefinition groupDefinition = new GroupDefinition();
2261 Map<String, String> members = new HashMap<>();
2262 members.put("members", "members");
2263 Map<String, List<CapabilityDefinition>> capabilities = new HashMap<>();
2264 List<PropertyDataDefinition> properties = new ArrayList<>();
2265 groupDefinition.setInvariantName("groupDefinitionName");
2266 groupDefinition.setMembers(members);
2267 groupDefinition.setProperties(properties);
2268 groupDefinition.setCapabilities(capabilities);
2269 return groupDefinition;
2272 protected Resource createParseResourceObject(boolean afterCreate) {
2273 Resource resource = new Resource();
2274 resource.setName(RESOURCE_NAME);
2275 resource.setToscaResourceName(RESOURCE_TOSCA_NAME);
2276 resource.addCategory(RESOURCE_CATEGORY1, RESOURCE_SUBCATEGORY);
2277 resource.setDescription("My short description");
2278 List<String> tgs = new ArrayList<>();
2280 tgs.add(resource.getName());
2281 resource.setTags(tgs);
2282 List<String> template = new ArrayList<>();
2283 template.add("tosca.nodes.Root");
2284 resource.setDerivedFrom(template);
2285 resource.setVendorName("Motorola");
2286 resource.setVendorRelease("1.0.0");
2287 resource.setContactId("ya5467");
2288 resource.setIcon("defaulticon");
2289 Map<String, List<RequirementDefinition>> requirements = new HashMap<>();
2290 List<RequirementDefinition> requirementDefinitionList = new ArrayList<>();
2291 requirements.put("test", requirementDefinitionList);
2292 resource.setRequirements(requirements);
2293 resource.setCost("cost");
2294 resource.setResourceVendorModelNumber("02312233");
2296 Map<String, ArtifactDefinition> artifacts = new HashMap<>();
2297 ArtifactDefinition artifactDefinition = new ArtifactDefinition();
2298 artifacts.put("artifact", artifactDefinition);
2299 resource.setArtifacts(artifacts);
2301 resource.setLicenseType("licType");
2304 resource.setName(resource.getName());
2305 resource.setVersion("0.1");
2306 resource.setUniqueId(resource.getName()
2307 .toLowerCase() + ":" + resource.getVersion());
2308 resource.setCreatorUserId(user.getUserId());
2309 resource.setCreatorFullName(user.getFirstName() + " " + user.getLastName());
2310 resource.setLifecycleState(LifecycleStateEnum.NOT_CERTIFIED_CHECKOUT);
2315 protected CsarInfo getCsarInfo() {
2316 String csarUuid = "0010";
2317 User user = new User();
2318 Map<String, byte[]> csar = new HashMap<>();
2319 String vfReousrceName = "resouceName";
2320 String mainTemplateName = "mainTemplateName";
2321 String mainTemplateContent = null;
2323 mainTemplateContent = loadFileNameToJsonString("service_import_template.yml");
2324 } catch (IOException e) {
2325 e.printStackTrace();
2327 CsarInfo csarInfo = new CsarInfo(user, csarUuid, csar, vfReousrceName, mainTemplateName, mainTemplateContent,
2332 public static String loadFileNameToJsonString(String fileName) throws IOException {
2333 String sourceDir = "src/test/resources/normativeTypes";
2334 return loadFileNameToJsonString(sourceDir, fileName);
2337 private static String loadFileNameToJsonString(String sourceDir, String fileName) throws IOException {
2338 java.nio.file.Path filePath = FileSystems.getDefault().getPath(sourceDir, fileName);
2339 byte[] fileContent = Files.readAllBytes(filePath);
2340 return new String(fileContent);
2343 protected Service createServiceObject(boolean afterCreate) {
2344 Service service = new Service();
2345 service.setUniqueId("sid");
2346 service.setName("Service");
2347 CategoryDefinition category = new CategoryDefinition();
2348 category.setName(SERVICE_CATEGORY);
2349 category.setIcons(Collections.singletonList("defaulticon"));
2350 List<CategoryDefinition> categories = new ArrayList<>();
2351 categories.add(category);
2352 service.setCategories(categories);
2353 service.setInstantiationType(INSTANTIATION_TYPE);
2355 service.setDescription("description");
2356 List<String> tgs = new ArrayList<>();
2357 tgs.add(service.getName());
2358 service.setTags(tgs);
2359 service.setIcon("defaulticon");
2360 service.setContactId("aa1234");
2361 service.setProjectCode("12345");
2362 service.setEcompGeneratedNaming(true);
2365 service.setVersion("0.1");
2366 service.setUniqueId(service.getName() + ":" + service.getVersion());
2367 service.setCreatorUserId(user.getUserId());
2368 service.setCreatorFullName(user.getFirstName() + " " + user.getLastName());
2373 protected void assertComponentException(ComponentException e, ActionStatus expectedStatus, String... variables) {
2374 ResponseFormat actualResponse = e.getResponseFormat() != null ?
2375 e.getResponseFormat() : componentsUtils.getResponseFormat(e.getActionStatus(), e.getParams());
2376 assertParseResponse(actualResponse, expectedStatus, variables);
2379 private void assertParseResponse(ResponseFormat actualResponse, ActionStatus expectedStatus, String... variables) {
2380 ResponseFormat expectedResponse = responseManager.getResponseFormat(expectedStatus, variables);
2381 assertThat(expectedResponse.getStatus()).isEqualTo(actualResponse.getStatus());
2382 assertThat(expectedResponse.getFormattedMessage()).isEqualTo(actualResponse.getFormattedMessage());