2 * Copyright (C) 2020 CMCC, Inc. and others. All rights reserved.
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
17 package org.openecomp.sdc.be.components.impl;
19 import static org.assertj.core.api.Java6Assertions.assertThat;
20 import static org.junit.jupiter.api.Assertions.assertEquals;
21 import static org.junit.jupiter.api.Assertions.assertNotNull;
22 import static org.mockito.Mockito.any;
23 import static org.mockito.Mockito.anyBoolean;
24 import static org.mockito.Mockito.anyList;
25 import static org.mockito.Mockito.anyMap;
26 import static org.mockito.Mockito.anyString;
27 import static org.mockito.Mockito.doNothing;
28 import static org.mockito.Mockito.eq;
29 import static org.mockito.Mockito.mock;
30 import static org.mockito.Mockito.when;
31 import static org.openecomp.sdc.be.components.impl.ServiceImportBusinessLogic.CREATE_RESOURCE;
33 import fj.data.Either;
34 import java.io.IOException;
35 import java.lang.reflect.InvocationTargetException;
36 import java.lang.reflect.Method;
37 import java.nio.file.FileSystems;
38 import java.nio.file.Files;
39 import java.nio.file.Path;
40 import java.nio.file.Paths;
41 import java.util.ArrayList;
42 import java.util.EnumMap;
43 import java.util.HashMap;
44 import java.util.List;
47 import org.apache.commons.codec.binary.Base64;
48 import org.apache.commons.collections.map.HashedMap;
49 import org.apache.commons.lang3.tuple.ImmutablePair;
50 import org.junit.jupiter.api.Assertions;
51 import org.junit.jupiter.api.BeforeEach;
52 import org.junit.jupiter.api.Test;
53 import org.mockito.InjectMocks;
54 import org.mockito.MockitoAnnotations;
55 import org.openecomp.sdc.be.components.csar.CsarInfo;
56 import org.openecomp.sdc.be.components.impl.artifact.ArtifactOperationInfo;
57 import org.openecomp.sdc.be.components.impl.exceptions.ComponentException;
58 import org.openecomp.sdc.be.components.impl.utils.CreateServiceFromYamlParameter;
59 import org.openecomp.sdc.be.dao.api.ActionStatus;
60 import org.openecomp.sdc.be.dao.janusgraph.JanusGraphOperationStatus;
61 import org.openecomp.sdc.be.datatypes.components.ResourceMetadataDataDefinition;
62 import org.openecomp.sdc.be.datatypes.elements.GetInputValueDataDefinition;
63 import org.openecomp.sdc.be.datatypes.enums.ComponentTypeEnum;
64 import org.openecomp.sdc.be.datatypes.enums.NodeTypeEnum;
65 import org.openecomp.sdc.be.datatypes.enums.ResourceTypeEnum;
66 import org.openecomp.sdc.be.externalapi.servlet.ArtifactExternalServlet;
67 import org.openecomp.sdc.be.impl.ServletUtils;
68 import org.openecomp.sdc.be.info.NodeTypeInfoToUpdateArtifacts;
69 import org.openecomp.sdc.be.model.ArtifactDefinition;
70 import org.openecomp.sdc.be.model.AttributeDefinition;
71 import org.openecomp.sdc.be.model.CapabilityDefinition;
72 import org.openecomp.sdc.be.model.Component;
73 import org.openecomp.sdc.be.model.ComponentInstance;
74 import org.openecomp.sdc.be.model.ComponentInstanceInput;
75 import org.openecomp.sdc.be.model.ComponentInstanceProperty;
76 import org.openecomp.sdc.be.model.ComponentMetadataDefinition;
77 import org.openecomp.sdc.be.model.ComponentParametersView;
78 import org.openecomp.sdc.be.model.DataTypeDefinition;
79 import org.openecomp.sdc.be.model.GroupDefinition;
80 import org.openecomp.sdc.be.model.IPropertyInputCommon;
81 import org.openecomp.sdc.be.model.InputDefinition;
82 import org.openecomp.sdc.be.model.InterfaceDefinition;
83 import org.openecomp.sdc.be.model.LifecycleStateEnum;
84 import org.openecomp.sdc.be.model.NodeTypeInfo;
85 import org.openecomp.sdc.be.model.Operation;
86 import org.openecomp.sdc.be.model.ParsedToscaYamlInfo;
87 import org.openecomp.sdc.be.model.PolicyDefinition;
88 import org.openecomp.sdc.be.model.PropertyDefinition;
89 import org.openecomp.sdc.be.model.RequirementCapabilityRelDef;
90 import org.openecomp.sdc.be.model.RequirementDefinition;
91 import org.openecomp.sdc.be.model.Resource;
92 import org.openecomp.sdc.be.model.Service;
93 import org.openecomp.sdc.be.model.UploadComponentInstanceInfo;
94 import org.openecomp.sdc.be.model.UploadNodeFilterInfo;
95 import org.openecomp.sdc.be.model.UploadPropInfo;
96 import org.openecomp.sdc.be.model.UploadReqInfo;
97 import org.openecomp.sdc.be.model.UploadResourceInfo;
98 import org.openecomp.sdc.be.model.User;
99 import org.openecomp.sdc.be.model.operations.api.ICapabilityTypeOperation;
100 import org.openecomp.sdc.be.model.operations.api.StorageOperationStatus;
101 import org.openecomp.sdc.be.resources.data.auditing.AuditingActionEnum;
102 import org.openecomp.sdc.be.servlets.AbstractValidationsServlet;
103 import org.openecomp.sdc.be.tosca.CsarUtils;
104 import org.openecomp.sdc.common.api.ArtifactGroupTypeEnum;
105 import org.openecomp.sdc.common.api.ArtifactTypeEnum;
106 import org.openecomp.sdc.common.api.Constants;
107 import org.openecomp.sdc.exception.ResponseFormat;
109 class ServiceImportBusinessLogicTest extends ServiceImportBussinessLogicBaseTestSetup {
111 private static final String DEFAULT_ICON = "defaulticon";
113 private final ArtifactDefinition artifactDefinition = mock(ArtifactDefinition.class);
114 private final ResourceImportManager resourceImportManager = mock(ResourceImportManager.class);
115 private final ServletUtils servletUtils = mock(ServletUtils.class);
116 private final AbstractValidationsServlet servlet = new ArtifactExternalServlet(userBusinessLogic,
117 componentInstanceBusinessLogic, componentsUtils, servletUtils, resourceImportManager, artifactsBusinessLogic);
119 private ServiceImportBusinessLogic sIBL;
121 public static String loadFileNameToJsonString(String fileName) throws IOException {
122 String sourceDir = "src/test/resources/normativeTypes";
123 return loadFileNameToJsonString(sourceDir, fileName);
126 private static String loadFileNameToJsonString(String sourceDir, String fileName) throws IOException {
127 java.nio.file.Path filePath = FileSystems.getDefault().getPath(sourceDir, fileName);
128 byte[] fileContent = Files.readAllBytes(filePath);
129 return new String(fileContent);
134 MockitoAnnotations.openMocks(this);
135 when(artifactDefinition.getMandatory()).thenReturn(true);
136 when(artifactDefinition.getArtifactName()).thenReturn("creatorFullName");
137 when(artifactDefinition.getArtifactType()).thenReturn("TOSCA_CSAR");
141 void testCreateService_OK() {
142 Service oldService = createServiceObject(true);
143 String payloadName = "valid_vf";
144 Map<String, byte[]> payload = crateCsarFromPayload();
145 Service newService = createServiceObject(true);
146 newService.setComponentInstances(creatComponentInstances());
148 when(serviceBusinessLogic.validateServiceBeforeCreate(eq(newService), any(User.class), any(AuditingActionEnum.class)))
149 .thenReturn(Either.left(newService));
150 when(toscaOperationFacade.validateCsarUuidUniqueness(anyString())).thenReturn(StorageOperationStatus.OK);
151 CsarInfo csarInfo = getCsarInfo();
152 when(csarBusinessLogic.getCsarInfo(any(Service.class), any(), any(User.class), any(Map.class), anyString())).thenReturn(csarInfo);
153 when(serviceImportParseLogic.findNodeTypesArtifactsToHandle(any(Map.class), any(CsarInfo.class), any(Service.class)))
154 .thenReturn(Either.left(new HashMap<String, EnumMap<ArtifactsBusinessLogic.ArtifactOperationEnum, List<ArtifactDefinition>>>()));
155 when(csarBusinessLogic.getParsedToscaYamlInfo(anyString(), anyString(), any(), any(CsarInfo.class), any(), any(Service.class)))
156 .thenReturn(getParsedToscaYamlInfo());
157 when(serviceBusinessLogic.lockComponentByName(newService.getSystemName(), oldService, CREATE_RESOURCE)).thenReturn(Either.left(true));
158 when(toscaOperationFacade.getLatestResourceByToscaResourceName(anyString())).thenReturn(Either.left(createOldResource()));
159 when(serviceImportParseLogic.createServiceTransaction(oldService, csarInfo.getModifier(), false)).thenReturn(newService);
160 when(serviceImportParseLogic.createInputsOnService(eq(oldService), anyMap())).thenReturn(newService);
161 Assertions.assertDoesNotThrow(() -> {
162 when(serviceImportParseLogic.createSubstitutionFilterOnService(eq(oldService), any())).thenReturn(newService);
164 when(serviceImportParseLogic.getNodeTypesFromTemplate(anyMap())).thenReturn(getNodeTypes());
165 when(serviceImportParseLogic.createNodeTypeResourceFromYaml(anyString(), any(Map.Entry.class), any(User.class), anyMap(), any(Service.class),
166 anyBoolean(), any(), anyList(), anyBoolean(), any(CsarInfo.class), anyBoolean())).thenReturn(
167 new ImmutablePair<>(new Resource(), ActionStatus.OK));
168 when(serviceImportParseLogic.getComponentWithInstancesFilter()).thenReturn(new ComponentParametersView());
169 when(toscaOperationFacade.getToscaElement(anyString(), any(ComponentParametersView.class))).thenReturn(Either.left(newService));
170 when(serviceImportParseLogic.getComponentFilterAfterCreateRelations()).thenReturn(new ComponentParametersView());
171 when(toscaOperationFacade.getToscaElement(anyString(), any(ComponentParametersView.class))).thenReturn(Either.left(newService));
172 when(serviceImportParseLogic.findAvailableRequirement(anyString(), anyString(), any(UploadComponentInstanceInfo.class),
173 any(ComponentInstance.class), anyString())).thenReturn(Either.left(new RequirementDefinition()));
174 when(serviceImportParseLogic.findAvailableCapabilityByTypeOrName(any(RequirementDefinition.class), any(ComponentInstance.class),
175 any(UploadReqInfo.class))).thenReturn(new CapabilityDefinition());
176 when(componentsUtils.getResponseFormat(eq(ActionStatus.OK), anyString())).thenReturn(new ResponseFormat(200));
177 when(toscaOperationFacade.getToscaElement(anyString())).thenReturn(Either.left(newService));
178 doNothing().when(compositionBusinessLogic).setPositionsForComponentInstances(any(Service.class), anyString());
179 when(groupBusinessLogic.validateUpdateVfGroupNames(anyMap(), anyString())).thenReturn(Either.left(new HashMap<>()));
180 when(csarArtifactsAndGroupsBusinessLogic.deleteVFModules(any(Service.class), any(CsarInfo.class), anyBoolean(), anyBoolean()))
181 .thenReturn(Either.left(newService));
182 when(serviceImportParseLogic.getServiceWithGroups(anyString())).thenReturn(newService);
183 when(mockJanusGraphDao.commit()).thenReturn(JanusGraphOperationStatus.OK);
184 when(graphLockOperation.unlockComponentByName(anyString(), anyString(), any(NodeTypeEnum.class))).thenReturn(StorageOperationStatus.OK);
185 when(serviceImportParseLogic.createOutputsOnService(any(Service.class), any(), anyString())).thenReturn(newService);
187 Service result = sIBL.createService(oldService, AuditingActionEnum.CREATE_RESOURCE, user, payload, payloadName);
188 assertNotNull(result);
189 assertNotNull(result.getComponentInstances());
190 assertEquals(1, result.getComponentInstances().size());
191 assertNotNull(result.getComponentInstances().get(0));
192 assertNotNull(result.getComponentInstances().get(0).getCapabilities());
193 assertEquals(1, result.getComponentInstances().get(0).getCapabilities().size());
194 assertNotNull(result.getComponentInstances().get(0).getRequirements());
195 assertEquals(1, result.getComponentInstances().get(0).getRequirements().size());
196 assertNotNull(result.getCategories());
197 assertEquals(1, result.getCategories().size());
201 void testCreateService_Fail_NotFoundNodeTypesArtifacts() {
202 Service oldService = createServiceObject(true);
203 String payloadName = "valid_vf";
204 Map<String, byte[]> payload = crateCsarFromPayload();
205 Service newService = createServiceObject(true);
207 when(serviceBusinessLogic.validateServiceBeforeCreate(any(Service.class), any(User.class), any(AuditingActionEnum.class)))
208 .thenReturn(Either.left(newService));
209 when(toscaOperationFacade.validateCsarUuidUniqueness(anyString())).thenReturn(StorageOperationStatus.OK);
210 when(csarBusinessLogic.getCsarInfo(any(Service.class), any(), any(User.class), any(Map.class), anyString())).thenReturn(getCsarInfo());
211 when(serviceImportParseLogic.findNodeTypesArtifactsToHandle(any(Map.class), any(CsarInfo.class), any(Service.class)))
212 .thenReturn(Either.right(ActionStatus.GENERAL_ERROR));
213 when(csarBusinessLogic.getParsedToscaYamlInfo(anyString(), anyString(), any(), any(CsarInfo.class), anyString(),
214 any(Service.class))).thenReturn(getParsedToscaYamlInfo());
216 Assertions.assertThrows(ComponentException.class,
217 () -> sIBL.createService(oldService, AuditingActionEnum.CREATE_RESOURCE, user, payload, payloadName));
221 void testCreateServiceFromCsar() {
222 Service oldService = createServiceObject(true);
223 String csarUUID = "valid_vf";
224 Map<String, byte[]> payload = crateCsarFromPayload();
225 CsarInfo csarInfo = getCsarInfo();
226 Map<String, EnumMap<ArtifactsBusinessLogic.ArtifactOperationEnum, List<ArtifactDefinition>>> map =
229 when(csarBusinessLogic.getCsarInfo(any(Service.class), any(), any(User.class),
230 any(Map.class), anyString())).thenReturn(csarInfo);
231 when(serviceImportParseLogic.findNodeTypesArtifactsToHandle(any(Map.class), any(CsarInfo.class),
232 any(Service.class))).thenReturn(Either.left(map));
233 Assertions.assertThrows(ComponentException.class, () -> sIBL.createServiceFromCsar(oldService,
234 user, payload, csarUUID));
238 void testCreateServiceFromYaml() {
239 Service oldService = createServiceObject(true);
240 Resource resource = createOldResource();
241 String topologyTemplateYaml = getMainTemplateContent("service_import_template.yml");
242 String yamlName = "group.yml";
243 CsarInfo csarInfo = getCsarInfo();
244 Map<String, EnumMap<ArtifactsBusinessLogic.ArtifactOperationEnum, List<ArtifactDefinition>>> nodeTypesArtifactsToCreate = new HashMap<>();
245 String nodeName = "org.openecomp.resource.derivedFrom.zxjTestImportServiceAb.test";
247 Map<String, NodeTypeInfo> nodeTypesInfo = getNodeTypesInfo();
248 Map<String, Object> map = new HashMap<>();
249 map.put("tosca_definitions_version", "123");
250 nodeTypesInfo.get(nodeName).setMappedToscaTemplate(map);
251 ParsedToscaYamlInfo parsedToscaYamlInfo = getParsedToscaYamlInfo();
252 when(toscaOperationFacade.getLatestResourceByToscaResourceName(anyString())).thenReturn(Either.left(resource));
253 when(csarBusinessLogic.getParsedToscaYamlInfo(anyString(), anyString(), any(Map.class),
254 eq(csarInfo), anyString(), any(Component.class))).thenReturn(parsedToscaYamlInfo);
255 when(serviceBusinessLogic.lockComponentByName(anyString(), any(Service.class), anyString()))
256 .thenReturn(Either.left(true));
258 Assertions.assertThrows(ComponentException.class, () -> sIBL.createServiceFromYaml(oldService,
259 topologyTemplateYaml, yamlName, nodeTypesInfo, csarInfo,
260 nodeTypesArtifactsToCreate, false, true, nodeName, user.getUserId()));
264 void testCreateServiceAndRIsFromYaml() {
265 String nodeName = "org.openecomp.resource.derivedFrom.zxjTestImportServiceAb.test";
266 Service oldService = createServiceObject(true);
267 Resource resource = createOldResource();
268 Map<String, EnumMap<ArtifactsBusinessLogic.ArtifactOperationEnum, List<ArtifactDefinition>>> nodeTypesArtifactsToCreate = new HashMap<>();
269 CreateServiceFromYamlParameter csfyp = getCsfyp();
270 Map<String, NodeTypeInfo> nodeTypesInfo = getNodeTypesInfo();
271 Map<String, Object> map = new HashMap<>();
272 map.put("tosca_definitions_version", "123");
273 nodeTypesInfo.get(nodeName).setMappedToscaTemplate(map);
274 ParsedToscaYamlInfo parsedToscaYamlInfo = getParsedToscaYamlInfo();
275 csfyp.setNodeTypesInfo(nodeTypesInfo);
276 csfyp.setParsedToscaYamlInfo(parsedToscaYamlInfo);
277 when(toscaOperationFacade.getLatestResourceByToscaResourceName(anyString())).thenReturn(Either.left(resource));
278 Assertions.assertThrows(ComponentException.class, () -> sIBL.createServiceAndRIsFromYaml(oldService,
279 false, nodeTypesArtifactsToCreate, false, true, csfyp, user.getUserId()));
283 void testCreateServiceAndRIsFromYamlShoudLook() {
284 String nodeName = "org.openecomp.resource.derivedFrom.zxjTestImportServiceAb.test";
285 Service oldService = createServiceObject(true);
286 Resource resource = createOldResource();
287 Map<String, EnumMap<ArtifactsBusinessLogic.ArtifactOperationEnum, List<ArtifactDefinition>>> nodeTypesArtifactsToCreate = new HashMap<>();
288 CreateServiceFromYamlParameter csfyp = getCsfyp();
289 Map<String, NodeTypeInfo> nodeTypesInfo = getNodeTypesInfo();
290 Map<String, Object> map = new HashMap<>();
291 map.put("tosca_definitions_version", "123");
292 nodeTypesInfo.get(nodeName).setMappedToscaTemplate(map);
293 ParsedToscaYamlInfo parsedToscaYamlInfo = getParsedToscaYamlInfo();
294 csfyp.setNodeTypesInfo(nodeTypesInfo);
295 csfyp.setParsedToscaYamlInfo(parsedToscaYamlInfo);
296 when(toscaOperationFacade.getLatestResourceByToscaResourceName(anyString())).thenReturn(Either.left(resource));
297 Assertions.assertThrows(ComponentException.class, () -> sIBL.createServiceAndRIsFromYaml(oldService,
298 false, nodeTypesArtifactsToCreate, false, true, csfyp, user.getUserId()));
302 void testCreateOrUpdateArtifacts() {
303 ArtifactsBusinessLogic.ArtifactOperationEnum operation = ArtifactsBusinessLogic.ArtifactOperationEnum.UPDATE;
304 List<ArtifactDefinition> createdArtifacts = new ArrayList<>();
305 String yamlFileName = "group.yml";
306 CsarInfo csarInfo = getCsarInfo();
307 Resource preparedResource = createParseResourceObject(false);
308 preparedResource.setResourceType(ResourceTypeEnum.VF);
309 String nodeName = "org.openecomp.resource.derivedFrom.zxjTestImportServiceAb.test";
310 Map<String, EnumMap<ArtifactsBusinessLogic.ArtifactOperationEnum, List<ArtifactDefinition>>> nodeTypesArtifactsToHandle = new HashMap<>();
311 EnumMap<ArtifactsBusinessLogic.ArtifactOperationEnum, List<ArtifactDefinition>> enumListEnumMap =
312 new EnumMap<>(ArtifactsBusinessLogic.ArtifactOperationEnum.class);
313 List<ArtifactDefinition> artifactDefinitions = new ArrayList<>();
314 ArtifactDefinition artifactDefinition = new ArtifactDefinition();
315 artifactDefinition.setArtifactName("artifactName");
316 artifactDefinitions.add(artifactDefinition);
317 enumListEnumMap.put(ArtifactsBusinessLogic.ArtifactOperationEnum.CREATE,
318 artifactDefinitions);
319 nodeTypesArtifactsToHandle.put(nodeName, enumListEnumMap);
320 NodeTypeInfoToUpdateArtifacts nodeTypeInfoToUpdateArtifacts = new NodeTypeInfoToUpdateArtifacts(nodeName, nodeTypesArtifactsToHandle);
321 nodeTypeInfoToUpdateArtifacts.setNodeName(nodeName);
322 nodeTypeInfoToUpdateArtifacts.setNodeTypesArtifactsToHandle(nodeTypesArtifactsToHandle);
324 Assertions.assertNotNull(
325 sIBL.createOrUpdateArtifacts(operation, createdArtifacts, yamlFileName, csarInfo,
326 preparedResource, nodeTypeInfoToUpdateArtifacts, true, true)
331 void testHandleVfCsarArtifacts() {
332 Resource resource = createParseResourceObject(true);
333 Map<String, ArtifactDefinition> deploymentArtifacts = new HashMap<>();
334 ArtifactDefinition artifactDefinition = new ArtifactDefinition();
335 artifactDefinition.setArtifactName(Constants.VENDOR_LICENSE_MODEL);
336 artifactDefinition.setUniqueId("uniqueId");
337 deploymentArtifacts.put("deploymentArtifacts", artifactDefinition);
338 resource.setDeploymentArtifacts(deploymentArtifacts);
339 CsarInfo csarInfo = getCsarInfo();
340 Map<String, byte[]> csar = new HashMap<>();
341 String csarKey = CsarUtils.ARTIFACTS_PATH + "HEAT.meta";
342 byte[] artifactsMetaBytes = "src/test/resources/normativeTypes/valid_vf.csar".getBytes();
343 csar.put(csarKey, artifactsMetaBytes);
344 csarInfo.setCsar(csar);
345 List<ArtifactDefinition> createdArtifacts = new ArrayList<>();
346 ArtifactOperationInfo artifactOperation = new ArtifactOperationInfo(true, true, ArtifactsBusinessLogic.ArtifactOperationEnum.CREATE);
347 when(toscaOperationFacade.getToscaElement(anyString())).thenReturn(Either.left(resource));
348 when(csarArtifactsAndGroupsBusinessLogic
349 .createResourceArtifactsFromCsar(any(CsarInfo.class), any(Resource.class), anyString(), anyString(),
350 anyList())).thenReturn(Either.left(resource));
351 Assertions.assertNotNull(
352 sIBL.handleVfCsarArtifacts(resource,
353 csarInfo, createdArtifacts, artifactOperation, true, true));
357 void testHandleVfCsarArtifactsGetToscaElement() {
358 Resource resource = createParseResourceObject(true);
359 Map<String, ArtifactDefinition> deploymentArtifacts = new HashMap<>();
360 ArtifactDefinition artifactDefinition = new ArtifactDefinition();
361 artifactDefinition.setArtifactName(Constants.VENDOR_LICENSE_MODEL);
362 artifactDefinition.setUniqueId("uniqueId");
363 deploymentArtifacts.put("deploymentArtifacts", artifactDefinition);
364 resource.setDeploymentArtifacts(deploymentArtifacts);
365 CsarInfo csarInfo = getCsarInfo();
366 Map<String, byte[]> csar = new HashMap<>();
367 String csarKey = CsarUtils.ARTIFACTS_PATH + "HEAT.meta";
368 byte[] artifactsMetaBytes = "src/test/resources/normativeTypes/valid_vf.csar".getBytes();
369 csar.put(csarKey, artifactsMetaBytes);
370 csarInfo.setCsar(csar);
371 List<ArtifactDefinition> createdArtifacts = new ArrayList<>();
372 ArtifactOperationInfo artifactOperation = new ArtifactOperationInfo(true, true, ArtifactsBusinessLogic.ArtifactOperationEnum.CREATE);
373 when(toscaOperationFacade.getToscaElement(anyString())).thenReturn(Either.left(resource));
374 when(csarArtifactsAndGroupsBusinessLogic
375 .createResourceArtifactsFromCsar(any(CsarInfo.class), any(Resource.class), anyString(), anyString(),
376 anyList())).thenReturn(Either.left(resource));
377 Assertions.assertNotNull(
378 sIBL.handleVfCsarArtifacts(resource,
379 csarInfo, createdArtifacts, artifactOperation, true, true));
383 void testCreateOrUpdateSingleNonMetaArtifactToComstants() {
384 Resource resource = createParseResourceObject(false);
385 CsarInfo csarInfo = getCsarInfo();
386 ArtifactOperationInfo artifactOperation = new ArtifactOperationInfo(true, true, ArtifactsBusinessLogic.ArtifactOperationEnum.UPDATE);
387 Map<String, ArtifactDefinition> deploymentArtifacts = new HashMap<>();
388 ArtifactDefinition artifactDefinition = new ArtifactDefinition();
389 artifactDefinition.setArtifactName("artifactDefinition");
390 deploymentArtifacts.put("deploymentArtifacts", artifactDefinition);
391 resource.setDeploymentArtifacts(deploymentArtifacts);
392 Assertions.assertNotNull(resource);
393 Assertions.assertNotNull(csarInfo);
394 sIBL.createOrUpdateSingleNonMetaArtifactToComstants(resource, csarInfo, artifactOperation, true, true);
399 void testCreateOrUpdateNonMetaArtifacts() {
400 CsarInfo csarInfo = getCsarInfo();
401 Resource resource = createParseResourceObject(false);
402 List<ArtifactDefinition> createdArtifacts = new ArrayList<>();
403 ArtifactOperationInfo artifactOperation = new ArtifactOperationInfo(true, true, ArtifactsBusinessLogic.ArtifactOperationEnum.UPDATE);
405 Either<Resource, ResponseFormat> result = sIBL.createOrUpdateNonMetaArtifacts(csarInfo, resource,
406 createdArtifacts, true, true, artifactOperation);
407 assertEquals(result.left().value(), resource);
411 void testFindVfCsarArtifactsToHandle() {
412 Resource resource = createParseResourceObject(false);
413 Map<String, ArtifactDefinition> deploymentArtifacts = new HashMap<>();
414 ArtifactDefinition artifactDefinition = new ArtifactDefinition();
415 artifactDefinition.setArtifactName("artifactDefinition");
416 deploymentArtifacts.put("deploymentArtifacts", artifactDefinition);
417 Map<String, ArtifactDefinition> artifacts = new HashMap<>();
418 artifacts.put("artifacts", artifactDefinition);
419 List<GroupDefinition> groups = new ArrayList<>();
420 GroupDefinition groupDefinition = new GroupDefinition();
421 groupDefinition.setUniqueId("groupDefinitionUniqueId");
422 groupDefinition.setName("groupDefinition");
423 groups.add(groupDefinition);
424 resource.setDeploymentArtifacts(deploymentArtifacts);
425 resource.setArtifacts(artifacts);
426 resource.setGroups(groups);
427 List<CsarUtils.NonMetaArtifactInfo> artifactPathAndNameList = new ArrayList<>();
429 Either<EnumMap<ArtifactsBusinessLogic.ArtifactOperationEnum, List<CsarUtils.NonMetaArtifactInfo>>,
430 ResponseFormat> result = sIBL.findVfCsarArtifactsToHandle(resource, artifactPathAndNameList, user);
431 assertNotNull(result.left().value());
435 void testOrganizeVfCsarArtifactsByArtifactOperation() {
436 List<CsarUtils.NonMetaArtifactInfo> artifactPathAndNameList = new ArrayList<>();
437 artifactPathAndNameList.add(getNonMetaArtifactInfo());
438 List<ArtifactDefinition> existingArtifactsToHandle = new ArrayList<>();
439 ArtifactDefinition artifactDefinition = new ArtifactDefinition();
440 artifactDefinition.setArtifactName("artifactName");
441 artifactDefinition.setArtifactType(ArtifactTypeEnum.AAI_SERVICE_MODEL.name());
442 artifactDefinition.setArtifactChecksum("artifactChecksum");
443 existingArtifactsToHandle.add(artifactDefinition);
444 Resource resource = createParseResourceObject(false);
446 Either<EnumMap<ArtifactsBusinessLogic.ArtifactOperationEnum, List<CsarUtils.NonMetaArtifactInfo>>, ResponseFormat>
447 enumMapResponseFormatEither = sIBL.organizeVfCsarArtifactsByArtifactOperation(artifactPathAndNameList,
448 existingArtifactsToHandle,
450 assertNotNull(enumMapResponseFormatEither.left().value());
454 void testOrganizeVfCsarArtifactsByArtifactOperationElse() {
455 List<CsarUtils.NonMetaArtifactInfo> artifactPathAndNameList = new ArrayList<>();
456 artifactPathAndNameList.add(getNonMetaArtifactInfo());
457 List<ArtifactDefinition> existingArtifactsToHandle = new ArrayList<>();
458 ArtifactDefinition artifactDefinition = new ArtifactDefinition();
459 artifactDefinition.setArtifactName("artifactName");
460 artifactDefinition.setArtifactType(ArtifactTypeEnum.AAI_VF_MODEL.name());
461 artifactDefinition.setArtifactChecksum("artifactChecksum");
462 existingArtifactsToHandle.add(artifactDefinition);
463 Resource resource = createParseResourceObject(false);
464 Assertions.assertNotNull(
465 sIBL.organizeVfCsarArtifactsByArtifactOperation(artifactPathAndNameList, existingArtifactsToHandle, resource,
470 void testProcessCsarArtifacts() {
471 CsarInfo csarInfo = getCsarInfo();
472 Resource resource = createParseResourceObject(false);
473 List<ArtifactDefinition> createdArtifacts = new ArrayList<>();
474 Either<Resource, ResponseFormat> resStatus = Either.left(resource);
475 List<CsarUtils.NonMetaArtifactInfo> artifactPathAndNameList = new ArrayList<>();
476 artifactPathAndNameList.add(getNonMetaArtifactInfo());
477 EnumMap<ArtifactsBusinessLogic.ArtifactOperationEnum, List<CsarUtils.NonMetaArtifactInfo>> vfCsarArtifactsToHandle = new
478 EnumMap<>(ArtifactsBusinessLogic.ArtifactOperationEnum.class);
479 vfCsarArtifactsToHandle.put(ArtifactsBusinessLogic.ArtifactOperationEnum.CREATE, artifactPathAndNameList);
480 Assertions.assertNotNull(
481 sIBL.processCsarArtifacts(csarInfo,
482 resource, createdArtifacts, true, true, resStatus, vfCsarArtifactsToHandle));
486 void testCreateOrUpdateSingleNonMetaArtifact() {
487 Resource resource = createParseResourceObject(false);
488 CsarInfo csarInfo = getCsarInfo();
489 Map<String, byte[]> csar = csarInfo.getCsar();
490 String rootPath = System.getProperty("user.dir");
492 byte[] data = new byte[0];
493 path = Paths.get(rootPath + "/src/test/resources/valid_vf.csar");
495 data = Files.readAllBytes(path);
496 } catch (IOException e) {
499 csar.put("valid_vf.csar", data);
500 String artifactPath = "valid_vf.csar", artifactFileName = "", artifactType = "";
501 ArtifactGroupTypeEnum artifactGroupType = ArtifactGroupTypeEnum.TOSCA;
502 String artifactLabel = "", artifactDisplayName = "", artifactDescription = "", artifactId = "artifactId";
503 ArtifactOperationInfo artifactOperation = new ArtifactOperationInfo(true, true, ArtifactsBusinessLogic.ArtifactOperationEnum.UPDATE);
504 List<ArtifactDefinition> createdArtifacts = new ArrayList<>();
505 ArtifactDefinition artifactDefinition = new ArtifactDefinition();
506 artifactDefinition.setArtifactName("artifactName");
507 Either<ArtifactDefinition, Operation> artifactDefinitionOperationEither = Either.left(artifactDefinition);
508 when(csarArtifactsAndGroupsBusinessLogic.createOrUpdateCsarArtifactFromJson(any(Resource.class), any(User.class),
509 any(Map.class), any(ArtifactOperationInfo.class))).thenReturn(Either.left(artifactDefinitionOperationEither));
510 when(artifactsBusinessLogic.handleDelete(anyString(), anyString(), any(User.class), any(Component.class), anyBoolean(), anyBoolean()))
511 .thenReturn(Either.left(artifactDefinition));
512 Assertions.assertNotNull(
513 sIBL.createOrUpdateSingleNonMetaArtifact(resource, csarInfo, artifactPath,
514 artifactFileName, artifactType, artifactGroupType, artifactLabel,
515 artifactDisplayName, artifactDescription, artifactId, artifactOperation,
516 createdArtifacts, true, true, true));
520 void testCreateOrUpdateServiceArtifacts() throws IOException {
521 ArtifactsBusinessLogic.ArtifactOperationEnum operation = ArtifactsBusinessLogic.ArtifactOperationEnum.UPDATE;
522 List<ArtifactDefinition> createdArtifacts = new ArrayList<>();
523 String yamlFileName = "group.yml";
524 CsarInfo csarInfo = getCsarInfo();
525 Map<String, byte[]> csar = new HashMap<>();
526 String csarKey = CsarUtils.ARTIFACTS_PATH + "HEAT.meta";
527 byte[] artifactsMetaBytes = "src/test/resources/normativeTypes/valid_vf.csar".getBytes();
528 csar.put(csarKey, artifactsMetaBytes);
529 csarInfo.setCsar(csar);
530 Service preparedService = createServiceObject(true);
531 Map<String, ArtifactDefinition> deploymentArtifacts = new HashMap<>();
532 ArtifactDefinition artifactDefinition = new ArtifactDefinition();
533 artifactDefinition.setArtifactName("artifactDefinition");
534 deploymentArtifacts.put("deploymentArtifacts", artifactDefinition);
535 preparedService.setDeploymentArtifacts(deploymentArtifacts);
536 String nodeName = "org.openecomp.resource.derivedFrom.zxjTestImportServiceAb.test";
537 Map<String, EnumMap<ArtifactsBusinessLogic.ArtifactOperationEnum, List<ArtifactDefinition>>> nodeTypesArtifactsToHandle = new HashMap<>();
538 NodeTypeInfoToUpdateArtifacts nodeTypeInfoToUpdateArtifacts = new NodeTypeInfoToUpdateArtifacts(nodeName, nodeTypesArtifactsToHandle);
540 when(toscaOperationFacade.getToscaElement(anyString())).thenReturn(Either.left(createServiceObject(true)));
541 when(csarArtifactsAndGroupsBusinessLogic.updateResourceArtifactsFromCsar(any(CsarInfo.class), any(Service.class),
542 anyString(), anyString(), anyList(), anyBoolean(), anyBoolean())).thenReturn(Either.left(preparedService));
543 Assertions.assertNotNull(
544 sIBL.createOrUpdateArtifacts(operation, createdArtifacts, yamlFileName, csarInfo,
545 preparedService, nodeTypeInfoToUpdateArtifacts, true, true));
549 void testHandleVfCsarServiceArtifacts() {
550 Service service = createServiceObject(true);
551 Map<String, ArtifactDefinition> deploymentArtifacts = new HashMap<>();
552 ArtifactDefinition artifactDefinition = new ArtifactDefinition();
553 artifactDefinition.setArtifactName(Constants.VENDOR_LICENSE_MODEL);
554 artifactDefinition.setUniqueId("uniqueId");
555 deploymentArtifacts.put("deploymentArtifacts", artifactDefinition);
556 service.setDeploymentArtifacts(deploymentArtifacts);
557 CsarInfo csarInfo = getCsarInfo();
558 List<ArtifactDefinition> createdArtifacts = new ArrayList<>();
559 ArtifactOperationInfo artifactOperation = new ArtifactOperationInfo(true, true, ArtifactsBusinessLogic.ArtifactOperationEnum.CREATE);
560 when(toscaOperationFacade.getToscaElement(anyString())).thenReturn(Either.left(service));
561 when(csarArtifactsAndGroupsBusinessLogic.deleteVFModules(any(Service.class), any(CsarInfo.class), anyBoolean(), anyBoolean())).thenReturn(
562 Either.left(service));
563 Assertions.assertNotNull(
564 sIBL.handleVfCsarArtifacts(service, csarInfo, createdArtifacts, artifactOperation, true, true));
568 void testHandleVfCsarServiceArtifactsGetToscaElement() throws IOException {
569 Service service = createServiceObject(true);
570 Map<String, ArtifactDefinition> deploymentArtifacts = new HashMap<>();
571 ArtifactDefinition artifactDefinition = new ArtifactDefinition();
572 artifactDefinition.setArtifactName(Constants.VENDOR_LICENSE_MODEL);
573 artifactDefinition.setUniqueId("uniqueId");
574 deploymentArtifacts.put("deploymentArtifacts", artifactDefinition);
575 service.setDeploymentArtifacts(deploymentArtifacts);
576 CsarInfo csarInfo = getCsarInfo();
577 Map<String, byte[]> csar = new HashMap<>();
578 String csarKey = CsarUtils.ARTIFACTS_PATH + "HEAT.meta";
579 byte[] artifactsMetaBytes = "src/test/resources/normativeTypes/valid_vf.csar".getBytes();
580 csar.put(csarKey, artifactsMetaBytes);
581 csarInfo.setCsar(csar);
582 List<ArtifactDefinition> createdArtifacts = new ArrayList<>();
583 ArtifactOperationInfo artifactOperation = new ArtifactOperationInfo(true, true, ArtifactsBusinessLogic.ArtifactOperationEnum.CREATE);
584 when(toscaOperationFacade.getToscaElement(anyString())).thenReturn(Either.left(service));
585 when(csarArtifactsAndGroupsBusinessLogic.createResourceArtifactsFromCsar(any(CsarInfo.class), any(Service.class),
586 anyString(), anyString(), anyList())).thenReturn(Either.left(service));
587 Assertions.assertNotNull(
588 sIBL.handleVfCsarArtifacts(service,
589 csarInfo, createdArtifacts, artifactOperation, true, true));
593 void testCreateOrUpdateNonMetaServiceArtifacts() {
594 CsarInfo csarInfo = getCsarInfo();
595 Service service = createServiceObject(true);
596 List<ArtifactDefinition> createdArtifacts = new ArrayList<>();
597 ArtifactOperationInfo artifactOperation = new ArtifactOperationInfo(true, true, ArtifactsBusinessLogic.ArtifactOperationEnum.CREATE);
599 Either<Service, ResponseFormat> result = sIBL.createOrUpdateNonMetaArtifacts(csarInfo,
600 service, createdArtifacts, true, true, artifactOperation);
601 assertEquals(result.left().value(), service);
605 void testFindServiceCsarArtifactsToHandle() {
606 Service service = createServiceObject(true);
607 Map<String, ArtifactDefinition> deploymentArtifacts = new HashMap<>();
608 ArtifactDefinition artifactDefinition = new ArtifactDefinition();
609 artifactDefinition.setArtifactName("artifactDefinition");
610 deploymentArtifacts.put("deploymentArtifacts", artifactDefinition);
611 Map<String, ArtifactDefinition> artifacts = new HashMap<>();
612 artifacts.put("artifacts", artifactDefinition);
613 List<GroupDefinition> groups = new ArrayList<>();
614 GroupDefinition groupDefinition = new GroupDefinition();
615 groupDefinition.setUniqueId("groupDefinitionUniqueId");
616 groupDefinition.setName("groupDefinition");
617 groups.add(groupDefinition);
618 service.setDeploymentArtifacts(deploymentArtifacts);
619 service.setArtifacts(artifacts);
620 service.setGroups(groups);
621 List<CsarUtils.NonMetaArtifactInfo> artifactPathAndNameList = new ArrayList<>();
623 Either<EnumMap<ArtifactsBusinessLogic.ArtifactOperationEnum, List<CsarUtils.NonMetaArtifactInfo>>,
624 ResponseFormat> result = sIBL.findVfCsarArtifactsToHandle(service, artifactPathAndNameList, user);
625 assertNotNull(result.left().value());
629 void testOrganizeVfCsarArtifactsByServiceArtifactOperation() {
630 List<CsarUtils.NonMetaArtifactInfo> artifactPathAndNameList = new ArrayList<>();
631 artifactPathAndNameList.add(getNonMetaArtifactInfo());
632 List<ArtifactDefinition> existingArtifactsToHandle = new ArrayList<>();
633 ArtifactDefinition artifactDefinition = new ArtifactDefinition();
634 artifactDefinition.setArtifactName("artifactName");
635 artifactDefinition.setArtifactType(ArtifactTypeEnum.AAI_SERVICE_MODEL.name());
636 artifactDefinition.setArtifactChecksum("artifactChecksum");
637 existingArtifactsToHandle.add(artifactDefinition);
638 Service service = createServiceObject(true);
640 Either<EnumMap<ArtifactsBusinessLogic.ArtifactOperationEnum, List<CsarUtils.NonMetaArtifactInfo>>, ResponseFormat>
641 enumMapResponseFormatEither = sIBL.organizeVfCsarArtifactsByArtifactOperation(artifactPathAndNameList,
642 existingArtifactsToHandle, service, user);
643 assertNotNull(enumMapResponseFormatEither.left().value());
647 void testOrganizeVfCsarArtifactsByServiceArtifactOperationElse() {
648 List<CsarUtils.NonMetaArtifactInfo> artifactPathAndNameList = new ArrayList<>();
649 artifactPathAndNameList.add(getNonMetaArtifactInfo());
650 List<ArtifactDefinition> existingArtifactsToHandle = new ArrayList<>();
651 ArtifactDefinition artifactDefinition = new ArtifactDefinition();
652 artifactDefinition.setArtifactName("artifactName");
653 artifactDefinition.setArtifactType(ArtifactTypeEnum.AAI_VF_MODEL.name());
654 artifactDefinition.setArtifactChecksum("artifactChecksum");
655 existingArtifactsToHandle.add(artifactDefinition);
656 Service service = createServiceObject(true);
657 Assertions.assertNotNull(
658 sIBL.organizeVfCsarArtifactsByArtifactOperation(artifactPathAndNameList, existingArtifactsToHandle, service, user));
663 void testProcessServiceCsarArtifacts() {
664 CsarInfo csarInfo = getCsarInfo();
665 Service service = createServiceObject(true);
666 List<ArtifactDefinition> createdArtifacts = new ArrayList<>();
667 Either<Service, ResponseFormat> resStatus = Either.left(service);
668 EnumMap<ArtifactsBusinessLogic.ArtifactOperationEnum, List<CsarUtils.NonMetaArtifactInfo>> vfCsarArtifactsToHandle = new
669 EnumMap<>(ArtifactsBusinessLogic.ArtifactOperationEnum.class);
670 List<CsarUtils.NonMetaArtifactInfo> objects = new ArrayList<>();
671 objects.add(getNonMetaArtifactInfo());
672 vfCsarArtifactsToHandle.put(ArtifactsBusinessLogic.ArtifactOperationEnum.CREATE, objects);
673 Assertions.assertNotNull(
674 sIBL.processCsarArtifacts(csarInfo, service, createdArtifacts, true, true, resStatus, vfCsarArtifactsToHandle));
678 void testGetValidArtifactNames() {
679 CsarInfo csarInfo = getCsarInfo();
680 Map<String, Set<List<String>>> collectedWarningMessages = new HashMap<>();
681 Either<List<CsarUtils.NonMetaArtifactInfo>, String> result = sIBL.getValidArtifactNames(csarInfo,
682 collectedWarningMessages);
683 assertNotNull(result.left().value());
687 void testCreateOrUpdateSingleNonMetaServiceArtifact() {
688 Service service = createServiceObject(true);
689 CsarInfo csarInfo = getCsarInfo();
690 Map<String, byte[]> csar = csarInfo.getCsar();
691 String rootPath = System.getProperty("user.dir");
693 byte[] data = new byte[0];
694 path = Paths.get(rootPath + "/src/test/resources/valid_vf.csar");
696 data = Files.readAllBytes(path);
697 } catch (IOException e) {
700 csar.put("valid_vf.csar", data);
701 csarInfo.setCsar(csar);
702 String artifactPath = "valid_vf.csar", artifactFileName = "", artifactType = "";
703 ArtifactGroupTypeEnum artifactGroupType = ArtifactGroupTypeEnum.TOSCA;
704 String artifactLabel = "", artifactDisplayName = "", artifactDescription = "", artifactId = "artifactId";
705 ArtifactOperationInfo artifactOperation = new ArtifactOperationInfo(true, true, ArtifactsBusinessLogic.ArtifactOperationEnum.UPDATE);
706 List<ArtifactDefinition> createdArtifacts = new ArrayList<>();
707 ArtifactDefinition artifactDefinition = new ArtifactDefinition();
708 artifactDefinition.setArtifactName("artifactName");
709 Either<ArtifactDefinition, Operation> artifactDefinitionOperationEither = Either.left(artifactDefinition);
710 when(csarArtifactsAndGroupsBusinessLogic.createOrUpdateCsarArtifactFromJson(any(Service.class), any(User.class),
711 anyMap(), any(ArtifactOperationInfo.class))).thenReturn(Either.left(artifactDefinitionOperationEither));
712 when(artifactsBusinessLogic.handleDelete(anyString(), anyString(), any(User.class), any(Component.class), anyBoolean(), anyBoolean()))
713 .thenReturn(Either.left(artifactDefinition));
714 Assertions.assertNotNull(
715 sIBL.createOrUpdateSingleNonMetaArtifact(service, csarInfo, artifactPath, artifactFileName,
716 artifactType, artifactGroupType, artifactLabel, artifactDisplayName,
717 artifactDescription, artifactId, artifactOperation, createdArtifacts,
722 void testCreateOrUpdateSingleNonMetaServiceArtifactNull() {
723 Service service = createServiceObject(true);
724 CsarInfo csarInfo = getCsarInfo();
725 String artifactPath = "valid_vf.csar", artifactFileName = "", artifactType = "";
726 ArtifactGroupTypeEnum artifactGroupType = ArtifactGroupTypeEnum.TOSCA;
727 String artifactLabel = "", artifactDisplayName = "", artifactDescription = "", artifactId = "artifactId";
728 ArtifactOperationInfo artifactOperation = new ArtifactOperationInfo(true, true, ArtifactsBusinessLogic.ArtifactOperationEnum.UPDATE);
729 List<ArtifactDefinition> createdArtifacts = new ArrayList<>();
730 when(artifactsBusinessLogic.handleDelete(anyString(), anyString(), any(User.class), any(Component.class), anyBoolean(), anyBoolean()))
731 .thenReturn(Either.left(artifactDefinition));
732 Assertions.assertNotNull(
733 sIBL.createOrUpdateSingleNonMetaArtifact(service, csarInfo, artifactPath, artifactFileName,
734 artifactType, artifactGroupType, artifactLabel, artifactDisplayName,
735 artifactDescription, artifactId, artifactOperation, createdArtifacts,
740 void testCreateGroupsOnResource() {
741 Service service = createServiceObject(true);
742 Map<String, GroupDefinition> groups = new HashMap<>();
743 Assertions.assertNotNull(sIBL.createGroupsOnResource(service, groups));
747 void testCreateGroupsOnResourceNull() {
748 Service service = createServiceObject(true);
749 Map<String, GroupDefinition> groups = new HashMap<>();
750 Assertions.assertNotNull(
751 sIBL.createGroupsOnResource(service, groups));
755 void testUpdateGroupsMembersUsingResource() {
756 Service service = createServiceObject(true);
757 Map<String, GroupDefinition> groups = getGroups();
759 Assertions.assertNotNull(
760 sIBL.updateGroupsMembersUsingResource(groups, service));
764 void testUpdateGroupsMembersUsingResource_left() {
765 Service service = createServiceObject(true);
766 Map<String, GroupDefinition> groups = getGroups();
768 Assertions.assertNotNull(
769 sIBL.updateGroupsMembersUsingResource(groups, service));
773 void testCreateRIAndRelationsFromResourceYaml() throws IOException {
774 String nodeName = "org.openecomp.resource.derivedFrom.zxjTestImportServiceAb.test";
775 String yamlName = "group.yml";
776 Resource resource = createParseResourceObject(true);
777 Map<String, UploadComponentInstanceInfo> uploadComponentInstanceInfoMap = new HashMap<>();
778 String topologyTemplateYaml = getMainTemplateContent();
779 List<ArtifactDefinition> nodeTypesNewCreatedArtifacts = new ArrayList<>();
781 Map<String, NodeTypeInfo> nodeTypesInfo = getNodeTypesInfo();
782 Map<String, Object> map = new HashMap<>();
783 map.put("tosca_definitions_version", "123");
784 nodeTypesInfo.get(nodeName).setMappedToscaTemplate(map);
786 CsarInfo csarInfo = getCsarInfo();
787 Map<String, EnumMap<ArtifactsBusinessLogic.ArtifactOperationEnum, List<ArtifactDefinition>>> nodeTypesArtifactsToCreate = new HashMap<>();
789 Assertions.assertThrows(ComponentException.class, () -> sIBL
790 .createRIAndRelationsFromYaml(yamlName, resource, uploadComponentInstanceInfoMap,
791 topologyTemplateYaml, nodeTypesNewCreatedArtifacts, nodeTypesInfo,
792 csarInfo, nodeTypesArtifactsToCreate, nodeName));
796 void testCreateResourceInstancesRelations() {
797 String yamlName = "group.yml";
798 Resource resource = createParseResourceObject(true);
799 resource.setComponentInstances(creatComponentInstances());
800 resource.setResourceType(ResourceTypeEnum.VF);
801 Map<String, UploadComponentInstanceInfo> uploadResInstancesMap = new HashMap<>();
802 uploadResInstancesMap.put("uploadResInstancesMap", getUploadComponentInstanceInfo());
803 when(serviceImportParseLogic.getResourceAfterCreateRelations(any(Resource.class))).thenReturn(resource);
804 when(toscaOperationFacade.getToscaFullElement(anyString())).thenReturn(Either.left(resource));
805 Assertions.assertThrows(ComponentException.class, () -> sIBL
806 .createResourceInstancesRelations(user, yamlName, resource, uploadResInstancesMap));
810 void testCreateResourceInstancesRelations_Empty() {
811 String yamlName = "group.yml";
812 Resource resource = createParseResourceObject(true);
813 resource.setComponentInstances(creatComponentInstances());
814 resource.setResourceType(ResourceTypeEnum.VF);
815 Map<String, UploadComponentInstanceInfo> uploadResInstancesMap = new HashMap<>();
816 uploadResInstancesMap.put("uploadResInstancesMap", getUploadComponentInstanceInfo());
817 when(serviceImportParseLogic.getResourceAfterCreateRelations(any(Resource.class))).thenReturn(resource);
818 when(toscaOperationFacade.getToscaFullElement(anyString())).thenReturn(Either.left(resource));
819 Assertions.assertThrows(ComponentException.class, () -> sIBL
820 .createResourceInstancesRelations(user, yamlName, resource, uploadResInstancesMap));
824 void testProcessComponentInstance1() {
825 String yamlName = "group.yml";
826 Resource resource = createParseResourceObject(true);
827 Resource originResource = createParseResourceObject(false);
828 originResource.setResourceType(ResourceTypeEnum.VF);
829 List<ComponentInstance> componentInstancesList = creatComponentInstances();
830 Map<String, DataTypeDefinition> dataTypeDefinitionMap = new HashMap<>();
831 DataTypeDefinition dataTypeDefinition = new DataTypeDefinition();
832 dataTypeDefinition.setName("dataTypeDefinitionName");
833 dataTypeDefinitionMap.put("dataTypeDefinitionMap", dataTypeDefinition);
834 Either<Map<String, DataTypeDefinition>, JanusGraphOperationStatus> allDataTypes = Either.left(dataTypeDefinitionMap);
835 Map<String, List<ComponentInstanceProperty>> instProperties = new HashMap<>();
836 Map<ComponentInstance, Map<String, List<CapabilityDefinition>>> instCapabilties = new HashMap<>();
837 Map<ComponentInstance, Map<String, List<RequirementDefinition>>> instRequirements = new HashMap<>();
838 Map<String, Map<String, ArtifactDefinition>> instDeploymentArtifacts = new HashMap<>();
839 Map<String, Map<String, ArtifactDefinition>> instArtifacts = new HashMap<>();
840 Map<String, List<AttributeDefinition>> instAttributes = new HashMap<>();
841 Map<String, UploadNodeFilterInfo> instNodeFilter = new HashMap<>();
842 Map<String, Resource> originCompMap = new HashMap<>();
843 originCompMap.put("componentUid", originResource);
844 Map<String, List<ComponentInstanceInput>> instInputs = new HashMap<>();
845 UploadComponentInstanceInfo uploadComponentInstanceInfo = new UploadComponentInstanceInfo();
846 uploadComponentInstanceInfo.setName("zxjTestImportServiceAb");
847 Assertions.assertNotNull(resource);
848 Assertions.assertNotNull(yamlName);
849 sIBL.processComponentInstance(yamlName, resource, componentInstancesList, allDataTypes.left().value(), instProperties,
850 instCapabilties, instRequirements, instDeploymentArtifacts, instArtifacts, instAttributes,
851 originCompMap, instInputs, instNodeFilter, uploadComponentInstanceInfo);
855 void testProcessComponentInstance_null() {
856 String yamlName = "group.yml";
857 Resource resource = createParseResourceObject(true);
858 Resource originResource = createParseResourceObject(false);
859 List<ComponentInstance> componentInstancesList = creatComponentInstances();
860 Either<Map<String, DataTypeDefinition>, JanusGraphOperationStatus> allDataTypes = null;
861 Map<String, List<ComponentInstanceProperty>> instProperties = new HashMap<>();
862 Map<ComponentInstance, Map<String, List<CapabilityDefinition>>> instCapabilties = new HashMap<>();
863 Map<ComponentInstance, Map<String, List<RequirementDefinition>>> instRequirements = new HashMap<>();
864 Map<String, Map<String, ArtifactDefinition>> instDeploymentArtifacts = new HashMap<>();
865 Map<String, Map<String, ArtifactDefinition>> instArtifacts = new HashMap<>();
866 Map<String, List<AttributeDefinition>> instAttributes = new HashMap<>();
867 Map<String, Resource> originCompMap = new HashMap<>();
868 Map<String, UploadNodeFilterInfo> instNodeFilter = new HashMap<>();
869 originCompMap.put("componentUid", originResource);
870 Map<String, List<ComponentInstanceInput>> instInputs = new HashMap<>();
871 UploadComponentInstanceInfo uploadComponentInstanceInfo = new UploadComponentInstanceInfo();
872 uploadComponentInstanceInfo.setName("zxjTestImportServiceAb0");
874 Assertions.assertThrows(ComponentException.class, () -> sIBL.processComponentInstance(yamlName,
875 resource, componentInstancesList, null, instProperties, instCapabilties,
876 instRequirements, instDeploymentArtifacts, instArtifacts, instAttributes, originCompMap,
877 instInputs, instNodeFilter, uploadComponentInstanceInfo));
881 void testAddInputsValuesToRi() {
882 UploadComponentInstanceInfo uploadComponentInstanceInfo = new UploadComponentInstanceInfo();
883 Map<String, List<UploadPropInfo>> properties = new HashMap<>();
884 List<UploadPropInfo> uploadPropInfoList = getPropertyList();
885 properties.put("propertiesMap", uploadPropInfoList);
886 uploadComponentInstanceInfo.setProperties(properties);
887 Resource resource = createParseResourceObject(true);
888 Resource originResource = createParseResourceObject(false);
889 List<InputDefinition> inputs = new ArrayList<>();
890 InputDefinition inputDefinition = new InputDefinition();
891 inputDefinition.setName("inputDefinitionName");
892 inputDefinition.setUniqueId("uniqueId");
893 inputDefinition.setType("inputDefinitionType");
894 inputs.add(inputDefinition);
895 originResource.setInputs(inputs);
896 ComponentInstance currentCompInstance = new ComponentInstance();
897 Map<String, List<ComponentInstanceInput>> instInputs = new HashMap<>();
898 Map<String, DataTypeDefinition> allDataTypes = new HashMap<>();
899 DataTypeDefinition dataTypeDefinition = new DataTypeDefinition();
900 dataTypeDefinition.setName("dataTypeDefinitionName");
901 allDataTypes.put("dataTypeDefinitionMap", dataTypeDefinition);
903 Assertions.assertThrows(ComponentException.class, () -> sIBL
904 .addInputsValuesToRi(uploadComponentInstanceInfo, resource, originResource,
905 currentCompInstance, instInputs, allDataTypes));
909 void testProcessProperty() {
910 Resource resource = createParseResourceObject(true);
911 List<InputDefinition> inputs = new ArrayList<>();
912 InputDefinition inputDefinition = new InputDefinition();
913 inputDefinition.setName("inputDefinitionName");
914 inputDefinition.setUniqueId("uniqueId");
915 inputDefinition.setType("inputDefinitionType");
916 inputs.add(inputDefinition);
917 resource.setInputs(inputs);
918 ComponentInstance currentCompInstance = null;
919 Map<String, DataTypeDefinition> allDataTypes = new HashMap<>();
920 Map<String, InputDefinition> currPropertiesMap = new HashMap<>();
921 currPropertiesMap.put("propertyInfoName", inputDefinition);
922 List<ComponentInstanceInput> instPropList = new ArrayList<>();
923 List<UploadPropInfo> propertyList = getPropertyList();
924 Assertions.assertNotNull(resource);
925 Assertions.assertNotNull(currPropertiesMap);
926 sIBL.processProperty(resource, currentCompInstance, allDataTypes, currPropertiesMap, instPropList, propertyList);
930 void testHandleSubstitutionMappings() {
931 Resource resource = createParseResourceObject(true);
932 resource.setResourceType(ResourceTypeEnum.VF);
933 Map<String, UploadComponentInstanceInfo> uploadResInstancesMap = new HashMap<>();
934 when(toscaOperationFacade.getToscaFullElement(anyString()))
935 .thenReturn(Either.right(StorageOperationStatus.BAD_REQUEST));
937 Assertions.assertThrows(ComponentException.class,
938 () -> sIBL.handleSubstitutionMappings(resource, uploadResInstancesMap));
942 void testHandleSubstitutionMappings_left() {
943 Resource resource = createParseResourceObject(true);
944 resource.setResourceType(ResourceTypeEnum.VF);
945 Map<String, UploadComponentInstanceInfo> uploadResInstancesMap = new HashMap<>();
946 when(toscaOperationFacade.getToscaFullElement(anyString()))
947 .thenReturn(Either.left(resource));
949 Assertions.assertThrows(ComponentException.class,
950 () -> sIBL.handleSubstitutionMappings(resource, uploadResInstancesMap));
954 void testCreateResourceInstances() {
955 String yamlName = "group.yml";
956 Resource resource = createParseResourceObject(true);
957 Resource originResource = createParseResourceObject(false);
958 Map<String, UploadComponentInstanceInfo> uploadResInstancesMap = new HashMap<>();
959 UploadComponentInstanceInfo nodesInfoValue = new UploadComponentInstanceInfo();
960 nodesInfoValue.setName("zxjTestImportServiceAb");
961 nodesInfoValue.setRequirements(gerRequirements());
962 uploadResInstancesMap.put("uploadComponentInstanceInfo", nodesInfoValue);
963 Map<String, Resource> nodeNamespaceMap = new HashMap<>();
964 nodeNamespaceMap.put("resources", originResource);
966 Assertions.assertThrows(ComponentException.class,
967 () -> sIBL.createResourceInstances(yamlName, resource, uploadResInstancesMap, nodeNamespaceMap));
971 void testHandleNodeTypes() throws IOException {
972 String nodeName = "org.openecomp.resource.derivedFrom.zxjTestImportServiceAb.test";
973 String yamlName = "group.yml";
974 Resource resource = createParseResourceObject(true);
975 String topologyTemplateYaml = getMainTemplateContent();
976 boolean needLock = true;
977 Map<String, EnumMap<ArtifactsBusinessLogic.ArtifactOperationEnum, List<ArtifactDefinition>>> nodeTypesArtifactsToHandle = new HashMap<>();
978 List<ArtifactDefinition> nodeTypesNewCreatedArtifacts = new ArrayList<>();
979 Map<String, NodeTypeInfo> nodeTypesInfo = getNodeTypesInfo();
980 Map<String, Object> map = new HashMap<>();
981 map.put("tosca_definitions_version", "123");
982 nodeTypesInfo.get(nodeName).setMappedToscaTemplate(map);
983 ParsedToscaYamlInfo parsedToscaYamlInfo = getParsedToscaYamlInfo();
984 CsarInfo csarInfo = getCsarInfo();
985 Assertions.assertNotNull(resource);
987 sIBL.handleNodeTypes(yamlName, resource, topologyTemplateYaml, needLock, nodeTypesArtifactsToHandle,
988 nodeTypesNewCreatedArtifacts, nodeTypesInfo, csarInfo, nodeName);
992 void testHandleNestedVfc1() {
993 String nodeName = "org.openecomp.resource.derivedFrom.zxjTestImportServiceAb.test";
994 Resource resource = createParseResourceObject(false);
995 Map<String, EnumMap<ArtifactsBusinessLogic.ArtifactOperationEnum, List<ArtifactDefinition>>> nodeTypesArtifactsToHandle = new HashMap<>();
996 List<ArtifactDefinition> createdArtifacts = new ArrayList<>();
997 Map<String, NodeTypeInfo> nodesInfo = new HashMap<>();
998 NodeTypeInfo nodeTypeInfo = new NodeTypeInfo();
999 nodeTypeInfo.setTemplateFileName("groups.yml");
1000 nodeTypeInfo.setMappedToscaTemplate(new HashMap<>());
1001 nodesInfo.put(nodeName, nodeTypeInfo);
1002 CsarInfo csarInfo = getCsarInfo();
1004 Assertions.assertThrows(ComponentException.class, () -> sIBL.handleNestedVfc(resource,
1005 nodeTypesArtifactsToHandle, createdArtifacts, nodesInfo, csarInfo, nodeName));
1009 void testHandleComplexVfc1() {
1010 Resource resource = createParseResourceObject(true);
1011 Map<String, EnumMap<ArtifactsBusinessLogic.ArtifactOperationEnum, List<ArtifactDefinition>>> nodeTypesArtifactsToHandle = new HashMap<>();
1012 List<ArtifactDefinition> createdArtifacts = new ArrayList<>();
1013 Map<String, NodeTypeInfo> nodesInfo = new HashMap<>();
1014 CsarInfo csarInfo = getCsarInfo();
1015 String nodeName = "org.openecomp.resource.derivedFrom.zxjTestImportServiceAb.test";
1016 String yamlName = "group.yml";
1017 when(serviceImportParseLogic.buildValidComplexVfc(any(Resource.class), any(CsarInfo.class), anyString(),
1018 anyMap())).thenReturn(createParseResourceObject(false));
1019 when(toscaOperationFacade.getFullLatestComponentByToscaResourceName(anyString()))
1020 .thenReturn(Either.left(resource));
1021 when(serviceImportParseLogic.validateNestedDerivedFromDuringUpdate(any(Resource.class), any(Resource.class),
1022 anyBoolean())).thenReturn(Either.left(true));
1024 Assertions.assertThrows(ComponentException.class, () -> sIBL.handleComplexVfc(resource,
1025 nodeTypesArtifactsToHandle, createdArtifacts, nodesInfo, csarInfo, nodeName, yamlName));
1029 void testCreateNodeTypes1() {
1030 String nodeName = "org.openecomp.resource.derivedFrom.zxjTestImportServiceAb.test";
1031 String yamlName = "group.yml";
1032 Resource resource = createParseResourceObject(false);
1033 boolean needLock = true;
1034 Map<String, EnumMap<ArtifactsBusinessLogic.ArtifactOperationEnum, List<ArtifactDefinition>>> nodeTypesArtifactsToHandle = new HashMap<>();
1035 EnumMap<ArtifactsBusinessLogic.ArtifactOperationEnum, List<ArtifactDefinition>> enumListEnumMap =
1036 new EnumMap<>(ArtifactsBusinessLogic.ArtifactOperationEnum.class);
1037 List<ArtifactDefinition> artifactDefinitions = new ArrayList<>();
1038 ArtifactDefinition artifactDefinition = new ArtifactDefinition();
1039 artifactDefinition.setArtifactName("artifactName");
1040 artifactDefinitions.add(artifactDefinition);
1041 enumListEnumMap.put(ArtifactsBusinessLogic.ArtifactOperationEnum.CREATE,
1042 artifactDefinitions);
1043 nodeTypesArtifactsToHandle.put("nodeTyp", enumListEnumMap);
1044 List<ArtifactDefinition> nodeTypesNewCreatedArtifacts = new ArrayList<>();
1045 Map<String, NodeTypeInfo> nodeTypesInfo = getNodeTypesInfo();
1046 Map<String, Object> map = new HashMap<>();
1047 map.put("tosca_definitions_version", "123");
1048 nodeTypesInfo.get(nodeName).setMappedToscaTemplate(map);
1049 ParsedToscaYamlInfo parsedToscaYamlInfo = getParsedToscaYamlInfo();
1051 CsarInfo csarInfo = getCsarInfo();
1052 Map<String, Object> mapToConvert = new HashMap<>();
1053 Map<String, Object> nodeTypes = new HashMap<>();
1054 nodeTypes.put(nodeName, "");
1055 Assertions.assertNotNull(resource);
1057 sIBL.createNodeTypes(yamlName,
1058 resource, needLock, nodeTypesArtifactsToHandle, nodeTypesNewCreatedArtifacts,
1059 nodeTypesInfo, csarInfo, mapToConvert, nodeTypes);
1063 void testCreateNodeTypeResourceFromYaml() throws IOException {
1064 String yamlName = "group.yml";
1065 String nodeName = "org.openecomp.resource.derivedFrom.zxjTestImportServiceAb.test";
1066 Map<String, Object> nodeMap = new HashMap<>();
1067 nodeMap.put(nodeName, getGroupsYaml());
1068 Map.Entry<String, Object> nodeNameValue = nodeMap.entrySet().iterator().next();
1069 Map<String, Object> mapToConvert = new HashedMap();
1070 Resource resourceVf = createParseResourceObject(false);
1071 boolean needLock = true;
1072 Map<ArtifactsBusinessLogic.ArtifactOperationEnum, List<ArtifactDefinition>> nodeTypeArtifactsToHandle = new HashMap<>();
1073 List<ArtifactDefinition> nodeTypesNewCreatedArtifacts = new ArrayList<>();
1074 boolean forceCertificationAllowed = true;
1075 CsarInfo csarInfo = getCsarInfo();
1076 boolean isNested = true;
1077 UploadResourceInfo resourceMetaData = new UploadResourceInfo();
1078 resourceMetaData.setResourceType("VFC");
1079 ImmutablePair<Resource, ActionStatus> immutablePair = new ImmutablePair<>(resourceVf, ActionStatus.CREATED);
1080 when(serviceImportParseLogic.fillResourceMetadata(anyString(), any(Resource.class), anyString(), any(User.class)))
1081 .thenReturn(resourceMetaData);
1082 when(serviceImportParseLogic.buildNodeTypeYaml(any(Map.Entry.class), anyMap(), anyString(), any(CsarInfo.class)))
1083 .thenReturn(nodeName);
1084 when(serviceBusinessLogic.validateUser(any(User.class), anyString(), any(Component.class), any(AuditingActionEnum.class),
1085 anyBoolean())).thenReturn(user);
1086 when(serviceImportParseLogic.createResourceFromNodeType(anyString(), any(UploadResourceInfo.class), any(User.class), anyBoolean(),
1088 anyMap(), anyList(), anyBoolean(), any(CsarInfo.class),
1089 anyString(), anyBoolean())).thenReturn(immutablePair);
1090 Assertions.assertNotNull(
1091 sIBL.createNodeTypeResourceFromYaml(yamlName, nodeNameValue, user, mapToConvert,
1092 resourceVf, needLock, nodeTypeArtifactsToHandle, nodeTypesNewCreatedArtifacts,
1093 forceCertificationAllowed, csarInfo, isNested));
1097 void testCreateRIAndRelationsFromYaml() {
1098 String yamlName = "group.yml";
1099 Service service = createServiceObject(true);
1100 Map<String, UploadComponentInstanceInfo> uploadComponentInstanceInfoMap = new HashMap<>();
1101 String topologyTemplateYaml = getMainTemplateContent("service_import_template.yml");
1103 List<ArtifactDefinition> nodeTypesNewCreatedArtifacts = new ArrayList<>();
1104 Map<String, NodeTypeInfo> nodeTypesInfo = new HashMap<>();
1105 CsarInfo csarInfo = getCsarInfo();
1106 Map<String, EnumMap<ArtifactsBusinessLogic.ArtifactOperationEnum, List<ArtifactDefinition>>> nodeTypesArtifactsToCreate = new HashMap<>();
1107 String nodeName = "org.openecomp.resource.derivedFrom.zxjTestImportServiceAb.test";
1109 Assertions.assertNotNull(sIBL
1110 .createRIAndRelationsFromYaml(yamlName, service, uploadComponentInstanceInfoMap,
1111 topologyTemplateYaml, nodeTypesNewCreatedArtifacts, nodeTypesInfo,
1112 csarInfo, nodeTypesArtifactsToCreate, nodeName));
1116 void testCreateServiceInstancesRelations() {
1117 String yamlName = "group.yml";
1118 Service service = createServiceObject(true);
1119 service.setComponentInstances(creatComponentInstances());
1120 Resource newResource = createNewResource();
1121 Map<String, UploadComponentInstanceInfo> uploadResInstancesMap = getUploadResInstancesMap();
1122 ComponentParametersView componentParametersView = new ComponentParametersView();
1123 RequirementDefinition requirementDefinition = new RequirementDefinition();
1124 CapabilityDefinition capabilityDefinition = new CapabilityDefinition();
1125 capabilityDefinition.setName("as");
1126 capabilityDefinition.setUniqueId("1");
1127 capabilityDefinition.setOwnerId("2");
1128 ResponseFormat responseFormat = new ResponseFormat();
1129 responseFormat.setStatus(200);
1130 when(serviceImportParseLogic.getResourceAfterCreateRelations(any(Resource.class))).thenReturn(newResource);
1131 when(serviceImportParseLogic.getComponentFilterAfterCreateRelations()).thenReturn(componentParametersView);
1132 when(toscaOperationFacade.getToscaElement(anyString(), any(ComponentParametersView.class))).thenReturn(Either.left(service));
1133 when(serviceImportParseLogic.findAvailableRequirement(anyString(),
1134 anyString(), any(UploadComponentInstanceInfo.class), any(ComponentInstance.class),
1135 anyString())).thenReturn(Either.left(requirementDefinition));
1136 when(serviceImportParseLogic.findAvailableCapabilityByTypeOrName(any(RequirementDefinition.class),
1137 any(ComponentInstance.class), any(UploadReqInfo.class))).thenReturn(capabilityDefinition);
1138 when(componentsUtils.getResponseFormat(any(ActionStatus.class), anyString())).thenReturn(responseFormat);
1139 when(toscaOperationFacade.getToscaElement(anyString())).thenReturn(Either.left(service));
1140 Assertions.assertNotNull(sIBL.createServiceInstancesRelations(user, yamlName, service, uploadResInstancesMap));
1144 void testCreateServiceInstancesRelations_Empty() {
1145 String yamlName = "group.yml";
1146 Service service = createServiceObject(true);
1147 service.setComponentInstances(creatComponentInstances());
1148 Map<String, UploadComponentInstanceInfo> uploadResInstancesMap = new HashMap<>();
1150 Assertions.assertThrows(ComponentException.class,
1151 () -> sIBL.createServiceInstancesRelations(user, yamlName, service, uploadResInstancesMap));
1155 void testProcessComponentInstance() {
1156 String yamlName = "group.yml";
1157 Service service = createServiceObject(true);
1158 Resource originResource = createParseResourceObject(false);
1159 originResource.setResourceType(ResourceTypeEnum.VF);
1160 List<ComponentInstance> componentInstancesList = creatComponentInstances();
1161 Map<String, DataTypeDefinition> dataTypeDefinitionMap = new HashMap<>();
1162 DataTypeDefinition dataTypeDefinition = new DataTypeDefinition();
1163 dataTypeDefinition.setName("dataTypeDefinitionName");
1164 dataTypeDefinitionMap.put("dataTypeDefinitionMap", dataTypeDefinition);
1165 Either<Map<String, DataTypeDefinition>, JanusGraphOperationStatus> allDataTypes = Either.left(dataTypeDefinitionMap);
1166 Map<String, List<ComponentInstanceProperty>> instProperties = new HashMap<>();
1167 Map<ComponentInstance, Map<String, List<CapabilityDefinition>>> instCapabilties = new HashMap<>();
1168 Map<ComponentInstance, Map<String, List<RequirementDefinition>>> instRequirements = new HashMap<>();
1169 Map<String, Map<String, ArtifactDefinition>> instDeploymentArtifacts = new HashMap<>();
1170 Map<String, Map<String, ArtifactDefinition>> instArtifacts = new HashMap<>();
1171 Map<String, List<AttributeDefinition>> instAttributes = new HashMap<>();
1172 Map<String, UploadNodeFilterInfo> instNodeFilter = new HashMap<>();
1173 Map<String, Resource> originCompMap = new HashMap<>();
1174 originCompMap.put("componentUid", originResource);
1175 Map<String, List<ComponentInstanceInput>> instInputs = new HashMap<>();
1176 UploadComponentInstanceInfo uploadComponentInstanceInfo = new UploadComponentInstanceInfo();
1177 uploadComponentInstanceInfo.setName("zxjTestImportServiceAb");
1178 Assertions.assertNotNull(service);
1180 sIBL.processComponentInstance(yamlName, service, componentInstancesList, allDataTypes.left().value(),
1181 instProperties, instCapabilties, instRequirements, instDeploymentArtifacts,
1182 instArtifacts, instAttributes, originCompMap, instInputs, instNodeFilter,
1183 uploadComponentInstanceInfo);
1187 void testProcessComponentInstance_null2() {
1188 String yamlName = "group.yml";
1189 Service service = createServiceObject(true);
1190 Resource originResource = createParseResourceObject(false);
1191 List<ComponentInstance> componentInstancesList = creatComponentInstances();
1192 Either<Map<String, DataTypeDefinition>, JanusGraphOperationStatus> allDataTypes = null;
1193 Map<String, List<ComponentInstanceProperty>> instProperties = new HashMap<>();
1194 Map<ComponentInstance, Map<String, List<CapabilityDefinition>>> instCapabilties = new HashMap<>();
1195 Map<ComponentInstance, Map<String, List<RequirementDefinition>>> instRequirements = new HashMap<>();
1196 Map<String, Map<String, ArtifactDefinition>> instDeploymentArtifacts = new HashMap<>();
1197 Map<String, Map<String, ArtifactDefinition>> instArtifacts = new HashMap<>();
1198 Map<String, List<AttributeDefinition>> instAttributes = new HashMap<>();
1199 Map<String, UploadNodeFilterInfo> instNodeFilter = new HashMap<>();
1200 Map<String, Resource> originCompMap = new HashMap<>();
1201 originCompMap.put("componentUid", originResource);
1202 Map<String, List<ComponentInstanceInput>> instInputs = new HashMap<>();
1203 UploadComponentInstanceInfo uploadComponentInstanceInfo = new UploadComponentInstanceInfo();
1204 uploadComponentInstanceInfo.setName("zxjTestImportServiceAb0");
1206 Assertions.assertThrows(ComponentException.class, () -> sIBL.processComponentInstance(yamlName,
1207 service, componentInstancesList, null, instProperties, instCapabilties,
1208 instRequirements, instDeploymentArtifacts, instArtifacts, instAttributes, originCompMap,
1209 instInputs, instNodeFilter, uploadComponentInstanceInfo));
1213 void testAddInputsValuesToRi2() {
1214 UploadComponentInstanceInfo uploadComponentInstanceInfo = new UploadComponentInstanceInfo();
1215 Map<String, List<UploadPropInfo>> properties = new HashMap<>();
1216 List<UploadPropInfo> uploadPropInfoList = new ArrayList<>();
1217 UploadPropInfo uploadPropInfo = new UploadPropInfo();
1218 uploadPropInfo.setName("uploadPropInfo");
1219 uploadPropInfoList.add(uploadPropInfo);
1220 uploadPropInfoList.add(uploadPropInfo);
1221 properties.put("propertiesMap", uploadPropInfoList);
1222 uploadComponentInstanceInfo.setProperties(properties);
1223 Service resource = createServiceObject(true);
1224 Resource originResource = createParseResourceObject(false);
1225 List<InputDefinition> inputs = new ArrayList<>();
1226 InputDefinition inputDefinition = new InputDefinition();
1227 inputDefinition.setUniqueId("uniqueId");
1228 inputs.add(inputDefinition);
1229 originResource.setInputs(inputs);
1230 ComponentInstance currentCompInstance = new ComponentInstance();
1231 Map<String, List<ComponentInstanceInput>> instInputs = new HashMap<>();
1232 Map<String, DataTypeDefinition> allDataTypes = new HashMap<>();
1234 Assertions.assertThrows(ComponentException.class, () -> sIBL
1235 .addInputsValuesToRi(uploadComponentInstanceInfo, resource, originResource,
1236 currentCompInstance, instInputs, allDataTypes));
1240 void testProcessProperty2() {
1241 Service resource = createServiceObject(true);
1242 List<InputDefinition> inputs = new ArrayList<>();
1243 ComponentInstance currentCompInstance = null;
1244 Map<String, DataTypeDefinition> allDataTypes = new HashMap<>();
1245 Map<String, InputDefinition> currPropertiesMap = new HashMap<>();
1246 InputDefinition inputDefinition = new InputDefinition();
1247 inputDefinition.setName("inputDefinitionName");
1248 inputDefinition.setType("inputDefinitionType");
1249 inputs.add(inputDefinition);
1250 currPropertiesMap.put("propertyInfoName", inputDefinition);
1251 resource.setInputs(inputs);
1252 List<ComponentInstanceInput> instPropList = new ArrayList<>();
1253 List<UploadPropInfo> propertyList = new ArrayList<>();
1254 List<GetInputValueDataDefinition> get_input = new ArrayList<>();
1255 GetInputValueDataDefinition getInputValueDataDefinition = new GetInputValueDataDefinition();
1256 getInputValueDataDefinition.setPropName("getInputValueDataDefinitionName");
1257 getInputValueDataDefinition.setInputName("inputDefinitionName");
1258 get_input.add(getInputValueDataDefinition);
1259 UploadPropInfo propertyInfo = new UploadPropInfo();
1260 propertyInfo.setValue("value");
1261 propertyInfo.setGet_input(get_input);
1262 propertyInfo.setName("propertyInfoName");
1263 propertyList.add(propertyInfo);
1264 Assertions.assertNotNull(resource);
1266 sIBL.processProperty(resource, currentCompInstance, allDataTypes, currPropertiesMap, instPropList, propertyList);
1270 void testProcessGetInput() {
1271 List<GetInputValueDataDefinition> getInputValues = new ArrayList<>();
1272 List<InputDefinition> inputs = new ArrayList<>();
1273 GetInputValueDataDefinition getInputIndex = new GetInputValueDataDefinition();
1275 Assertions.assertThrows(ComponentException.class, () -> sIBL.processGetInput(getInputValues, inputs, getInputIndex));
1279 void testProcessGetInput_optional() {
1280 List<GetInputValueDataDefinition> getInputValues = new ArrayList<>();
1281 List<InputDefinition> inputs = new ArrayList<>();
1282 InputDefinition inputDefinition = new InputDefinition();
1283 inputDefinition.setUniqueId("uniqueId");
1284 inputDefinition.setName("InputName");
1285 inputs.add(inputDefinition);
1286 GetInputValueDataDefinition getInputIndex = new GetInputValueDataDefinition();
1287 getInputIndex.setInputName("InputName");
1288 Assertions.assertNotNull(inputs);
1290 sIBL.processGetInput(getInputValues, inputs, getInputIndex);
1294 void testAddPropertyValuesToRi() {
1295 UploadComponentInstanceInfo uploadComponentInstanceInfo = new UploadComponentInstanceInfo();
1296 uploadComponentInstanceInfo.setProperties(getUploadPropInfoProperties());
1297 Resource resource = createParseResourceObject(true);
1298 List<InputDefinition> inputs = new ArrayList<>();
1299 InputDefinition inputDefinition = new InputDefinition();
1300 inputDefinition.setName("inputDefinitionName");
1301 inputDefinition.setUniqueId("uniqueId");
1302 inputDefinition.setType("inputDefinitionType");
1303 inputs.add(inputDefinition);
1304 resource.setInputs(inputs);
1305 Resource originResource = createParseResourceObject(false);
1306 originResource.setProperties(getProperties());
1307 ComponentInstance currentCompInstance = new ComponentInstance();
1308 Map<String, List<ComponentInstanceProperty>> instProperties = new HashMap<>();
1309 Map<String, DataTypeDefinition> allDataTypes = new HashMap<>();
1310 ResponseFormat responseFormat = new ResponseFormat();
1311 when(serviceImportParseLogic.findInputByName(eq(inputs), any(GetInputValueDataDefinition.class)))
1312 .thenReturn(inputDefinition);
1313 when(componentsUtils.getResponseFormat(any(ActionStatus.class))).thenReturn(responseFormat);
1314 Assertions.assertNotNull(
1315 sIBL.addPropertyValuesToRi(uploadComponentInstanceInfo, resource, originResource,
1316 currentCompInstance, instProperties, allDataTypes));
1320 void testAddPropertyValuesToRi_else() {
1321 UploadComponentInstanceInfo uploadComponentInstanceInfo = new UploadComponentInstanceInfo();
1322 Resource resource = createParseResourceObject(true);
1323 Resource originResource = createParseResourceObject(false);
1324 originResource.setProperties(getProperties());
1325 ComponentInstance currentCompInstance = new ComponentInstance();
1326 Map<String, List<ComponentInstanceProperty>> instProperties = new HashMap<>();
1327 Map<String, DataTypeDefinition> allDataTypes = new HashMap<>();
1328 ResponseFormat responseFormat = new ResponseFormat();
1329 when(componentsUtils.getResponseFormat(any(ActionStatus.class))).thenReturn(responseFormat);
1330 Assertions.assertNotNull(
1331 sIBL.addPropertyValuesToRi(uploadComponentInstanceInfo, resource, originResource, currentCompInstance,
1332 instProperties, allDataTypes));
1336 void testAddPropertyValuesToRi2() {
1337 UploadComponentInstanceInfo uploadComponentInstanceInfo = new UploadComponentInstanceInfo();
1338 uploadComponentInstanceInfo.setProperties(getUploadPropInfoProperties());
1339 Service service = createServiceObject(true);
1340 List<InputDefinition> inputs = new ArrayList<>();
1341 InputDefinition inputDefinition = new InputDefinition();
1342 inputDefinition.setName("inputDefinitionName");
1343 inputDefinition.setUniqueId("uniqueId");
1344 inputDefinition.setType("inputDefinitionType");
1345 inputs.add(inputDefinition);
1346 service.setInputs(inputs);
1347 Resource originResource = createParseResourceObject(false);
1348 originResource.setProperties(getProperties());
1349 ComponentInstance currentCompInstance = new ComponentInstance();
1350 Map<String, List<ComponentInstanceProperty>> instProperties = new HashMap<>();
1351 Map<String, DataTypeDefinition> allDataTypes = new HashMap<>();
1352 ResponseFormat responseFormat = new ResponseFormat();
1353 when(componentsUtils.getResponseFormat(any(ActionStatus.class))).thenReturn(responseFormat);
1354 when(serviceImportParseLogic.findInputByName(anyList(), any(GetInputValueDataDefinition.class)))
1355 .thenReturn(inputDefinition);
1356 Assertions.assertNotNull(
1357 sIBL.addPropertyValuesToRi(uploadComponentInstanceInfo, service, originResource,
1358 currentCompInstance, instProperties, allDataTypes));
1362 void testAddPropertyValuesToRi2_else() {
1363 UploadComponentInstanceInfo uploadComponentInstanceInfo = new UploadComponentInstanceInfo();
1364 Service service = createServiceObject(true);
1365 Resource originResource = createParseResourceObject(false);
1366 originResource.setProperties(getProperties());
1367 ComponentInstance currentCompInstance = new ComponentInstance();
1368 Map<String, List<ComponentInstanceProperty>> instProperties = new HashMap<>();
1369 Map<String, DataTypeDefinition> allDataTypes = new HashMap<>();
1370 ResponseFormat responseFormat = new ResponseFormat();
1371 when(componentsUtils.getResponseFormat(any(ActionStatus.class))).thenReturn(responseFormat);
1372 Assertions.assertNotNull(
1373 sIBL.addPropertyValuesToRi(uploadComponentInstanceInfo, service, originResource, currentCompInstance,
1374 instProperties, allDataTypes));
1378 void testProcessComponentInstanceCapabilities() {
1379 Either<Map<String, DataTypeDefinition>, JanusGraphOperationStatus> allDataTypes = null;
1380 Map<ComponentInstance, Map<String, List<CapabilityDefinition>>> instCapabilties = new HashMap<>();
1381 UploadComponentInstanceInfo uploadComponentInstanceInfo = new UploadComponentInstanceInfo();
1382 uploadComponentInstanceInfo.setCapabilities(getCapabilities());
1383 ComponentInstance currentCompInstance = new ComponentInstance();
1384 Resource originResource = createParseResourceObject(false);
1385 Assertions.assertNotNull(originResource);
1386 sIBL.processComponentInstanceCapabilities(null, instCapabilties, uploadComponentInstanceInfo, currentCompInstance,
1391 void testProcessComponentInstanceCapabilities_null() {
1392 Either<Map<String, DataTypeDefinition>, JanusGraphOperationStatus> allDataTypes = null;
1393 Map<ComponentInstance, Map<String, List<CapabilityDefinition>>> instCapabilties = new HashMap<>();
1394 UploadComponentInstanceInfo uploadComponentInstanceInfo = new UploadComponentInstanceInfo();
1395 ComponentInstance currentCompInstance = new ComponentInstance();
1396 Resource originResource = createParseResourceObject(false);
1397 Assertions.assertNotNull(originResource);
1399 sIBL.processComponentInstanceCapabilities(null, instCapabilties, uploadComponentInstanceInfo, currentCompInstance,
1404 void testUpdateCapabilityPropertiesValues() {
1405 Either<Map<String, DataTypeDefinition>, JanusGraphOperationStatus> allDataTypes = null;
1406 Map<String, List<CapabilityDefinition>> originCapabilities = new HashMap<>();
1407 Map<String, Map<String, UploadPropInfo>> newPropertiesMap = new HashMap<>();
1408 Assertions.assertNull(allDataTypes);
1409 sIBL.updateCapabilityPropertiesValues(null, originCapabilities, newPropertiesMap);
1413 void testUpdatePropertyValues() {
1414 List<ComponentInstanceProperty> properties = new ArrayList<>();
1415 Map<String, UploadPropInfo> newProperties = new HashMap<>();
1416 Map<String, DataTypeDefinition> allDataTypes = new HashMap<>();
1417 Assertions.assertNotNull(allDataTypes);
1418 sIBL.updatePropertyValues(properties, newProperties, allDataTypes);
1422 void testUpdatePropertyValue() {
1423 ComponentInstanceProperty property = new ComponentInstanceProperty();
1424 property.setType("services");
1425 UploadPropInfo propertyInfo = new UploadPropInfo();
1426 propertyInfo.setValue("value");
1427 Map<String, DataTypeDefinition> allDataTypes = new HashMap<>();
1428 when(serviceBusinessLogic.validatePropValueBeforeCreate(any(IPropertyInputCommon.class), anyString(), anyBoolean(), anyMap())).thenReturn(
1430 Assertions.assertNotNull(sIBL.updatePropertyValue(property, propertyInfo, allDataTypes));
1434 void testGetOriginResource() {
1435 String yamlName = "group.yml";
1436 Map<String, Resource> originCompMap = new HashMap<>();
1437 ComponentInstance currentCompInstance = new ComponentInstance();
1438 currentCompInstance.setComponentUid("currentCompInstance");
1439 when(toscaOperationFacade.getToscaFullElement(anyString()))
1440 .thenReturn(Either.left(createParseResourceObject(true)));
1441 Assertions.assertNotNull(sIBL.getOriginResource(yamlName, originCompMap, currentCompInstance));
1445 void testUpdateCalculatedCapReqWithSubstitutionMappings() {
1446 Resource resource = createParseResourceObject(false);
1447 resource.setComponentInstances(creatComponentInstances());
1448 Map<String, UploadComponentInstanceInfo> uploadResInstancesMap = getUploadResInstancesMap();
1450 when(toscaOperationFacade.deleteAllCalculatedCapabilitiesRequirements(any())).thenReturn(StorageOperationStatus.OK);
1451 Assertions.assertNotNull(sIBL.updateCalculatedCapReqWithSubstitutionMappings(resource, uploadResInstancesMap));
1455 void testFillUpdatedInstCapabilitiesRequirements() {
1456 List<ComponentInstance> componentInstances = creatComponentInstances();
1457 Map<String, UploadComponentInstanceInfo> uploadResInstancesMap = getUploadResInstancesMap();
1458 Map<ComponentInstance, Map<String, List<CapabilityDefinition>>> updatedInstCapabilities = new HashMap<>();
1459 Map<ComponentInstance, Map<String, List<RequirementDefinition>>> updatedInstRequirement = new HashMap<>();
1460 Assertions.assertNotNull(componentInstances);
1462 sIBL.fillUpdatedInstCapabilitiesRequirements(componentInstances, uploadResInstancesMap,
1463 updatedInstCapabilities, updatedInstRequirement);
1467 void testFillUpdatedInstCapabilities() {
1468 Map<ComponentInstance, Map<String, List<CapabilityDefinition>>> updatedInstCapabilties = new HashMap<>();
1469 Map<String, List<CapabilityDefinition>> capabilities = new HashMap<>();
1470 List<CapabilityDefinition> capabilityDefinitionList = new ArrayList<>();
1471 CapabilityDefinition capabilityDefinition = new CapabilityDefinition();
1472 capabilityDefinition.setName("mme_ipu_vdu.feature");
1473 capabilityDefinitionList.add(capabilityDefinition);
1474 capabilities.put("tosca.capabilities.Node", capabilityDefinitionList);
1475 ComponentInstance instance = new ComponentInstance();
1476 instance.setCapabilities(capabilities);
1477 Map<String, String> capabilitiesNamesToUpdate = new HashMap<>();
1478 capabilitiesNamesToUpdate.put("mme_ipu_vdu.feature", "capabilitiesNamesToUpdate");
1479 Assertions.assertNotNull(instance);
1481 sIBL.fillUpdatedInstCapabilities(updatedInstCapabilties, instance, capabilitiesNamesToUpdate);
1485 void testFillUpdatedInstRequirements() {
1486 Map<ComponentInstance, Map<String, List<RequirementDefinition>>> updatedInstRequirements = new
1488 ComponentInstance instance = new ComponentInstance();
1489 Map<String, List<RequirementDefinition>> requirements = new HashMap<>();
1490 List<RequirementDefinition> requirementDefinitionList = new ArrayList<>();
1491 RequirementDefinition requirementDefinition = new RequirementDefinition();
1492 requirementDefinition.setName("zxjtestimportserviceab0.mme_ipu_vdu.dependency.test");
1493 requirementDefinitionList.add(requirementDefinition);
1494 requirements.put("tosca.capabilities.Node", requirementDefinitionList);
1495 instance.setRequirements(requirements);
1496 Map<String, String> requirementsNamesToUpdate = new HashMap<>();
1497 requirementsNamesToUpdate.put("zxjtestimportserviceab0.mme_ipu_vdu.dependency.test",
1498 "requirementsNamesToUpdate");
1499 Assertions.assertNotNull(instance);
1501 sIBL.fillUpdatedInstRequirements(updatedInstRequirements, instance, requirementsNamesToUpdate);
1505 void testAddRelationsToRI() {
1506 String yamlName = "group.yml";
1507 Service service = createServiceObject(true);
1509 Map<String, UploadComponentInstanceInfo> uploadResInstancesMap = new HashMap<>();
1510 UploadComponentInstanceInfo nodesInfoValue = getUploadComponentInstanceInfo();
1511 uploadResInstancesMap.put("uploadComponentInstanceInfo", nodesInfoValue);
1512 List<ComponentInstance> componentInstancesList = creatComponentInstances();
1513 ComponentInstance componentInstance = new ComponentInstance();
1514 componentInstance.setName("zxjTestImportServiceAb");
1515 componentInstancesList.add(componentInstance);
1516 service.setComponentInstances(componentInstancesList);
1517 List<RequirementCapabilityRelDef> relations = new ArrayList<>();
1518 RequirementDefinition requirementDefinition = new RequirementDefinition();
1519 requirementDefinition.setOwnerId("1");
1520 requirementDefinition.setUniqueId("2");
1521 requirementDefinition.setCapability("3");
1522 CapabilityDefinition capabilityDefinition = new CapabilityDefinition();
1523 capabilityDefinition.setName("4");
1524 capabilityDefinition.setUniqueId("5");
1525 capabilityDefinition.setOwnerId("6");
1526 ResponseFormat responseFormat = new ResponseFormat();
1527 responseFormat.setStatus(200);
1528 when(serviceImportParseLogic.findAvailableRequirement(anyString(),
1529 anyString(), any(UploadComponentInstanceInfo.class), any(ComponentInstance.class),
1530 anyString())).thenReturn(Either.left(requirementDefinition));
1531 when(serviceImportParseLogic.findAvailableCapabilityByTypeOrName(any(RequirementDefinition.class),
1532 any(ComponentInstance.class), any(UploadReqInfo.class))).thenReturn(capabilityDefinition);
1533 when(componentsUtils.getResponseFormat(any(ActionStatus.class), anyString())).thenReturn(responseFormat);
1534 Assertions.assertNotNull(service);
1536 sIBL.addRelationsToRI(yamlName, service, uploadResInstancesMap, componentInstancesList, relations);
1540 void testAddRelationsToRI_null() {
1541 String yamlName = "group.yml";
1542 Service service = createServiceObject(true);
1543 Map<String, UploadComponentInstanceInfo> uploadResInstancesMap = new HashMap<>();
1544 UploadComponentInstanceInfo nodesInfoValue = getUploadComponentInstanceInfo();
1545 uploadResInstancesMap.put("uploadComponentInstanceInfo", nodesInfoValue);
1546 List<ComponentInstance> componentInstancesList = new ArrayList<>();
1547 List<RequirementCapabilityRelDef> relations = new ArrayList<>();
1549 Assertions.assertThrows(ComponentException.class, () -> sIBL.addRelationsToRI(yamlName,
1550 service, uploadResInstancesMap, componentInstancesList, relations));
1554 void testAddRelationToRI() {
1555 String yamlName = "group.yml";
1556 Service service = createServiceObject(true);
1557 service.setComponentInstances(creatComponentInstances());
1559 UploadComponentInstanceInfo nodesInfoValue = getUploadComponentInstanceInfo();
1560 List<RequirementCapabilityRelDef> relations = new ArrayList<>();
1561 RequirementDefinition requirementDefinition = new RequirementDefinition();
1562 requirementDefinition.setName("zxjtestimportserviceab0.mme_ipu_vdu.dependency.test");
1563 CapabilityDefinition capabilityDefinition = new CapabilityDefinition();
1564 capabilityDefinition.setName("capabilityDefinitionName");
1565 capabilityDefinition.setUniqueId("capabilityDefinitionUniqueId");
1566 capabilityDefinition.setOwnerId("capabilityDefinitionOwnerId");
1567 ResponseFormat responseFormat = new ResponseFormat();
1568 when(serviceImportParseLogic.findAvailableRequirement(anyString(), anyString(), any(UploadComponentInstanceInfo.class),
1569 any(ComponentInstance.class), anyString())).thenReturn(Either.left(requirementDefinition));
1570 when(serviceImportParseLogic.findAvailableCapabilityByTypeOrName(any(RequirementDefinition.class),
1571 any(ComponentInstance.class), any(UploadReqInfo.class))).thenReturn(capabilityDefinition);
1572 when(componentsUtils.getResponseFormat(any(ActionStatus.class), anyString())).thenReturn(responseFormat);
1573 Assertions.assertNotNull(sIBL.addRelationToRI(yamlName, service, nodesInfoValue, relations));
1574 Assertions.assertNotNull(relations.get(0).getRelationships().get(0).getOperations());
1578 void testAddRelationToRI_null() {
1579 String yamlName = "group.yml";
1580 Service service = createServiceObject(true);
1581 List<ComponentInstance> componentInstancesList = new ArrayList<>();
1582 service.setComponentInstances(componentInstancesList);
1583 ResponseFormat responseFormat = new ResponseFormat();
1584 UploadComponentInstanceInfo nodesInfoValue = getUploadComponentInstanceInfo();
1585 List<RequirementCapabilityRelDef> relations = new ArrayList<>();
1586 when(componentsUtils.getResponseFormat(any(ActionStatus.class), anyString())).thenReturn(responseFormat);
1587 Assertions.assertNotNull(sIBL.addRelationToRI(yamlName, service, nodesInfoValue, relations));
1591 void testGetResourceAfterCreateRelations() {
1592 Service service = createServiceObject(true);
1593 ComponentParametersView componentParametersView = createComponentParametersView();
1594 when(serviceImportParseLogic.getComponentFilterAfterCreateRelations()).thenReturn(componentParametersView);
1595 when(toscaOperationFacade.getToscaElement(anyString(), any(ComponentParametersView.class)))
1596 .thenReturn(Either.left(createServiceObject(true)));
1597 Assertions.assertNotNull(sIBL.getResourceAfterCreateRelations(service));
1601 void testCreateServiceInstances() {
1602 String yamlName = "group.yml";
1603 Service service = createServiceObject(true);
1604 Map<String, UploadComponentInstanceInfo> uploadResInstancesMap = new HashMap<>();
1605 UploadComponentInstanceInfo nodesInfoValue = getUploadComponentInstanceInfo();
1606 uploadResInstancesMap.put("uploadResInstancesMap", nodesInfoValue);
1607 Map<String, Resource> nodeNamespaceMap = new HashMap<>();
1608 Resource resource = createParseResourceObject(true);
1609 resource.setToscaResourceName("toscaResourceName");
1610 nodeNamespaceMap.put("nodeNamespaceMap", resource);
1612 Assertions.assertThrows(ComponentException.class,
1613 () -> sIBL.createServiceInstances(yamlName, service, uploadResInstancesMap, nodeNamespaceMap));
1617 void testCreateAndAddResourceInstance() {
1618 UploadComponentInstanceInfo uploadComponentInstanceInfo = getUploadComponentInstanceInfo();
1619 String yamlName = "group.yml";
1620 Resource resource = createParseResourceObject(false);
1621 Resource originResource = createParseResourceObject(true);
1622 originResource.setResourceType(ResourceTypeEnum.VF);
1623 Map<String, Resource> nodeNamespaceMap = new HashMap<>();
1624 nodeNamespaceMap.put("resources", originResource);
1625 Map<String, Resource> existingnodeTypeMap = new HashMap<>();
1626 Map<ComponentInstance, Resource> resourcesInstancesMap = new HashMap<>();
1628 Assertions.assertThrows(ComponentException.class, () -> sIBL
1629 .createAndAddResourceInstance(uploadComponentInstanceInfo, yamlName, resource,
1630 nodeNamespaceMap, existingnodeTypeMap, resourcesInstancesMap));
1634 void testCreateAndAddResourceInstances() {
1635 UploadComponentInstanceInfo uploadComponentInstanceInfo = getUploadComponentInstanceInfo();
1636 String yamlName = "group.yml";
1637 Service service = createServiceObject(true);
1638 service.setServiceType("services");
1639 Resource originResource = createParseResourceObject(true);
1640 originResource.setResourceType(ResourceTypeEnum.VF);
1641 Map<String, Resource> nodeNamespaceMap = new HashMap<>();
1642 nodeNamespaceMap.put("resources", originResource);
1643 Map<String, Resource> existingnodeTypeMap = new HashMap<>();
1644 Map<ComponentInstance, Resource> resourcesInstancesMap = new HashMap<>();
1646 Assertions.assertThrows(ComponentException.class, () -> sIBL
1647 .createAndAddResourceInstance(uploadComponentInstanceInfo, yamlName, service,
1648 nodeNamespaceMap, existingnodeTypeMap, resourcesInstancesMap));
1652 void testValidateResourceInstanceBeforeCreate() {
1653 String yamlName = "group.yml";
1654 UploadComponentInstanceInfo uploadComponentInstanceInfo = getUploadComponentInstanceInfo();
1655 Resource originResource = createParseResourceObject(true);
1656 ResourceMetadataDataDefinition componentMetadataDataDefinition = new ResourceMetadataDataDefinition();
1657 componentMetadataDataDefinition.setState(LifecycleStateEnum.CERTIFIED.name());
1658 ComponentMetadataDefinition componentMetadataDefinition = new ComponentMetadataDefinition(componentMetadataDataDefinition);
1659 originResource.setComponentMetadataDefinition(componentMetadataDefinition);
1660 originResource.setComponentType(ComponentTypeEnum.RESOURCE);
1661 originResource.setToscaResourceName("toscaResourceName");
1662 originResource.setResourceType(ResourceTypeEnum.VF);
1663 originResource.setResourceType(ResourceTypeEnum.VF);
1664 Map<String, Resource> nodeNamespaceMap = new HashMap<>();
1665 nodeNamespaceMap.put("resources", originResource);
1666 when(toscaOperationFacade.getLatestResourceByToscaResourceName(anyString())).thenReturn(Either.left(originResource));
1667 Assertions.assertNotNull(
1668 sIBL.validateResourceInstanceBeforeCreate(yamlName, uploadComponentInstanceInfo, nodeNamespaceMap));
1672 void testHandleServiceNodeTypes() {
1673 String yamlName = "group.yml";
1674 Service service = createServiceObject(true);
1675 String topologyTemplateYaml = getMainTemplateContent("service_import_template.yml");
1677 boolean needLock = true;
1678 Map<String, EnumMap<ArtifactsBusinessLogic.ArtifactOperationEnum, List<ArtifactDefinition>>> nodeTypesArtifactsToHandle = new HashMap<>();
1679 List<ArtifactDefinition> nodeTypesNewCreatedArtifacts = new ArrayList<>();
1680 Map<String, NodeTypeInfo> nodeTypesInfo = getNodeTypesInfo();
1681 CsarInfo csarInfo = getCsarInfo();
1682 String nodeName = "org.openecomp.resource.derivedFrom.zxjTestImportServiceAb.test";
1683 when(toscaOperationFacade.getLatestResourceByToscaResourceName(anyString())).thenReturn(Either.left(createOldResource()));
1684 Assertions.assertNotNull(service);
1686 sIBL.handleServiceNodeTypes(yamlName, service, topologyTemplateYaml, needLock, nodeTypesArtifactsToHandle,
1687 nodeTypesNewCreatedArtifacts,
1688 nodeTypesInfo, csarInfo, nodeName);
1692 void testValidateResourceNotExisted() {
1693 String type = "org.openecomp.resource.vf";
1695 Assertions.assertThrows(ComponentException.class, () -> sIBL.validateResourceNotExisted(type));
1699 void testHandleNestedVF() {
1700 Service service = createServiceObject(true);
1701 Map<String, EnumMap<ArtifactsBusinessLogic.ArtifactOperationEnum, List<ArtifactDefinition>>> nodeTypesArtifactsToHandle = new HashMap<>();
1702 List<ArtifactDefinition> createdArtifacts = new ArrayList<>();
1703 Map<String, NodeTypeInfo> nodesInfo = getNodeTypesInfo();
1704 CsarInfo csarInfo = getCsarInfo();
1705 String nodeName = "org.openecomp.resource.derivedFrom.zxjTestImportServiceAb.test";
1707 Assertions.assertThrows(ComponentException.class, () -> sIBL.handleNestedVF(service,
1708 nodeTypesArtifactsToHandle, createdArtifacts, nodesInfo, csarInfo, nodeName));
1712 void testHandleNestedVfc() {
1713 Service service = createServiceObject(true);
1714 Map<String, EnumMap<ArtifactsBusinessLogic.ArtifactOperationEnum, List<ArtifactDefinition>>> nodeTypesArtifactsToHandle = new HashMap<>();
1715 List<ArtifactDefinition> createdArtifacts = new ArrayList<>();
1716 Map<String, NodeTypeInfo> nodesInfo = new HashMap<>();
1717 CsarInfo csarInfo = getCsarInfo();
1718 String nodeName = "org.openecomp.resource.derivedFrom.zxjTestImportServiceAb.test";
1720 Assertions.assertThrows(ComponentException.class, () -> sIBL.handleNestedVfc(service,
1721 nodeTypesArtifactsToHandle, createdArtifacts, nodesInfo, csarInfo, nodeName));
1725 void testHandleComplexVfc() {
1726 Map<String, EnumMap<ArtifactsBusinessLogic.ArtifactOperationEnum, List<ArtifactDefinition>>> nodeTypesArtifactsToHandle = new HashMap<>();
1727 List<ArtifactDefinition> createdArtifacts = new ArrayList<>();
1728 Map<String, NodeTypeInfo> nodesInfo = new HashMap<>();
1729 CsarInfo csarInfo = getCsarInfo();
1730 String nodeName = "org.openecomp.resource.derivedFrom.zxjTestImportServiceAb.test";
1731 String yamlName = "group.yml";
1732 when(serviceImportParseLogic.buildValidComplexVfc(any(CsarInfo.class), anyString(), anyMap()))
1733 .thenReturn(createNewResource());
1734 when(toscaOperationFacade.getFullLatestComponentByToscaResourceName(anyString()))
1735 .thenReturn(Either.left(createNewResource()));
1736 when(serviceImportParseLogic.validateNestedDerivedFromDuringUpdate(any(Resource.class), any(Resource.class), anyBoolean()))
1737 .thenReturn(Either.left(true));
1739 Assertions.assertThrows(ComponentException.class, () -> sIBL
1740 .handleComplexVfc(nodeTypesArtifactsToHandle, createdArtifacts, nodesInfo,
1741 csarInfo, nodeName, yamlName));
1745 void testHandleComplexVfcStatus() {
1746 Map<String, EnumMap<ArtifactsBusinessLogic.ArtifactOperationEnum, List<ArtifactDefinition>>> nodeTypesArtifactsToHandle = new HashMap<>();
1747 List<ArtifactDefinition> createdArtifacts = new ArrayList<>();
1748 Map<String, NodeTypeInfo> nodesInfo = new HashMap<>();
1749 CsarInfo csarInfo = getCsarInfo();
1750 String nodeName = "org.openecomp.resource.derivedFrom.zxjTestImportServiceAb.test";
1751 String yamlName = "group.yml";
1752 when(serviceImportParseLogic.buildValidComplexVfc(any(CsarInfo.class), anyString(), anyMap()))
1753 .thenReturn(createNewResource());
1754 when(toscaOperationFacade.getFullLatestComponentByToscaResourceName(anyString()))
1755 .thenReturn(Either.right(StorageOperationStatus.NOT_FOUND));
1757 Assertions.assertThrows(ComponentException.class, () -> sIBL
1758 .handleComplexVfc(nodeTypesArtifactsToHandle, createdArtifacts, nodesInfo,
1759 csarInfo, nodeName, yamlName));
1763 void testHandleComplexVfc2() {
1764 Map<String, EnumMap<ArtifactsBusinessLogic.ArtifactOperationEnum, List<ArtifactDefinition>>> nodeTypesArtifactsToHandle = new HashMap<>();
1765 List<ArtifactDefinition> createdArtifacts = new ArrayList<>();
1766 Map<String, NodeTypeInfo> nodesInfo = getNodeTypesInfo();
1767 String nodeName = "org.openecomp.resource.derivedFrom.zxjTestImportServiceAb.test";
1768 String yamlName = "group.yml";
1769 CsarInfo csarInfo = getCsarInfo();
1770 Map<String, byte[]> csar = new HashMap<>();
1771 csar.put(yamlName, yamlName.getBytes());
1772 csarInfo.setCsar(csar);
1773 Resource oldComplexVfc = createParseResourceObject(false);
1774 Resource newComplexVfc = createParseResourceObject(true);
1776 Assertions.assertThrows(ComponentException.class, () -> sIBL
1777 .handleComplexVfc(nodeTypesArtifactsToHandle, createdArtifacts, nodesInfo,
1778 csarInfo, nodeName, yamlName, oldComplexVfc, newComplexVfc));
1782 void testUpdateResourceFromYaml() throws IOException {
1783 String nodeName = "org.openecomp.resource.derivedFrom.zxjTestImportServiceAb.test";
1784 Resource newResource = createNewResource();
1785 Resource oldResource = createOldResource();
1786 AuditingActionEnum actionEnum = AuditingActionEnum.CREATE_RESOURCE;
1787 List<ArtifactDefinition> createdArtifacts = new ArrayList<>();
1788 String yamlFileName = "group.yml";
1789 String yamlFileContent = getYamlFileContent();
1790 CsarInfo csarInfo = getCsarInfo();
1791 Map<String, NodeTypeInfo> nodeTypesInfo = getNodeTypesInfo();
1792 Map<String, Object> map = new HashMap<>();
1793 map.put("tosca_definitions_version", "123");
1794 nodeTypesInfo.get(nodeName).setMappedToscaTemplate(map);
1795 Map<String, EnumMap<ArtifactsBusinessLogic.ArtifactOperationEnum, List<ArtifactDefinition>>> nodeTypesArtifactsToHandle = new HashMap<>();
1796 boolean isNested = true;
1798 when(csarBusinessLogic.getParsedToscaYamlInfo(anyString(), anyString(), anyMap(), any(CsarInfo.class),
1799 anyString(), any(Component.class))).thenReturn(getParsedToscaYamlInfo());
1800 when(serviceImportParseLogic.prepareResourceForUpdate(any(Resource.class), any(Resource.class),
1801 any(User.class), anyBoolean(), anyBoolean())).thenReturn(oldResource);
1802 when(serviceImportParseLogic.validateCapabilityTypesCreate(any(User.class), any(ICapabilityTypeOperation.class),
1803 any(Resource.class), any(AuditingActionEnum.class), anyBoolean())).thenReturn(Either.left(true));
1804 when(toscaOperationFacade.overrideComponent(any(Resource.class), any(Resource.class)))
1805 .thenReturn(Either.left(newResource));
1806 Assertions.assertThrows(ComponentException.class, () -> sIBL
1807 .updateResourceFromYaml(oldResource, newResource, actionEnum, createdArtifacts,
1808 yamlFileName, yamlFileContent, csarInfo, nodeTypesInfo,
1809 nodeTypesArtifactsToHandle, nodeName, isNested));
1813 void testCreateResourceFromYaml() throws IOException {
1814 String nodeName = "org.openecomp.resource.derivedFrom.zxjTestImportServiceAb.test";
1815 Resource resource = createParseResourceObject(true);
1816 String topologyTemplateYaml = getMainTemplateContent();
1817 String yamlName = "group.yml";
1819 Map<String, NodeTypeInfo> nodeTypesInfo = getNodeTypesInfo();
1820 Map<String, Object> map = new HashMap<>();
1821 map.put("tosca_definitions_version", "123");
1822 nodeTypesInfo.get(nodeName).setMappedToscaTemplate(map);
1824 CsarInfo csarInfo = getCsarInfo();
1825 Map<String, EnumMap<ArtifactsBusinessLogic.ArtifactOperationEnum, List<ArtifactDefinition>>> nodeTypesArtifactsToCreate = new HashMap<>();
1826 boolean shouldLock = false;
1827 boolean inTransaction = true;
1829 when(csarBusinessLogic.getParsedToscaYamlInfo(anyString(), anyString(), anyMap(), any(CsarInfo.class),
1830 anyString(), any(Component.class))).thenReturn(getParsedToscaYamlInfo());
1831 when(serviceBusinessLogic.fetchAndSetDerivedFromGenericType(any(Component.class))).thenReturn(resource);
1832 when(toscaOperationFacade.validateComponentNameExists(anyString(), any(ResourceTypeEnum.class), any(ComponentTypeEnum.class)))
1833 .thenReturn(Either.left(false));
1834 when(toscaOperationFacade.createToscaComponent(any(Resource.class))).thenReturn(Either.left(resource));
1835 Assertions.assertThrows(ComponentException.class, () -> sIBL.createResourceFromYaml(resource,
1836 topologyTemplateYaml, yamlName, nodeTypesInfo, csarInfo,
1837 nodeTypesArtifactsToCreate, shouldLock, inTransaction, nodeName));
1841 void testCreateResourceAndRIsFromYaml() throws IOException {
1842 String yamlName = "group.yml";
1843 String nodeName = "org.openecomp.resource.derivedFrom.zxjTestImportServiceAb.test";
1844 Resource resource = createParseResourceObject(true);
1845 resource.setSystemName("SystemName");
1846 resource.setComponentType(ComponentTypeEnum.RESOURCE);
1847 AuditingActionEnum actionEnum = AuditingActionEnum.CREATE_RESOURCE;
1848 boolean isNormative = true;
1849 List<ArtifactDefinition> createdArtifacts = new ArrayList<>();
1850 String topologyTemplateYaml = getMainTemplateContent();
1851 Map<String, NodeTypeInfo> nodeTypesInfo = getNodeTypesInfo();
1852 Map<String, Object> map = new HashMap<>();
1853 map.put("tosca_definitions_version", "123");
1854 nodeTypesInfo.get(nodeName).setMappedToscaTemplate(map);
1855 ParsedToscaYamlInfo parsedToscaYamlInfo = getParsedToscaYamlInfo();
1857 CsarInfo csarInfo = getCsarInfo();
1858 Map<String, EnumMap<ArtifactsBusinessLogic.ArtifactOperationEnum, List<ArtifactDefinition>>> nodeTypesArtifactsToCreate = new HashMap<>();
1859 boolean shouldLock = false;
1860 boolean inTransaction = true;
1861 when(serviceBusinessLogic.fetchAndSetDerivedFromGenericType(any(Resource.class)))
1862 .thenReturn(resource);
1864 when(serviceBusinessLogic.lockComponentByName(anyString(), any(), anyString()))
1865 .thenReturn(Either.left(true));
1867 when(toscaOperationFacade.validateComponentNameExists(anyString(), any(ResourceTypeEnum.class), any(ComponentTypeEnum.class)))
1868 .thenReturn(Either.left(false));
1870 when(toscaOperationFacade.createToscaComponent(any(Resource.class))).thenReturn(Either.left(resource));
1872 Assertions.assertThrows(ComponentException.class, () -> sIBL
1873 .createResourceAndRIsFromYaml(yamlName, resource, parsedToscaYamlInfo, actionEnum,
1874 isNormative, createdArtifacts, topologyTemplateYaml, nodeTypesInfo, csarInfo,
1875 nodeTypesArtifactsToCreate, shouldLock, inTransaction, nodeName));
1879 void testCreateGroupsOnResource2() {
1880 Resource resource = createParseResourceObject(false);
1881 Map<String, GroupDefinition> groups = null;
1882 List<GroupDefinition> groupDefinitionList = new ArrayList<>();
1883 GroupDefinition groupDefinition = new GroupDefinition();
1884 groupDefinition.setUniqueId("groupDefinitionUniqueId");
1885 groupDefinition.setName("groupDefinition");
1886 groupDefinitionList.add(groupDefinition);
1888 Assertions.assertNotNull(
1889 sIBL.createGroupsOnResource(resource, groups));
1893 void testCreateGroupsOnResource2_null() {
1894 Resource resource = createParseResourceObject(false);
1895 Map<String, GroupDefinition> groups = null;
1897 Either<Resource, ResponseFormat> result = sIBL.createGroupsOnResource(resource, groups);
1898 assertEquals(result.left().value(), resource);
1902 void testUpdateGroupsMembersUsingResource2() {
1903 Resource resource = createParseResourceObject(true);
1904 Map<String, GroupDefinition> groups = getGroups();
1906 Assertions.assertNotNull(
1907 sIBL.updateGroupsMembersUsingResource(groups, resource));
1911 void testUpdateGroupsMembersUsingResource_left2() {
1912 Resource resource = createParseResourceObject(true);
1913 Map<String, GroupDefinition> groups = getGroups();
1915 Assertions.assertNotNull(
1916 sIBL.updateGroupsMembersUsingResource(groups, resource));
1920 void testUpdateGroupMembers() throws IOException {
1921 Map<String, GroupDefinition> groups = new HashMap<>();
1922 GroupDefinition updatedGroupDefinition = new GroupDefinition();
1923 Resource component = createParseResourceObject(true);
1924 List<ComponentInstance> componentInstances = creatComponentInstances();
1925 String groupName = "tosca_simple_yaml_1_1";
1926 Map<String, String> members = new HashMap<>();
1927 members.put("zxjTestImportServiceAb", getGroupsYaml());
1928 Assertions.assertNotNull(component);
1930 sIBL.updateGroupMembers(groups, updatedGroupDefinition, component, componentInstances, groupName, members);
1934 void testUpdateGroupMembers_null() throws IOException {
1935 Map<String, GroupDefinition> groups = new HashMap<>();
1936 GroupDefinition updatedGroupDefinition = new GroupDefinition();
1937 Resource component = createParseResourceObject(true);
1938 List<ComponentInstance> componentInstances = new ArrayList<>();
1939 String groupName = "tosca_simple_yaml_1_1";
1940 Map<String, String> members = new HashMap<>();
1941 members.put("zxjTestImportServiceAb", getGroupsYaml());
1943 Assertions.assertThrows(ComponentException.class, () -> sIBL.updateGroupMembers(groups,
1944 updatedGroupDefinition, component, componentInstances, groupName, members));
1948 void setCreateResourceTransaction() {
1949 Resource resource = createParseResourceObject(false);
1950 resource.setComponentType(ComponentTypeEnum.RESOURCE);
1951 boolean isNormative = true;
1952 when(toscaOperationFacade.validateComponentNameExists(anyString(), any(ResourceTypeEnum.class), any(ComponentTypeEnum.class)))
1953 .thenReturn(Either.right(StorageOperationStatus.BAD_REQUEST));
1955 Assertions.assertThrows(ComponentException.class, () -> sIBL.createResourceTransaction(resource, user, isNormative));
1959 void setCreateResourceTransaction_leftTrue() {
1960 Resource resource = createParseResourceObject(false);
1961 resource.setComponentType(ComponentTypeEnum.RESOURCE);
1962 boolean isNormative = true;
1963 when(toscaOperationFacade.validateComponentNameExists(anyString(), any(), any())).thenReturn(Either.left(true));
1965 Assertions.assertThrows(ComponentException.class, () -> sIBL.createResourceTransaction(resource, user, isNormative));
1969 void setCreateResourceTransaction_Left() {
1970 Resource resource = createParseResourceObject(false);
1971 resource.setComponentType(ComponentTypeEnum.RESOURCE);
1972 when(toscaOperationFacade.validateComponentNameExists(anyString(), any(), any())).thenReturn(Either.left(false));
1973 when(toscaOperationFacade.createToscaComponent(any(Resource.class))).thenReturn(Either.left(resource));
1974 Assertions.assertNotNull(sIBL.createResourceTransaction(resource, user, false));
1978 void testUpdateExistingResourceByImport() {
1979 Resource newResource = createNewResource();
1980 Resource oldResource = createOldResource();
1981 when(serviceImportParseLogic.prepareResourceForUpdate(any(Resource.class), any(Resource.class),
1982 any(User.class), anyBoolean(), anyBoolean())).thenReturn(oldResource);
1983 when(serviceImportParseLogic.validateCapabilityTypesCreate(any(User.class), any(ICapabilityTypeOperation.class),
1984 any(Resource.class), any(AuditingActionEnum.class), anyBoolean())).thenReturn(Either.left(true));
1985 when(toscaOperationFacade.overrideComponent(any(Resource.class), any(Resource.class)))
1986 .thenReturn(Either.left(newResource));
1987 Assertions.assertNotNull(sIBL.updateExistingResourceByImport(newResource, oldResource, user, true, false, true));
1991 void testCreateNewResourceToOldResource() {
1992 Resource newResource = createNewResource();
1993 Resource oldResource = createOldResource();
1995 sIBL.createNewResourceToOldResource(newResource, oldResource, user);
1996 assertEquals(newResource.getSystemName(), oldResource.getSystemName());
2000 void testCreateResourcesFromYamlNodeTypesList() {
2001 String yamlName = "group.yml";
2002 Service service = createServiceObject(true);
2003 Map<String, Object> mappedToscaTemplate = new HashMap<>();
2004 boolean needLock = true;
2005 Map<String, EnumMap<ArtifactsBusinessLogic.ArtifactOperationEnum, List<ArtifactDefinition>>> nodeTypesArtifactsToHandle = new HashMap<>();
2006 List<ArtifactDefinition> nodeTypesNewCreatedArtifacts = new ArrayList<>();
2007 Map<String, NodeTypeInfo> nodeTypesInfo = new HashMap<>();
2008 CsarInfo csarInfo = getCsarInfo();
2010 Assertions.assertThrows(ComponentException.class, () -> sIBL
2011 .createResourcesFromYamlNodeTypesList(yamlName, service, mappedToscaTemplate, needLock,
2012 nodeTypesArtifactsToHandle, nodeTypesNewCreatedArtifacts, nodeTypesInfo, csarInfo));
2016 void testCreateNodeTypes() {
2017 String yamlName = "group.yml";
2018 Service service = createServiceObject(true);
2019 boolean needLock = true;
2020 Map<String, EnumMap<ArtifactsBusinessLogic.ArtifactOperationEnum, List<ArtifactDefinition>>> nodeTypesArtifactsToHandle = new HashMap<>();
2021 EnumMap<ArtifactsBusinessLogic.ArtifactOperationEnum, List<ArtifactDefinition>> enumListEnumMap =
2022 new EnumMap<>(ArtifactsBusinessLogic.ArtifactOperationEnum.class);
2023 List<ArtifactDefinition> artifactDefinitions = new ArrayList<>();
2024 ArtifactDefinition artifactDefinition = new ArtifactDefinition();
2025 artifactDefinition.setArtifactName("artifactName");
2026 artifactDefinitions.add(artifactDefinition);
2027 enumListEnumMap.put(ArtifactsBusinessLogic.ArtifactOperationEnum.CREATE,
2028 artifactDefinitions);
2029 nodeTypesArtifactsToHandle.put("nodeTyp", enumListEnumMap);
2030 List<ArtifactDefinition> nodeTypesNewCreatedArtifacts = new ArrayList<>();
2031 Map<String, NodeTypeInfo> nodeTypesInfo = getNodeTypesInfo();
2032 CsarInfo csarInfo = getCsarInfo();
2033 Map<String, Object> mapToConvert = new HashMap<>();
2034 Map<String, Object> nodeTypes = new HashMap<>();
2035 NodeTypeInfo nodeTypeInfo = new NodeTypeInfo();
2036 nodeTypesInfo.put("nodeTyp", nodeTypeInfo);
2037 nodeTypes.put("org.openecomp.resource.derivedFrom.zxjTestImportServiceAb.test",
2040 Assertions.assertThrows(ComponentException.class, () -> sIBL.createNodeTypes(yamlName,
2041 service, needLock, nodeTypesArtifactsToHandle, nodeTypesNewCreatedArtifacts,
2042 nodeTypesInfo, csarInfo, mapToConvert, nodeTypes));
2046 void testCreateNodeTypesElse() {
2047 String nodeName = "org.openecomp.resource.derivedFrom.zxjTestImportServiceAb.test";
2048 String yamlName = "group.yml";
2049 Service service = createServiceObject(true);
2050 boolean needLock = true;
2051 Map<String, EnumMap<ArtifactsBusinessLogic.ArtifactOperationEnum, List<ArtifactDefinition>>> nodeTypesArtifactsToHandle = new HashMap<>();
2052 EnumMap<ArtifactsBusinessLogic.ArtifactOperationEnum, List<ArtifactDefinition>> enumListEnumMap =
2053 new EnumMap<>(ArtifactsBusinessLogic.ArtifactOperationEnum.class);
2054 List<ArtifactDefinition> artifactDefinitions = new ArrayList<>();
2055 ArtifactDefinition artifactDefinition = new ArtifactDefinition();
2056 artifactDefinition.setArtifactName("artifactName");
2057 artifactDefinitions.add(artifactDefinition);
2058 enumListEnumMap.put(ArtifactsBusinessLogic.ArtifactOperationEnum.CREATE,
2059 artifactDefinitions);
2060 nodeTypesArtifactsToHandle.put("nodeTyp", enumListEnumMap);
2061 List<ArtifactDefinition> nodeTypesNewCreatedArtifacts = new ArrayList<>();
2062 Map<String, NodeTypeInfo> nodeTypesInfo = getNodeTypesInfo();
2063 Map<String, Object> map = new HashMap<>();
2064 map.put("tosca_definitions_version", "123");
2065 nodeTypesInfo.get(nodeName).setMappedToscaTemplate(map);
2066 ParsedToscaYamlInfo parsedToscaYamlInfo = getParsedToscaYamlInfo();
2068 CsarInfo csarInfo = getCsarInfo();
2069 Map<String, Object> mapToConvert = new HashMap<>();
2070 Map<String, Object> nodeTypes = new HashMap<>();
2071 NodeTypeInfo nodeTypeInfo = new NodeTypeInfo();
2072 nodeTypes.put("org.openecomp.resource.derivedFrom.zxjTestImportServiceAb.test",
2074 when(serviceImportParseLogic.createNodeTypeResourceFromYaml(anyString(), any(Map.Entry.class), any(User.class),
2075 anyMap(), any(Service.class), anyBoolean(), anyMap(), anyList(), anyBoolean(), any(CsarInfo.class),
2076 anyBoolean())).thenReturn(getResourceCreated());
2077 Assertions.assertNotNull(service);
2079 sIBL.createNodeTypes(yamlName,
2080 service, needLock, nodeTypesArtifactsToHandle, nodeTypesNewCreatedArtifacts,
2081 nodeTypesInfo, csarInfo, mapToConvert, nodeTypes);
2084 protected ImmutablePair<Resource, ActionStatus> getResourceCreated() {
2085 Resource resource = createOldResource();
2086 ImmutablePair<Resource, ActionStatus> resourceCreated = new ImmutablePair<>(resource, ActionStatus.OK);
2088 return resourceCreated;
2091 protected Resource createNewResource() {
2092 Resource newResource = createParseResourceObject(false);
2093 newResource.setVersion("1.0");
2094 newResource.setInvariantUUID("");
2095 newResource.setLifecycleState(null);
2096 newResource.setUUID("");
2097 newResource.setNormalizedName("");
2098 newResource.setSystemName("");
2099 newResource.setCsarUUID("");
2100 newResource.setImportedToscaChecksum("");
2101 newResource.setDerivedFromGenericType("");
2102 newResource.setDerivedFromGenericVersion("");
2103 Map<String, ArtifactDefinition> toscaArtifacts = new HashMap<>();
2104 ArtifactDefinition artifactDefinition = new ArtifactDefinition();
2105 artifactDefinition.setArtifactName("artifactDefinition");
2106 toscaArtifacts.put("toscaArtifactsMap", artifactDefinition);
2107 Map<String, InterfaceDefinition> interfaces = new HashMap<>();
2108 InterfaceDefinition interfaceDefinition = new InterfaceDefinition();
2109 interfaceDefinition.setOwnerId("OwnerId");
2110 interfaces.put("interfacesMap", interfaceDefinition);
2111 newResource.setInterfaces(interfaces);
2112 newResource.setToscaArtifacts(toscaArtifacts);
2113 newResource.setProperties(getProperties());
2117 protected Resource createOldResource() {
2118 Resource newResource = createParseResourceObject(false);
2119 newResource.setVersion("1.0");
2120 newResource.setUniqueId("ResourceUniqueId");
2121 newResource.setInvariantUUID("552e8f6c-340c-4fb4-8a82-fe7732fd8010");
2122 newResource.setLifecycleState(LifecycleStateEnum.CERTIFIED);
2123 newResource.setUUID("13065b80-ca96-4331-b643-d28aeaf961cb");
2124 newResource.setNormalizedName("NormalizedName");
2125 newResource.setSystemName("default");
2126 newResource.setCsarUUID("CsarUUID");
2127 newResource.setImportedToscaChecksum("ImportedToscaChecksum");
2128 newResource.setDerivedFromGenericType("DerivedFromGenericType");
2129 newResource.setDerivedFromGenericVersion("0.1");
2130 Map<String, ArtifactDefinition> toscaArtifacts = new HashMap<>();
2131 ArtifactDefinition artifactDefinition = new ArtifactDefinition();
2132 artifactDefinition.setArtifactName("tosca_simple_yaml_1_1");
2133 toscaArtifacts.put("tosca_definitions_version", artifactDefinition);
2134 Map<String, InterfaceDefinition> interfaces = new HashMap<>();
2135 InterfaceDefinition interfaceDefinition = new InterfaceDefinition();
2136 interfaceDefinition.setDescription("Invoked upon receipt of an Instantiate VNF request");
2137 interfaces.put("tosca_simple_yaml_1_1", interfaceDefinition);
2138 newResource.setInterfaces(interfaces);
2139 newResource.setToscaArtifacts(toscaArtifacts);
2140 List<PropertyDefinition> properties = new ArrayList<>();
2141 PropertyDefinition propertyDefinition = new PropertyDefinition();
2142 propertyDefinition.setName("tosca_simple_yaml_1_1");
2143 properties.add(propertyDefinition);
2144 newResource.setProperties(properties);
2148 protected Map<String, InputDefinition> getCurrPropertiesMap() {
2149 Map<String, InputDefinition> currPropertiesMap = new HashMap<>();
2150 InputDefinition inputDefinition = new InputDefinition();
2151 inputDefinition.setName("inputDefinitionName");
2152 inputDefinition.setUniqueId("uniqueId");
2153 inputDefinition.setType("inputDefinitionType");
2154 currPropertiesMap.put("propertyInfoName", inputDefinition);
2155 return currPropertiesMap;
2158 protected List<UploadPropInfo> getPropertyList() {
2159 List<UploadPropInfo> propertyList = new ArrayList<>();
2160 List<GetInputValueDataDefinition> get_input = new ArrayList<>();
2161 GetInputValueDataDefinition getInputValueDataDefinition = new GetInputValueDataDefinition();
2162 getInputValueDataDefinition.setPropName("getInputValueDataDefinitionName");
2163 getInputValueDataDefinition.setInputName("inputDefinitionName");
2164 get_input.add(getInputValueDataDefinition);
2165 UploadPropInfo propertyInfo = new UploadPropInfo();
2166 propertyInfo.setValue("value");
2167 propertyInfo.setGet_input(get_input);
2168 propertyInfo.setName("propertyInfoName");
2169 propertyList.add(propertyInfo);
2170 return propertyList;
2173 private Map<String, NodeTypeInfo> getNodeTypesInfo() {
2174 Map<String, NodeTypeInfo> nodeTypesInfo = new HashMap<>();
2175 NodeTypeInfo nodeTypeInfo = new NodeTypeInfo();
2176 Map<String, Object> mappedToscaTemplate = new HashMap<>();
2177 nodeTypeInfo.setNested(true);
2178 nodeTypeInfo.setTemplateFileName("templateFileName");
2179 nodeTypeInfo.setMappedToscaTemplate(mappedToscaTemplate);
2180 String nodeName = "org.openecomp.resource.derivedFrom.zxjTestImportServiceAb.test";
2181 nodeTypesInfo.put(nodeName, nodeTypeInfo);
2182 return nodeTypesInfo;
2185 private Map<String, Object> getNodeTypes() {
2186 Map<String, Object> nodeTypesInfo = new HashMap<>();
2187 NodeTypeInfo nodeTypeInfo = new NodeTypeInfo();
2188 Map<String, Object> mappedToscaTemplate = new HashMap<>();
2189 nodeTypeInfo.setNested(true);
2190 nodeTypeInfo.setTemplateFileName("templateFileName");
2191 nodeTypeInfo.setMappedToscaTemplate(mappedToscaTemplate);
2192 String nodeName = "org.openecomp.resource.derivedFrom.zxjTestImportServiceAb.test";
2193 nodeTypesInfo.put(nodeName, nodeTypeInfo);
2194 return nodeTypesInfo;
2197 private Map<String, UploadComponentInstanceInfo> getUploadResInstancesMap() {
2198 Map<String, UploadComponentInstanceInfo> uploadResInstancesMap = new HashMap<>();
2199 UploadComponentInstanceInfo uploadComponentInstanceInfo = getUploadComponentInstanceInfo();
2200 Map<String, String> capabilitiesNamesToUpdate = new HashMap<>();
2201 capabilitiesNamesToUpdate.put("mme_ipu_vdu.feature", "capabilitiesNamesToUpdate");
2202 Map<String, String> requirementsNamesToUpdate = new HashMap<>();
2203 requirementsNamesToUpdate.put("mme_ipu_vdu.feature", "capabilitiesNamesToUpdate");
2204 uploadResInstancesMap.put("zxjTestImportServiceAb", uploadComponentInstanceInfo);
2205 return uploadResInstancesMap;
2208 protected Map<String, List<UploadPropInfo>> getUploadPropInfoProperties() {
2209 Map<String, List<UploadPropInfo>> properties = new HashMap<>();
2210 List<UploadPropInfo> uploadPropInfoList = new ArrayList<>();
2211 UploadPropInfo uploadPropInfo = new UploadPropInfo();
2212 List<GetInputValueDataDefinition> get_input = new ArrayList<>();
2213 GetInputValueDataDefinition getInputValueDataDefinition = new GetInputValueDataDefinition();
2214 getInputValueDataDefinition.setPropName("getInputValueDataDefinitionName");
2215 get_input.add(getInputValueDataDefinition);
2216 uploadPropInfo.setName("propertiesName");
2217 uploadPropInfo.setValue("value");
2218 uploadPropInfo.setGet_input(get_input);
2219 uploadPropInfoList.add(uploadPropInfo);
2220 properties.put("uploadComponentInstanceInfo", uploadPropInfoList);
2224 protected List<PropertyDefinition> getProperties() {
2225 List<PropertyDefinition> properties = new ArrayList<>();
2226 PropertyDefinition propertyDefinition = new PropertyDefinition();
2227 propertyDefinition.setName("propertiesName");
2228 properties.add(propertyDefinition);
2232 protected Map<String, List<UploadReqInfo>> gerRequirements() {
2233 Map<String, List<UploadReqInfo>> uploadReqInfoMap = new HashMap<>();
2234 String requirementName = "tosca.capabilities.Node";
2235 List<UploadReqInfo> uploadReqInfoList = new ArrayList<>();
2236 UploadReqInfo uploadReqInfo = new UploadReqInfo();
2237 uploadReqInfo.setCapabilityName("tosca.capabilities.Node");
2238 uploadReqInfoMap.put(requirementName, uploadReqInfoList);
2239 return uploadReqInfoMap;
2242 protected ComponentParametersView createComponentParametersView() {
2243 ComponentParametersView parametersView = new ComponentParametersView();
2244 parametersView.disableAll();
2245 parametersView.setIgnoreComponentInstances(false);
2246 parametersView.setIgnoreComponentInstancesProperties(false);
2247 parametersView.setIgnoreCapabilities(false);
2248 parametersView.setIgnoreRequirements(false);
2249 parametersView.setIgnoreGroups(false);
2250 return parametersView;
2253 protected Map<String, byte[]> crateCsarFromPayload() {
2254 String payloadName = "valid_vf.csar";
2255 String rootPath = System.getProperty("user.dir");
2259 Map<String, byte[]> returnValue = null;
2261 path = Paths.get(rootPath + "/src/test/resources/valid_vf.csar");
2262 data = Files.readAllBytes(path);
2263 payloadData = Base64.encodeBase64String(data);
2264 UploadResourceInfo resourceInfo = new UploadResourceInfo();
2265 resourceInfo.setPayloadName(payloadName);
2266 resourceInfo.setPayloadData(payloadData);
2267 Method privateMethod = null;
2268 privateMethod = AbstractValidationsServlet.class.getDeclaredMethod("getCsarFromPayload", UploadResourceInfo.class);
2269 privateMethod.setAccessible(true);
2270 returnValue = (Map<String, byte[]>) privateMethod.invoke(servlet, resourceInfo);
2271 } catch (IOException | NoSuchMethodException | SecurityException | IllegalAccessException | IllegalArgumentException |
2272 InvocationTargetException e) {
2273 e.printStackTrace();
2278 protected List<ComponentInstance> creatComponentInstances() {
2279 List<ComponentInstance> componentInstances = new ArrayList<>();
2280 ComponentInstance componentInstance = new ComponentInstance();
2281 Map<String, List<CapabilityDefinition>> capabilities = new HashMap<>();
2282 List<CapabilityDefinition> capabilityDefinitionList = new ArrayList<>();
2283 CapabilityDefinition capabilityDefinition = new CapabilityDefinition();
2284 capabilityDefinition.setName("mme_ipu_vdu.feature");
2285 capabilityDefinitionList.add(capabilityDefinition);
2286 capabilities.put("tosca.capabilities.Node", capabilityDefinitionList);
2288 Map<String, List<RequirementDefinition>> requirements = new HashMap<>();
2289 List<RequirementDefinition> requirementDefinitionList = new ArrayList<>();
2290 RequirementDefinition requirementDefinition = new RequirementDefinition();
2291 requirementDefinition.setName("zxjtestimportserviceab0.mme_ipu_vdu.dependency.test");
2292 requirementDefinitionList.add(requirementDefinition);
2293 requirements.put("tosca.capabilities.Node", requirementDefinitionList);
2294 componentInstance.setRequirements(requirements);
2295 componentInstance.setCapabilities(capabilities);
2296 componentInstance.setUniqueId("uniqueId");
2297 componentInstance.setComponentUid("componentUid");
2298 componentInstance.setName("zxjTestImportServiceAb");
2299 componentInstances.add(componentInstance);
2300 return componentInstances;
2303 private CreateServiceFromYamlParameter getCsfyp() {
2304 CreateServiceFromYamlParameter csfyp = new CreateServiceFromYamlParameter();
2305 List<ArtifactDefinition> createdArtifacts = new ArrayList<>();
2306 Map<String, NodeTypeInfo> nodeTypesInfo = getNodeTypesInfo();
2308 csfyp.setNodeName("org.openecomp.resource.derivedFrom.zxjTestImportServiceAb.test");
2309 csfyp.setTopologyTemplateYaml(getMainTemplateContent("service_import_template.yml"));
2310 csfyp.setCreatedArtifacts(createdArtifacts);
2311 csfyp.setInTransaction(true);
2312 csfyp.setShouldLock(true);
2313 csfyp.setCsarInfo(getCsarInfo());
2314 csfyp.setParsedToscaYamlInfo(getParsedToscaYamlInfo());
2315 csfyp.setNodeTypesInfo(nodeTypesInfo);
2316 csfyp.setYamlName("group.yml");
2320 private ParsedToscaYamlInfo getParsedToscaYamlInfo() {
2321 ParsedToscaYamlInfo parsedToscaYamlInfo = new ParsedToscaYamlInfo();
2322 Map<String, InputDefinition> inputs = new HashMap<>();
2323 Map<String, UploadComponentInstanceInfo> instances = new HashMap<>();
2324 UploadComponentInstanceInfo uploadComponentInstanceInfo = getUploadComponentInstanceInfo();
2325 instances.put("instances", uploadComponentInstanceInfo);
2326 Map<String, GroupDefinition> groups = new HashMap<>();
2327 Map<String, PolicyDefinition> policies = new HashMap<>();
2328 parsedToscaYamlInfo.setGroups(groups);
2329 parsedToscaYamlInfo.setInputs(inputs);
2330 parsedToscaYamlInfo.setInstances(instances);
2331 parsedToscaYamlInfo.setPolicies(policies);
2332 return parsedToscaYamlInfo;
2335 String getMainTemplateContent(String fileName) {
2336 String mainTemplateContent = null;
2338 mainTemplateContent = loadFileNameToJsonString(fileName);
2339 } catch (IOException e) {
2340 e.printStackTrace();
2342 return mainTemplateContent;
2345 protected CsarInfo getCsarInfo() {
2346 String csarUuid = "0010";
2347 User user = new User("jh0003");
2348 Map<String, byte[]> csar = crateCsarFromPayload();
2349 String vfReousrceName = "resouceName";
2350 String mainTemplateName = "mainTemplateName";
2351 String mainTemplateContent = getMainTemplateContent("service_import_template.yml");
2352 return new CsarInfo(user, csarUuid, csar, vfReousrceName, mainTemplateName, mainTemplateContent, false);
2355 protected CsarUtils.NonMetaArtifactInfo getNonMetaArtifactInfo() {
2356 String artifactName = "artifactName", path = "/src/test/resources/valid_vf.csar", artifactType = "AAI_SERVICE_MODEL";
2357 ArtifactGroupTypeEnum artifactGroupType = ArtifactGroupTypeEnum.TOSCA;
2358 String rootPath = System.getProperty("user.dir");
2360 byte[] data = new byte[0];
2361 path2 = Paths.get(rootPath + "/src/test/resources/valid_vf.csar");
2363 data = Files.readAllBytes(path2);
2364 } catch (IOException e) {
2365 e.printStackTrace();
2367 String artifactUniqueId = "artifactUniqueId";
2368 boolean isFromCsar = true;
2369 CsarUtils.NonMetaArtifactInfo nonMetaArtifactInfo = new CsarUtils.NonMetaArtifactInfo(artifactName,
2370 path, artifactType, artifactGroupType, data, artifactUniqueId, isFromCsar);
2371 return nonMetaArtifactInfo;
2375 protected void assertComponentException(ComponentException e, ActionStatus expectedStatus, String... variables) {
2376 ResponseFormat actualResponse = e.getResponseFormat() != null ?
2377 e.getResponseFormat() : componentsUtils.getResponseFormat(e.getActionStatus(), e.getParams());
2378 assertParseResponse(actualResponse, expectedStatus, variables);
2381 private void assertParseResponse(ResponseFormat actualResponse, ActionStatus expectedStatus, String... variables) {
2382 ResponseFormat expectedResponse = responseManager.getResponseFormat(expectedStatus, variables);
2383 assertThat(expectedResponse.getStatus()).isEqualTo(actualResponse.getStatus());
2384 assertThat(expectedResponse.getFormattedMessage()).isEqualTo(actualResponse.getFormattedMessage());