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.junit.jupiter.api.Assertions.assertTrue;
23 import static org.mockito.Mockito.any;
24 import static org.mockito.Mockito.anyBoolean;
25 import static org.mockito.Mockito.anyList;
26 import static org.mockito.Mockito.anyMap;
27 import static org.mockito.Mockito.anyString;
28 import static org.mockito.Mockito.eq;
29 import static org.mockito.Mockito.mock;
30 import static org.mockito.Mockito.when;
32 import fj.data.Either;
33 import java.io.IOException;
34 import java.lang.reflect.InvocationTargetException;
35 import java.lang.reflect.Method;
36 import java.nio.file.FileSystems;
37 import java.nio.file.Files;
38 import java.nio.file.Path;
39 import java.nio.file.Paths;
40 import java.util.ArrayList;
41 import java.util.EnumMap;
42 import java.util.HashMap;
43 import java.util.List;
46 import org.apache.commons.codec.binary.Base64;
47 import org.apache.commons.collections.map.HashedMap;
48 import org.apache.commons.lang3.tuple.ImmutablePair;
49 import org.junit.jupiter.api.Assertions;
50 import org.junit.jupiter.api.BeforeEach;
51 import org.junit.jupiter.api.Test;
52 import org.mockito.InjectMocks;
53 import org.mockito.MockitoAnnotations;
54 import org.openecomp.sdc.be.components.csar.CsarBusinessLogic;
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.ResourceTypeEnum;
65 import org.openecomp.sdc.be.externalapi.servlet.ArtifactExternalServlet;
66 import org.openecomp.sdc.be.impl.ComponentsUtils;
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.jsonjanusgraph.operations.ToscaOperationFacade;
100 import org.openecomp.sdc.be.model.operations.api.ICapabilityTypeOperation;
101 import org.openecomp.sdc.be.model.operations.api.StorageOperationStatus;
102 import org.openecomp.sdc.be.resources.data.auditing.AuditingActionEnum;
103 import org.openecomp.sdc.be.servlets.AbstractValidationsServlet;
104 import org.openecomp.sdc.be.tosca.CsarUtils;
105 import org.openecomp.sdc.be.user.UserBusinessLogic;
106 import org.openecomp.sdc.common.api.ArtifactGroupTypeEnum;
107 import org.openecomp.sdc.common.api.ArtifactTypeEnum;
108 import org.openecomp.sdc.common.api.Constants;
109 import org.openecomp.sdc.exception.ResponseFormat;
111 class ServiceImportBusinessLogicTest extends ServiceImportBussinessLogicBaseTestSetup {
114 private static ServiceImportBusinessLogic serviceImportBusinessLogic;
116 private ServiceBusinessLogic serviceBusinessLogic = mock(ServiceBusinessLogic.class);
117 private CsarBusinessLogic csarBusinessLogic = mock(CsarBusinessLogic.class);
118 private ToscaOperationFacade toscaOperationFacade = mock(ToscaOperationFacade.class);
119 private ServiceImportParseLogic serviceImportParseLogic = mock(ServiceImportParseLogic.class);
120 private ArtifactDefinition artifactDefinition = mock(ArtifactDefinition.class);
121 private UserBusinessLogic userBusinessLogic = mock(UserBusinessLogic.class);
122 private ComponentInstanceBusinessLogic componentInstanceBusinessLogic = mock(ComponentInstanceBusinessLogic.class);
123 private ComponentsUtils componentsUtils = mock(ComponentsUtils.class);
124 private ServletUtils servletUtils = mock(ServletUtils.class);
125 private ResourceImportManager resourceImportManager = mock(ResourceImportManager.class);
126 private ArtifactsBusinessLogic artifactsBusinessLogic = mock(ArtifactsBusinessLogic.class);
128 private AbstractValidationsServlet servlet = new ArtifactExternalServlet(userBusinessLogic,
129 componentInstanceBusinessLogic, componentsUtils, servletUtils, resourceImportManager, artifactsBusinessLogic);
131 public static String loadFileNameToJsonString(String fileName) throws IOException {
132 String sourceDir = "src/test/resources/normativeTypes";
133 return loadFileNameToJsonString(sourceDir, fileName);
136 private static String loadFileNameToJsonString(String sourceDir, String fileName) throws IOException {
137 java.nio.file.Path filePath = FileSystems.getDefault().getPath(sourceDir, fileName);
138 byte[] fileContent = Files.readAllBytes(filePath);
139 return new String(fileContent);
144 MockitoAnnotations.openMocks(this);
145 when(artifactDefinition.getMandatory()).thenReturn(true);
146 when(artifactDefinition.getArtifactName()).thenReturn("creatorFullName");
147 when(artifactDefinition.getArtifactType()).thenReturn("TOSCA_CSAR");
149 sIB1.setServiceBusinessLogic(serviceBusinessLogic);
150 sIB1.setCsarBusinessLogic(csarBusinessLogic);
151 sIB1.setServiceImportParseLogic(serviceImportParseLogic);
152 sIB1.setToscaOperationFacade(toscaOperationFacade);
153 sIB1.setComponentsUtils(componentsUtils);
154 sIB1.setCsarArtifactsAndGroupsBusinessLogic(csarArtifactsAndGroupsBusinessLogic);
159 void testGetComponentsUtils() {
160 assertNotNull(serviceImportBusinessLogic.getComponentsUtils());
164 void testSetComponentsUtils() {
165 assertNotNull(serviceImportBusinessLogic);
169 void testCreateService() {
170 Service oldService = createServiceObject(true);
171 String payloadName = "valid_vf";
172 Map<String, byte[]> payload = crateCsarFromPayload();
173 Service newService = createServiceObject(true);
175 when(serviceBusinessLogic.validateServiceBeforeCreate(any(Service.class), any(User.class), any(AuditingActionEnum.class)))
176 .thenReturn(Either.left(newService));
177 when(toscaOperationFacade.validateCsarUuidUniqueness(anyString())).thenReturn(StorageOperationStatus.OK);
178 when(csarBusinessLogic.getCsarInfo(any(Service.class), any(),
179 any(User.class), any(Map.class), anyString())).thenReturn(getCsarInfo());
180 when(serviceImportParseLogic.findNodeTypesArtifactsToHandle(any(Map.class), any(CsarInfo.class),
181 any(Service.class))).thenReturn(Either.right(ActionStatus.GENERAL_ERROR));
182 when(csarBusinessLogic.getParsedToscaYamlInfo(anyString(), anyString(), any(),
183 any(CsarInfo.class), anyString(), any(Service.class))).thenReturn(getParsedToscaYamlInfo());
185 Assertions.assertThrows(ComponentException.class, () -> sIB1.createService(oldService,
186 AuditingActionEnum.CREATE_RESOURCE, user, payload, payloadName));
191 void testCreateServiceFromCsar() {
192 Service oldService = createServiceObject(true);
193 String csarUUID = "valid_vf";
194 Map<String, byte[]> payload = crateCsarFromPayload();
195 CsarInfo csarInfo = getCsarInfo();
196 Map<String, EnumMap<ArtifactsBusinessLogic.ArtifactOperationEnum, List<ArtifactDefinition>>> map =
199 when(csarBusinessLogic.getCsarInfo(any(Service.class), any(), any(User.class),
200 any(Map.class), anyString())).thenReturn(csarInfo);
201 when(serviceImportParseLogic.findNodeTypesArtifactsToHandle(any(Map.class), any(CsarInfo.class),
202 any(Service.class))).thenReturn(Either.left(map));
203 Assertions.assertThrows(ComponentException.class, () -> sIB1.createServiceFromCsar(oldService,
204 user, payload, csarUUID));
208 void testCreateServiceFromYaml() {
209 Service oldService = createServiceObject(true);
210 Resource resource = createOldResource();
211 String topologyTemplateYaml = getMainTemplateContent("service_import_template.yml");
212 String yamlName = "group.yml";
213 CsarInfo csarInfo = getCsarInfo();
214 Map<String, EnumMap<ArtifactsBusinessLogic.ArtifactOperationEnum, List<ArtifactDefinition>>> nodeTypesArtifactsToCreate = new HashMap<>();
215 String nodeName = "org.openecomp.resource.derivedFrom.zxjTestImportServiceAb.test";
217 Map<String, NodeTypeInfo> nodeTypesInfo = getNodeTypesInfo();
218 Map<String, Object> map = new HashMap<>();
219 map.put("tosca_definitions_version", "123");
220 nodeTypesInfo.get(nodeName).setMappedToscaTemplate(map);
221 ParsedToscaYamlInfo parsedToscaYamlInfo = getParsedToscaYamlInfo();
222 when(toscaOperationFacade.getLatestResourceByToscaResourceName(anyString()))
223 .thenReturn(Either.left(resource));
224 when(csarBusinessLogic.getParsedToscaYamlInfo(anyString(), anyString(), any(Map.class),
225 eq(csarInfo), anyString(), any(Component.class))).thenReturn(parsedToscaYamlInfo);
226 when(serviceBusinessLogic.lockComponentByName(anyString(), any(Service.class), anyString()))
227 .thenReturn(Either.left(true));
229 Assertions.assertThrows(ComponentException.class, () -> sIB1.createServiceFromYaml(oldService,
230 topologyTemplateYaml, yamlName, nodeTypesInfo, csarInfo,
231 nodeTypesArtifactsToCreate, false, true, nodeName));
235 void testCreateServiceAndRIsFromYaml() {
236 String nodeName = "org.openecomp.resource.derivedFrom.zxjTestImportServiceAb.test";
237 Service oldService = createServiceObject(true);
238 Resource resource = createOldResource();
239 Map<String, EnumMap<ArtifactsBusinessLogic.ArtifactOperationEnum, List<ArtifactDefinition>>> nodeTypesArtifactsToCreate = new HashMap<>();
240 CreateServiceFromYamlParameter csfyp = getCsfyp();
241 Map<String, NodeTypeInfo> nodeTypesInfo = getNodeTypesInfo();
242 Map<String, Object> map = new HashMap<>();
243 map.put("tosca_definitions_version", "123");
244 nodeTypesInfo.get(nodeName).setMappedToscaTemplate(map);
245 ParsedToscaYamlInfo parsedToscaYamlInfo = getParsedToscaYamlInfo();
246 csfyp.setNodeTypesInfo(nodeTypesInfo);
247 csfyp.setParsedToscaYamlInfo(parsedToscaYamlInfo);
248 when(toscaOperationFacade.getLatestResourceByToscaResourceName(anyString()))
249 .thenReturn(Either.left(resource));
250 Assertions.assertThrows(ComponentException.class, () -> sIB1.createServiceAndRIsFromYaml(oldService,
251 false, nodeTypesArtifactsToCreate, false, true, csfyp));
255 void testCreateServiceAndRIsFromYamlShoudLook() {
256 String nodeName = "org.openecomp.resource.derivedFrom.zxjTestImportServiceAb.test";
257 Service oldService = createServiceObject(true);
258 Resource resource = createOldResource();
259 Map<String, EnumMap<ArtifactsBusinessLogic.ArtifactOperationEnum, List<ArtifactDefinition>>> nodeTypesArtifactsToCreate = new HashMap<>();
260 CreateServiceFromYamlParameter csfyp = getCsfyp();
261 Map<String, NodeTypeInfo> nodeTypesInfo = getNodeTypesInfo();
262 Map<String, Object> map = new HashMap<>();
263 map.put("tosca_definitions_version", "123");
264 nodeTypesInfo.get(nodeName).setMappedToscaTemplate(map);
265 ParsedToscaYamlInfo parsedToscaYamlInfo = getParsedToscaYamlInfo();
266 csfyp.setNodeTypesInfo(nodeTypesInfo);
267 csfyp.setParsedToscaYamlInfo(parsedToscaYamlInfo);
268 when(toscaOperationFacade.getLatestResourceByToscaResourceName(anyString()))
269 .thenReturn(Either.left(resource));
270 Assertions.assertThrows(ComponentException.class, () -> sIB1.createServiceAndRIsFromYaml(oldService,
271 false, nodeTypesArtifactsToCreate, false, true, csfyp));
275 void testCreateOrUpdateArtifacts() {
276 ArtifactsBusinessLogic.ArtifactOperationEnum operation = ArtifactsBusinessLogic.ArtifactOperationEnum.UPDATE;
277 List<ArtifactDefinition> createdArtifacts = new ArrayList<>();
278 String yamlFileName = "group.yml";
279 CsarInfo csarInfo = getCsarInfo();
280 Resource preparedResource = createParseResourceObject(false);
281 preparedResource.setResourceType(ResourceTypeEnum.VF);
282 String nodeName = "org.openecomp.resource.derivedFrom.zxjTestImportServiceAb.test";
283 Map<String, EnumMap<ArtifactsBusinessLogic.ArtifactOperationEnum, List<ArtifactDefinition>>> nodeTypesArtifactsToHandle = new HashMap<>();
284 EnumMap<ArtifactsBusinessLogic.ArtifactOperationEnum, List<ArtifactDefinition>> enumListEnumMap =
285 new EnumMap<>(ArtifactsBusinessLogic.ArtifactOperationEnum.class);
286 List<ArtifactDefinition> artifactDefinitions = new ArrayList<>();
287 ArtifactDefinition artifactDefinition = new ArtifactDefinition();
288 artifactDefinition.setArtifactName("artifactName");
289 artifactDefinitions.add(artifactDefinition);
290 enumListEnumMap.put(ArtifactsBusinessLogic.ArtifactOperationEnum.CREATE,
291 artifactDefinitions);
292 nodeTypesArtifactsToHandle.put(nodeName, enumListEnumMap);
293 NodeTypeInfoToUpdateArtifacts nodeTypeInfoToUpdateArtifacts = new NodeTypeInfoToUpdateArtifacts(nodeName, nodeTypesArtifactsToHandle);
294 nodeTypeInfoToUpdateArtifacts.setNodeName(nodeName);
295 nodeTypeInfoToUpdateArtifacts.setNodeTypesArtifactsToHandle(nodeTypesArtifactsToHandle);
297 Assertions.assertNotNull(
298 sIB1.createOrUpdateArtifacts(operation, createdArtifacts, yamlFileName, csarInfo,
299 preparedResource, nodeTypeInfoToUpdateArtifacts, true, true)
306 void testHandleVfCsarArtifacts() {
307 Resource resource = createParseResourceObject(true);
308 Map<String, ArtifactDefinition> deploymentArtifacts = new HashMap<>();
309 ArtifactDefinition artifactDefinition = new ArtifactDefinition();
310 artifactDefinition.setArtifactName(Constants.VENDOR_LICENSE_MODEL);
311 artifactDefinition.setUniqueId("uniqueId");
312 deploymentArtifacts.put("deploymentArtifacts", artifactDefinition);
313 resource.setDeploymentArtifacts(deploymentArtifacts);
314 CsarInfo csarInfo = getCsarInfo();
315 Map<String, byte[]> csar = new HashMap<>();
316 String csarKey = CsarUtils.ARTIFACTS_PATH + "HEAT.meta";
317 byte[] artifactsMetaBytes = "src/test/resources/normativeTypes/valid_vf.csar".getBytes();
318 csar.put(csarKey, artifactsMetaBytes);
319 csarInfo.setCsar(csar);
320 List<ArtifactDefinition> createdArtifacts = new ArrayList<>();
321 ArtifactOperationInfo artifactOperation = new ArtifactOperationInfo(true, true, ArtifactsBusinessLogic.ArtifactOperationEnum.CREATE);
322 when(toscaOperationFacade.getToscaElement(anyString())).thenReturn(Either.left(resource));
323 when(csarArtifactsAndGroupsBusinessLogic
324 .createResourceArtifactsFromCsar(any(CsarInfo.class), any(Resource.class), anyString(), anyString(),
325 anyList())).thenReturn(Either.left(resource));
326 Assertions.assertNotNull(
327 sIB1.handleVfCsarArtifacts(resource,
328 csarInfo, createdArtifacts, artifactOperation, true, true));
332 void testHandleVfCsarArtifactsGetToscaElement() {
333 Resource resource = createParseResourceObject(true);
334 Map<String, ArtifactDefinition> deploymentArtifacts = new HashMap<>();
335 ArtifactDefinition artifactDefinition = new ArtifactDefinition();
336 artifactDefinition.setArtifactName(Constants.VENDOR_LICENSE_MODEL);
337 artifactDefinition.setUniqueId("uniqueId");
338 deploymentArtifacts.put("deploymentArtifacts", artifactDefinition);
339 resource.setDeploymentArtifacts(deploymentArtifacts);
340 CsarInfo csarInfo = getCsarInfo();
341 Map<String, byte[]> csar = new HashMap<>();
342 String csarKey = CsarUtils.ARTIFACTS_PATH + "HEAT.meta";
343 byte[] artifactsMetaBytes = "src/test/resources/normativeTypes/valid_vf.csar".getBytes();
344 csar.put(csarKey, artifactsMetaBytes);
345 csarInfo.setCsar(csar);
346 List<ArtifactDefinition> createdArtifacts = new ArrayList<>();
347 ArtifactOperationInfo artifactOperation = new ArtifactOperationInfo(true, true, ArtifactsBusinessLogic.ArtifactOperationEnum.CREATE);
348 when(toscaOperationFacade.getToscaElement(anyString())).thenReturn(Either.left(resource));
349 when(csarArtifactsAndGroupsBusinessLogic
350 .createResourceArtifactsFromCsar(any(CsarInfo.class), any(Resource.class), anyString(), anyString(),
351 anyList())).thenReturn(Either.left(resource));
352 Assertions.assertNotNull(
353 sIB1.handleVfCsarArtifacts(resource,
354 csarInfo, createdArtifacts, artifactOperation, true, true));
358 void testCreateOrUpdateSingleNonMetaArtifactToComstants() {
359 Resource resource = createParseResourceObject(false);
360 CsarInfo csarInfo = getCsarInfo();
361 ArtifactOperationInfo artifactOperation = new ArtifactOperationInfo(true, true, ArtifactsBusinessLogic.ArtifactOperationEnum.UPDATE);
362 Map<String, ArtifactDefinition> deploymentArtifacts = new HashMap<>();
363 ArtifactDefinition artifactDefinition = new ArtifactDefinition();
364 artifactDefinition.setArtifactName("artifactDefinition");
365 deploymentArtifacts.put("deploymentArtifacts", artifactDefinition);
366 resource.setDeploymentArtifacts(deploymentArtifacts);
367 Assertions.assertNotNull(resource);
368 Assertions.assertNotNull(csarInfo);
369 sIB1.createOrUpdateSingleNonMetaArtifactToComstants(resource, csarInfo, artifactOperation, true, true);
374 void testCreateOrUpdateNonMetaArtifacts() {
375 CsarInfo csarInfo = getCsarInfo();
376 Resource resource = createParseResourceObject(false);
377 List<ArtifactDefinition> createdArtifacts = new ArrayList<>();
378 ArtifactOperationInfo artifactOperation = new ArtifactOperationInfo(true, true, ArtifactsBusinessLogic.ArtifactOperationEnum.UPDATE);
380 Either<Resource, ResponseFormat> result = sIB1.createOrUpdateNonMetaArtifacts(csarInfo, resource,
381 createdArtifacts, true, true, artifactOperation);
382 assertEquals(result.left().value(), resource);
386 void testFindVfCsarArtifactsToHandle() {
387 Resource resource = createParseResourceObject(false);
388 Map<String, ArtifactDefinition> deploymentArtifacts = new HashMap<>();
389 ArtifactDefinition artifactDefinition = new ArtifactDefinition();
390 artifactDefinition.setArtifactName("artifactDefinition");
391 deploymentArtifacts.put("deploymentArtifacts", artifactDefinition);
392 Map<String, ArtifactDefinition> artifacts = new HashMap<>();
393 artifacts.put("artifacts", artifactDefinition);
394 List<GroupDefinition> groups = new ArrayList<>();
395 GroupDefinition groupDefinition = new GroupDefinition();
396 groupDefinition.setUniqueId("groupDefinitionUniqueId");
397 groupDefinition.setName("groupDefinition");
398 groups.add(groupDefinition);
399 resource.setDeploymentArtifacts(deploymentArtifacts);
400 resource.setArtifacts(artifacts);
401 resource.setGroups(groups);
402 List<CsarUtils.NonMetaArtifactInfo> artifactPathAndNameList = new ArrayList<>();
404 Either<EnumMap<ArtifactsBusinessLogic.ArtifactOperationEnum, List<CsarUtils.NonMetaArtifactInfo>>,
405 ResponseFormat> result = sIB1.findVfCsarArtifactsToHandle(resource, artifactPathAndNameList, user);
406 assertNotNull(result.left().value());
410 void testIsNonMetaArtifact() {
411 ArtifactDefinition artifactDefinition = new ArtifactDefinition();
412 artifactDefinition.setMandatory(false);
413 artifactDefinition.setArtifactName("creatorFullName");
414 artifactDefinition.setArtifactType("TOSCA_CSAR");
416 boolean nonMetaArtifact = sIB1.isNonMetaArtifact(artifactDefinition);
417 assertTrue(nonMetaArtifact);
422 void testOrganizeVfCsarArtifactsByArtifactOperation() {
423 List<CsarUtils.NonMetaArtifactInfo> artifactPathAndNameList = new ArrayList<>();
424 artifactPathAndNameList.add(getNonMetaArtifactInfo());
425 List<ArtifactDefinition> existingArtifactsToHandle = new ArrayList<>();
426 ArtifactDefinition artifactDefinition = new ArtifactDefinition();
427 artifactDefinition.setArtifactName("artifactName");
428 artifactDefinition.setArtifactType(ArtifactTypeEnum.AAI_SERVICE_MODEL.name());
429 artifactDefinition.setArtifactChecksum("artifactChecksum");
430 existingArtifactsToHandle.add(artifactDefinition);
431 Resource resource = createParseResourceObject(false);
433 Either<EnumMap<ArtifactsBusinessLogic.ArtifactOperationEnum, List<CsarUtils.NonMetaArtifactInfo>>, ResponseFormat>
434 enumMapResponseFormatEither = sIB1.organizeVfCsarArtifactsByArtifactOperation(artifactPathAndNameList, existingArtifactsToHandle,
436 assertNotNull(enumMapResponseFormatEither.left().value());
440 void testOrganizeVfCsarArtifactsByArtifactOperationElse() {
441 List<CsarUtils.NonMetaArtifactInfo> artifactPathAndNameList = new ArrayList<>();
442 artifactPathAndNameList.add(getNonMetaArtifactInfo());
443 List<ArtifactDefinition> existingArtifactsToHandle = new ArrayList<>();
444 ArtifactDefinition artifactDefinition = new ArtifactDefinition();
445 artifactDefinition.setArtifactName("artifactName");
446 artifactDefinition.setArtifactType(ArtifactTypeEnum.AAI_VF_MODEL.name());
447 artifactDefinition.setArtifactChecksum("artifactChecksum");
448 existingArtifactsToHandle.add(artifactDefinition);
449 Resource resource = createParseResourceObject(false);
450 Assertions.assertNotNull(
451 sIB1.organizeVfCsarArtifactsByArtifactOperation(artifactPathAndNameList, existingArtifactsToHandle, resource, user));
456 void testProcessCsarArtifacts() {
457 CsarInfo csarInfo = getCsarInfo();
458 Resource resource = createParseResourceObject(false);
459 List<ArtifactDefinition> createdArtifacts = new ArrayList<>();
460 Either<Resource, ResponseFormat> resStatus = Either.left(resource);
461 List<CsarUtils.NonMetaArtifactInfo> artifactPathAndNameList = new ArrayList<>();
462 artifactPathAndNameList.add(getNonMetaArtifactInfo());
463 EnumMap<ArtifactsBusinessLogic.ArtifactOperationEnum, List<CsarUtils.NonMetaArtifactInfo>> vfCsarArtifactsToHandle = new
464 EnumMap<>(ArtifactsBusinessLogic.ArtifactOperationEnum.class);
465 vfCsarArtifactsToHandle.put(ArtifactsBusinessLogic.ArtifactOperationEnum.CREATE, artifactPathAndNameList);
466 Assertions.assertNotNull(
467 sIB1.processCsarArtifacts(csarInfo,
468 resource, createdArtifacts, true, true, resStatus, vfCsarArtifactsToHandle));
473 void testCreateOrUpdateSingleNonMetaArtifact() {
474 Resource resource = createParseResourceObject(false);
475 CsarInfo csarInfo = getCsarInfo();
476 Map<String, byte[]> csar = csarInfo.getCsar();
477 String rootPath = System.getProperty("user.dir");
479 byte[] data = new byte[0];
480 path = Paths.get(rootPath + "/src/test/resources/valid_vf.csar");
482 data = Files.readAllBytes(path);
483 } catch (IOException e) {
486 csar.put("valid_vf.csar", data);
487 String artifactPath = "valid_vf.csar", artifactFileName = "", artifactType = "";
488 ArtifactGroupTypeEnum artifactGroupType = ArtifactGroupTypeEnum.TOSCA;
489 String artifactLabel = "", artifactDisplayName = "", artifactDescription = "", artifactId = "artifactId";
490 ArtifactOperationInfo artifactOperation = new ArtifactOperationInfo(true, true, ArtifactsBusinessLogic.ArtifactOperationEnum.UPDATE);
491 List<ArtifactDefinition> createdArtifacts = new ArrayList<>();
492 ArtifactDefinition artifactDefinition = new ArtifactDefinition();
493 artifactDefinition.setArtifactName("artifactName");
494 Either<ArtifactDefinition, Operation> artifactDefinitionOperationEither = Either.left(artifactDefinition);
495 when(csarArtifactsAndGroupsBusinessLogic.createOrUpdateCsarArtifactFromJson(any(Resource.class), any(User.class),
496 any(Map.class), any(ArtifactOperationInfo.class))).thenReturn(Either.left(artifactDefinitionOperationEither));
497 Assertions.assertNotNull(
498 sIB1.createOrUpdateSingleNonMetaArtifact(resource, csarInfo, artifactPath,
499 artifactFileName, artifactType, artifactGroupType, artifactLabel,
500 artifactDisplayName, artifactDescription, artifactId, artifactOperation,
501 createdArtifacts, true, true, true));
505 void testHandleNodeTypeArtifacts() {
506 Resource nodeTypeResource = createParseResourceObject(true);
507 nodeTypeResource.setLifecycleState(LifecycleStateEnum.CERTIFIED);
508 Map<ArtifactsBusinessLogic.ArtifactOperationEnum, List<ArtifactDefinition>> nodeTypeArtifactsToHandle = new HashMap<>();
509 List<ArtifactDefinition> artifactDefinitions = new ArrayList<>();
510 ArtifactDefinition artifactDefinition = new ArtifactDefinition();
511 artifactDefinition.setArtifactName("artifactName");
512 artifactDefinitions.add(artifactDefinition);
513 nodeTypeArtifactsToHandle.put(ArtifactsBusinessLogic.ArtifactOperationEnum.CREATE,
514 artifactDefinitions);
515 List<ArtifactDefinition> createdArtifacts = new ArrayList<>();
516 Assertions.assertNotNull(
517 sIB1.handleNodeTypeArtifacts(nodeTypeResource, nodeTypeArtifactsToHandle,
518 createdArtifacts, user, true, true));
522 void testCreateOrUpdateServiceArtifacts() throws IOException {
523 ArtifactsBusinessLogic.ArtifactOperationEnum operation = ArtifactsBusinessLogic.ArtifactOperationEnum.UPDATE;
524 List<ArtifactDefinition> createdArtifacts = new ArrayList<>();
525 String yamlFileName = "group.yml";
526 CsarInfo csarInfo = getCsarInfo();
527 Map<String, byte[]> csar = new HashMap<>();
528 String csarKey = CsarUtils.ARTIFACTS_PATH + "HEAT.meta";
529 byte[] artifactsMetaBytes = "src/test/resources/normativeTypes/valid_vf.csar".getBytes();
530 csar.put(csarKey, artifactsMetaBytes);
531 csarInfo.setCsar(csar);
532 Service preparedService = createServiceObject(true);
533 Map<String, ArtifactDefinition> deploymentArtifacts = new HashMap<>();
534 ArtifactDefinition artifactDefinition = new ArtifactDefinition();
535 artifactDefinition.setArtifactName("artifactDefinition");
536 deploymentArtifacts.put("deploymentArtifacts", artifactDefinition);
537 preparedService.setDeploymentArtifacts(deploymentArtifacts);
538 String nodeName = "org.openecomp.resource.derivedFrom.zxjTestImportServiceAb.test";
539 Map<String, EnumMap<ArtifactsBusinessLogic.ArtifactOperationEnum, List<ArtifactDefinition>>> nodeTypesArtifactsToHandle = new HashMap<>();
540 NodeTypeInfoToUpdateArtifacts nodeTypeInfoToUpdateArtifacts = new NodeTypeInfoToUpdateArtifacts(nodeName, nodeTypesArtifactsToHandle);
542 when(toscaOperationFacade.getToscaElement(anyString())).thenReturn(Either.left(createServiceObject(true)));
543 when(csarArtifactsAndGroupsBusinessLogic.updateResourceArtifactsFromCsar(any(CsarInfo.class), any(Service.class),
544 anyString(), anyString(), anyList(), anyBoolean(), anyBoolean())).thenReturn(Either.left(preparedService));
545 Assertions.assertNotNull(
546 sIB1.createOrUpdateArtifacts(operation, createdArtifacts, yamlFileName, csarInfo,
547 preparedService, nodeTypeInfoToUpdateArtifacts, true, true));
551 void testHandleVfCsarServiceArtifacts() {
552 Service service = createServiceObject(true);
553 Map<String, ArtifactDefinition> deploymentArtifacts = new HashMap<>();
554 ArtifactDefinition artifactDefinition = new ArtifactDefinition();
555 artifactDefinition.setArtifactName(Constants.VENDOR_LICENSE_MODEL);
556 artifactDefinition.setUniqueId("uniqueId");
557 deploymentArtifacts.put("deploymentArtifacts", artifactDefinition);
558 service.setDeploymentArtifacts(deploymentArtifacts);
559 CsarInfo csarInfo = getCsarInfo();
560 List<ArtifactDefinition> createdArtifacts = new ArrayList<>();
561 ArtifactOperationInfo artifactOperation = new ArtifactOperationInfo(true, true, ArtifactsBusinessLogic.ArtifactOperationEnum.CREATE);
562 when(toscaOperationFacade.getToscaElement(anyString())).thenReturn(Either.left(service));
563 when(csarArtifactsAndGroupsBusinessLogic.deleteVFModules(any(Service.class), any(CsarInfo.class), anyBoolean(), anyBoolean())).thenReturn(
564 Either.left(service));
565 Assertions.assertNotNull(
566 sIB1.handleVfCsarArtifacts(service, csarInfo, createdArtifacts, artifactOperation, true, true));
571 void testHandleVfCsarServiceArtifactsGetToscaElement() throws IOException {
572 Service service = createServiceObject(true);
573 Map<String, ArtifactDefinition> deploymentArtifacts = new HashMap<>();
574 ArtifactDefinition artifactDefinition = new ArtifactDefinition();
575 artifactDefinition.setArtifactName(Constants.VENDOR_LICENSE_MODEL);
576 artifactDefinition.setUniqueId("uniqueId");
577 deploymentArtifacts.put("deploymentArtifacts", artifactDefinition);
578 service.setDeploymentArtifacts(deploymentArtifacts);
579 CsarInfo csarInfo = getCsarInfo();
580 Map<String, byte[]> csar = new HashMap<>();
581 String csarKey = CsarUtils.ARTIFACTS_PATH + "HEAT.meta";
582 byte[] artifactsMetaBytes = "src/test/resources/normativeTypes/valid_vf.csar".getBytes();
583 csar.put(csarKey, artifactsMetaBytes);
584 csarInfo.setCsar(csar);
585 List<ArtifactDefinition> createdArtifacts = new ArrayList<>();
586 ArtifactOperationInfo artifactOperation = new ArtifactOperationInfo(true, true, ArtifactsBusinessLogic.ArtifactOperationEnum.CREATE);
587 when(toscaOperationFacade.getToscaElement(anyString())).thenReturn(Either.left(service));
588 when(csarArtifactsAndGroupsBusinessLogic.createResourceArtifactsFromCsar(any(CsarInfo.class), any(Service.class),
589 anyString(), anyString(), anyList())).thenReturn(Either.left(service));
590 Assertions.assertNotNull(
591 sIB1.handleVfCsarArtifacts(service,
592 csarInfo, createdArtifacts, artifactOperation, true, true));
596 void testCreateOrUpdateNonMetaServiceArtifacts() {
597 CsarInfo csarInfo = getCsarInfo();
598 Service service = createServiceObject(true);
599 List<ArtifactDefinition> createdArtifacts = new ArrayList<>();
600 ArtifactOperationInfo artifactOperation = new ArtifactOperationInfo(true, true, ArtifactsBusinessLogic.ArtifactOperationEnum.CREATE);
602 Either<Service, ResponseFormat> result = sIB1.createOrUpdateNonMetaArtifacts(csarInfo,
603 service, createdArtifacts, true, true, artifactOperation);
604 assertEquals(result.left().value(), service);
608 void testFindServiceCsarArtifactsToHandle() {
609 Service service = createServiceObject(true);
610 Map<String, ArtifactDefinition> deploymentArtifacts = new HashMap<>();
611 ArtifactDefinition artifactDefinition = new ArtifactDefinition();
612 artifactDefinition.setArtifactName("artifactDefinition");
613 deploymentArtifacts.put("deploymentArtifacts", artifactDefinition);
614 Map<String, ArtifactDefinition> artifacts = new HashMap<>();
615 artifacts.put("artifacts", artifactDefinition);
616 List<GroupDefinition> groups = new ArrayList<>();
617 GroupDefinition groupDefinition = new GroupDefinition();
618 groupDefinition.setUniqueId("groupDefinitionUniqueId");
619 groupDefinition.setName("groupDefinition");
620 groups.add(groupDefinition);
621 service.setDeploymentArtifacts(deploymentArtifacts);
622 service.setArtifacts(artifacts);
623 service.setGroups(groups);
624 List<CsarUtils.NonMetaArtifactInfo> artifactPathAndNameList = new ArrayList<>();
626 Either<EnumMap<ArtifactsBusinessLogic.ArtifactOperationEnum, List<CsarUtils.NonMetaArtifactInfo>>,
627 ResponseFormat> result = sIB1.findVfCsarArtifactsToHandle(service, artifactPathAndNameList, user);
628 assertNotNull(result.left().value());
632 void testOrganizeVfCsarArtifactsByServiceArtifactOperation() {
633 List<CsarUtils.NonMetaArtifactInfo> artifactPathAndNameList = new ArrayList<>();
634 artifactPathAndNameList.add(getNonMetaArtifactInfo());
635 List<ArtifactDefinition> existingArtifactsToHandle = new ArrayList<>();
636 ArtifactDefinition artifactDefinition = new ArtifactDefinition();
637 artifactDefinition.setArtifactName("artifactName");
638 artifactDefinition.setArtifactType(ArtifactTypeEnum.AAI_SERVICE_MODEL.name());
639 artifactDefinition.setArtifactChecksum("artifactChecksum");
640 existingArtifactsToHandle.add(artifactDefinition);
641 Service service = createServiceObject(true);
643 Either<EnumMap<ArtifactsBusinessLogic.ArtifactOperationEnum, List<CsarUtils.NonMetaArtifactInfo>>, ResponseFormat>
644 enumMapResponseFormatEither = sIB1.organizeVfCsarArtifactsByArtifactOperation(artifactPathAndNameList,
645 existingArtifactsToHandle, service, user);
646 assertNotNull(enumMapResponseFormatEither.left().value());
650 void testOrganizeVfCsarArtifactsByServiceArtifactOperationElse() {
651 List<CsarUtils.NonMetaArtifactInfo> artifactPathAndNameList = new ArrayList<>();
652 artifactPathAndNameList.add(getNonMetaArtifactInfo());
653 List<ArtifactDefinition> existingArtifactsToHandle = new ArrayList<>();
654 ArtifactDefinition artifactDefinition = new ArtifactDefinition();
655 artifactDefinition.setArtifactName("artifactName");
656 artifactDefinition.setArtifactType(ArtifactTypeEnum.AAI_VF_MODEL.name());
657 artifactDefinition.setArtifactChecksum("artifactChecksum");
658 existingArtifactsToHandle.add(artifactDefinition);
659 Service service = createServiceObject(true);
660 Assertions.assertNotNull(
661 sIB1.organizeVfCsarArtifactsByArtifactOperation(artifactPathAndNameList, existingArtifactsToHandle, service, user));
666 void testProcessServiceCsarArtifacts() {
667 CsarInfo csarInfo = getCsarInfo();
668 Service service = createServiceObject(true);
669 List<ArtifactDefinition> createdArtifacts = new ArrayList<>();
670 Either<Service, ResponseFormat> resStatus = Either.left(service);
671 EnumMap<ArtifactsBusinessLogic.ArtifactOperationEnum, List<CsarUtils.NonMetaArtifactInfo>> vfCsarArtifactsToHandle = new
672 EnumMap<>(ArtifactsBusinessLogic.ArtifactOperationEnum.class);
673 List<CsarUtils.NonMetaArtifactInfo> objects = new ArrayList<>();
674 objects.add(getNonMetaArtifactInfo());
675 vfCsarArtifactsToHandle.put(ArtifactsBusinessLogic.ArtifactOperationEnum.CREATE, objects);
676 Assertions.assertNotNull(
677 sIB1.processCsarArtifacts(csarInfo,
678 service, createdArtifacts, true, true, resStatus, vfCsarArtifactsToHandle));
683 void testGetValidArtifactNames() {
684 CsarInfo csarInfo = getCsarInfo();
685 Map<String, Set<List<String>>> collectedWarningMessages = new HashMap<>();
686 Either<List<CsarUtils.NonMetaArtifactInfo>, String> result = sIB1.getValidArtifactNames(csarInfo, collectedWarningMessages);
687 assertNotNull(result.left().value());
691 void testCreateOrUpdateSingleNonMetaServiceArtifact() {
692 Service service = createServiceObject(true);
693 CsarInfo csarInfo = getCsarInfo();
694 Map<String, byte[]> csar = csarInfo.getCsar();
695 String rootPath = System.getProperty("user.dir");
697 byte[] data = new byte[0];
698 path = Paths.get(rootPath + "/src/test/resources/valid_vf.csar");
700 data = Files.readAllBytes(path);
701 } catch (IOException e) {
704 csar.put("valid_vf.csar", data);
705 csarInfo.setCsar(csar);
706 String artifactPath = "valid_vf.csar", artifactFileName = "", artifactType = "";
707 ArtifactGroupTypeEnum artifactGroupType = ArtifactGroupTypeEnum.TOSCA;
708 String artifactLabel = "", artifactDisplayName = "", artifactDescription = "", artifactId = "artifactId";
709 ArtifactOperationInfo artifactOperation = new ArtifactOperationInfo(true, true, ArtifactsBusinessLogic.ArtifactOperationEnum.UPDATE);
710 List<ArtifactDefinition> createdArtifacts = new ArrayList<>();
711 ArtifactDefinition artifactDefinition = new ArtifactDefinition();
712 artifactDefinition.setArtifactName("artifactName");
713 Either<ArtifactDefinition, Operation> artifactDefinitionOperationEither = Either.left(artifactDefinition);
714 when(csarArtifactsAndGroupsBusinessLogic.createOrUpdateCsarArtifactFromJson(any(Service.class), any(User.class),
715 anyMap(), any(ArtifactOperationInfo.class))).thenReturn(Either.left(artifactDefinitionOperationEither));
716 Assertions.assertNotNull(
717 sIB1.createOrUpdateSingleNonMetaArtifact(service, csarInfo, artifactPath, artifactFileName,
718 artifactType, artifactGroupType, artifactLabel, artifactDisplayName,
719 artifactDescription, artifactId, artifactOperation, createdArtifacts,
724 void testCreateOrUpdateSingleNonMetaServiceArtifactNull() {
725 Service service = createServiceObject(true);
726 CsarInfo csarInfo = getCsarInfo();
727 String artifactPath = "valid_vf.csar", artifactFileName = "", artifactType = "";
728 ArtifactGroupTypeEnum artifactGroupType = ArtifactGroupTypeEnum.TOSCA;
729 String artifactLabel = "", artifactDisplayName = "", artifactDescription = "", artifactId = "artifactId";
730 ArtifactOperationInfo artifactOperation = new ArtifactOperationInfo(true, true, ArtifactsBusinessLogic.ArtifactOperationEnum.UPDATE);
731 List<ArtifactDefinition> createdArtifacts = new ArrayList<>();
732 Assertions.assertNotNull(
733 sIB1.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(
744 sIB1.createGroupsOnResource(service, groups));
748 void testCreateGroupsOnResourceNull() {
749 Service service = createServiceObject(true);
750 Map<String, GroupDefinition> groups = new HashMap<>();
751 Assertions.assertNotNull(sIB1.createGroupsOnResource(service, groups));
755 void testUpdateGroupsMembersUsingResource() {
756 Service service = createServiceObject(true);
757 Map<String, GroupDefinition> groups = getGroups();
758 Assertions.assertNotNull(sIB1.updateGroupsMembersUsingResource(groups, service));
762 void testUpdateGroupsMembersUsingResource_left() {
763 Service service = createServiceObject(true);
764 Map<String, GroupDefinition> groups = getGroups();
765 Assertions.assertNotNull(sIB1.updateGroupsMembersUsingResource(groups, service));
769 void testCreateRIAndRelationsFromResourceYaml() throws IOException {
770 String nodeName = "org.openecomp.resource.derivedFrom.zxjTestImportServiceAb.test";
771 String yamlName = "group.yml";
772 Resource resource = createParseResourceObject(true);
773 Map<String, UploadComponentInstanceInfo> uploadComponentInstanceInfoMap = new HashMap<>();
774 String topologyTemplateYaml = getMainTemplateContent();
775 List<ArtifactDefinition> nodeTypesNewCreatedArtifacts = new ArrayList<>();
777 Map<String, NodeTypeInfo> nodeTypesInfo = getNodeTypesInfo();
778 Map<String, Object> map = new HashMap<>();
779 map.put("tosca_definitions_version", "123");
780 nodeTypesInfo.get(nodeName).setMappedToscaTemplate(map);
782 CsarInfo csarInfo = getCsarInfo();
783 Map<String, EnumMap<ArtifactsBusinessLogic.ArtifactOperationEnum, List<ArtifactDefinition>>> nodeTypesArtifactsToCreate = new HashMap<>();
785 Assertions.assertThrows(ComponentException.class, () -> sIB1
786 .createRIAndRelationsFromYaml(yamlName, resource, uploadComponentInstanceInfoMap,
787 topologyTemplateYaml, nodeTypesNewCreatedArtifacts, nodeTypesInfo,
788 csarInfo, nodeTypesArtifactsToCreate, nodeName));
792 void testCreateResourceInstancesRelations() {
793 String yamlName = "group.yml";
794 Resource resource = createParseResourceObject(true);
795 resource.setComponentInstances(creatComponentInstances());
796 resource.setResourceType(ResourceTypeEnum.VF);
797 Map<String, UploadComponentInstanceInfo> uploadResInstancesMap = new HashMap<>();
798 uploadResInstancesMap.put("uploadResInstancesMap", getuploadComponentInstanceInfo());
799 when(serviceImportParseLogic.getResourceAfterCreateRelations(any(Resource.class))).thenReturn(resource);
800 when(toscaOperationFacade.getToscaFullElement(anyString())).thenReturn(Either.left(resource));
801 Assertions.assertThrows(ComponentException.class, () -> sIB1
802 .createResourceInstancesRelations(user, yamlName, resource, uploadResInstancesMap));
806 void testCreateResourceInstancesRelations_Empty() {
807 String yamlName = "group.yml";
808 Resource resource = createParseResourceObject(true);
809 resource.setComponentInstances(creatComponentInstances());
810 resource.setResourceType(ResourceTypeEnum.VF);
811 Map<String, UploadComponentInstanceInfo> uploadResInstancesMap = new HashMap<>();
812 uploadResInstancesMap.put("uploadResInstancesMap", getuploadComponentInstanceInfo());
813 when(serviceImportParseLogic.getResourceAfterCreateRelations(any(Resource.class))).thenReturn(resource);
814 when(toscaOperationFacade.getToscaFullElement(anyString())).thenReturn(Either.left(resource));
815 Assertions.assertThrows(ComponentException.class, () -> sIB1
816 .createResourceInstancesRelations(user, yamlName, resource, uploadResInstancesMap));
820 void testProcessComponentInstance1() {
821 String yamlName = "group.yml";
822 Resource resource = createParseResourceObject(true);
823 Resource originResource = createParseResourceObject(false);
824 originResource.setResourceType(ResourceTypeEnum.VF);
825 List<ComponentInstance> componentInstancesList = creatComponentInstances();
826 Map<String, DataTypeDefinition> dataTypeDefinitionMap = new HashMap<>();
827 DataTypeDefinition dataTypeDefinition = new DataTypeDefinition();
828 dataTypeDefinition.setName("dataTypeDefinitionName");
829 dataTypeDefinitionMap.put("dataTypeDefinitionMap", dataTypeDefinition);
830 Either<Map<String, DataTypeDefinition>, JanusGraphOperationStatus> allDataTypes = Either.left(dataTypeDefinitionMap);
831 Map<String, List<ComponentInstanceProperty>> instProperties = new HashMap<>();
832 Map<ComponentInstance, Map<String, List<CapabilityDefinition>>> instCapabilties = new HashMap<>();
833 Map<ComponentInstance, Map<String, List<RequirementDefinition>>> instRequirements = new HashMap<>();
834 Map<String, Map<String, ArtifactDefinition>> instDeploymentArtifacts = new HashMap<>();
835 Map<String, Map<String, ArtifactDefinition>> instArtifacts = new HashMap<>();
836 Map<String, List<AttributeDefinition>> instAttributes = new HashMap<>();
837 Map<String, UploadNodeFilterInfo> instNodeFilter = new HashMap<>();
838 Map<String, Resource> originCompMap = new HashMap<>();
839 originCompMap.put("componentUid", originResource);
840 Map<String, List<ComponentInstanceInput>> instInputs = new HashMap<>();
841 UploadComponentInstanceInfo uploadComponentInstanceInfo = new UploadComponentInstanceInfo();
842 uploadComponentInstanceInfo.setName("zxjTestImportServiceAb");
843 Assertions.assertNotNull(resource);
844 Assertions.assertNotNull(yamlName);
845 sIB1.processComponentInstance(yamlName, resource, componentInstancesList, allDataTypes.left().value(), instProperties,
846 instCapabilties, instRequirements, instDeploymentArtifacts, instArtifacts, instAttributes,
847 originCompMap, instInputs, instNodeFilter, uploadComponentInstanceInfo);
851 void testProcessComponentInstance_null() {
852 String yamlName = "group.yml";
853 Resource resource = createParseResourceObject(true);
854 Resource originResource = createParseResourceObject(false);
855 List<ComponentInstance> componentInstancesList = creatComponentInstances();
856 Either<Map<String, DataTypeDefinition>, JanusGraphOperationStatus> allDataTypes = null;
857 Map<String, List<ComponentInstanceProperty>> instProperties = new HashMap<>();
858 Map<ComponentInstance, Map<String, List<CapabilityDefinition>>> instCapabilties = new HashMap<>();
859 Map<ComponentInstance, Map<String, List<RequirementDefinition>>> instRequirements = new HashMap<>();
860 Map<String, Map<String, ArtifactDefinition>> instDeploymentArtifacts = new HashMap<>();
861 Map<String, Map<String, ArtifactDefinition>> instArtifacts = new HashMap<>();
862 Map<String, List<AttributeDefinition>> instAttributes = new HashMap<>();
863 Map<String, Resource> originCompMap = new HashMap<>();
864 Map<String, UploadNodeFilterInfo> instNodeFilter = new HashMap<>();
865 originCompMap.put("componentUid", originResource);
866 Map<String, List<ComponentInstanceInput>> instInputs = new HashMap<>();
867 UploadComponentInstanceInfo uploadComponentInstanceInfo = new UploadComponentInstanceInfo();
868 uploadComponentInstanceInfo.setName("zxjTestImportServiceAb0");
870 Assertions.assertThrows(ComponentException.class, () -> sIB1.processComponentInstance(yamlName,
871 resource, componentInstancesList, null, instProperties, instCapabilties,
872 instRequirements, instDeploymentArtifacts, instArtifacts, instAttributes, originCompMap,
873 instInputs, instNodeFilter, uploadComponentInstanceInfo));
877 void testAddInputsValuesToRi() {
878 UploadComponentInstanceInfo uploadComponentInstanceInfo = new UploadComponentInstanceInfo();
879 Map<String, List<UploadPropInfo>> properties = new HashMap<>();
880 List<UploadPropInfo> uploadPropInfoList = getPropertyList();
881 properties.put("propertiesMap", uploadPropInfoList);
882 uploadComponentInstanceInfo.setProperties(properties);
883 Resource resource = createParseResourceObject(true);
884 Resource originResource = createParseResourceObject(false);
885 List<InputDefinition> inputs = new ArrayList<>();
886 InputDefinition inputDefinition = new InputDefinition();
887 inputDefinition.setName("inputDefinitionName");
888 inputDefinition.setUniqueId("uniqueId");
889 inputDefinition.setType("inputDefinitionType");
890 inputs.add(inputDefinition);
891 originResource.setInputs(inputs);
892 ComponentInstance currentCompInstance = new ComponentInstance();
893 Map<String, List<ComponentInstanceInput>> instInputs = new HashMap<>();
894 Map<String, DataTypeDefinition> allDataTypes = new HashMap<>();
895 DataTypeDefinition dataTypeDefinition = new DataTypeDefinition();
896 dataTypeDefinition.setName("dataTypeDefinitionName");
897 allDataTypes.put("dataTypeDefinitionMap", dataTypeDefinition);
899 Assertions.assertThrows(ComponentException.class, () -> sIB1
900 .addInputsValuesToRi(uploadComponentInstanceInfo, resource, originResource,
901 currentCompInstance, instInputs, allDataTypes));
905 void testProcessProperty() {
906 Resource resource = createParseResourceObject(true);
907 List<InputDefinition> inputs = new ArrayList<>();
908 InputDefinition inputDefinition = new InputDefinition();
909 inputDefinition.setName("inputDefinitionName");
910 inputDefinition.setUniqueId("uniqueId");
911 inputDefinition.setType("inputDefinitionType");
912 inputs.add(inputDefinition);
913 resource.setInputs(inputs);
914 ComponentInstance currentCompInstance = null;
915 Map<String, DataTypeDefinition> allDataTypes = new HashMap<>();
916 Map<String, InputDefinition> currPropertiesMap = new HashMap<>();
917 currPropertiesMap.put("propertyInfoName", inputDefinition);
918 List<ComponentInstanceInput> instPropList = new ArrayList<>();
919 List<UploadPropInfo> propertyList = getPropertyList();
920 Assertions.assertNotNull(resource);
921 Assertions.assertNotNull(currPropertiesMap);
922 sIB1.processProperty(resource, currentCompInstance, allDataTypes, currPropertiesMap, instPropList, propertyList);
926 void testHandleSubstitutionMappings() {
927 Resource resource = createParseResourceObject(true);
928 resource.setResourceType(ResourceTypeEnum.VF);
929 Map<String, UploadComponentInstanceInfo> uploadResInstancesMap = new HashMap<>();
930 when(toscaOperationFacade.getToscaFullElement(anyString()))
931 .thenReturn(Either.right(StorageOperationStatus.BAD_REQUEST));
933 Assertions.assertThrows(ComponentException.class, () -> sIB1
934 .handleSubstitutionMappings(resource, uploadResInstancesMap));
938 void testHandleSubstitutionMappings_left() {
939 Resource resource = createParseResourceObject(true);
940 resource.setResourceType(ResourceTypeEnum.VF);
941 Map<String, UploadComponentInstanceInfo> uploadResInstancesMap = new HashMap<>();
942 when(toscaOperationFacade.getToscaFullElement(anyString()))
943 .thenReturn(Either.left(resource));
945 Assertions.assertThrows(ComponentException.class, () -> sIB1
946 .handleSubstitutionMappings(resource, uploadResInstancesMap));
950 void testCreateResourceInstances() {
951 String yamlName = "group.yml";
952 Resource resource = createParseResourceObject(true);
953 Resource originResource = createParseResourceObject(false);
954 Map<String, UploadComponentInstanceInfo> uploadResInstancesMap = new HashMap<>();
955 UploadComponentInstanceInfo nodesInfoValue = new UploadComponentInstanceInfo();
956 nodesInfoValue.setName("zxjTestImportServiceAb");
957 nodesInfoValue.setRequirements(gerRequirements());
958 uploadResInstancesMap.put("uploadComponentInstanceInfo", nodesInfoValue);
959 Map<String, Resource> nodeNamespaceMap = new HashMap<>();
960 nodeNamespaceMap.put("resources", originResource);
962 Assertions.assertThrows(ComponentException.class, () -> sIB1
963 .createResourceInstances(yamlName, resource, uploadResInstancesMap, nodeNamespaceMap));
967 void testHandleNodeTypes() throws IOException {
968 String nodeName = "org.openecomp.resource.derivedFrom.zxjTestImportServiceAb.test";
969 String yamlName = "group.yml";
970 Resource resource = createParseResourceObject(true);
971 String topologyTemplateYaml = getMainTemplateContent();
972 boolean needLock = true;
973 Map<String, EnumMap<ArtifactsBusinessLogic.ArtifactOperationEnum, List<ArtifactDefinition>>> nodeTypesArtifactsToHandle = new HashMap<>();
974 List<ArtifactDefinition> nodeTypesNewCreatedArtifacts = new ArrayList<>();
975 Map<String, NodeTypeInfo> nodeTypesInfo = getNodeTypesInfo();
976 Map<String, Object> map = new HashMap<>();
977 map.put("tosca_definitions_version", "123");
978 nodeTypesInfo.get(nodeName).setMappedToscaTemplate(map);
979 ParsedToscaYamlInfo parsedToscaYamlInfo = getParsedToscaYamlInfo();
980 CsarInfo csarInfo = getCsarInfo();
981 Assertions.assertNotNull(resource);
983 sIB1.handleNodeTypes(yamlName, resource, topologyTemplateYaml, needLock, nodeTypesArtifactsToHandle,
984 nodeTypesNewCreatedArtifacts, nodeTypesInfo, csarInfo, nodeName);
988 void testHandleNestedVfc1() {
989 String nodeName = "org.openecomp.resource.derivedFrom.zxjTestImportServiceAb.test";
990 Resource resource = createParseResourceObject(false);
991 Map<String, EnumMap<ArtifactsBusinessLogic.ArtifactOperationEnum, List<ArtifactDefinition>>> nodeTypesArtifactsToHandle = new HashMap<>();
992 List<ArtifactDefinition> createdArtifacts = new ArrayList<>();
993 Map<String, NodeTypeInfo> nodesInfo = new HashMap<>();
994 NodeTypeInfo nodeTypeInfo = new NodeTypeInfo();
995 nodeTypeInfo.setTemplateFileName("groups.yml");
996 nodeTypeInfo.setMappedToscaTemplate(new HashMap<>());
997 nodesInfo.put(nodeName, nodeTypeInfo);
998 CsarInfo csarInfo = getCsarInfo();
1000 Assertions.assertThrows(ComponentException.class, () -> sIB1.handleNestedVfc(resource,
1001 nodeTypesArtifactsToHandle, createdArtifacts, nodesInfo, csarInfo, nodeName));
1005 void testHandleComplexVfc1() {
1006 Resource resource = createParseResourceObject(true);
1007 Map<String, EnumMap<ArtifactsBusinessLogic.ArtifactOperationEnum, List<ArtifactDefinition>>> nodeTypesArtifactsToHandle = new HashMap<>();
1008 List<ArtifactDefinition> createdArtifacts = new ArrayList<>();
1009 Map<String, NodeTypeInfo> nodesInfo = new HashMap<>();
1010 CsarInfo csarInfo = getCsarInfo();
1011 String nodeName = "org.openecomp.resource.derivedFrom.zxjTestImportServiceAb.test";
1012 String yamlName = "group.yml";
1013 when(serviceImportParseLogic.buildValidComplexVfc(any(Resource.class), any(CsarInfo.class), anyString(),
1014 anyMap())).thenReturn(createParseResourceObject(false));
1015 when(toscaOperationFacade.getFullLatestComponentByToscaResourceName(anyString()))
1016 .thenReturn(Either.left(resource));
1017 when(serviceImportParseLogic.validateNestedDerivedFromDuringUpdate(any(Resource.class), any(Resource.class),
1018 anyBoolean())).thenReturn(Either.left(true));
1020 Assertions.assertThrows(ComponentException.class, () -> sIB1.handleComplexVfc(resource,
1021 nodeTypesArtifactsToHandle, createdArtifacts, nodesInfo, csarInfo, nodeName, yamlName));
1025 void testCreateResourcesFromYamlNodeTypesList1() {
1026 String yamlName = "group.yml";
1027 Resource resource = createParseResourceObject(false);
1028 Map<String, Object> mappedToscaTemplate = new HashMap<>();
1029 boolean needLock = true;
1030 Map<String, EnumMap<ArtifactsBusinessLogic.ArtifactOperationEnum, List<ArtifactDefinition>>> nodeTypesArtifactsToHandle = new HashMap<>();
1031 List<ArtifactDefinition> nodeTypesNewCreatedArtifacts = new ArrayList<>();
1032 Map<String, NodeTypeInfo> nodeTypesInfo = new HashMap<>();
1033 CsarInfo csarInfo = getCsarInfo();
1035 Assertions.assertThrows(ComponentException.class, () -> sIB1
1036 .createResourcesFromYamlNodeTypesList(yamlName, resource, mappedToscaTemplate, needLock,
1037 nodeTypesArtifactsToHandle, nodeTypesNewCreatedArtifacts, nodeTypesInfo, csarInfo));
1042 void testCreateNodeTypes1() {
1043 String nodeName = "org.openecomp.resource.derivedFrom.zxjTestImportServiceAb.test";
1044 String yamlName = "group.yml";
1045 Resource resource = createParseResourceObject(false);
1046 boolean needLock = true;
1047 Map<String, EnumMap<ArtifactsBusinessLogic.ArtifactOperationEnum, List<ArtifactDefinition>>> nodeTypesArtifactsToHandle = new HashMap<>();
1048 EnumMap<ArtifactsBusinessLogic.ArtifactOperationEnum, List<ArtifactDefinition>> enumListEnumMap =
1049 new EnumMap<>(ArtifactsBusinessLogic.ArtifactOperationEnum.class);
1050 List<ArtifactDefinition> artifactDefinitions = new ArrayList<>();
1051 ArtifactDefinition artifactDefinition = new ArtifactDefinition();
1052 artifactDefinition.setArtifactName("artifactName");
1053 artifactDefinitions.add(artifactDefinition);
1054 enumListEnumMap.put(ArtifactsBusinessLogic.ArtifactOperationEnum.CREATE,
1055 artifactDefinitions);
1056 nodeTypesArtifactsToHandle.put("nodeTyp", enumListEnumMap);
1057 List<ArtifactDefinition> nodeTypesNewCreatedArtifacts = new ArrayList<>();
1058 Map<String, NodeTypeInfo> nodeTypesInfo = getNodeTypesInfo();
1059 Map<String, Object> map = new HashMap<>();
1060 map.put("tosca_definitions_version", "123");
1061 nodeTypesInfo.get(nodeName).setMappedToscaTemplate(map);
1062 ParsedToscaYamlInfo parsedToscaYamlInfo = getParsedToscaYamlInfo();
1064 CsarInfo csarInfo = getCsarInfo();
1065 Map<String, Object> mapToConvert = new HashMap<>();
1066 Map<String, Object> nodeTypes = new HashMap<>();
1067 nodeTypes.put(nodeName, "");
1068 Assertions.assertNotNull(resource);
1070 sIB1.createNodeTypes(yamlName,
1071 resource, needLock, nodeTypesArtifactsToHandle, nodeTypesNewCreatedArtifacts,
1072 nodeTypesInfo, csarInfo, mapToConvert, nodeTypes);
1076 void testCreateNodeTypeResourceFromYaml() throws IOException {
1077 String yamlName = "group.yml";
1078 String nodeName = "org.openecomp.resource.derivedFrom.zxjTestImportServiceAb.test";
1079 Map<String, Object> nodeMap = new HashMap<>();
1080 nodeMap.put(nodeName, getGroupsYaml());
1081 Map.Entry<String, Object> nodeNameValue = nodeMap.entrySet().iterator().next();
1082 Map<String, Object> mapToConvert = new HashedMap();
1083 Resource resourceVf = createParseResourceObject(false);
1084 boolean needLock = true;
1085 Map<ArtifactsBusinessLogic.ArtifactOperationEnum, List<ArtifactDefinition>> nodeTypeArtifactsToHandle = new HashMap<>();
1086 List<ArtifactDefinition> nodeTypesNewCreatedArtifacts = new ArrayList<>();
1087 boolean forceCertificationAllowed = true;
1088 CsarInfo csarInfo = getCsarInfo();
1089 boolean isNested = true;
1090 UploadResourceInfo resourceMetaData = new UploadResourceInfo();
1091 resourceMetaData.setResourceType("VFC");
1092 ImmutablePair<Resource, ActionStatus> immutablePair = new ImmutablePair<>(resourceVf, ActionStatus.CREATED);
1093 when(serviceImportParseLogic.fillResourceMetadata(anyString(), any(Resource.class), anyString(), any(User.class)))
1094 .thenReturn(resourceMetaData);
1095 when(serviceImportParseLogic.buildNodeTypeYaml(any(Map.Entry.class), anyMap(), anyString(), any(CsarInfo.class)))
1096 .thenReturn(nodeName);
1097 when(serviceBusinessLogic.validateUser(any(User.class), anyString(), any(Component.class), any(AuditingActionEnum.class),
1098 anyBoolean())).thenReturn(user);
1099 when(serviceImportParseLogic.createResourceFromNodeType(anyString(), any(UploadResourceInfo.class), any(User.class), anyBoolean(),
1101 anyMap(), anyList(), anyBoolean(), any(CsarInfo.class),
1102 anyString(), anyBoolean())).thenReturn(immutablePair);
1103 Assertions.assertNotNull(
1104 sIB1.createNodeTypeResourceFromYaml(yamlName, nodeNameValue, user, mapToConvert,
1105 resourceVf, needLock, nodeTypeArtifactsToHandle, nodeTypesNewCreatedArtifacts,
1106 forceCertificationAllowed, csarInfo, isNested));
1110 void testCreateRIAndRelationsFromYaml() {
1111 String yamlName = "group.yml";
1112 Service service = createServiceObject(true);
1113 Map<String, UploadComponentInstanceInfo> uploadComponentInstanceInfoMap = new HashMap<>();
1114 String topologyTemplateYaml = getMainTemplateContent("service_import_template.yml");
1116 List<ArtifactDefinition> nodeTypesNewCreatedArtifacts = new ArrayList<>();
1117 Map<String, NodeTypeInfo> nodeTypesInfo = new HashMap<>();
1118 CsarInfo csarInfo = getCsarInfo();
1119 Map<String, EnumMap<ArtifactsBusinessLogic.ArtifactOperationEnum, List<ArtifactDefinition>>> nodeTypesArtifactsToCreate = new HashMap<>();
1120 String nodeName = "org.openecomp.resource.derivedFrom.zxjTestImportServiceAb.test";
1122 Assertions.assertNotNull(sIB1
1123 .createRIAndRelationsFromYaml(yamlName, service, uploadComponentInstanceInfoMap,
1124 topologyTemplateYaml, nodeTypesNewCreatedArtifacts, nodeTypesInfo,
1125 csarInfo, nodeTypesArtifactsToCreate, nodeName));
1129 void testCreateServiceInstancesRelations() {
1130 String yamlName = "group.yml";
1131 Service service = createServiceObject(true);
1132 service.setComponentInstances(creatComponentInstances());
1133 Resource newResource = createNewResource();
1134 Map<String, UploadComponentInstanceInfo> uploadResInstancesMap = getUploadResInstancesMap();
1135 ComponentParametersView componentParametersView = new ComponentParametersView();
1136 RequirementDefinition requirementDefinition = new RequirementDefinition();
1137 CapabilityDefinition capabilityDefinition = new CapabilityDefinition();
1138 capabilityDefinition.setName("as");
1139 capabilityDefinition.setUniqueId("1");
1140 capabilityDefinition.setOwnerId("2");
1141 ResponseFormat responseFormat = new ResponseFormat();
1142 responseFormat.setStatus(200);
1143 when(serviceImportParseLogic.getResourceAfterCreateRelations(any(Resource.class))).thenReturn(newResource);
1144 when(serviceImportParseLogic.getComponentFilterAfterCreateRelations()).thenReturn(componentParametersView);
1145 when(toscaOperationFacade.getToscaElement(anyString(), any(ComponentParametersView.class))).thenReturn(Either.left(service));
1146 when(serviceImportParseLogic.findAvailableRequirement(anyString(),
1147 anyString(), any(UploadComponentInstanceInfo.class), any(ComponentInstance.class),
1148 anyString())).thenReturn(Either.left(requirementDefinition));
1149 when(serviceImportParseLogic.findAvailableCapabilityByTypeOrName(any(RequirementDefinition.class),
1150 any(ComponentInstance.class), any(UploadReqInfo.class))).thenReturn(capabilityDefinition);
1151 when(componentsUtils.getResponseFormat(any(ActionStatus.class), anyString())).thenReturn(responseFormat);
1152 when(toscaOperationFacade.getToscaElement(anyString())).thenReturn(Either.left(service));
1153 Assertions.assertNotNull(sIB1
1154 .createServiceInstancesRelations(user, yamlName, service, uploadResInstancesMap));
1158 void testCreateServiceInstancesRelations_Empty() {
1159 String yamlName = "group.yml";
1160 Service service = createServiceObject(true);
1161 service.setComponentInstances(creatComponentInstances());
1162 Map<String, UploadComponentInstanceInfo> uploadResInstancesMap = new HashMap<>();
1164 Assertions.assertThrows(ComponentException.class, () -> sIB1
1165 .createServiceInstancesRelations(user, yamlName, service, uploadResInstancesMap));
1169 void testProcessComponentInstance() {
1170 String yamlName = "group.yml";
1171 Service service = createServiceObject(true);
1172 Resource originResource = createParseResourceObject(false);
1173 originResource.setResourceType(ResourceTypeEnum.VF);
1174 List<ComponentInstance> componentInstancesList = creatComponentInstances();
1175 Map<String, DataTypeDefinition> dataTypeDefinitionMap = new HashMap<>();
1176 DataTypeDefinition dataTypeDefinition = new DataTypeDefinition();
1177 dataTypeDefinition.setName("dataTypeDefinitionName");
1178 dataTypeDefinitionMap.put("dataTypeDefinitionMap", dataTypeDefinition);
1179 Either<Map<String, DataTypeDefinition>, JanusGraphOperationStatus> allDataTypes = Either.left(dataTypeDefinitionMap);
1180 Map<String, List<ComponentInstanceProperty>> instProperties = new HashMap<>();
1181 Map<ComponentInstance, Map<String, List<CapabilityDefinition>>> instCapabilties = new HashMap<>();
1182 Map<ComponentInstance, Map<String, List<RequirementDefinition>>> instRequirements = new HashMap<>();
1183 Map<String, Map<String, ArtifactDefinition>> instDeploymentArtifacts = new HashMap<>();
1184 Map<String, Map<String, ArtifactDefinition>> instArtifacts = new HashMap<>();
1185 Map<String, List<AttributeDefinition>> instAttributes = new HashMap<>();
1186 Map<String, UploadNodeFilterInfo> instNodeFilter = new HashMap<>();
1187 Map<String, Resource> originCompMap = new HashMap<>();
1188 originCompMap.put("componentUid", originResource);
1189 Map<String, List<ComponentInstanceInput>> instInputs = new HashMap<>();
1190 UploadComponentInstanceInfo uploadComponentInstanceInfo = new UploadComponentInstanceInfo();
1191 uploadComponentInstanceInfo.setName("zxjTestImportServiceAb");
1192 Assertions.assertNotNull(service);
1194 sIB1.processComponentInstance(yamlName, service, componentInstancesList, allDataTypes.left().value(),
1195 instProperties, instCapabilties, instRequirements, instDeploymentArtifacts,
1196 instArtifacts, instAttributes, originCompMap, instInputs, instNodeFilter,
1197 uploadComponentInstanceInfo);
1201 void testProcessComponentInstance_null2() {
1202 String yamlName = "group.yml";
1203 Service service = createServiceObject(true);
1204 Resource originResource = createParseResourceObject(false);
1205 List<ComponentInstance> componentInstancesList = creatComponentInstances();
1206 Either<Map<String, DataTypeDefinition>, JanusGraphOperationStatus> allDataTypes = null;
1207 Map<String, List<ComponentInstanceProperty>> instProperties = new HashMap<>();
1208 Map<ComponentInstance, Map<String, List<CapabilityDefinition>>> instCapabilties = new HashMap<>();
1209 Map<ComponentInstance, Map<String, List<RequirementDefinition>>> instRequirements = new HashMap<>();
1210 Map<String, Map<String, ArtifactDefinition>> instDeploymentArtifacts = new HashMap<>();
1211 Map<String, Map<String, ArtifactDefinition>> instArtifacts = new HashMap<>();
1212 Map<String, List<AttributeDefinition>> instAttributes = new HashMap<>();
1213 Map<String, UploadNodeFilterInfo> instNodeFilter = new HashMap<>();
1214 Map<String, Resource> originCompMap = new HashMap<>();
1215 originCompMap.put("componentUid", originResource);
1216 Map<String, List<ComponentInstanceInput>> instInputs = new HashMap<>();
1217 UploadComponentInstanceInfo uploadComponentInstanceInfo = new UploadComponentInstanceInfo();
1218 uploadComponentInstanceInfo.setName("zxjTestImportServiceAb0");
1220 Assertions.assertThrows(ComponentException.class, () -> sIB1.processComponentInstance(yamlName,
1221 service, componentInstancesList, null, instProperties, instCapabilties,
1222 instRequirements, instDeploymentArtifacts, instArtifacts, instAttributes, originCompMap,
1223 instInputs, instNodeFilter, uploadComponentInstanceInfo));
1227 void testAddInputsValuesToRi2() {
1228 UploadComponentInstanceInfo uploadComponentInstanceInfo = new UploadComponentInstanceInfo();
1229 Map<String, List<UploadPropInfo>> properties = new HashMap<>();
1230 List<UploadPropInfo> uploadPropInfoList = new ArrayList<>();
1231 UploadPropInfo uploadPropInfo = new UploadPropInfo();
1232 uploadPropInfo.setName("uploadPropInfo");
1233 uploadPropInfoList.add(uploadPropInfo);
1234 uploadPropInfoList.add(uploadPropInfo);
1235 properties.put("propertiesMap", uploadPropInfoList);
1236 uploadComponentInstanceInfo.setProperties(properties);
1237 Service resource = createServiceObject(true);
1238 Resource originResource = createParseResourceObject(false);
1239 List<InputDefinition> inputs = new ArrayList<>();
1240 InputDefinition inputDefinition = new InputDefinition();
1241 inputDefinition.setUniqueId("uniqueId");
1242 inputs.add(inputDefinition);
1243 originResource.setInputs(inputs);
1244 ComponentInstance currentCompInstance = new ComponentInstance();
1245 Map<String, List<ComponentInstanceInput>> instInputs = new HashMap<>();
1246 Map<String, DataTypeDefinition> allDataTypes = new HashMap<>();
1248 Assertions.assertThrows(ComponentException.class, () -> sIB1
1249 .addInputsValuesToRi(uploadComponentInstanceInfo, resource, originResource,
1250 currentCompInstance, instInputs, allDataTypes));
1254 void testProcessProperty2() {
1255 Service resource = createServiceObject(true);
1256 List<InputDefinition> inputs = new ArrayList<>();
1257 ComponentInstance currentCompInstance = null;
1258 Map<String, DataTypeDefinition> allDataTypes = new HashMap<>();
1259 Map<String, InputDefinition> currPropertiesMap = new HashMap<>();
1260 InputDefinition inputDefinition = new InputDefinition();
1261 inputDefinition.setName("inputDefinitionName");
1262 inputDefinition.setType("inputDefinitionType");
1263 inputs.add(inputDefinition);
1264 currPropertiesMap.put("propertyInfoName", inputDefinition);
1265 resource.setInputs(inputs);
1266 List<ComponentInstanceInput> instPropList = new ArrayList<>();
1267 List<UploadPropInfo> propertyList = new ArrayList<>();
1268 List<GetInputValueDataDefinition> get_input = new ArrayList<>();
1269 GetInputValueDataDefinition getInputValueDataDefinition = new GetInputValueDataDefinition();
1270 getInputValueDataDefinition.setPropName("getInputValueDataDefinitionName");
1271 getInputValueDataDefinition.setInputName("inputDefinitionName");
1272 get_input.add(getInputValueDataDefinition);
1273 UploadPropInfo propertyInfo = new UploadPropInfo();
1274 propertyInfo.setValue("value");
1275 propertyInfo.setGet_input(get_input);
1276 propertyInfo.setName("propertyInfoName");
1277 propertyList.add(propertyInfo);
1278 Assertions.assertNotNull(resource);
1280 sIB1.processProperty(resource, currentCompInstance, allDataTypes, currPropertiesMap, instPropList, propertyList);
1284 void testProcessGetInput() {
1285 List<GetInputValueDataDefinition> getInputValues = new ArrayList<>();
1286 List<InputDefinition> inputs = new ArrayList<>();
1287 GetInputValueDataDefinition getInputIndex = new GetInputValueDataDefinition();
1289 Assertions.assertThrows(ComponentException.class, () -> sIB1.processGetInput(getInputValues,
1290 inputs, getInputIndex));
1294 void testProcessGetInput_optional() {
1295 List<GetInputValueDataDefinition> getInputValues = new ArrayList<>();
1296 List<InputDefinition> inputs = new ArrayList<>();
1297 InputDefinition inputDefinition = new InputDefinition();
1298 inputDefinition.setUniqueId("uniqueId");
1299 inputDefinition.setName("InputName");
1300 inputs.add(inputDefinition);
1301 GetInputValueDataDefinition getInputIndex = new GetInputValueDataDefinition();
1302 getInputIndex.setInputName("InputName");
1303 Assertions.assertNotNull(inputs);
1305 sIB1.processGetInput(getInputValues, inputs, getInputIndex);
1309 void testAddPropertyValuesToRi() {
1310 UploadComponentInstanceInfo uploadComponentInstanceInfo = new UploadComponentInstanceInfo();
1311 uploadComponentInstanceInfo.setProperties(getUploadPropInfoProperties());
1312 Resource resource = createParseResourceObject(true);
1313 List<InputDefinition> inputs = new ArrayList<>();
1314 InputDefinition inputDefinition = new InputDefinition();
1315 inputDefinition.setName("inputDefinitionName");
1316 inputDefinition.setUniqueId("uniqueId");
1317 inputDefinition.setType("inputDefinitionType");
1318 inputs.add(inputDefinition);
1319 resource.setInputs(inputs);
1320 Resource originResource = createParseResourceObject(false);
1321 originResource.setProperties(getProperties());
1322 ComponentInstance currentCompInstance = new ComponentInstance();
1323 Map<String, List<ComponentInstanceProperty>> instProperties = new HashMap<>();
1324 Map<String, DataTypeDefinition> allDataTypes = new HashMap<>();
1325 ResponseFormat responseFormat = new ResponseFormat();
1326 when(serviceImportParseLogic.findInputByName(anyList(), any(GetInputValueDataDefinition.class)))
1327 .thenReturn(inputDefinition);
1328 when(componentsUtils.getResponseFormat(any(ActionStatus.class))).thenReturn(responseFormat);
1329 Assertions.assertNotNull(
1330 sIB1.addPropertyValuesToRi(uploadComponentInstanceInfo, resource, originResource,
1331 currentCompInstance, instProperties, allDataTypes));
1335 void testAddPropertyValuesToRi_else() {
1336 UploadComponentInstanceInfo uploadComponentInstanceInfo = new UploadComponentInstanceInfo();
1337 Resource resource = createParseResourceObject(true);
1338 Resource originResource = createParseResourceObject(false);
1339 originResource.setProperties(getProperties());
1340 ComponentInstance currentCompInstance = new ComponentInstance();
1341 Map<String, List<ComponentInstanceProperty>> instProperties = new HashMap<>();
1342 Map<String, DataTypeDefinition> allDataTypes = new HashMap<>();
1343 ResponseFormat responseFormat = new ResponseFormat();
1344 when(componentsUtils.getResponseFormat(any(ActionStatus.class))).thenReturn(responseFormat);
1345 Assertions.assertNotNull(
1346 sIB1.addPropertyValuesToRi(uploadComponentInstanceInfo, resource, originResource, currentCompInstance,
1347 instProperties, allDataTypes));
1352 void testAddPropertyValuesToRi2() {
1353 UploadComponentInstanceInfo uploadComponentInstanceInfo = new UploadComponentInstanceInfo();
1354 uploadComponentInstanceInfo.setProperties(getUploadPropInfoProperties());
1355 Service service = createServiceObject(true);
1356 List<InputDefinition> inputs = new ArrayList<>();
1357 InputDefinition inputDefinition = new InputDefinition();
1358 inputDefinition.setName("inputDefinitionName");
1359 inputDefinition.setUniqueId("uniqueId");
1360 inputDefinition.setType("inputDefinitionType");
1361 inputs.add(inputDefinition);
1362 service.setInputs(inputs);
1363 Resource originResource = createParseResourceObject(false);
1364 originResource.setProperties(getProperties());
1365 ComponentInstance currentCompInstance = new ComponentInstance();
1366 Map<String, List<ComponentInstanceProperty>> instProperties = new HashMap<>();
1367 Map<String, DataTypeDefinition> allDataTypes = new HashMap<>();
1368 ResponseFormat responseFormat = new ResponseFormat();
1369 when(componentsUtils.getResponseFormat(any(ActionStatus.class))).thenReturn(responseFormat);
1370 when(serviceImportParseLogic.findInputByName(anyList(), any(GetInputValueDataDefinition.class)))
1371 .thenReturn(inputDefinition);
1372 Assertions.assertNotNull(
1373 sIB1.addPropertyValuesToRi(uploadComponentInstanceInfo, service, originResource,
1374 currentCompInstance, instProperties, allDataTypes));
1378 void testAddPropertyValuesToRi2_else() {
1379 UploadComponentInstanceInfo uploadComponentInstanceInfo = new UploadComponentInstanceInfo();
1380 Service service = createServiceObject(true);
1381 Resource originResource = createParseResourceObject(false);
1382 originResource.setProperties(getProperties());
1383 ComponentInstance currentCompInstance = new ComponentInstance();
1384 Map<String, List<ComponentInstanceProperty>> instProperties = new HashMap<>();
1385 Map<String, DataTypeDefinition> allDataTypes = new HashMap<>();
1386 ResponseFormat responseFormat = new ResponseFormat();
1387 when(componentsUtils.getResponseFormat(any(ActionStatus.class))).thenReturn(responseFormat);
1388 Assertions.assertNotNull(
1389 sIB1.addPropertyValuesToRi(uploadComponentInstanceInfo, service, originResource, currentCompInstance,
1390 instProperties, allDataTypes));
1394 void testProcessComponentInstanceCapabilities() {
1395 Either<Map<String, DataTypeDefinition>, JanusGraphOperationStatus> allDataTypes = null;
1396 Map<ComponentInstance, Map<String, List<CapabilityDefinition>>> instCapabilties = new HashMap<>();
1397 UploadComponentInstanceInfo uploadComponentInstanceInfo = new UploadComponentInstanceInfo();
1398 uploadComponentInstanceInfo.setCapabilities(getCapabilities());
1399 ComponentInstance currentCompInstance = new ComponentInstance();
1400 Resource originResource = createParseResourceObject(false);
1401 Assertions.assertNotNull(originResource);
1402 sIB1.processComponentInstanceCapabilities(null, instCapabilties,
1403 uploadComponentInstanceInfo, currentCompInstance, originResource);
1407 void testProcessComponentInstanceCapabilities_null() {
1408 Either<Map<String, DataTypeDefinition>, JanusGraphOperationStatus> allDataTypes = null;
1409 Map<ComponentInstance, Map<String, List<CapabilityDefinition>>> instCapabilties = new HashMap<>();
1410 UploadComponentInstanceInfo uploadComponentInstanceInfo = new UploadComponentInstanceInfo();
1411 ComponentInstance currentCompInstance = new ComponentInstance();
1412 Resource originResource = createParseResourceObject(false);
1413 Assertions.assertNotNull(originResource);
1415 sIB1.processComponentInstanceCapabilities(null, instCapabilties, uploadComponentInstanceInfo,
1416 currentCompInstance, originResource);
1420 void testUpdateCapabilityPropertiesValues() {
1421 Either<Map<String, DataTypeDefinition>, JanusGraphOperationStatus> allDataTypes = null;
1422 Map<String, List<CapabilityDefinition>> originCapabilities = new HashMap<>();
1423 Map<String, Map<String, UploadPropInfo>> newPropertiesMap = new HashMap<>();
1424 Assertions.assertNull(allDataTypes);
1425 sIB1.updateCapabilityPropertiesValues(null, originCapabilities, newPropertiesMap, null);
1429 void testUpdatePropertyValues() {
1430 List<ComponentInstanceProperty> properties = new ArrayList<>();
1431 Map<String, UploadPropInfo> newProperties = new HashMap<>();
1432 Map<String, DataTypeDefinition> allDataTypes = new HashMap<>();
1433 Assertions.assertNotNull(allDataTypes);
1434 sIB1.updatePropertyValues(properties, newProperties, allDataTypes);
1438 void testUpdatePropertyValue() {
1439 ComponentInstanceProperty property = new ComponentInstanceProperty();
1440 property.setType("services");
1441 UploadPropInfo propertyInfo = new UploadPropInfo();
1442 propertyInfo.setValue("value");
1443 Map<String, DataTypeDefinition> allDataTypes = new HashMap<>();
1444 when(serviceBusinessLogic.validatePropValueBeforeCreate(any(IPropertyInputCommon.class), anyString(), anyBoolean(), anyMap())).thenReturn(
1446 Assertions.assertNotNull(
1447 sIB1.updatePropertyValue(property, propertyInfo, allDataTypes));
1451 void testGetOriginResource() {
1452 String yamlName = "group.yml";
1453 Map<String, Resource> originCompMap = new HashMap<>();
1454 ComponentInstance currentCompInstance = new ComponentInstance();
1455 currentCompInstance.setComponentUid("currentCompInstance");
1456 when(toscaOperationFacade.getToscaFullElement(anyString()))
1457 .thenReturn(Either.left(createParseResourceObject(true)));
1458 Assertions.assertNotNull(
1459 sIB1.getOriginResource(yamlName, originCompMap, currentCompInstance));
1463 void testHandleSubstitutionMappings2() {
1464 Service service = createServiceObject(true);
1465 Map<String, UploadComponentInstanceInfo> uploadResInstancesMap = new HashMap<>();
1466 Assertions.assertNotNull(service);
1468 sIB1.handleSubstitutionMappings(service, uploadResInstancesMap);
1472 void testUpdateCalculatedCapReqWithSubstitutionMappings() {
1473 Resource resource = createParseResourceObject(false);
1474 resource.setComponentInstances(creatComponentInstances());
1475 Map<String, UploadComponentInstanceInfo> uploadResInstancesMap = getUploadResInstancesMap();
1477 when(toscaOperationFacade.deleteAllCalculatedCapabilitiesRequirements(any())).thenReturn(StorageOperationStatus.OK);
1478 Assertions.assertNotNull(
1479 sIB1.updateCalculatedCapReqWithSubstitutionMappings(resource, uploadResInstancesMap));
1483 void testFillUpdatedInstCapabilitiesRequirements() {
1484 List<ComponentInstance> componentInstances = creatComponentInstances();
1485 Map<String, UploadComponentInstanceInfo> uploadResInstancesMap = getUploadResInstancesMap();
1486 Map<ComponentInstance, Map<String, List<CapabilityDefinition>>> updatedInstCapabilities = new HashMap<>();
1487 Map<ComponentInstance, Map<String, List<RequirementDefinition>>> updatedInstRequirement = new HashMap<>();
1488 Assertions.assertNotNull(componentInstances);
1490 sIB1.fillUpdatedInstCapabilitiesRequirements(componentInstances, uploadResInstancesMap,
1491 updatedInstCapabilities, updatedInstRequirement);
1495 void testFillUpdatedInstCapabilities() {
1496 Map<ComponentInstance, Map<String, List<CapabilityDefinition>>> updatedInstCapabilties = new HashMap<>();
1497 Map<String, List<CapabilityDefinition>> capabilities = new HashMap<>();
1498 List<CapabilityDefinition> capabilityDefinitionList = new ArrayList<>();
1499 CapabilityDefinition capabilityDefinition = new CapabilityDefinition();
1500 capabilityDefinition.setName("mme_ipu_vdu.feature");
1501 capabilityDefinitionList.add(capabilityDefinition);
1502 capabilities.put("tosca.capabilities.Node", capabilityDefinitionList);
1503 ComponentInstance instance = new ComponentInstance();
1504 instance.setCapabilities(capabilities);
1505 Map<String, String> capabilitiesNamesToUpdate = new HashMap<>();
1506 capabilitiesNamesToUpdate.put("mme_ipu_vdu.feature", "capabilitiesNamesToUpdate");
1507 Assertions.assertNotNull(instance);
1509 sIB1.fillUpdatedInstCapabilities(updatedInstCapabilties, instance, capabilitiesNamesToUpdate);
1513 void testFillUpdatedInstRequirements() {
1514 Map<ComponentInstance, Map<String, List<RequirementDefinition>>> updatedInstRequirements = new
1516 ComponentInstance instance = new ComponentInstance();
1517 Map<String, List<RequirementDefinition>> requirements = new HashMap<>();
1518 List<RequirementDefinition> requirementDefinitionList = new ArrayList<>();
1519 RequirementDefinition requirementDefinition = new RequirementDefinition();
1520 requirementDefinition.setName("zxjtestimportserviceab0.mme_ipu_vdu.dependency.test");
1521 requirementDefinitionList.add(requirementDefinition);
1522 requirements.put("tosca.capabilities.Node", requirementDefinitionList);
1523 instance.setRequirements(requirements);
1524 Map<String, String> requirementsNamesToUpdate = new HashMap<>();
1525 requirementsNamesToUpdate.put("zxjtestimportserviceab0.mme_ipu_vdu.dependency.test",
1526 "requirementsNamesToUpdate");
1527 Assertions.assertNotNull(instance);
1529 sIB1.fillUpdatedInstRequirements(updatedInstRequirements, instance, requirementsNamesToUpdate);
1533 void testAddRelationsToRI() {
1534 String yamlName = "group.yml";
1535 Service service = createServiceObject(true);
1537 Map<String, UploadComponentInstanceInfo> uploadResInstancesMap = new HashMap<>();
1538 UploadComponentInstanceInfo nodesInfoValue = getuploadComponentInstanceInfo();
1539 uploadResInstancesMap.put("uploadComponentInstanceInfo", nodesInfoValue);
1540 List<ComponentInstance> componentInstancesList = creatComponentInstances();
1541 ComponentInstance componentInstance = new ComponentInstance();
1542 componentInstance.setName("zxjTestImportServiceAb");
1543 componentInstancesList.add(componentInstance);
1544 service.setComponentInstances(componentInstancesList);
1545 List<RequirementCapabilityRelDef> relations = new ArrayList<>();
1546 RequirementDefinition requirementDefinition = new RequirementDefinition();
1547 requirementDefinition.setOwnerId("1");
1548 requirementDefinition.setUniqueId("2");
1549 requirementDefinition.setCapability("3");
1550 CapabilityDefinition capabilityDefinition = new CapabilityDefinition();
1551 capabilityDefinition.setName("4");
1552 capabilityDefinition.setUniqueId("5");
1553 capabilityDefinition.setOwnerId("6");
1554 ResponseFormat responseFormat = new ResponseFormat();
1555 responseFormat.setStatus(200);
1556 when(serviceImportParseLogic.findAvailableRequirement(anyString(),
1557 anyString(), any(UploadComponentInstanceInfo.class), any(ComponentInstance.class),
1558 anyString())).thenReturn(Either.left(requirementDefinition));
1559 when(serviceImportParseLogic.findAvailableCapabilityByTypeOrName(any(RequirementDefinition.class),
1560 any(ComponentInstance.class), any(UploadReqInfo.class))).thenReturn(capabilityDefinition);
1561 when(componentsUtils.getResponseFormat(any(ActionStatus.class), anyString())).thenReturn(responseFormat);
1562 Assertions.assertNotNull(service);
1564 sIB1.addRelationsToRI(yamlName, service, uploadResInstancesMap, componentInstancesList, relations);
1568 void testAddRelationsToRI_null() {
1569 String yamlName = "group.yml";
1570 Service service = createServiceObject(true);
1571 Map<String, UploadComponentInstanceInfo> uploadResInstancesMap = new HashMap<>();
1572 UploadComponentInstanceInfo nodesInfoValue = getuploadComponentInstanceInfo();
1573 uploadResInstancesMap.put("uploadComponentInstanceInfo", nodesInfoValue);
1574 List<ComponentInstance> componentInstancesList = new ArrayList<>();
1575 List<RequirementCapabilityRelDef> relations = new ArrayList<>();
1577 Assertions.assertThrows(ComponentException.class, () -> sIB1.addRelationsToRI(yamlName,
1578 service, uploadResInstancesMap, componentInstancesList, relations));
1582 void testAddRelationToRI() {
1583 String yamlName = "group.yml";
1584 Service service = createServiceObject(true);
1585 service.setComponentInstances(creatComponentInstances());
1587 UploadComponentInstanceInfo nodesInfoValue = getuploadComponentInstanceInfo();
1588 List<RequirementCapabilityRelDef> relations = new ArrayList<>();
1589 RequirementDefinition requirementDefinition = new RequirementDefinition();
1590 requirementDefinition.setName("zxjtestimportserviceab0.mme_ipu_vdu.dependency.test");
1591 CapabilityDefinition capabilityDefinition = new CapabilityDefinition();
1592 capabilityDefinition.setName("capabilityDefinitionName");
1593 capabilityDefinition.setUniqueId("capabilityDefinitionUniqueId");
1594 capabilityDefinition.setOwnerId("capabilityDefinitionOwnerId");
1595 ResponseFormat responseFormat = new ResponseFormat();
1596 when(serviceImportParseLogic.findAvailableRequirement(anyString(), anyString(), any(UploadComponentInstanceInfo.class),
1597 any(ComponentInstance.class), anyString())).thenReturn(Either.left(requirementDefinition));
1598 when(serviceImportParseLogic.findAvailableCapabilityByTypeOrName(any(RequirementDefinition.class),
1599 any(ComponentInstance.class), any(UploadReqInfo.class))).thenReturn(capabilityDefinition);
1600 when(componentsUtils.getResponseFormat(any(ActionStatus.class), anyString())).thenReturn(responseFormat);
1601 Assertions.assertNotNull(
1602 sIB1.addRelationToRI(yamlName, service, nodesInfoValue, relations));
1606 void testAddRelationToRI_null() {
1607 String yamlName = "group.yml";
1608 Service service = createServiceObject(true);
1609 List<ComponentInstance> componentInstancesList = new ArrayList<>();
1610 service.setComponentInstances(componentInstancesList);
1611 ResponseFormat responseFormat = new ResponseFormat();
1612 UploadComponentInstanceInfo nodesInfoValue = getuploadComponentInstanceInfo();
1613 List<RequirementCapabilityRelDef> relations = new ArrayList<>();
1614 when(componentsUtils.getResponseFormat(any(ActionStatus.class), anyString())).thenReturn(responseFormat);
1615 Assertions.assertNotNull(
1616 sIB1.addRelationToRI(yamlName, service, nodesInfoValue, relations));
1621 void testGetResourceAfterCreateRelations() {
1622 Service service = createServiceObject(true);
1623 ComponentParametersView componentParametersView = createComponentParametersView();
1624 when(serviceImportParseLogic.getComponentFilterAfterCreateRelations()).thenReturn(componentParametersView);
1625 when(toscaOperationFacade.getToscaElement(anyString(), any(ComponentParametersView.class)))
1626 .thenReturn(Either.left(createServiceObject(true)));
1627 Assertions.assertNotNull(
1628 sIB1.getResourceAfterCreateRelations(service));
1632 void testCreateServiceInstances() {
1633 String yamlName = "group.yml";
1634 Service service = createServiceObject(true);
1635 Map<String, UploadComponentInstanceInfo> uploadResInstancesMap = new HashMap<>();
1636 UploadComponentInstanceInfo nodesInfoValue = getuploadComponentInstanceInfo();
1637 uploadResInstancesMap.put("uploadResInstancesMap", nodesInfoValue);
1638 Map<String, Resource> nodeNamespaceMap = new HashMap<>();
1639 Resource resource = createParseResourceObject(true);
1640 resource.setToscaResourceName("toscaResourceName");
1641 nodeNamespaceMap.put("nodeNamespaceMap", resource);
1643 Assertions.assertThrows(ComponentException.class, () -> sIB1
1644 .createServiceInstances(yamlName, service, uploadResInstancesMap, nodeNamespaceMap));
1648 void testCreateAndAddResourceInstance() {
1649 UploadComponentInstanceInfo uploadComponentInstanceInfo = getuploadComponentInstanceInfo();
1650 String yamlName = "group.yml";
1651 Resource resource = createParseResourceObject(false);
1652 Resource originResource = createParseResourceObject(true);
1653 originResource.setResourceType(ResourceTypeEnum.VF);
1654 Map<String, Resource> nodeNamespaceMap = new HashMap<>();
1655 nodeNamespaceMap.put("resources", originResource);
1656 Map<String, Resource> existingnodeTypeMap = new HashMap<>();
1657 Map<ComponentInstance, Resource> resourcesInstancesMap = new HashMap<>();
1659 Assertions.assertThrows(ComponentException.class, () -> sIB1
1660 .createAndAddResourceInstance(uploadComponentInstanceInfo, yamlName, resource,
1661 nodeNamespaceMap, existingnodeTypeMap, resourcesInstancesMap));
1665 void testCreateAndAddResourceInstances() {
1666 UploadComponentInstanceInfo uploadComponentInstanceInfo = getuploadComponentInstanceInfo();
1667 String yamlName = "group.yml";
1668 Service service = createServiceObject(true);
1669 service.setServiceType("services");
1670 Resource originResource = createParseResourceObject(true);
1671 originResource.setResourceType(ResourceTypeEnum.VF);
1672 Map<String, Resource> nodeNamespaceMap = new HashMap<>();
1673 nodeNamespaceMap.put("resources", originResource);
1674 Map<String, Resource> existingnodeTypeMap = new HashMap<>();
1675 Map<ComponentInstance, Resource> resourcesInstancesMap = new HashMap<>();
1677 Assertions.assertThrows(ComponentException.class, () -> sIB1
1678 .createAndAddResourceInstance(uploadComponentInstanceInfo, yamlName, service,
1679 nodeNamespaceMap, existingnodeTypeMap, resourcesInstancesMap));
1683 void testValidateResourceInstanceBeforeCreate() {
1684 String yamlName = "group.yml";
1685 UploadComponentInstanceInfo uploadComponentInstanceInfo = getuploadComponentInstanceInfo();
1686 Resource originResource = createParseResourceObject(true);
1687 ResourceMetadataDataDefinition componentMetadataDataDefinition = new ResourceMetadataDataDefinition();
1688 componentMetadataDataDefinition.setState(LifecycleStateEnum.CERTIFIED.name());
1689 ComponentMetadataDefinition componentMetadataDefinition = new ComponentMetadataDefinition(componentMetadataDataDefinition);
1690 originResource.setComponentMetadataDefinition(componentMetadataDefinition);
1691 originResource.setComponentType(ComponentTypeEnum.RESOURCE);
1692 originResource.setToscaResourceName("toscaResourceName");
1693 originResource.setResourceType(ResourceTypeEnum.VF);
1694 originResource.setResourceType(ResourceTypeEnum.VF);
1695 Map<String, Resource> nodeNamespaceMap = new HashMap<>();
1696 nodeNamespaceMap.put("resources", originResource);
1697 when(toscaOperationFacade.getLatestResourceByToscaResourceName(anyString()))
1698 .thenReturn(Either.left(originResource));
1699 Assertions.assertNotNull(
1700 sIB1.validateResourceInstanceBeforeCreate(yamlName, uploadComponentInstanceInfo, nodeNamespaceMap));
1704 void testHandleServiceNodeTypes() {
1705 String yamlName = "group.yml";
1706 Service service = createServiceObject(true);
1707 String topologyTemplateYaml = getMainTemplateContent("service_import_template.yml");
1709 boolean needLock = true;
1710 Map<String, EnumMap<ArtifactsBusinessLogic.ArtifactOperationEnum, List<ArtifactDefinition>>> nodeTypesArtifactsToHandle = new HashMap<>();
1711 List<ArtifactDefinition> nodeTypesNewCreatedArtifacts = new ArrayList<>();
1712 Map<String, NodeTypeInfo> nodeTypesInfo = getNodeTypesInfo();
1713 CsarInfo csarInfo = getCsarInfo();
1714 String nodeName = "org.openecomp.resource.derivedFrom.zxjTestImportServiceAb.test";
1715 when(toscaOperationFacade.getLatestResourceByToscaResourceName(anyString()))
1716 .thenReturn(Either.left(createOldResource()));
1717 Assertions.assertNotNull(service);
1719 sIB1.handleServiceNodeTypes(yamlName, service, topologyTemplateYaml, needLock,
1720 nodeTypesArtifactsToHandle, nodeTypesNewCreatedArtifacts, nodeTypesInfo,
1721 csarInfo, nodeName);
1725 void testValidateResourceNotExisted() {
1726 String type = "org.openecomp.resource.vf";
1728 Assertions.assertThrows(ComponentException.class, () -> sIB1.validateResourceNotExisted(type));
1732 void testHandleNestedVF() {
1733 Service service = createServiceObject(true);
1734 Map<String, EnumMap<ArtifactsBusinessLogic.ArtifactOperationEnum, List<ArtifactDefinition>>> nodeTypesArtifactsToHandle = new HashMap<>();
1735 List<ArtifactDefinition> createdArtifacts = new ArrayList<>();
1736 Map<String, NodeTypeInfo> nodesInfo = getNodeTypesInfo();
1737 CsarInfo csarInfo = getCsarInfo();
1738 String nodeName = "org.openecomp.resource.derivedFrom.zxjTestImportServiceAb.test";
1740 Assertions.assertThrows(ComponentException.class, () -> sIB1.handleNestedVF(service,
1741 nodeTypesArtifactsToHandle, createdArtifacts, nodesInfo, csarInfo, nodeName));
1745 void testHandleNestedVfc() {
1746 Service service = createServiceObject(true);
1747 Map<String, EnumMap<ArtifactsBusinessLogic.ArtifactOperationEnum, List<ArtifactDefinition>>> nodeTypesArtifactsToHandle = new HashMap<>();
1748 List<ArtifactDefinition> createdArtifacts = new ArrayList<>();
1749 Map<String, NodeTypeInfo> nodesInfo = new HashMap<>();
1750 CsarInfo csarInfo = getCsarInfo();
1751 String nodeName = "org.openecomp.resource.derivedFrom.zxjTestImportServiceAb.test";
1753 Assertions.assertThrows(ComponentException.class, () -> sIB1.handleNestedVfc(service,
1754 nodeTypesArtifactsToHandle, createdArtifacts, nodesInfo, csarInfo, nodeName));
1758 void testHandleComplexVfc() {
1759 Map<String, EnumMap<ArtifactsBusinessLogic.ArtifactOperationEnum, List<ArtifactDefinition>>> nodeTypesArtifactsToHandle = new HashMap<>();
1760 List<ArtifactDefinition> createdArtifacts = new ArrayList<>();
1761 Map<String, NodeTypeInfo> nodesInfo = new HashMap<>();
1762 CsarInfo csarInfo = getCsarInfo();
1763 String nodeName = "org.openecomp.resource.derivedFrom.zxjTestImportServiceAb.test";
1764 String yamlName = "group.yml";
1765 when(serviceImportParseLogic.buildValidComplexVfc(any(CsarInfo.class), anyString(), anyMap()))
1766 .thenReturn(createNewResource());
1767 when(toscaOperationFacade.getFullLatestComponentByToscaResourceName(anyString()))
1768 .thenReturn(Either.left(createNewResource()));
1769 when(serviceImportParseLogic.validateNestedDerivedFromDuringUpdate(any(Resource.class), any(Resource.class), anyBoolean()))
1770 .thenReturn(Either.left(true));
1772 Assertions.assertThrows(ComponentException.class, () -> sIB1
1773 .handleComplexVfc(nodeTypesArtifactsToHandle, createdArtifacts, nodesInfo,
1774 csarInfo, nodeName, yamlName));
1778 void testHandleComplexVfcStatus() {
1779 Map<String, EnumMap<ArtifactsBusinessLogic.ArtifactOperationEnum, List<ArtifactDefinition>>> nodeTypesArtifactsToHandle = new HashMap<>();
1780 List<ArtifactDefinition> createdArtifacts = new ArrayList<>();
1781 Map<String, NodeTypeInfo> nodesInfo = new HashMap<>();
1782 CsarInfo csarInfo = getCsarInfo();
1783 String nodeName = "org.openecomp.resource.derivedFrom.zxjTestImportServiceAb.test";
1784 String yamlName = "group.yml";
1785 when(serviceImportParseLogic.buildValidComplexVfc(any(CsarInfo.class), anyString(), anyMap()))
1786 .thenReturn(createNewResource());
1787 when(toscaOperationFacade.getFullLatestComponentByToscaResourceName(anyString()))
1788 .thenReturn(Either.right(StorageOperationStatus.NOT_FOUND));
1790 Assertions.assertThrows(ComponentException.class, () -> sIB1
1791 .handleComplexVfc(nodeTypesArtifactsToHandle, createdArtifacts, nodesInfo,
1792 csarInfo, nodeName, yamlName));
1796 void testHandleComplexVfc2() {
1797 Map<String, EnumMap<ArtifactsBusinessLogic.ArtifactOperationEnum, List<ArtifactDefinition>>> nodeTypesArtifactsToHandle = new HashMap<>();
1798 List<ArtifactDefinition> createdArtifacts = new ArrayList<>();
1799 Map<String, NodeTypeInfo> nodesInfo = getNodeTypesInfo();
1800 String nodeName = "org.openecomp.resource.derivedFrom.zxjTestImportServiceAb.test";
1801 String yamlName = "group.yml";
1802 CsarInfo csarInfo = getCsarInfo();
1803 Map<String, byte[]> csar = new HashMap<>();
1804 csar.put(yamlName, yamlName.getBytes());
1805 csarInfo.setCsar(csar);
1806 Resource oldComplexVfc = createParseResourceObject(false);
1807 Resource newComplexVfc = createParseResourceObject(true);
1809 Assertions.assertThrows(ComponentException.class, () -> sIB1
1810 .handleComplexVfc(nodeTypesArtifactsToHandle, createdArtifacts, nodesInfo,
1811 csarInfo, nodeName, yamlName, oldComplexVfc, newComplexVfc));
1815 void testUpdateResourceFromYaml() throws IOException {
1816 String nodeName = "org.openecomp.resource.derivedFrom.zxjTestImportServiceAb.test";
1817 Resource newResource = createNewResource();
1818 Resource oldResource = createOldResource();
1819 AuditingActionEnum actionEnum = AuditingActionEnum.CREATE_RESOURCE;
1820 List<ArtifactDefinition> createdArtifacts = new ArrayList<>();
1821 String yamlFileName = "group.yml";
1822 String yamlFileContent = getYamlFileContent();
1823 CsarInfo csarInfo = getCsarInfo();
1824 Map<String, NodeTypeInfo> nodeTypesInfo = getNodeTypesInfo();
1825 Map<String, Object> map = new HashMap<>();
1826 map.put("tosca_definitions_version", "123");
1827 nodeTypesInfo.get(nodeName).setMappedToscaTemplate(map);
1828 Map<String, EnumMap<ArtifactsBusinessLogic.ArtifactOperationEnum, List<ArtifactDefinition>>> nodeTypesArtifactsToHandle = new HashMap<>();
1829 boolean isNested = true;
1831 when(csarBusinessLogic.getParsedToscaYamlInfo(anyString(), anyString(), anyMap(), any(CsarInfo.class),
1832 anyString(), any(Component.class))).thenReturn(getParsedToscaYamlInfo());
1833 when(serviceImportParseLogic.prepareResourceForUpdate(any(Resource.class), any(Resource.class),
1834 any(User.class), anyBoolean(), anyBoolean())).thenReturn(oldResource);
1835 when(serviceImportParseLogic.validateCapabilityTypesCreate(any(User.class), any(ICapabilityTypeOperation.class),
1836 any(Resource.class), any(AuditingActionEnum.class), anyBoolean())).thenReturn(Either.left(true));
1837 when(toscaOperationFacade.overrideComponent(any(Resource.class), any(Resource.class)))
1838 .thenReturn(Either.left(newResource));
1839 Assertions.assertThrows(ComponentException.class, () -> sIB1
1840 .updateResourceFromYaml(oldResource, newResource, actionEnum, createdArtifacts,
1841 yamlFileName, yamlFileContent, csarInfo, nodeTypesInfo,
1842 nodeTypesArtifactsToHandle, nodeName, isNested));
1846 void testCreateResourceFromYaml() throws IOException {
1847 String nodeName = "org.openecomp.resource.derivedFrom.zxjTestImportServiceAb.test";
1848 Resource resource = createParseResourceObject(true);
1849 String topologyTemplateYaml = getMainTemplateContent();
1850 String yamlName = "group.yml";
1852 Map<String, NodeTypeInfo> nodeTypesInfo = getNodeTypesInfo();
1853 Map<String, Object> map = new HashMap<>();
1854 map.put("tosca_definitions_version", "123");
1855 nodeTypesInfo.get(nodeName).setMappedToscaTemplate(map);
1857 CsarInfo csarInfo = getCsarInfo();
1858 Map<String, EnumMap<ArtifactsBusinessLogic.ArtifactOperationEnum, List<ArtifactDefinition>>> nodeTypesArtifactsToCreate = new HashMap<>();
1859 boolean shouldLock = false;
1860 boolean inTransaction = true;
1862 when(csarBusinessLogic.getParsedToscaYamlInfo(anyString(), anyString(), anyMap(), any(CsarInfo.class),
1863 anyString(), any(Component.class))).thenReturn(getParsedToscaYamlInfo());
1864 when(serviceBusinessLogic.fetchAndSetDerivedFromGenericType(any(Resource.class))).thenReturn(resource);
1865 when(toscaOperationFacade.validateComponentNameExists(anyString(), any(ResourceTypeEnum.class)
1866 , any(ComponentTypeEnum.class))).thenReturn(Either.left(false));
1867 when(toscaOperationFacade.createToscaComponent(any(Resource.class))).thenReturn(Either.left(resource));
1868 Assertions.assertThrows(ComponentException.class, () -> sIB1.createResourceFromYaml(resource,
1869 topologyTemplateYaml, yamlName, nodeTypesInfo, csarInfo,
1870 nodeTypesArtifactsToCreate, shouldLock, inTransaction, nodeName));
1875 void testCreateResourceAndRIsFromYaml() throws IOException {
1876 String yamlName = "group.yml";
1877 String nodeName = "org.openecomp.resource.derivedFrom.zxjTestImportServiceAb.test";
1878 Resource resource = createParseResourceObject(true);
1879 resource.setSystemName("SystemName");
1880 resource.setComponentType(ComponentTypeEnum.RESOURCE);
1881 AuditingActionEnum actionEnum = AuditingActionEnum.CREATE_RESOURCE;
1882 boolean isNormative = true;
1883 List<ArtifactDefinition> createdArtifacts = new ArrayList<>();
1884 String topologyTemplateYaml = getMainTemplateContent();
1885 Map<String, NodeTypeInfo> nodeTypesInfo = getNodeTypesInfo();
1886 Map<String, Object> map = new HashMap<>();
1887 map.put("tosca_definitions_version", "123");
1888 nodeTypesInfo.get(nodeName).setMappedToscaTemplate(map);
1889 ParsedToscaYamlInfo parsedToscaYamlInfo = getParsedToscaYamlInfo();
1891 CsarInfo csarInfo = getCsarInfo();
1892 Map<String, EnumMap<ArtifactsBusinessLogic.ArtifactOperationEnum, List<ArtifactDefinition>>> nodeTypesArtifactsToCreate = new HashMap<>();
1893 boolean shouldLock = false;
1894 boolean inTransaction = true;
1895 when(serviceBusinessLogic.fetchAndSetDerivedFromGenericType(any(Resource.class)))
1896 .thenReturn(resource);
1898 when(serviceBusinessLogic.lockComponentByName(anyString(), any(), anyString()))
1899 .thenReturn(Either.left(true));
1901 when(toscaOperationFacade.validateComponentNameExists(anyString(), any(ResourceTypeEnum.class)
1902 , any(ComponentTypeEnum.class))).thenReturn(Either.left(false));
1904 when(toscaOperationFacade.createToscaComponent(any(Resource.class))).thenReturn(Either.left(resource));
1906 Assertions.assertThrows(ComponentException.class, () -> sIB1
1907 .createResourceAndRIsFromYaml(yamlName, resource, parsedToscaYamlInfo, actionEnum,
1908 isNormative, createdArtifacts, topologyTemplateYaml, nodeTypesInfo, csarInfo,
1909 nodeTypesArtifactsToCreate, shouldLock, inTransaction, nodeName));
1913 void testCreateGroupsOnResource2() {
1914 Resource resource = createParseResourceObject(false);
1915 Map<String, GroupDefinition> groups = null;
1916 List<GroupDefinition> groupDefinitionList = new ArrayList<>();
1917 GroupDefinition groupDefinition = new GroupDefinition();
1918 groupDefinition.setUniqueId("groupDefinitionUniqueId");
1919 groupDefinition.setName("groupDefinition");
1920 groupDefinitionList.add(groupDefinition);
1921 Assertions.assertNotNull(sIB1.createGroupsOnResource(resource, groups));
1925 void testCreateGroupsOnResource2_null() {
1926 Resource resource = createParseResourceObject(false);
1927 Map<String, GroupDefinition> groups = null;
1929 Either<Resource, ResponseFormat> result = sIB1.createGroupsOnResource(resource, groups);
1930 assertEquals(result.left().value(), resource);
1934 void testUpdateGroupsMembersUsingResource2() {
1935 Resource resource = createParseResourceObject(true);
1936 Map<String, GroupDefinition> groups = getGroups();
1937 Assertions.assertNotNull(sIB1.updateGroupsMembersUsingResource(groups, resource));
1941 void testUpdateGroupsMembersUsingResource_left2() {
1942 Resource resource = createParseResourceObject(true);
1943 Map<String, GroupDefinition> groups = getGroups();
1944 Assertions.assertNotNull(sIB1.updateGroupsMembersUsingResource(groups, resource));
1948 void testUpdateGroupMembers() throws IOException {
1949 Map<String, GroupDefinition> groups = new HashMap<>();
1950 GroupDefinition updatedGroupDefinition = new GroupDefinition();
1951 Resource component = createParseResourceObject(true);
1952 List<ComponentInstance> componentInstances = creatComponentInstances();
1953 String groupName = "tosca_simple_yaml_1_1";
1954 Map<String, String> members = new HashMap<>();
1955 members.put("zxjTestImportServiceAb", getGroupsYaml());
1956 Assertions.assertNotNull(component);
1958 sIB1.updateGroupMembers(groups, updatedGroupDefinition, component, componentInstances, groupName, members);
1962 void testUpdateGroupMembers_null() throws IOException {
1963 Map<String, GroupDefinition> groups = new HashMap<>();
1964 GroupDefinition updatedGroupDefinition = new GroupDefinition();
1965 Resource component = createParseResourceObject(true);
1966 List<ComponentInstance> componentInstances = new ArrayList<>();
1967 String groupName = "tosca_simple_yaml_1_1";
1968 Map<String, String> members = new HashMap<>();
1969 members.put("zxjTestImportServiceAb", getGroupsYaml());
1971 Assertions.assertThrows(ComponentException.class, () -> sIB1.updateGroupMembers(groups,
1972 updatedGroupDefinition, component, componentInstances, groupName, members));
1976 void setCreateResourceTransaction() {
1977 Resource resource = createParseResourceObject(false);
1978 resource.setComponentType(ComponentTypeEnum.RESOURCE);
1979 boolean isNormative = true;
1980 when(toscaOperationFacade.validateComponentNameExists(anyString(), any(), any()))
1981 .thenReturn(Either.right(StorageOperationStatus.BAD_REQUEST));
1983 Assertions.assertThrows(ComponentException.class, () -> sIB1.createResourceTransaction(resource,
1984 user, isNormative));
1988 void setCreateResourceTransaction_leftTrue() {
1989 Resource resource = createParseResourceObject(false);
1990 resource.setComponentType(ComponentTypeEnum.RESOURCE);
1991 boolean isNormative = true;
1992 when(toscaOperationFacade.validateComponentNameExists(anyString(), any(), any()))
1993 .thenReturn(Either.left(true));
1995 Assertions.assertThrows(ComponentException.class, () -> sIB1
1996 .createResourceTransaction(resource, user, isNormative));
2000 void setCreateResourceTransaction_Left() {
2001 Resource resource = createParseResourceObject(false);
2002 resource.setComponentType(ComponentTypeEnum.RESOURCE);
2003 when(toscaOperationFacade.validateComponentNameExists(anyString(), any(), any()))
2004 .thenReturn(Either.left(false));
2005 when(toscaOperationFacade.createToscaComponent(any(Resource.class))).thenReturn(Either.left(resource));
2006 Assertions.assertNotNull(
2007 sIB1.createResourceTransaction(resource, user, false));
2011 void testUpdateExistingResourceByImport() {
2012 Resource newResource = createNewResource();
2013 Resource oldResource = createOldResource();
2014 when(serviceImportParseLogic.prepareResourceForUpdate(any(Resource.class), any(Resource.class),
2015 any(User.class), anyBoolean(), anyBoolean())).thenReturn(oldResource);
2016 when(serviceImportParseLogic.validateCapabilityTypesCreate(any(User.class), any(ICapabilityTypeOperation.class),
2017 any(Resource.class), any(AuditingActionEnum.class), anyBoolean())).thenReturn(Either.left(true));
2018 when(toscaOperationFacade.overrideComponent(any(Resource.class), any(Resource.class)))
2019 .thenReturn(Either.left(newResource));
2020 Assertions.assertNotNull(
2021 sIB1.updateExistingResourceByImport(newResource, oldResource, user,
2022 true, false, true));
2026 void testCreateNewResourceToOldResource() {
2027 Resource newResource = createNewResource();
2028 Resource oldResource = createOldResource();
2030 sIB1.createNewResourceToOldResource(newResource, oldResource, user);
2031 assertEquals(newResource.getSystemName(), oldResource.getSystemName());
2035 void testCreateResourcesFromYamlNodeTypesList() {
2036 String yamlName = "group.yml";
2037 Service service = createServiceObject(true);
2038 Map<String, Object> mappedToscaTemplate = new HashMap<>();
2039 boolean needLock = true;
2040 Map<String, EnumMap<ArtifactsBusinessLogic.ArtifactOperationEnum, List<ArtifactDefinition>>> nodeTypesArtifactsToHandle = new HashMap<>();
2041 List<ArtifactDefinition> nodeTypesNewCreatedArtifacts = new ArrayList<>();
2042 Map<String, NodeTypeInfo> nodeTypesInfo = new HashMap<>();
2043 CsarInfo csarInfo = getCsarInfo();
2045 Assertions.assertThrows(ComponentException.class, () -> sIB1
2046 .createResourcesFromYamlNodeTypesList(yamlName, service, mappedToscaTemplate, needLock,
2047 nodeTypesArtifactsToHandle, nodeTypesNewCreatedArtifacts, nodeTypesInfo, csarInfo));
2051 void testCreateNodeTypes() {
2052 String yamlName = "group.yml";
2053 Service service = createServiceObject(true);
2054 boolean needLock = true;
2055 Map<String, EnumMap<ArtifactsBusinessLogic.ArtifactOperationEnum, List<ArtifactDefinition>>> nodeTypesArtifactsToHandle = new HashMap<>();
2056 EnumMap<ArtifactsBusinessLogic.ArtifactOperationEnum, List<ArtifactDefinition>> enumListEnumMap =
2057 new EnumMap<>(ArtifactsBusinessLogic.ArtifactOperationEnum.class);
2058 List<ArtifactDefinition> artifactDefinitions = new ArrayList<>();
2059 ArtifactDefinition artifactDefinition = new ArtifactDefinition();
2060 artifactDefinition.setArtifactName("artifactName");
2061 artifactDefinitions.add(artifactDefinition);
2062 enumListEnumMap.put(ArtifactsBusinessLogic.ArtifactOperationEnum.CREATE,
2063 artifactDefinitions);
2064 nodeTypesArtifactsToHandle.put("nodeTyp", enumListEnumMap);
2065 List<ArtifactDefinition> nodeTypesNewCreatedArtifacts = new ArrayList<>();
2066 Map<String, NodeTypeInfo> nodeTypesInfo = getNodeTypesInfo();
2067 CsarInfo csarInfo = getCsarInfo();
2068 Map<String, Object> mapToConvert = new HashMap<>();
2069 Map<String, Object> nodeTypes = new HashMap<>();
2070 NodeTypeInfo nodeTypeInfo = new NodeTypeInfo();
2071 nodeTypesInfo.put("nodeTyp", nodeTypeInfo);
2072 nodeTypes.put("org.openecomp.resource.derivedFrom.zxjTestImportServiceAb.test",
2075 Assertions.assertThrows(ComponentException.class, () -> sIB1.createNodeTypes(yamlName,
2076 service, needLock, nodeTypesArtifactsToHandle, nodeTypesNewCreatedArtifacts,
2077 nodeTypesInfo, csarInfo, mapToConvert, nodeTypes));
2081 void testCreateNodeTypesElse() {
2082 String nodeName = "org.openecomp.resource.derivedFrom.zxjTestImportServiceAb.test";
2083 String yamlName = "group.yml";
2084 Service service = createServiceObject(true);
2085 boolean needLock = true;
2086 Map<String, EnumMap<ArtifactsBusinessLogic.ArtifactOperationEnum, List<ArtifactDefinition>>> nodeTypesArtifactsToHandle = new HashMap<>();
2087 EnumMap<ArtifactsBusinessLogic.ArtifactOperationEnum, List<ArtifactDefinition>> enumListEnumMap =
2088 new EnumMap<>(ArtifactsBusinessLogic.ArtifactOperationEnum.class);
2089 List<ArtifactDefinition> artifactDefinitions = new ArrayList<>();
2090 ArtifactDefinition artifactDefinition = new ArtifactDefinition();
2091 artifactDefinition.setArtifactName("artifactName");
2092 artifactDefinitions.add(artifactDefinition);
2093 enumListEnumMap.put(ArtifactsBusinessLogic.ArtifactOperationEnum.CREATE,
2094 artifactDefinitions);
2095 nodeTypesArtifactsToHandle.put("nodeTyp", enumListEnumMap);
2096 List<ArtifactDefinition> nodeTypesNewCreatedArtifacts = new ArrayList<>();
2097 Map<String, NodeTypeInfo> nodeTypesInfo = getNodeTypesInfo();
2098 Map<String, Object> map = new HashMap<>();
2099 map.put("tosca_definitions_version", "123");
2100 nodeTypesInfo.get(nodeName).setMappedToscaTemplate(map);
2101 ParsedToscaYamlInfo parsedToscaYamlInfo = getParsedToscaYamlInfo();
2103 CsarInfo csarInfo = getCsarInfo();
2104 Map<String, Object> mapToConvert = new HashMap<>();
2105 Map<String, Object> nodeTypes = new HashMap<>();
2106 NodeTypeInfo nodeTypeInfo = new NodeTypeInfo();
2107 nodeTypes.put("org.openecomp.resource.derivedFrom.zxjTestImportServiceAb.test",
2109 when(serviceImportParseLogic.createNodeTypeResourceFromYaml(anyString(), any(Map.Entry.class), any(User.class),
2110 anyMap(), any(Service.class), anyBoolean(), anyMap(), anyList(), anyBoolean(), any(CsarInfo.class),
2111 anyBoolean())).thenReturn(getResourceCreated());
2112 Assertions.assertNotNull(service);
2114 sIB1.createNodeTypes(yamlName,
2115 service, needLock, nodeTypesArtifactsToHandle, nodeTypesNewCreatedArtifacts,
2116 nodeTypesInfo, csarInfo, mapToConvert, nodeTypes);
2120 protected ImmutablePair<Resource, ActionStatus> getResourceCreated() {
2121 Resource resource = createOldResource();
2122 ImmutablePair<Resource, ActionStatus> resourceCreated = new ImmutablePair<>(resource, ActionStatus.OK);
2124 return resourceCreated;
2127 protected Resource createNewResource() {
2128 Resource newResource = createParseResourceObject(false);
2129 newResource.setVersion("1.0");
2130 newResource.setInvariantUUID("");
2131 newResource.setLifecycleState(null);
2132 newResource.setUUID("");
2133 newResource.setNormalizedName("");
2134 newResource.setSystemName("");
2135 newResource.setCsarUUID("");
2136 newResource.setImportedToscaChecksum("");
2137 newResource.setDerivedFromGenericType("");
2138 newResource.setDerivedFromGenericVersion("");
2139 Map<String, ArtifactDefinition> toscaArtifacts = new HashMap<>();
2140 ArtifactDefinition artifactDefinition = new ArtifactDefinition();
2141 artifactDefinition.setArtifactName("artifactDefinition");
2142 toscaArtifacts.put("toscaArtifactsMap", artifactDefinition);
2143 Map<String, InterfaceDefinition> interfaces = new HashMap<>();
2144 InterfaceDefinition interfaceDefinition = new InterfaceDefinition();
2145 interfaceDefinition.setOwnerId("OwnerId");
2146 interfaces.put("interfacesMap", interfaceDefinition);
2147 newResource.setInterfaces(interfaces);
2148 newResource.setToscaArtifacts(toscaArtifacts);
2149 newResource.setProperties(getProperties());
2153 protected Resource createOldResource() {
2154 Resource newResource = createParseResourceObject(false);
2155 newResource.setVersion("1.0");
2156 newResource.setUniqueId("ResourceUniqueId");
2157 newResource.setInvariantUUID("552e8f6c-340c-4fb4-8a82-fe7732fd8010");
2158 newResource.setLifecycleState(LifecycleStateEnum.CERTIFIED);
2159 newResource.setUUID("13065b80-ca96-4331-b643-d28aeaf961cb");
2160 newResource.setNormalizedName("NormalizedName");
2161 newResource.setSystemName("default");
2162 newResource.setCsarUUID("CsarUUID");
2163 newResource.setImportedToscaChecksum("ImportedToscaChecksum");
2164 newResource.setDerivedFromGenericType("DerivedFromGenericType");
2165 newResource.setDerivedFromGenericVersion("0.1");
2166 Map<String, ArtifactDefinition> toscaArtifacts = new HashMap<>();
2167 ArtifactDefinition artifactDefinition = new ArtifactDefinition();
2168 artifactDefinition.setArtifactName("tosca_simple_yaml_1_1");
2169 toscaArtifacts.put("tosca_definitions_version", artifactDefinition);
2170 Map<String, InterfaceDefinition> interfaces = new HashMap<>();
2171 InterfaceDefinition interfaceDefinition = new InterfaceDefinition();
2172 interfaceDefinition.setDescription("Invoked upon receipt of an Instantiate VNF request");
2173 interfaces.put("tosca_simple_yaml_1_1", interfaceDefinition);
2174 newResource.setInterfaces(interfaces);
2175 newResource.setToscaArtifacts(toscaArtifacts);
2176 List<PropertyDefinition> properties = new ArrayList<>();
2177 PropertyDefinition propertyDefinition = new PropertyDefinition();
2178 propertyDefinition.setName("tosca_simple_yaml_1_1");
2179 properties.add(propertyDefinition);
2180 newResource.setProperties(properties);
2184 protected Map<String, InputDefinition> getCurrPropertiesMap() {
2185 Map<String, InputDefinition> currPropertiesMap = new HashMap<>();
2186 InputDefinition inputDefinition = new InputDefinition();
2187 inputDefinition.setName("inputDefinitionName");
2188 inputDefinition.setUniqueId("uniqueId");
2189 inputDefinition.setType("inputDefinitionType");
2190 currPropertiesMap.put("propertyInfoName", inputDefinition);
2191 return currPropertiesMap;
2194 protected List<UploadPropInfo> getPropertyList() {
2195 List<UploadPropInfo> propertyList = new ArrayList<>();
2196 List<GetInputValueDataDefinition> get_input = new ArrayList<>();
2197 GetInputValueDataDefinition getInputValueDataDefinition = new GetInputValueDataDefinition();
2198 getInputValueDataDefinition.setPropName("getInputValueDataDefinitionName");
2199 getInputValueDataDefinition.setInputName("inputDefinitionName");
2200 get_input.add(getInputValueDataDefinition);
2201 UploadPropInfo propertyInfo = new UploadPropInfo();
2202 propertyInfo.setValue("value");
2203 propertyInfo.setGet_input(get_input);
2204 propertyInfo.setName("propertyInfoName");
2205 propertyList.add(propertyInfo);
2206 return propertyList;
2209 protected Map<String, NodeTypeInfo> getNodeTypesInfo() {
2210 Map<String, NodeTypeInfo> nodeTypesInfo = new HashMap<>();
2211 NodeTypeInfo nodeTypeInfo = new NodeTypeInfo();
2212 Map<String, Object> mappedToscaTemplate = new HashMap<>();
2213 nodeTypeInfo.setNested(true);
2214 nodeTypeInfo.setTemplateFileName("templateFileName");
2215 nodeTypeInfo.setMappedToscaTemplate(mappedToscaTemplate);
2216 String nodeName = "org.openecomp.resource.derivedFrom.zxjTestImportServiceAb.test";
2217 nodeTypesInfo.put(nodeName, nodeTypeInfo);
2218 return nodeTypesInfo;
2221 protected Map<String, UploadComponentInstanceInfo> getUploadResInstancesMap() {
2222 Map<String, UploadComponentInstanceInfo> uploadResInstancesMap = new HashMap<>();
2223 UploadComponentInstanceInfo uploadComponentInstanceInfo = getuploadComponentInstanceInfo();
2224 Map<String, String> capabilitiesNamesToUpdate = new HashMap<>();
2225 capabilitiesNamesToUpdate.put("mme_ipu_vdu.feature", "capabilitiesNamesToUpdate");
2226 Map<String, String> requirementsNamesToUpdate = new HashMap<>();
2227 requirementsNamesToUpdate.put("mme_ipu_vdu.feature", "capabilitiesNamesToUpdate");
2228 uploadResInstancesMap.put("zxjTestImportServiceAb", uploadComponentInstanceInfo);
2229 return uploadResInstancesMap;
2232 protected Map<String, List<UploadPropInfo>> getUploadPropInfoProperties() {
2233 Map<String, List<UploadPropInfo>> properties = new HashMap<>();
2234 List<UploadPropInfo> uploadPropInfoList = new ArrayList<>();
2235 UploadPropInfo uploadPropInfo = new UploadPropInfo();
2236 List<GetInputValueDataDefinition> get_input = new ArrayList<>();
2237 GetInputValueDataDefinition getInputValueDataDefinition = new GetInputValueDataDefinition();
2238 getInputValueDataDefinition.setPropName("getInputValueDataDefinitionName");
2239 get_input.add(getInputValueDataDefinition);
2240 uploadPropInfo.setName("propertiesName");
2241 uploadPropInfo.setValue("value");
2242 uploadPropInfo.setGet_input(get_input);
2243 uploadPropInfoList.add(uploadPropInfo);
2244 properties.put("uploadComponentInstanceInfo", uploadPropInfoList);
2248 protected List<PropertyDefinition> getProperties() {
2249 List<PropertyDefinition> properties = new ArrayList<>();
2250 PropertyDefinition propertyDefinition = new PropertyDefinition();
2251 propertyDefinition.setName("propertiesName");
2252 properties.add(propertyDefinition);
2256 protected Map<String, List<UploadReqInfo>> gerRequirements() {
2257 Map<String, List<UploadReqInfo>> uploadReqInfoMap = new HashMap<>();
2258 String requirementName = "tosca.capabilities.Node";
2259 List<UploadReqInfo> uploadReqInfoList = new ArrayList<>();
2260 UploadReqInfo uploadReqInfo = new UploadReqInfo();
2261 uploadReqInfo.setCapabilityName("tosca.capabilities.Node");
2262 uploadReqInfoMap.put(requirementName, uploadReqInfoList);
2263 return uploadReqInfoMap;
2266 protected ComponentParametersView createComponentParametersView() {
2267 ComponentParametersView parametersView = new ComponentParametersView();
2268 parametersView.disableAll();
2269 parametersView.setIgnoreComponentInstances(false);
2270 parametersView.setIgnoreComponentInstancesProperties(false);
2271 parametersView.setIgnoreCapabilities(false);
2272 parametersView.setIgnoreRequirements(false);
2273 parametersView.setIgnoreGroups(false);
2274 return parametersView;
2277 protected Map<String, byte[]> crateCsarFromPayload() {
2278 String payloadName = "valid_vf.csar";
2279 String rootPath = System.getProperty("user.dir");
2283 Map<String, byte[]> returnValue = null;
2285 path = Paths.get(rootPath + "/src/test/resources/valid_vf.csar");
2286 data = Files.readAllBytes(path);
2287 payloadData = Base64.encodeBase64String(data);
2288 UploadResourceInfo resourceInfo = new UploadResourceInfo();
2289 resourceInfo.setPayloadName(payloadName);
2290 resourceInfo.setPayloadData(payloadData);
2291 Method privateMethod = null;
2292 privateMethod = AbstractValidationsServlet.class.getDeclaredMethod("getCsarFromPayload", UploadResourceInfo.class);
2293 privateMethod.setAccessible(true);
2294 returnValue = (Map<String, byte[]>) privateMethod.invoke(servlet, resourceInfo);
2295 } catch (IOException | NoSuchMethodException | SecurityException | IllegalAccessException | IllegalArgumentException |
2296 InvocationTargetException e) {
2297 e.printStackTrace();
2302 protected List<ComponentInstance> creatComponentInstances() {
2303 List<ComponentInstance> componentInstances = new ArrayList<>();
2304 ComponentInstance componentInstance = new ComponentInstance();
2305 Map<String, List<CapabilityDefinition>> capabilities = new HashMap<>();
2306 List<CapabilityDefinition> capabilityDefinitionList = new ArrayList<>();
2307 CapabilityDefinition capabilityDefinition = new CapabilityDefinition();
2308 capabilityDefinition.setName("mme_ipu_vdu.feature");
2309 capabilityDefinitionList.add(capabilityDefinition);
2310 capabilities.put("tosca.capabilities.Node", capabilityDefinitionList);
2312 Map<String, List<RequirementDefinition>> requirements = new HashMap<>();
2313 List<RequirementDefinition> requirementDefinitionList = new ArrayList<>();
2314 RequirementDefinition requirementDefinition = new RequirementDefinition();
2315 requirementDefinition.setName("zxjtestimportserviceab0.mme_ipu_vdu.dependency.test");
2316 requirementDefinitionList.add(requirementDefinition);
2317 requirements.put("tosca.capabilities.Node", requirementDefinitionList);
2318 componentInstance.setRequirements(requirements);
2319 componentInstance.setCapabilities(capabilities);
2320 componentInstance.setUniqueId("uniqueId");
2321 componentInstance.setComponentUid("componentUid");
2322 componentInstance.setName("zxjTestImportServiceAb");
2323 componentInstances.add(componentInstance);
2324 return componentInstances;
2327 protected CreateServiceFromYamlParameter getCsfyp() {
2328 CreateServiceFromYamlParameter csfyp = new CreateServiceFromYamlParameter();
2329 List<ArtifactDefinition> createdArtifacts = new ArrayList<>();
2330 Map<String, NodeTypeInfo> nodeTypesInfo = new HashedMap();
2332 csfyp.setNodeName("org.openecomp.resource.derivedFrom.zxjTestImportServiceAb.test");
2333 csfyp.setTopologyTemplateYaml(getMainTemplateContent("service_import_template.yml"));
2334 csfyp.setCreatedArtifacts(createdArtifacts);
2335 csfyp.setInTransaction(true);
2336 csfyp.setShouldLock(true);
2337 csfyp.setCsarInfo(getCsarInfo());
2338 csfyp.setParsedToscaYamlInfo(getParsedToscaYamlInfo());
2339 csfyp.setNodeTypesInfo(nodeTypesInfo);
2340 csfyp.setYamlName("group.yml");
2344 protected ParsedToscaYamlInfo getParsedToscaYamlInfo() {
2345 ParsedToscaYamlInfo parsedToscaYamlInfo = new ParsedToscaYamlInfo();
2346 Map<String, InputDefinition> inputs = new HashMap<>();
2347 Map<String, UploadComponentInstanceInfo> instances = new HashMap<>();
2348 UploadComponentInstanceInfo uploadComponentInstanceInfo = new UploadComponentInstanceInfo();
2349 uploadComponentInstanceInfo.setName("uploadComponentInstanceInfo");
2350 instances.put("instances", uploadComponentInstanceInfo);
2351 Map<String, GroupDefinition> groups = new HashMap<>();
2352 Map<String, PolicyDefinition> policies = new HashMap<>();
2353 parsedToscaYamlInfo.setGroups(groups);
2354 parsedToscaYamlInfo.setInputs(inputs);
2355 parsedToscaYamlInfo.setInstances(instances);
2356 parsedToscaYamlInfo.setPolicies(policies);
2357 return parsedToscaYamlInfo;
2360 String getMainTemplateContent(String fileName) {
2361 String mainTemplateContent = null;
2363 mainTemplateContent = loadFileNameToJsonString(fileName);
2364 } catch (IOException e) {
2365 e.printStackTrace();
2367 return mainTemplateContent;
2370 protected CsarInfo getCsarInfo() {
2371 String csarUuid = "0010";
2372 User user = new User();
2373 Map<String, byte[]> csar = crateCsarFromPayload();
2374 String vfReousrceName = "resouceName";
2375 String mainTemplateName = "mainTemplateName";
2376 String mainTemplateContent = getMainTemplateContent("service_import_template.yml");
2377 CsarInfo csarInfo = new CsarInfo(user, csarUuid, csar, vfReousrceName, mainTemplateName, mainTemplateContent, false);
2381 protected CsarUtils.NonMetaArtifactInfo getNonMetaArtifactInfo() {
2382 String artifactName = "artifactName", path = "/src/test/resources/valid_vf.csar", artifactType = "AAI_SERVICE_MODEL";
2383 ArtifactGroupTypeEnum artifactGroupType = ArtifactGroupTypeEnum.TOSCA;
2384 String rootPath = System.getProperty("user.dir");
2386 byte[] data = new byte[0];
2387 path2 = Paths.get(rootPath + "/src/test/resources/valid_vf.csar");
2389 data = Files.readAllBytes(path2);
2390 } catch (IOException e) {
2391 e.printStackTrace();
2393 String artifactUniqueId = "artifactUniqueId";
2394 boolean isFromCsar = true;
2395 CsarUtils.NonMetaArtifactInfo nonMetaArtifactInfo = new CsarUtils.NonMetaArtifactInfo(artifactName,
2396 path, artifactType, artifactGroupType, data, artifactUniqueId, isFromCsar);
2397 return nonMetaArtifactInfo;
2401 protected void assertComponentException(ComponentException e, ActionStatus expectedStatus, String... variables) {
2402 ResponseFormat actualResponse = e.getResponseFormat() != null ?
2403 e.getResponseFormat() : componentsUtils.getResponseFormat(e.getActionStatus(), e.getParams());
2404 assertParseResponse(actualResponse, expectedStatus, variables);
2407 private void assertParseResponse(ResponseFormat actualResponse, ActionStatus expectedStatus, String... variables) {
2408 ResponseFormat expectedResponse = responseManager.getResponseFormat(expectedStatus, variables);
2409 assertThat(expectedResponse.getStatus()).isEqualTo(actualResponse.getStatus());
2410 assertThat(expectedResponse.getFormattedMessage()).isEqualTo(actualResponse.getFormattedMessage());