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.fail;
23 import static org.mockito.ArgumentMatchers.anyString;
24 import static org.mockito.Mockito.any;
25 import static org.mockito.Mockito.anyBoolean;
26 import static org.mockito.Mockito.anyList;
27 import static org.mockito.Mockito.anyMap;
28 import static org.mockito.Mockito.contains;
29 import static org.mockito.Mockito.doNothing;
30 import static org.mockito.Mockito.eq;
31 import static org.mockito.Mockito.isNull;
32 import static org.mockito.Mockito.matches;
33 import static org.mockito.Mockito.mock;
34 import static org.mockito.Mockito.verify;
35 import static org.mockito.Mockito.when;
36 import static org.openecomp.sdc.be.components.impl.ServiceImportBusinessLogic.CREATE_RESOURCE;
38 import fj.data.Either;
40 import java.io.IOException;
41 import java.lang.reflect.InvocationTargetException;
42 import java.lang.reflect.Method;
43 import java.net.URISyntaxException;
44 import java.nio.file.FileSystems;
45 import java.nio.file.Files;
46 import java.nio.file.Path;
47 import java.nio.file.Paths;
48 import java.util.ArrayList;
49 import java.util.Collections;
50 import java.util.EnumMap;
51 import java.util.HashMap;
52 import java.util.List;
54 import java.util.Optional;
56 import org.apache.commons.codec.binary.Base64;
57 import org.apache.commons.collections.map.HashedMap;
58 import org.apache.commons.lang3.tuple.ImmutablePair;
59 import org.json.simple.JSONObject;
60 import org.junit.jupiter.api.Assertions;
61 import org.junit.jupiter.api.BeforeEach;
62 import org.junit.jupiter.api.Test;
63 import org.mockito.ArgumentCaptor;
64 import org.mockito.InjectMocks;
65 import org.mockito.MockitoAnnotations;
66 import org.openecomp.sdc.be.components.csar.CsarInfo;
67 import org.openecomp.sdc.be.components.csar.ServiceCsarInfo;
68 import org.openecomp.sdc.be.components.impl.artifact.ArtifactOperationInfo;
69 import org.openecomp.sdc.be.components.impl.exceptions.ComponentException;
70 import org.openecomp.sdc.be.components.impl.utils.CreateServiceFromYamlParameter;
71 import org.openecomp.sdc.be.dao.api.ActionStatus;
72 import org.openecomp.sdc.be.dao.janusgraph.JanusGraphOperationStatus;
73 import org.openecomp.sdc.be.datatypes.components.ResourceMetadataDataDefinition;
74 import org.openecomp.sdc.be.datatypes.elements.GetInputValueDataDefinition;
75 import org.openecomp.sdc.be.datatypes.enums.ComponentTypeEnum;
76 import org.openecomp.sdc.be.datatypes.enums.NodeTypeEnum;
77 import org.openecomp.sdc.be.datatypes.enums.ResourceTypeEnum;
78 import org.openecomp.sdc.be.datatypes.tosca.ToscaGetFunctionType;
79 import org.openecomp.sdc.be.externalapi.servlet.ArtifactExternalServlet;
80 import org.openecomp.sdc.be.impl.ServletUtils;
81 import org.openecomp.sdc.be.info.NodeTypeInfoToUpdateArtifacts;
82 import org.openecomp.sdc.be.model.ArtifactDefinition;
83 import org.openecomp.sdc.be.model.AttributeDefinition;
84 import org.openecomp.sdc.be.model.CapabilityDefinition;
85 import org.openecomp.sdc.be.model.Component;
86 import org.openecomp.sdc.be.model.ComponentInstance;
87 import org.openecomp.sdc.be.model.ComponentInstanceInput;
88 import org.openecomp.sdc.be.model.ComponentInstanceProperty;
89 import org.openecomp.sdc.be.model.ComponentMetadataDefinition;
90 import org.openecomp.sdc.be.model.ComponentParametersView;
91 import org.openecomp.sdc.be.model.DataTypeDefinition;
92 import org.openecomp.sdc.be.model.GroupDefinition;
93 import org.openecomp.sdc.be.model.IPropertyInputCommon;
94 import org.openecomp.sdc.be.model.InputDefinition;
95 import org.openecomp.sdc.be.model.InterfaceDefinition;
96 import org.openecomp.sdc.be.model.LifecycleStateEnum;
97 import org.openecomp.sdc.be.model.NodeTypeInfo;
98 import org.openecomp.sdc.be.model.Operation;
99 import org.openecomp.sdc.be.model.ParsedToscaYamlInfo;
100 import org.openecomp.sdc.be.model.PolicyDefinition;
101 import org.openecomp.sdc.be.model.PropertyDefinition;
102 import org.openecomp.sdc.be.model.RequirementCapabilityRelDef;
103 import org.openecomp.sdc.be.model.RequirementDefinition;
104 import org.openecomp.sdc.be.model.Resource;
105 import org.openecomp.sdc.be.model.Service;
106 import org.openecomp.sdc.be.model.UploadComponentInstanceInfo;
107 import org.openecomp.sdc.be.model.UploadNodeFilterInfo;
108 import org.openecomp.sdc.be.model.UploadPropInfo;
109 import org.openecomp.sdc.be.model.UploadReqInfo;
110 import org.openecomp.sdc.be.model.UploadResourceInfo;
111 import org.openecomp.sdc.be.model.User;
112 import org.openecomp.sdc.be.model.cache.ApplicationDataTypeCache;
113 import org.openecomp.sdc.be.model.operations.api.ICapabilityTypeOperation;
114 import org.openecomp.sdc.be.model.operations.api.StorageOperationStatus;
115 import org.openecomp.sdc.be.resources.data.auditing.AuditingActionEnum;
116 import org.openecomp.sdc.be.servlets.AbstractValidationsServlet;
117 import org.openecomp.sdc.be.tosca.CsarUtils;
118 import org.openecomp.sdc.be.tosca.ToscaExportHandler;
119 import org.openecomp.sdc.common.api.ArtifactGroupTypeEnum;
120 import org.openecomp.sdc.common.api.ArtifactTypeEnum;
121 import org.openecomp.sdc.common.api.Constants;
122 import org.openecomp.sdc.common.zip.ZipUtils;
123 import org.openecomp.sdc.common.zip.exception.ZipException;
124 import org.openecomp.sdc.exception.ResponseFormat;
125 import org.yaml.snakeyaml.Yaml;
127 class ServiceImportBusinessLogicTest extends ServiceImportBussinessLogicBaseTestSetup {
129 private static final String DEFAULT_ICON = "defaulticon";
131 private final ArtifactDefinition artifactDefinition = mock(ArtifactDefinition.class);
132 private final ResourceImportManager resourceImportManager = mock(ResourceImportManager.class);
133 private final ServletUtils servletUtils = mock(ServletUtils.class);
134 private final AbstractValidationsServlet servlet = new ArtifactExternalServlet(userBusinessLogic,
135 componentInstanceBusinessLogic, componentsUtils, servletUtils, resourceImportManager, artifactsBusinessLogic);
136 private final ApplicationDataTypeCache applicationDataTypeCache = mock(ApplicationDataTypeCache.class);
137 private final DataTypeBusinessLogic dataTypeBusinessLogic = mock(DataTypeBusinessLogic.class);
140 private ServiceImportBusinessLogic sIBL;
142 public static String loadFileNameToJsonString(String fileName) throws IOException {
143 String sourceDir = "src/test/resources/normativeTypes";
144 return loadFileNameToJsonString(sourceDir, fileName);
147 private static String loadFileNameToJsonString(String sourceDir, String fileName) throws IOException {
148 java.nio.file.Path filePath = FileSystems.getDefault().getPath(sourceDir, fileName);
149 byte[] fileContent = Files.readAllBytes(filePath);
150 return new String(fileContent);
155 MockitoAnnotations.openMocks(this);
156 when(artifactDefinition.getMandatory()).thenReturn(true);
157 when(artifactDefinition.getArtifactName()).thenReturn("creatorFullName");
158 when(artifactDefinition.getArtifactType()).thenReturn("TOSCA_CSAR");
162 void testCreateService_OK() {
163 Service oldService = createServiceObject(true);
164 oldService.setComponentInstances(creatComponentInstances());
165 oldService.setComponentInstancesProperties(
166 Collections.singletonMap(COMPONENT_ID, Collections.singletonList(new ComponentInstanceProperty())));
167 String payloadName = "valid_vf";
168 Map<String, byte[]> payload = crateCsarFromPayload();
169 Service newService = createServiceObject(true);
170 newService.setComponentInstances(creatComponentInstances());
171 ComponentInstanceProperty componentInstanceProperty = new ComponentInstanceProperty();
172 componentInstanceProperty.setName("propertiesName");
173 final JSONObject jsonObject = new JSONObject();
174 jsonObject.put(ToscaGetFunctionType.GET_INPUT.getFunctionName(), "zxjTestImportServiceAb_propertiesName");
175 componentInstanceProperty.setValue(jsonObject.toJSONString());
177 Map<String, ArtifactDefinition> toscaArtifacts = new HashMap<>();
178 ArtifactDefinition artifactDef = new ArtifactDefinition();
179 String artifactUniqueId = "test_extcp_resource.assettoscatemplate";
180 artifactDef.setUniqueId(artifactUniqueId);
181 toscaArtifacts.put(ToscaExportHandler.ASSET_TOSCA_TEMPLATE, artifactDef);
182 Resource resource = new Resource();
183 String resourceUniqueId = "extcp_resource";
184 resource.setUniqueId(resourceUniqueId);
185 resource.setToscaArtifacts(toscaArtifacts);
186 ImmutablePair<String, byte[]> resourceTemplate = getNodeType();
187 String updatedNodeType = "org.openecomp.resource.cp.extCP";
189 newService.setComponentInstancesProperties(
190 Collections.singletonMap(COMPONENT_ID + "." + "zxjTestImportServiceAb", Collections.singletonList(componentInstanceProperty)));
191 newService.setProperties(getProperties());
193 when(serviceBusinessLogic.validateServiceBeforeCreate(eq(newService), any(User.class), any(AuditingActionEnum.class)))
194 .thenReturn(Either.left(newService));
195 when(toscaOperationFacade.validateCsarUuidUniqueness(anyString())).thenReturn(StorageOperationStatus.OK);
196 ServiceCsarInfo csarInfo = getCsarInfo();
197 when(csarBusinessLogic.getCsarInfo(any(Service.class), any(), any(User.class), any(Map.class), anyString())).thenReturn(csarInfo);
198 when(serviceImportParseLogic.findNodeTypesArtifactsToHandle(any(Map.class), any(CsarInfo.class), any(Service.class)))
199 .thenReturn(Either.left(new HashMap<String, EnumMap<ArtifactsBusinessLogic.ArtifactOperationEnum, List<ArtifactDefinition>>>()));
200 when(csarBusinessLogic.getParsedToscaYamlInfo(anyString(), anyString(), any(), any(CsarInfo.class), any(), any(Service.class)))
201 .thenReturn(getParsedToscaYamlInfo());
202 when(serviceBusinessLogic.lockComponentByName(newService.getSystemName(), oldService, CREATE_RESOURCE)).thenReturn(Either.left(true));
203 when(toscaOperationFacade.getLatestResourceByToscaResourceName(anyString())).thenReturn(Either.left(createOldResource()));
204 when(serviceImportParseLogic.createServiceTransaction(oldService, csarInfo.getModifier(), false)).thenReturn(newService);
205 when(serviceImportParseLogic.createInputsOnService(eq(oldService), anyMap())).thenReturn(newService);
206 Assertions.assertDoesNotThrow(() -> {
207 when(serviceImportParseLogic.createSubstitutionFilterOnService(eq(oldService), any())).thenReturn(newService);
209 when(serviceImportParseLogic.getNodeTypesFromTemplate(anyMap())).thenReturn(getNodeTypes());
210 when(serviceImportParseLogic.createNodeTypeResourceFromYaml(anyString(), any(Map.Entry.class), any(User.class), anyMap(), any(Service.class),
211 anyBoolean(), any(), anyList(), anyBoolean(), any(CsarInfo.class), anyBoolean())).thenReturn(
212 new ImmutablePair<>(new Resource(), ActionStatus.OK));
213 when(serviceImportParseLogic.getComponentWithInstancesFilter()).thenReturn(new ComponentParametersView());
214 when(toscaOperationFacade.getToscaElement(anyString(), any(ComponentParametersView.class))).thenReturn(Either.left(newService));
215 when(serviceImportParseLogic.getComponentFilterAfterCreateRelations()).thenReturn(new ComponentParametersView());
216 when(toscaOperationFacade.getToscaElement(anyString(), any(ComponentParametersView.class))).thenReturn(Either.left(newService));
217 when(serviceImportParseLogic.findAvailableRequirement(anyString(), anyString(), any(UploadComponentInstanceInfo.class),
218 any(ComponentInstance.class), anyString())).thenReturn(Either.left(new RequirementDefinition()));
219 when(serviceImportParseLogic.findAvailableCapabilityByTypeOrName(any(RequirementDefinition.class), any(ComponentInstance.class),
220 any(UploadReqInfo.class))).thenReturn(new CapabilityDefinition());
221 when(componentsUtils.getResponseFormat(eq(ActionStatus.OK), anyString())).thenReturn(new ResponseFormat(200));
222 when(toscaOperationFacade.getToscaElement(anyString())).thenReturn(Either.left(newService));
223 doNothing().when(compositionBusinessLogic).setPositionsForComponentInstances(any(Service.class), anyString());
224 when(groupBusinessLogic.validateUpdateVfGroupNames(anyMap(), anyString())).thenReturn(Either.left(new HashMap<>()));
225 when(csarArtifactsAndGroupsBusinessLogic.deleteVFModules(any(Service.class), any(CsarInfo.class), anyBoolean(), anyBoolean()))
226 .thenReturn(Either.left(newService));
227 when(serviceImportParseLogic.getServiceWithGroups(anyString())).thenReturn(newService);
228 when(mockJanusGraphDao.commit()).thenReturn(JanusGraphOperationStatus.OK);
229 when(graphLockOperation.unlockComponentByName(anyString(), anyString(), any(NodeTypeEnum.class))).thenReturn(StorageOperationStatus.OK);
230 when(serviceImportParseLogic.createOutputsOnService(any(Service.class), any(), anyString())).thenReturn(newService);
231 when(toscaOperationFacade.updateInputsToComponent(anyList(), eq(newService.getUniqueId()))).thenReturn(Either.left(new ArrayList<>()));
233 when(applicationDataTypeCache.get(any(), contains("tosca.datatypes.test_"))).thenReturn(Either.right(JanusGraphOperationStatus.NOT_FOUND));
234 DataTypeDefinition typeToBeUpdated = new DataTypeDefinition();
235 List<PropertyDefinition> properties = new ArrayList<>();
236 PropertyDefinition nameProperty = new PropertyDefinition();
237 nameProperty.setName("name");
238 nameProperty.setType("string");
239 properties.add(nameProperty);
240 PropertyDefinition versionProperty = new PropertyDefinition();
241 versionProperty.setName("version");
242 versionProperty.setType("string");
243 properties.add(versionProperty);
244 typeToBeUpdated.setProperties(properties);
245 when(applicationDataTypeCache.get(any(), eq("onap.datatypes.ToscaConceptIdentifier.datatype"))).thenReturn(Either.left(typeToBeUpdated));
246 when(applicationDataTypeCache.get(any(), matches("^((?!(tosca.datatypes.test_|onap.datatypes.ToscaConceptIdentifier)).)*$"))).thenReturn(Either.left(new DataTypeDefinition()));
250 when(toscaOperationFacade.getLatestByToscaResourceName(contains("org.openecomp.resource"), isNull()))
251 .thenReturn(Either.right(StorageOperationStatus.NOT_FOUND));
252 when(toscaOperationFacade.getLatestByToscaResourceName(contains("tosca.nodes."), isNull()))
253 .thenReturn(Either.right(StorageOperationStatus.NOT_FOUND));
254 when(toscaOperationFacade.getLatestByToscaResourceName(contains(updatedNodeType), isNull())).thenReturn(Either.left(resource));
255 when(artifactsBusinessLogic.handleDownloadRequestById(resourceUniqueId, artifactUniqueId, user.getUserId(), ComponentTypeEnum.RESOURCE, null, null))
256 .thenReturn(resourceTemplate);
257 when(toscaOperationFacade.updatePropertyOfComponent(eq(oldService), any(PropertyDefinition.class))).thenReturn(Either.left(null));
258 when(toscaOperationFacade.updateComponentInstancePropsToComponent(anyMap(), anyString())).thenReturn(Either.left(null));
260 Service result = sIBL.createService(oldService, AuditingActionEnum.CREATE_RESOURCE, user, payload, payloadName);
261 assertNotNull(result);
262 assertNotNull(result.getComponentInstances());
263 assertEquals(1, result.getComponentInstances().size());
264 assertNotNull(result.getComponentInstances().get(0));
265 assertNotNull(result.getComponentInstances().get(0).getCapabilities());
266 assertEquals(1, result.getComponentInstances().get(0).getCapabilities().size());
267 assertNotNull(result.getComponentInstances().get(0).getRequirements());
268 assertEquals(1, result.getComponentInstances().get(0).getRequirements().size());
269 assertNotNull(result.getCategories());
270 assertEquals(1, result.getCategories().size());
272 ArgumentCaptor<String> yaml = ArgumentCaptor.forClass(String.class);
273 verify(dataTypeBusinessLogic).createDataTypeFromYaml(yaml.capture(), isNull(), anyBoolean());
274 Map<String, Object> yamlMap = new Yaml().load(yaml.getValue());
275 assertEquals(3, yamlMap.size());
276 assertNotNull(yamlMap.get("tosca.datatypes.test_a"));
277 assertNotNull(yamlMap.get("tosca.datatypes.test_b"));
278 assertNotNull(yamlMap.get("onap.datatypes.ToscaConceptIdentifier"));
280 ArgumentCaptor<Map<String, Object>> nodeTypes = ArgumentCaptor.forClass(Map.class);
281 verify(resourceImportManager).importAllNormativeResource(nodeTypes.capture(), any(), any(), any(),
282 anyBoolean(), anyBoolean());
283 Map<String, Object> nodeTypesMap = nodeTypes.getValue();
284 Map<String, Object> newUpdatedNodeType = (Map<String, Object>) nodeTypesMap.get(updatedNodeType);
285 assertEquals(8, ((Map<String, Object>) newUpdatedNodeType.get("properties")).size());
289 void testCreateService_Fail_NotFoundNodeTypesArtifacts() {
290 Service oldService = createServiceObject(true);
291 String payloadName = "valid_vf";
292 Map<String, byte[]> payload = crateCsarFromPayload();
293 Service newService = createServiceObject(true);
295 when(serviceBusinessLogic.validateServiceBeforeCreate(any(Service.class), any(User.class), any(AuditingActionEnum.class)))
296 .thenReturn(Either.left(newService));
297 when(toscaOperationFacade.validateCsarUuidUniqueness(anyString())).thenReturn(StorageOperationStatus.OK);
298 when(csarBusinessLogic.getCsarInfo(any(Service.class), any(), any(User.class), any(Map.class), anyString())).thenReturn(getCsarInfo());
299 when(serviceImportParseLogic.findNodeTypesArtifactsToHandle(any(Map.class), any(CsarInfo.class), any(Service.class)))
300 .thenReturn(Either.right(ActionStatus.GENERAL_ERROR));
301 when(csarBusinessLogic.getParsedToscaYamlInfo(anyString(), anyString(), any(), any(CsarInfo.class), anyString(),
302 any(Service.class))).thenReturn(getParsedToscaYamlInfo());
304 Assertions.assertThrows(ComponentException.class,
305 () -> sIBL.createService(oldService, AuditingActionEnum.CREATE_RESOURCE, user, payload, payloadName));
309 void testCreateServiceFromCsar() {
310 Service oldService = createServiceObject(true);
311 String csarUUID = "valid_vf";
312 Map<String, byte[]> payload = crateCsarFromPayload();
313 ServiceCsarInfo csarInfo = getCsarInfo();
314 Map<String, EnumMap<ArtifactsBusinessLogic.ArtifactOperationEnum, List<ArtifactDefinition>>> map =
317 when(csarBusinessLogic.getCsarInfo(any(Service.class), any(), any(User.class),
318 any(Map.class), anyString())).thenReturn(csarInfo);
319 when(serviceImportParseLogic.findNodeTypesArtifactsToHandle(any(Map.class), any(CsarInfo.class),
320 any(Service.class))).thenReturn(Either.left(map));
321 Assertions.assertThrows(ComponentException.class, () -> sIBL.createServiceFromCsar(oldService,
322 user, payload, csarUUID));
326 void testCreateServiceFromYaml() {
327 Service oldService = createServiceObject(true);
328 Resource resource = createOldResource();
329 String topologyTemplateYaml = getMainTemplateContent("service_import_template.yml");
330 String yamlName = "group.yml";
331 ServiceCsarInfo csarInfo = getCsarInfo();
332 Map<String, EnumMap<ArtifactsBusinessLogic.ArtifactOperationEnum, List<ArtifactDefinition>>> nodeTypesArtifactsToCreate = new HashMap<>();
333 String nodeName = "org.openecomp.resource.derivedFrom.zxjTestImportServiceAb.test";
335 Map<String, NodeTypeInfo> nodeTypesInfo = getNodeTypesInfo();
336 Map<String, Object> map = new HashMap<>();
337 map.put("tosca_definitions_version", "123");
338 nodeTypesInfo.get(nodeName).setMappedToscaTemplate(map);
339 ParsedToscaYamlInfo parsedToscaYamlInfo = getParsedToscaYamlInfo();
340 when(toscaOperationFacade.getLatestResourceByToscaResourceName(anyString())).thenReturn(Either.left(resource));
341 when(csarBusinessLogic.getParsedToscaYamlInfo(anyString(), anyString(), any(Map.class),
342 eq(csarInfo), anyString(), any(Component.class))).thenReturn(parsedToscaYamlInfo);
343 when(serviceBusinessLogic.lockComponentByName(anyString(), any(Service.class), anyString()))
344 .thenReturn(Either.left(true));
346 Assertions.assertThrows(ComponentException.class, () -> sIBL.createServiceFromYaml(oldService,
347 topologyTemplateYaml, yamlName, nodeTypesInfo, csarInfo,
348 nodeTypesArtifactsToCreate, false, true, nodeName, user.getUserId()));
352 void testCreateServiceAndRIsFromYaml() {
353 String nodeName = "org.openecomp.resource.derivedFrom.zxjTestImportServiceAb.test";
354 Service oldService = createServiceObject(true);
355 Resource resource = createOldResource();
356 Map<String, EnumMap<ArtifactsBusinessLogic.ArtifactOperationEnum, List<ArtifactDefinition>>> nodeTypesArtifactsToCreate = new HashMap<>();
357 CreateServiceFromYamlParameter csfyp = getCsfyp();
358 Map<String, NodeTypeInfo> nodeTypesInfo = getNodeTypesInfo();
359 Map<String, Object> map = new HashMap<>();
360 map.put("tosca_definitions_version", "123");
361 nodeTypesInfo.get(nodeName).setMappedToscaTemplate(map);
362 ParsedToscaYamlInfo parsedToscaYamlInfo = getParsedToscaYamlInfo();
363 csfyp.setNodeTypesInfo(nodeTypesInfo);
364 csfyp.setParsedToscaYamlInfo(parsedToscaYamlInfo);
365 when(toscaOperationFacade.getLatestResourceByToscaResourceName(anyString())).thenReturn(Either.left(resource));
366 Assertions.assertThrows(ComponentException.class, () -> sIBL.createServiceAndRIsFromYaml(oldService,
367 false, nodeTypesArtifactsToCreate, false, true, csfyp, user.getUserId()));
371 void testCreateServiceAndRIsFromYamlShoudLook() {
372 String nodeName = "org.openecomp.resource.derivedFrom.zxjTestImportServiceAb.test";
373 Service oldService = createServiceObject(true);
374 Resource resource = createOldResource();
375 Map<String, EnumMap<ArtifactsBusinessLogic.ArtifactOperationEnum, List<ArtifactDefinition>>> nodeTypesArtifactsToCreate = new HashMap<>();
376 CreateServiceFromYamlParameter csfyp = getCsfyp();
377 Map<String, NodeTypeInfo> nodeTypesInfo = getNodeTypesInfo();
378 Map<String, Object> map = new HashMap<>();
379 map.put("tosca_definitions_version", "123");
380 nodeTypesInfo.get(nodeName).setMappedToscaTemplate(map);
381 ParsedToscaYamlInfo parsedToscaYamlInfo = getParsedToscaYamlInfo();
382 csfyp.setNodeTypesInfo(nodeTypesInfo);
383 csfyp.setParsedToscaYamlInfo(parsedToscaYamlInfo);
384 when(toscaOperationFacade.getLatestResourceByToscaResourceName(anyString())).thenReturn(Either.left(resource));
385 Assertions.assertThrows(ComponentException.class, () -> sIBL.createServiceAndRIsFromYaml(oldService,
386 false, nodeTypesArtifactsToCreate, false, true, csfyp, user.getUserId()));
390 void testCreateOrUpdateArtifacts() {
391 ArtifactsBusinessLogic.ArtifactOperationEnum operation = ArtifactsBusinessLogic.ArtifactOperationEnum.UPDATE;
392 List<ArtifactDefinition> createdArtifacts = new ArrayList<>();
393 String yamlFileName = "group.yml";
394 CsarInfo csarInfo = getCsarInfo();
395 Resource preparedResource = createParseResourceObject(false);
396 preparedResource.setResourceType(ResourceTypeEnum.VF);
397 String nodeName = "org.openecomp.resource.derivedFrom.zxjTestImportServiceAb.test";
398 Map<String, EnumMap<ArtifactsBusinessLogic.ArtifactOperationEnum, List<ArtifactDefinition>>> nodeTypesArtifactsToHandle = new HashMap<>();
399 EnumMap<ArtifactsBusinessLogic.ArtifactOperationEnum, List<ArtifactDefinition>> enumListEnumMap =
400 new EnumMap<>(ArtifactsBusinessLogic.ArtifactOperationEnum.class);
401 List<ArtifactDefinition> artifactDefinitions = new ArrayList<>();
402 ArtifactDefinition artifactDefinition = new ArtifactDefinition();
403 artifactDefinition.setArtifactName("artifactName");
404 artifactDefinitions.add(artifactDefinition);
405 enumListEnumMap.put(ArtifactsBusinessLogic.ArtifactOperationEnum.CREATE,
406 artifactDefinitions);
407 nodeTypesArtifactsToHandle.put(nodeName, enumListEnumMap);
408 NodeTypeInfoToUpdateArtifacts nodeTypeInfoToUpdateArtifacts = new NodeTypeInfoToUpdateArtifacts(nodeName, nodeTypesArtifactsToHandle);
409 nodeTypeInfoToUpdateArtifacts.setNodeName(nodeName);
410 nodeTypeInfoToUpdateArtifacts.setNodeTypesArtifactsToHandle(nodeTypesArtifactsToHandle);
412 Assertions.assertNotNull(
413 sIBL.createOrUpdateArtifacts(operation, createdArtifacts, yamlFileName, csarInfo,
414 preparedResource, nodeTypeInfoToUpdateArtifacts, true, true)
419 void testHandleVfCsarArtifacts() {
420 Resource resource = createParseResourceObject(true);
421 Map<String, ArtifactDefinition> deploymentArtifacts = new HashMap<>();
422 ArtifactDefinition artifactDefinition = new ArtifactDefinition();
423 artifactDefinition.setArtifactName(Constants.VENDOR_LICENSE_MODEL);
424 artifactDefinition.setUniqueId("uniqueId");
425 deploymentArtifacts.put("deploymentArtifacts", artifactDefinition);
426 resource.setDeploymentArtifacts(deploymentArtifacts);
427 CsarInfo csarInfo = getCsarInfo();
428 Map<String, byte[]> csar = new HashMap<>();
429 String csarKey = CsarUtils.ARTIFACTS_PATH + "HEAT.meta";
430 byte[] artifactsMetaBytes = "src/test/resources/normativeTypes/valid_vf.csar".getBytes();
431 csar.put(csarKey, artifactsMetaBytes);
432 csarInfo.setCsar(csar);
433 List<ArtifactDefinition> createdArtifacts = new ArrayList<>();
434 ArtifactOperationInfo artifactOperation = new ArtifactOperationInfo(true, true, ArtifactsBusinessLogic.ArtifactOperationEnum.CREATE);
435 when(toscaOperationFacade.getToscaElement(anyString())).thenReturn(Either.left(resource));
436 when(csarArtifactsAndGroupsBusinessLogic
437 .createResourceArtifactsFromCsar(any(CsarInfo.class), any(Resource.class), anyString(), anyString(),
438 anyList())).thenReturn(Either.left(resource));
439 Assertions.assertNotNull(
440 sIBL.handleVfCsarArtifacts(resource,
441 csarInfo, createdArtifacts, artifactOperation, true, true));
445 void testHandleVfCsarArtifactsGetToscaElement() {
446 Resource resource = createParseResourceObject(true);
447 Map<String, ArtifactDefinition> deploymentArtifacts = new HashMap<>();
448 ArtifactDefinition artifactDefinition = new ArtifactDefinition();
449 artifactDefinition.setArtifactName(Constants.VENDOR_LICENSE_MODEL);
450 artifactDefinition.setUniqueId("uniqueId");
451 deploymentArtifacts.put("deploymentArtifacts", artifactDefinition);
452 resource.setDeploymentArtifacts(deploymentArtifacts);
453 CsarInfo csarInfo = getCsarInfo();
454 Map<String, byte[]> csar = new HashMap<>();
455 String csarKey = CsarUtils.ARTIFACTS_PATH + "HEAT.meta";
456 byte[] artifactsMetaBytes = "src/test/resources/normativeTypes/valid_vf.csar".getBytes();
457 csar.put(csarKey, artifactsMetaBytes);
458 csarInfo.setCsar(csar);
459 List<ArtifactDefinition> createdArtifacts = new ArrayList<>();
460 ArtifactOperationInfo artifactOperation = new ArtifactOperationInfo(true, true, ArtifactsBusinessLogic.ArtifactOperationEnum.CREATE);
461 when(toscaOperationFacade.getToscaElement(anyString())).thenReturn(Either.left(resource));
462 when(csarArtifactsAndGroupsBusinessLogic
463 .createResourceArtifactsFromCsar(any(CsarInfo.class), any(Resource.class), anyString(), anyString(),
464 anyList())).thenReturn(Either.left(resource));
465 Assertions.assertNotNull(
466 sIBL.handleVfCsarArtifacts(resource,
467 csarInfo, createdArtifacts, artifactOperation, true, true));
471 void testCreateOrUpdateSingleNonMetaArtifactToComstants() {
472 Resource resource = createParseResourceObject(false);
473 CsarInfo csarInfo = getCsarInfo();
474 ArtifactOperationInfo artifactOperation = new ArtifactOperationInfo(true, true, ArtifactsBusinessLogic.ArtifactOperationEnum.UPDATE);
475 Map<String, ArtifactDefinition> deploymentArtifacts = new HashMap<>();
476 ArtifactDefinition artifactDefinition = new ArtifactDefinition();
477 artifactDefinition.setArtifactName("artifactDefinition");
478 deploymentArtifacts.put("deploymentArtifacts", artifactDefinition);
479 resource.setDeploymentArtifacts(deploymentArtifacts);
480 Assertions.assertNotNull(resource);
481 Assertions.assertNotNull(csarInfo);
482 sIBL.createOrUpdateSingleNonMetaArtifactToComstants(resource, csarInfo, artifactOperation, true, true);
487 void testCreateOrUpdateNonMetaArtifacts() {
488 CsarInfo csarInfo = getCsarInfo();
489 Resource resource = createParseResourceObject(false);
490 List<ArtifactDefinition> createdArtifacts = new ArrayList<>();
491 ArtifactOperationInfo artifactOperation = new ArtifactOperationInfo(true, true, ArtifactsBusinessLogic.ArtifactOperationEnum.UPDATE);
493 Either<Resource, ResponseFormat> result = sIBL.createOrUpdateNonMetaArtifacts(csarInfo, resource,
494 createdArtifacts, true, true, artifactOperation);
495 assertEquals(result.left().value(), resource);
499 void testFindVfCsarArtifactsToHandle() {
500 Resource resource = createParseResourceObject(false);
501 Map<String, ArtifactDefinition> deploymentArtifacts = new HashMap<>();
502 ArtifactDefinition artifactDefinition = new ArtifactDefinition();
503 artifactDefinition.setArtifactName("artifactDefinition");
504 deploymentArtifacts.put("deploymentArtifacts", artifactDefinition);
505 Map<String, ArtifactDefinition> artifacts = new HashMap<>();
506 artifacts.put("artifacts", artifactDefinition);
507 List<GroupDefinition> groups = new ArrayList<>();
508 GroupDefinition groupDefinition = new GroupDefinition();
509 groupDefinition.setUniqueId("groupDefinitionUniqueId");
510 groupDefinition.setName("groupDefinition");
511 groups.add(groupDefinition);
512 resource.setDeploymentArtifacts(deploymentArtifacts);
513 resource.setArtifacts(artifacts);
514 resource.setGroups(groups);
515 List<CsarUtils.NonMetaArtifactInfo> artifactPathAndNameList = new ArrayList<>();
517 Either<EnumMap<ArtifactsBusinessLogic.ArtifactOperationEnum, List<CsarUtils.NonMetaArtifactInfo>>,
518 ResponseFormat> result = sIBL.findVfCsarArtifactsToHandle(resource, artifactPathAndNameList, user);
519 assertNotNull(result.left().value());
523 void testOrganizeVfCsarArtifactsByArtifactOperation() {
524 List<CsarUtils.NonMetaArtifactInfo> artifactPathAndNameList = new ArrayList<>();
525 artifactPathAndNameList.add(getNonMetaArtifactInfo());
526 List<ArtifactDefinition> existingArtifactsToHandle = new ArrayList<>();
527 ArtifactDefinition artifactDefinition = new ArtifactDefinition();
528 artifactDefinition.setArtifactName("artifactName");
529 artifactDefinition.setArtifactType(ArtifactTypeEnum.AAI_SERVICE_MODEL.name());
530 artifactDefinition.setArtifactChecksum("artifactChecksum");
531 existingArtifactsToHandle.add(artifactDefinition);
532 Resource resource = createParseResourceObject(false);
534 Either<EnumMap<ArtifactsBusinessLogic.ArtifactOperationEnum, List<CsarUtils.NonMetaArtifactInfo>>, ResponseFormat>
535 enumMapResponseFormatEither = sIBL.organizeVfCsarArtifactsByArtifactOperation(artifactPathAndNameList,
536 existingArtifactsToHandle,
538 assertNotNull(enumMapResponseFormatEither.left().value());
542 void testOrganizeVfCsarArtifactsByArtifactOperationElse() {
543 List<CsarUtils.NonMetaArtifactInfo> artifactPathAndNameList = new ArrayList<>();
544 artifactPathAndNameList.add(getNonMetaArtifactInfo());
545 List<ArtifactDefinition> existingArtifactsToHandle = new ArrayList<>();
546 ArtifactDefinition artifactDefinition = new ArtifactDefinition();
547 artifactDefinition.setArtifactName("artifactName");
548 artifactDefinition.setArtifactType(ArtifactTypeEnum.AAI_VF_MODEL.name());
549 artifactDefinition.setArtifactChecksum("artifactChecksum");
550 existingArtifactsToHandle.add(artifactDefinition);
551 Resource resource = createParseResourceObject(false);
552 Assertions.assertNotNull(
553 sIBL.organizeVfCsarArtifactsByArtifactOperation(artifactPathAndNameList, existingArtifactsToHandle, resource,
558 void testProcessCsarArtifacts() {
559 CsarInfo csarInfo = getCsarInfo();
560 Resource resource = createParseResourceObject(false);
561 List<ArtifactDefinition> createdArtifacts = new ArrayList<>();
562 Either<Resource, ResponseFormat> resStatus = Either.left(resource);
563 List<CsarUtils.NonMetaArtifactInfo> artifactPathAndNameList = new ArrayList<>();
564 artifactPathAndNameList.add(getNonMetaArtifactInfo());
565 EnumMap<ArtifactsBusinessLogic.ArtifactOperationEnum, List<CsarUtils.NonMetaArtifactInfo>> vfCsarArtifactsToHandle = new
566 EnumMap<>(ArtifactsBusinessLogic.ArtifactOperationEnum.class);
567 vfCsarArtifactsToHandle.put(ArtifactsBusinessLogic.ArtifactOperationEnum.CREATE, artifactPathAndNameList);
568 Assertions.assertNotNull(
569 sIBL.processCsarArtifacts(csarInfo,
570 resource, createdArtifacts, true, true, resStatus, vfCsarArtifactsToHandle));
574 void testCreateOrUpdateSingleNonMetaArtifact() {
575 Resource resource = createParseResourceObject(false);
576 CsarInfo csarInfo = getCsarInfo();
577 Map<String, byte[]> csar = csarInfo.getCsar();
578 String rootPath = System.getProperty("user.dir");
580 byte[] data = new byte[0];
581 path = Paths.get(rootPath + "/src/test/resources/valid_vf.csar");
583 data = Files.readAllBytes(path);
584 } catch (IOException e) {
587 csar.put("valid_vf.csar", data);
588 String artifactPath = "valid_vf.csar", artifactFileName = "", artifactType = "";
589 ArtifactGroupTypeEnum artifactGroupType = ArtifactGroupTypeEnum.TOSCA;
590 String artifactLabel = "", artifactDisplayName = "", artifactDescription = "", artifactId = "artifactId";
591 ArtifactOperationInfo artifactOperation = new ArtifactOperationInfo(true, true, ArtifactsBusinessLogic.ArtifactOperationEnum.UPDATE);
592 List<ArtifactDefinition> createdArtifacts = new ArrayList<>();
593 ArtifactDefinition artifactDefinition = new ArtifactDefinition();
594 artifactDefinition.setArtifactName("artifactName");
595 Either<ArtifactDefinition, Operation> artifactDefinitionOperationEither = Either.left(artifactDefinition);
596 when(csarArtifactsAndGroupsBusinessLogic.createOrUpdateCsarArtifactFromJson(any(Resource.class), any(User.class),
597 any(Map.class), any(ArtifactOperationInfo.class))).thenReturn(Either.left(artifactDefinitionOperationEither));
598 when(artifactsBusinessLogic.handleDelete(anyString(), anyString(), any(User.class), any(Component.class), anyBoolean(), anyBoolean()))
599 .thenReturn(Either.left(artifactDefinition));
600 Assertions.assertNotNull(
601 sIBL.createOrUpdateSingleNonMetaArtifact(resource, csarInfo, artifactPath,
602 artifactFileName, artifactType, artifactGroupType, artifactLabel,
603 artifactDisplayName, artifactDescription, artifactId, artifactOperation,
604 createdArtifacts, true, true, true));
608 void testCreateOrUpdateServiceArtifacts() throws IOException {
609 ArtifactsBusinessLogic.ArtifactOperationEnum operation = ArtifactsBusinessLogic.ArtifactOperationEnum.UPDATE;
610 List<ArtifactDefinition> createdArtifacts = new ArrayList<>();
611 String yamlFileName = "group.yml";
612 CsarInfo csarInfo = getCsarInfo();
613 Map<String, byte[]> csar = new HashMap<>();
614 String csarKey = CsarUtils.ARTIFACTS_PATH + "HEAT.meta";
615 byte[] artifactsMetaBytes = "src/test/resources/normativeTypes/valid_vf.csar".getBytes();
616 csar.put(csarKey, artifactsMetaBytes);
617 csarInfo.setCsar(csar);
618 Service preparedService = createServiceObject(true);
619 Map<String, ArtifactDefinition> deploymentArtifacts = new HashMap<>();
620 ArtifactDefinition artifactDefinition = new ArtifactDefinition();
621 artifactDefinition.setArtifactName("artifactDefinition");
622 deploymentArtifacts.put("deploymentArtifacts", artifactDefinition);
623 preparedService.setDeploymentArtifacts(deploymentArtifacts);
624 String nodeName = "org.openecomp.resource.derivedFrom.zxjTestImportServiceAb.test";
625 Map<String, EnumMap<ArtifactsBusinessLogic.ArtifactOperationEnum, List<ArtifactDefinition>>> nodeTypesArtifactsToHandle = new HashMap<>();
626 NodeTypeInfoToUpdateArtifacts nodeTypeInfoToUpdateArtifacts = new NodeTypeInfoToUpdateArtifacts(nodeName, nodeTypesArtifactsToHandle);
628 when(toscaOperationFacade.getToscaElement(anyString())).thenReturn(Either.left(createServiceObject(true)));
629 when(csarArtifactsAndGroupsBusinessLogic.updateResourceArtifactsFromCsar(any(CsarInfo.class), any(Service.class),
630 anyString(), anyString(), anyList(), anyBoolean(), anyBoolean())).thenReturn(Either.left(preparedService));
631 Assertions.assertNotNull(
632 sIBL.createOrUpdateArtifacts(operation, createdArtifacts, yamlFileName, csarInfo,
633 preparedService, nodeTypeInfoToUpdateArtifacts, true, true));
637 void testHandleVfCsarServiceArtifacts() {
638 Service service = createServiceObject(true);
639 Map<String, ArtifactDefinition> deploymentArtifacts = new HashMap<>();
640 ArtifactDefinition artifactDefinition = new ArtifactDefinition();
641 artifactDefinition.setArtifactName(Constants.VENDOR_LICENSE_MODEL);
642 artifactDefinition.setUniqueId("uniqueId");
643 deploymentArtifacts.put("deploymentArtifacts", artifactDefinition);
644 service.setDeploymentArtifacts(deploymentArtifacts);
645 CsarInfo csarInfo = getCsarInfo();
646 List<ArtifactDefinition> createdArtifacts = new ArrayList<>();
647 ArtifactOperationInfo artifactOperation = new ArtifactOperationInfo(true, true, ArtifactsBusinessLogic.ArtifactOperationEnum.CREATE);
648 when(toscaOperationFacade.getToscaElement(anyString())).thenReturn(Either.left(service));
649 when(csarArtifactsAndGroupsBusinessLogic.deleteVFModules(any(Service.class), any(CsarInfo.class), anyBoolean(), anyBoolean())).thenReturn(
650 Either.left(service));
651 Assertions.assertNotNull(
652 sIBL.handleVfCsarArtifacts(service, csarInfo, createdArtifacts, artifactOperation, true, true));
656 void testHandleVfCsarServiceArtifactsGetToscaElement() throws IOException {
657 Service service = createServiceObject(true);
658 Map<String, ArtifactDefinition> deploymentArtifacts = new HashMap<>();
659 ArtifactDefinition artifactDefinition = new ArtifactDefinition();
660 artifactDefinition.setArtifactName(Constants.VENDOR_LICENSE_MODEL);
661 artifactDefinition.setUniqueId("uniqueId");
662 deploymentArtifacts.put("deploymentArtifacts", artifactDefinition);
663 service.setDeploymentArtifacts(deploymentArtifacts);
664 CsarInfo csarInfo = getCsarInfo();
665 Map<String, byte[]> csar = new HashMap<>();
666 String csarKey = CsarUtils.ARTIFACTS_PATH + "HEAT.meta";
667 byte[] artifactsMetaBytes = "src/test/resources/normativeTypes/valid_vf.csar".getBytes();
668 csar.put(csarKey, artifactsMetaBytes);
669 csarInfo.setCsar(csar);
670 List<ArtifactDefinition> createdArtifacts = new ArrayList<>();
671 ArtifactOperationInfo artifactOperation = new ArtifactOperationInfo(true, true, ArtifactsBusinessLogic.ArtifactOperationEnum.CREATE);
672 when(toscaOperationFacade.getToscaElement(anyString())).thenReturn(Either.left(service));
673 when(csarArtifactsAndGroupsBusinessLogic.createResourceArtifactsFromCsar(any(CsarInfo.class), any(Service.class),
674 anyString(), anyString(), anyList())).thenReturn(Either.left(service));
675 Assertions.assertNotNull(
676 sIBL.handleVfCsarArtifacts(service,
677 csarInfo, createdArtifacts, artifactOperation, true, true));
681 void testCreateOrUpdateNonMetaServiceArtifacts() {
682 CsarInfo csarInfo = getCsarInfo();
683 Service service = createServiceObject(true);
684 List<ArtifactDefinition> createdArtifacts = new ArrayList<>();
685 ArtifactOperationInfo artifactOperation = new ArtifactOperationInfo(true, true, ArtifactsBusinessLogic.ArtifactOperationEnum.CREATE);
687 Either<Service, ResponseFormat> result = sIBL.createOrUpdateNonMetaArtifacts(csarInfo,
688 service, createdArtifacts, true, true, artifactOperation);
689 assertEquals(result.left().value(), service);
693 void testFindServiceCsarArtifactsToHandle() {
694 Service service = createServiceObject(true);
695 Map<String, ArtifactDefinition> deploymentArtifacts = new HashMap<>();
696 ArtifactDefinition artifactDefinition = new ArtifactDefinition();
697 artifactDefinition.setArtifactName("artifactDefinition");
698 deploymentArtifacts.put("deploymentArtifacts", artifactDefinition);
699 Map<String, ArtifactDefinition> artifacts = new HashMap<>();
700 artifacts.put("artifacts", artifactDefinition);
701 List<GroupDefinition> groups = new ArrayList<>();
702 GroupDefinition groupDefinition = new GroupDefinition();
703 groupDefinition.setUniqueId("groupDefinitionUniqueId");
704 groupDefinition.setName("groupDefinition");
705 groups.add(groupDefinition);
706 service.setDeploymentArtifacts(deploymentArtifacts);
707 service.setArtifacts(artifacts);
708 service.setGroups(groups);
709 List<CsarUtils.NonMetaArtifactInfo> artifactPathAndNameList = new ArrayList<>();
711 Either<EnumMap<ArtifactsBusinessLogic.ArtifactOperationEnum, List<CsarUtils.NonMetaArtifactInfo>>,
712 ResponseFormat> result = sIBL.findVfCsarArtifactsToHandle(service, artifactPathAndNameList, user);
713 assertNotNull(result.left().value());
717 void testOrganizeVfCsarArtifactsByServiceArtifactOperation() {
718 List<CsarUtils.NonMetaArtifactInfo> artifactPathAndNameList = new ArrayList<>();
719 artifactPathAndNameList.add(getNonMetaArtifactInfo());
720 List<ArtifactDefinition> existingArtifactsToHandle = new ArrayList<>();
721 ArtifactDefinition artifactDefinition = new ArtifactDefinition();
722 artifactDefinition.setArtifactName("artifactName");
723 artifactDefinition.setArtifactType(ArtifactTypeEnum.AAI_SERVICE_MODEL.name());
724 artifactDefinition.setArtifactChecksum("artifactChecksum");
725 existingArtifactsToHandle.add(artifactDefinition);
726 Service service = createServiceObject(true);
728 Either<EnumMap<ArtifactsBusinessLogic.ArtifactOperationEnum, List<CsarUtils.NonMetaArtifactInfo>>, ResponseFormat>
729 enumMapResponseFormatEither = sIBL.organizeVfCsarArtifactsByArtifactOperation(artifactPathAndNameList,
730 existingArtifactsToHandle, service, user);
731 assertNotNull(enumMapResponseFormatEither.left().value());
735 void testOrganizeVfCsarArtifactsByServiceArtifactOperationElse() {
736 List<CsarUtils.NonMetaArtifactInfo> artifactPathAndNameList = new ArrayList<>();
737 artifactPathAndNameList.add(getNonMetaArtifactInfo());
738 List<ArtifactDefinition> existingArtifactsToHandle = new ArrayList<>();
739 ArtifactDefinition artifactDefinition = new ArtifactDefinition();
740 artifactDefinition.setArtifactName("artifactName");
741 artifactDefinition.setArtifactType(ArtifactTypeEnum.AAI_VF_MODEL.name());
742 artifactDefinition.setArtifactChecksum("artifactChecksum");
743 existingArtifactsToHandle.add(artifactDefinition);
744 Service service = createServiceObject(true);
745 Assertions.assertNotNull(
746 sIBL.organizeVfCsarArtifactsByArtifactOperation(artifactPathAndNameList, existingArtifactsToHandle, service, user));
751 void testProcessServiceCsarArtifacts() {
752 CsarInfo csarInfo = getCsarInfo();
753 Service service = createServiceObject(true);
754 List<ArtifactDefinition> createdArtifacts = new ArrayList<>();
755 Either<Service, ResponseFormat> resStatus = Either.left(service);
756 EnumMap<ArtifactsBusinessLogic.ArtifactOperationEnum, List<CsarUtils.NonMetaArtifactInfo>> vfCsarArtifactsToHandle = new
757 EnumMap<>(ArtifactsBusinessLogic.ArtifactOperationEnum.class);
758 List<CsarUtils.NonMetaArtifactInfo> objects = new ArrayList<>();
759 objects.add(getNonMetaArtifactInfo());
760 vfCsarArtifactsToHandle.put(ArtifactsBusinessLogic.ArtifactOperationEnum.CREATE, objects);
761 Assertions.assertNotNull(
762 sIBL.processCsarArtifacts(csarInfo, service, createdArtifacts, true, true, resStatus, vfCsarArtifactsToHandle));
766 void testGetValidArtifactNames() {
767 CsarInfo csarInfo = getCsarInfo();
768 Map<String, Set<List<String>>> collectedWarningMessages = new HashMap<>();
769 Either<List<CsarUtils.NonMetaArtifactInfo>, String> result = sIBL.getValidArtifactNames(csarInfo,
770 collectedWarningMessages);
771 assertNotNull(result.left().value());
775 void testCreateOrUpdateSingleNonMetaServiceArtifact() {
776 Service service = createServiceObject(true);
777 CsarInfo csarInfo = getCsarInfo();
778 Map<String, byte[]> csar = csarInfo.getCsar();
779 String rootPath = System.getProperty("user.dir");
781 byte[] data = new byte[0];
782 path = Paths.get(rootPath + "/src/test/resources/valid_vf.csar");
784 data = Files.readAllBytes(path);
785 } catch (IOException e) {
788 csar.put("valid_vf.csar", data);
789 csarInfo.setCsar(csar);
790 String artifactPath = "valid_vf.csar", artifactFileName = "", artifactType = "";
791 ArtifactGroupTypeEnum artifactGroupType = ArtifactGroupTypeEnum.TOSCA;
792 String artifactLabel = "", artifactDisplayName = "", artifactDescription = "", artifactId = "artifactId";
793 ArtifactOperationInfo artifactOperation = new ArtifactOperationInfo(true, true, ArtifactsBusinessLogic.ArtifactOperationEnum.UPDATE);
794 List<ArtifactDefinition> createdArtifacts = new ArrayList<>();
795 ArtifactDefinition artifactDefinition = new ArtifactDefinition();
796 artifactDefinition.setArtifactName("artifactName");
797 Either<ArtifactDefinition, Operation> artifactDefinitionOperationEither = Either.left(artifactDefinition);
798 when(csarArtifactsAndGroupsBusinessLogic.createOrUpdateCsarArtifactFromJson(any(Service.class), any(User.class),
799 anyMap(), any(ArtifactOperationInfo.class))).thenReturn(Either.left(artifactDefinitionOperationEither));
800 when(artifactsBusinessLogic.handleDelete(anyString(), anyString(), any(User.class), any(Component.class), anyBoolean(), anyBoolean()))
801 .thenReturn(Either.left(artifactDefinition));
802 Assertions.assertNotNull(
803 sIBL.createOrUpdateSingleNonMetaArtifact(service, csarInfo, artifactPath, artifactFileName,
804 artifactType, artifactGroupType, artifactLabel, artifactDisplayName,
805 artifactDescription, artifactId, artifactOperation, createdArtifacts,
810 void testCreateOrUpdateSingleNonMetaServiceArtifactNull() {
811 Service service = createServiceObject(true);
812 CsarInfo csarInfo = getCsarInfo();
813 String artifactPath = "valid_vf.csar", artifactFileName = "", artifactType = "";
814 ArtifactGroupTypeEnum artifactGroupType = ArtifactGroupTypeEnum.TOSCA;
815 String artifactLabel = "", artifactDisplayName = "", artifactDescription = "", artifactId = "artifactId";
816 ArtifactOperationInfo artifactOperation = new ArtifactOperationInfo(true, true, ArtifactsBusinessLogic.ArtifactOperationEnum.UPDATE);
817 List<ArtifactDefinition> createdArtifacts = new ArrayList<>();
818 when(artifactsBusinessLogic.handleDelete(anyString(), anyString(), any(User.class), any(Component.class), anyBoolean(), anyBoolean()))
819 .thenReturn(Either.left(artifactDefinition));
820 Assertions.assertNotNull(
821 sIBL.createOrUpdateSingleNonMetaArtifact(service, csarInfo, artifactPath, artifactFileName,
822 artifactType, artifactGroupType, artifactLabel, artifactDisplayName,
823 artifactDescription, artifactId, artifactOperation, createdArtifacts,
828 void testCreateGroupsOnResource() {
829 Service service = createServiceObject(true);
830 Map<String, GroupDefinition> groups = new HashMap<>();
831 Assertions.assertNotNull(sIBL.createGroupsOnResource(service, groups));
835 void testCreateGroupsOnResourceNull() {
836 Service service = createServiceObject(true);
837 Map<String, GroupDefinition> groups = new HashMap<>();
838 Assertions.assertNotNull(
839 sIBL.createGroupsOnResource(service, groups));
843 void testUpdateGroupsMembersUsingResource() {
844 Service service = createServiceObject(true);
845 Map<String, GroupDefinition> groups = getGroups();
847 Assertions.assertNotNull(
848 sIBL.updateGroupsMembersUsingResource(groups, service));
852 void testUpdateGroupsMembersUsingResource_left() {
853 Service service = createServiceObject(true);
854 Map<String, GroupDefinition> groups = getGroups();
856 Assertions.assertNotNull(
857 sIBL.updateGroupsMembersUsingResource(groups, service));
861 void testCreateRIAndRelationsFromResourceYaml() throws IOException {
862 String nodeName = "org.openecomp.resource.derivedFrom.zxjTestImportServiceAb.test";
863 String yamlName = "group.yml";
864 Resource resource = createParseResourceObject(true);
865 Map<String, UploadComponentInstanceInfo> uploadComponentInstanceInfoMap = new HashMap<>();
866 String topologyTemplateYaml = getMainTemplateContent();
867 List<ArtifactDefinition> nodeTypesNewCreatedArtifacts = new ArrayList<>();
869 Map<String, NodeTypeInfo> nodeTypesInfo = getNodeTypesInfo();
870 Map<String, Object> map = new HashMap<>();
871 map.put("tosca_definitions_version", "123");
872 nodeTypesInfo.get(nodeName).setMappedToscaTemplate(map);
874 CsarInfo csarInfo = getCsarInfo();
875 Map<String, EnumMap<ArtifactsBusinessLogic.ArtifactOperationEnum, List<ArtifactDefinition>>> nodeTypesArtifactsToCreate = new HashMap<>();
877 Assertions.assertThrows(ComponentException.class, () -> sIBL
878 .createRIAndRelationsFromYaml(yamlName, resource, uploadComponentInstanceInfoMap,
879 topologyTemplateYaml, nodeTypesNewCreatedArtifacts, nodeTypesInfo,
880 csarInfo, nodeTypesArtifactsToCreate, nodeName));
884 void testCreateResourceInstancesRelations() {
885 String yamlName = "group.yml";
886 Resource resource = createParseResourceObject(true);
887 resource.setComponentInstances(creatComponentInstances());
888 resource.setResourceType(ResourceTypeEnum.VF);
889 Map<String, UploadComponentInstanceInfo> uploadResInstancesMap = new HashMap<>();
890 uploadResInstancesMap.put("uploadResInstancesMap", getUploadComponentInstanceInfo());
891 when(serviceImportParseLogic.getResourceAfterCreateRelations(any(Resource.class))).thenReturn(resource);
892 when(toscaOperationFacade.getToscaFullElement(anyString())).thenReturn(Either.left(resource));
893 Assertions.assertThrows(ComponentException.class, () -> sIBL
894 .createResourceInstancesRelations(user, yamlName, resource, uploadResInstancesMap));
898 void testCreateResourceInstancesRelations_Empty() {
899 String yamlName = "group.yml";
900 Resource resource = createParseResourceObject(true);
901 resource.setComponentInstances(creatComponentInstances());
902 resource.setResourceType(ResourceTypeEnum.VF);
903 Map<String, UploadComponentInstanceInfo> uploadResInstancesMap = new HashMap<>();
904 uploadResInstancesMap.put("uploadResInstancesMap", getUploadComponentInstanceInfo());
905 when(serviceImportParseLogic.getResourceAfterCreateRelations(any(Resource.class))).thenReturn(resource);
906 when(toscaOperationFacade.getToscaFullElement(anyString())).thenReturn(Either.left(resource));
907 Assertions.assertThrows(ComponentException.class, () -> sIBL
908 .createResourceInstancesRelations(user, yamlName, resource, uploadResInstancesMap));
912 void testProcessComponentInstance1() {
913 String yamlName = "group.yml";
914 Resource resource = createParseResourceObject(true);
915 Resource originResource = createParseResourceObject(false);
916 originResource.setResourceType(ResourceTypeEnum.VF);
917 List<ComponentInstance> componentInstancesList = creatComponentInstances();
918 Map<String, DataTypeDefinition> dataTypeDefinitionMap = new HashMap<>();
919 DataTypeDefinition dataTypeDefinition = new DataTypeDefinition();
920 dataTypeDefinition.setName("dataTypeDefinitionName");
921 dataTypeDefinitionMap.put("dataTypeDefinitionMap", dataTypeDefinition);
922 Either<Map<String, DataTypeDefinition>, JanusGraphOperationStatus> allDataTypes = Either.left(dataTypeDefinitionMap);
923 Map<String, List<ComponentInstanceProperty>> instProperties = new HashMap<>();
924 Map<ComponentInstance, Map<String, List<CapabilityDefinition>>> instCapabilties = new HashMap<>();
925 Map<ComponentInstance, Map<String, List<RequirementDefinition>>> instRequirements = new HashMap<>();
926 Map<String, Map<String, ArtifactDefinition>> instDeploymentArtifacts = new HashMap<>();
927 Map<String, Map<String, ArtifactDefinition>> instArtifacts = new HashMap<>();
928 Map<String, List<AttributeDefinition>> instAttributes = new HashMap<>();
929 Map<String, UploadNodeFilterInfo> instNodeFilter = new HashMap<>();
930 Map<String, Resource> originCompMap = new HashMap<>();
931 originCompMap.put("componentUid", originResource);
932 Map<String, List<ComponentInstanceInput>> instInputs = new HashMap<>();
933 UploadComponentInstanceInfo uploadComponentInstanceInfo = new UploadComponentInstanceInfo();
934 uploadComponentInstanceInfo.setName("zxjTestImportServiceAb");
935 Assertions.assertNotNull(resource);
936 Assertions.assertNotNull(yamlName);
937 sIBL.processComponentInstance(yamlName, resource, componentInstancesList, allDataTypes.left().value(), instProperties,
938 instCapabilties, instRequirements, instDeploymentArtifacts, instArtifacts, instAttributes,
939 originCompMap, instInputs, instNodeFilter, null, uploadComponentInstanceInfo);
943 void testProcessComponentInstance_null() {
944 String yamlName = "group.yml";
945 Resource resource = createParseResourceObject(true);
946 Resource originResource = createParseResourceObject(false);
947 List<ComponentInstance> componentInstancesList = creatComponentInstances();
948 Either<Map<String, DataTypeDefinition>, JanusGraphOperationStatus> allDataTypes = null;
949 Map<String, List<ComponentInstanceProperty>> instProperties = new HashMap<>();
950 Map<ComponentInstance, Map<String, List<CapabilityDefinition>>> instCapabilties = new HashMap<>();
951 Map<ComponentInstance, Map<String, List<RequirementDefinition>>> instRequirements = new HashMap<>();
952 Map<String, Map<String, ArtifactDefinition>> instDeploymentArtifacts = new HashMap<>();
953 Map<String, Map<String, ArtifactDefinition>> instArtifacts = new HashMap<>();
954 Map<String, List<AttributeDefinition>> instAttributes = new HashMap<>();
955 Map<String, Resource> originCompMap = new HashMap<>();
956 Map<String, UploadNodeFilterInfo> instNodeFilter = new HashMap<>();
957 originCompMap.put("componentUid", originResource);
958 Map<String, List<ComponentInstanceInput>> instInputs = new HashMap<>();
959 UploadComponentInstanceInfo uploadComponentInstanceInfo = new UploadComponentInstanceInfo();
960 uploadComponentInstanceInfo.setName("zxjTestImportServiceAb0");
962 Assertions.assertThrows(ComponentException.class, () -> sIBL.processComponentInstance(yamlName,
963 resource, componentInstancesList, null, instProperties, instCapabilties,
964 instRequirements, instDeploymentArtifacts, instArtifacts, instAttributes, originCompMap,
965 instInputs, instNodeFilter, null, uploadComponentInstanceInfo));
969 void testAddInputsValuesToRi() {
970 UploadComponentInstanceInfo uploadComponentInstanceInfo = new UploadComponentInstanceInfo();
971 Map<String, List<UploadPropInfo>> properties = new HashMap<>();
972 List<UploadPropInfo> uploadPropInfoList = getPropertyList();
973 properties.put("propertiesMap", uploadPropInfoList);
974 uploadComponentInstanceInfo.setProperties(properties);
975 Resource resource = createParseResourceObject(true);
976 Resource originResource = createParseResourceObject(false);
977 List<InputDefinition> inputs = new ArrayList<>();
978 InputDefinition inputDefinition = new InputDefinition();
979 inputDefinition.setName("inputDefinitionName");
980 inputDefinition.setUniqueId("uniqueId");
981 inputDefinition.setType("inputDefinitionType");
982 inputs.add(inputDefinition);
983 originResource.setInputs(inputs);
984 ComponentInstance currentCompInstance = new ComponentInstance();
985 Map<String, List<ComponentInstanceInput>> instInputs = new HashMap<>();
986 Map<String, DataTypeDefinition> allDataTypes = new HashMap<>();
987 DataTypeDefinition dataTypeDefinition = new DataTypeDefinition();
988 dataTypeDefinition.setName("dataTypeDefinitionName");
989 allDataTypes.put("dataTypeDefinitionMap", dataTypeDefinition);
991 Assertions.assertThrows(ComponentException.class, () -> sIBL
992 .addInputsValuesToRi(uploadComponentInstanceInfo, resource, originResource,
993 currentCompInstance, instInputs, allDataTypes));
997 void testProcessProperty() {
998 Resource resource = createParseResourceObject(true);
999 List<InputDefinition> inputs = new ArrayList<>();
1000 InputDefinition inputDefinition = new InputDefinition();
1001 inputDefinition.setName("inputDefinitionName");
1002 inputDefinition.setUniqueId("uniqueId");
1003 inputDefinition.setType("inputDefinitionType");
1004 inputs.add(inputDefinition);
1005 resource.setInputs(inputs);
1006 ComponentInstance currentCompInstance = null;
1007 Map<String, DataTypeDefinition> allDataTypes = new HashMap<>();
1008 Map<String, InputDefinition> currPropertiesMap = new HashMap<>();
1009 currPropertiesMap.put("propertyInfoName", inputDefinition);
1010 List<ComponentInstanceInput> instPropList = new ArrayList<>();
1011 List<UploadPropInfo> propertyList = getPropertyList();
1012 Assertions.assertNotNull(resource);
1013 Assertions.assertNotNull(currPropertiesMap);
1014 sIBL.processProperty(resource, allDataTypes, currPropertiesMap, instPropList, propertyList);
1018 void testHandleSubstitutionMappings() {
1019 Resource resource = createParseResourceObject(true);
1020 resource.setResourceType(ResourceTypeEnum.VF);
1021 Map<String, UploadComponentInstanceInfo> uploadResInstancesMap = new HashMap<>();
1022 when(toscaOperationFacade.getToscaFullElement(anyString()))
1023 .thenReturn(Either.right(StorageOperationStatus.BAD_REQUEST));
1025 Assertions.assertThrows(ComponentException.class,
1026 () -> sIBL.handleSubstitutionMappings(resource, uploadResInstancesMap));
1030 void testHandleSubstitutionMappings_left() {
1031 Resource resource = createParseResourceObject(true);
1032 resource.setResourceType(ResourceTypeEnum.VF);
1033 Map<String, UploadComponentInstanceInfo> uploadResInstancesMap = new HashMap<>();
1034 when(toscaOperationFacade.getToscaFullElement(anyString()))
1035 .thenReturn(Either.left(resource));
1037 Assertions.assertThrows(ComponentException.class,
1038 () -> sIBL.handleSubstitutionMappings(resource, uploadResInstancesMap));
1042 void testCreateResourceInstances() {
1043 String yamlName = "group.yml";
1044 Resource resource = createParseResourceObject(true);
1045 Resource originResource = createParseResourceObject(false);
1046 Map<String, UploadComponentInstanceInfo> uploadResInstancesMap = new HashMap<>();
1047 UploadComponentInstanceInfo nodesInfoValue = new UploadComponentInstanceInfo();
1048 nodesInfoValue.setName("zxjTestImportServiceAb");
1049 nodesInfoValue.setRequirements(gerRequirements());
1050 uploadResInstancesMap.put("uploadComponentInstanceInfo", nodesInfoValue);
1051 Map<String, Resource> nodeNamespaceMap = new HashMap<>();
1052 nodeNamespaceMap.put("resources", originResource);
1054 Assertions.assertThrows(ComponentException.class,
1055 () -> sIBL.createResourceInstances(yamlName, resource, uploadResInstancesMap, nodeNamespaceMap));
1059 void testHandleNodeTypes() throws IOException {
1060 String nodeName = "org.openecomp.resource.derivedFrom.zxjTestImportServiceAb.test";
1061 String yamlName = "group.yml";
1062 Resource resource = createParseResourceObject(true);
1063 String topologyTemplateYaml = getMainTemplateContent();
1064 boolean needLock = true;
1065 Map<String, EnumMap<ArtifactsBusinessLogic.ArtifactOperationEnum, List<ArtifactDefinition>>> nodeTypesArtifactsToHandle = new HashMap<>();
1066 List<ArtifactDefinition> nodeTypesNewCreatedArtifacts = new ArrayList<>();
1067 Map<String, NodeTypeInfo> nodeTypesInfo = getNodeTypesInfo();
1068 Map<String, Object> map = new HashMap<>();
1069 map.put("tosca_definitions_version", "123");
1070 nodeTypesInfo.get(nodeName).setMappedToscaTemplate(map);
1071 ParsedToscaYamlInfo parsedToscaYamlInfo = getParsedToscaYamlInfo();
1072 CsarInfo csarInfo = getCsarInfo();
1073 Assertions.assertNotNull(resource);
1075 sIBL.handleNodeTypes(yamlName, resource, topologyTemplateYaml, needLock, nodeTypesArtifactsToHandle,
1076 nodeTypesNewCreatedArtifacts, nodeTypesInfo, csarInfo, nodeName);
1080 void testHandleNestedVfc1() {
1081 String nodeName = "org.openecomp.resource.derivedFrom.zxjTestImportServiceAb.test";
1082 Resource resource = createParseResourceObject(false);
1083 Map<String, EnumMap<ArtifactsBusinessLogic.ArtifactOperationEnum, List<ArtifactDefinition>>> nodeTypesArtifactsToHandle = new HashMap<>();
1084 List<ArtifactDefinition> createdArtifacts = new ArrayList<>();
1085 Map<String, NodeTypeInfo> nodesInfo = new HashMap<>();
1086 NodeTypeInfo nodeTypeInfo = new NodeTypeInfo();
1087 nodeTypeInfo.setTemplateFileName("groups.yml");
1088 nodeTypeInfo.setMappedToscaTemplate(new HashMap<>());
1089 nodesInfo.put(nodeName, nodeTypeInfo);
1090 CsarInfo csarInfo = getCsarInfo();
1092 Assertions.assertThrows(ComponentException.class, () -> sIBL.handleNestedVfc(resource,
1093 nodeTypesArtifactsToHandle, createdArtifacts, nodesInfo, csarInfo, nodeName));
1097 void testHandleComplexVfc1() {
1098 Resource resource = createParseResourceObject(true);
1099 Map<String, EnumMap<ArtifactsBusinessLogic.ArtifactOperationEnum, List<ArtifactDefinition>>> nodeTypesArtifactsToHandle = new HashMap<>();
1100 List<ArtifactDefinition> createdArtifacts = new ArrayList<>();
1101 Map<String, NodeTypeInfo> nodesInfo = new HashMap<>();
1102 CsarInfo csarInfo = getCsarInfo();
1103 String nodeName = "org.openecomp.resource.derivedFrom.zxjTestImportServiceAb.test";
1104 String yamlName = "group.yml";
1105 when(serviceImportParseLogic.buildValidComplexVfc(any(Resource.class), any(CsarInfo.class), anyString(),
1106 anyMap())).thenReturn(createParseResourceObject(false));
1107 when(toscaOperationFacade.getFullLatestComponentByToscaResourceName(anyString()))
1108 .thenReturn(Either.left(resource));
1109 when(serviceImportParseLogic.validateNestedDerivedFromDuringUpdate(any(Resource.class), any(Resource.class),
1110 anyBoolean())).thenReturn(Either.left(true));
1112 Assertions.assertThrows(ComponentException.class, () -> sIBL.handleComplexVfc(resource,
1113 nodeTypesArtifactsToHandle, createdArtifacts, nodesInfo, csarInfo, nodeName, yamlName));
1117 void testCreateNodeTypes1() {
1118 String nodeName = "org.openecomp.resource.derivedFrom.zxjTestImportServiceAb.test";
1119 String yamlName = "group.yml";
1120 Resource resource = createParseResourceObject(false);
1121 boolean needLock = true;
1122 Map<String, EnumMap<ArtifactsBusinessLogic.ArtifactOperationEnum, List<ArtifactDefinition>>> nodeTypesArtifactsToHandle = new HashMap<>();
1123 EnumMap<ArtifactsBusinessLogic.ArtifactOperationEnum, List<ArtifactDefinition>> enumListEnumMap =
1124 new EnumMap<>(ArtifactsBusinessLogic.ArtifactOperationEnum.class);
1125 List<ArtifactDefinition> artifactDefinitions = new ArrayList<>();
1126 ArtifactDefinition artifactDefinition = new ArtifactDefinition();
1127 artifactDefinition.setArtifactName("artifactName");
1128 artifactDefinitions.add(artifactDefinition);
1129 enumListEnumMap.put(ArtifactsBusinessLogic.ArtifactOperationEnum.CREATE,
1130 artifactDefinitions);
1131 nodeTypesArtifactsToHandle.put("nodeTyp", enumListEnumMap);
1132 List<ArtifactDefinition> nodeTypesNewCreatedArtifacts = new ArrayList<>();
1133 Map<String, NodeTypeInfo> nodeTypesInfo = getNodeTypesInfo();
1134 Map<String, Object> map = new HashMap<>();
1135 map.put("tosca_definitions_version", "123");
1136 nodeTypesInfo.get(nodeName).setMappedToscaTemplate(map);
1137 ParsedToscaYamlInfo parsedToscaYamlInfo = getParsedToscaYamlInfo();
1139 CsarInfo csarInfo = getCsarInfo();
1140 Map<String, Object> mapToConvert = new HashMap<>();
1141 Map<String, Object> nodeTypes = new HashMap<>();
1142 nodeTypes.put(nodeName, "");
1143 Assertions.assertNotNull(resource);
1145 sIBL.createNodeTypes(yamlName,
1146 resource, needLock, nodeTypesArtifactsToHandle, nodeTypesNewCreatedArtifacts,
1147 nodeTypesInfo, csarInfo, mapToConvert, nodeTypes);
1151 void testCreateNodeTypeResourceFromYaml() throws IOException {
1152 String yamlName = "group.yml";
1153 String nodeName = "org.openecomp.resource.derivedFrom.zxjTestImportServiceAb.test";
1154 Map<String, Object> nodeMap = new HashMap<>();
1155 nodeMap.put(nodeName, getGroupsYaml());
1156 Map.Entry<String, Object> nodeNameValue = nodeMap.entrySet().iterator().next();
1157 Map<String, Object> mapToConvert = new HashedMap();
1158 Resource resourceVf = createParseResourceObject(false);
1159 boolean needLock = true;
1160 Map<ArtifactsBusinessLogic.ArtifactOperationEnum, List<ArtifactDefinition>> nodeTypeArtifactsToHandle = new HashMap<>();
1161 List<ArtifactDefinition> nodeTypesNewCreatedArtifacts = new ArrayList<>();
1162 boolean forceCertificationAllowed = true;
1163 CsarInfo csarInfo = getCsarInfo();
1164 boolean isNested = true;
1165 UploadResourceInfo resourceMetaData = new UploadResourceInfo();
1166 resourceMetaData.setResourceType("VFC");
1167 ImmutablePair<Resource, ActionStatus> immutablePair = new ImmutablePair<>(resourceVf, ActionStatus.CREATED);
1168 when(serviceImportParseLogic.fillResourceMetadata(anyString(), any(Resource.class), anyString(), any(User.class)))
1169 .thenReturn(resourceMetaData);
1170 when(serviceImportParseLogic.buildNodeTypeYaml(any(Map.Entry.class), anyMap(), anyString(), any(CsarInfo.class)))
1171 .thenReturn(nodeName);
1172 when(serviceBusinessLogic.validateUser(any(User.class), anyString(), any(Component.class), any(AuditingActionEnum.class),
1173 anyBoolean())).thenReturn(user);
1174 when(serviceImportParseLogic.createResourceFromNodeType(anyString(), any(UploadResourceInfo.class), any(User.class), anyBoolean(),
1176 anyMap(), anyList(), anyBoolean(), any(CsarInfo.class),
1177 anyString(), anyBoolean())).thenReturn(immutablePair);
1178 Assertions.assertNotNull(
1179 sIBL.createNodeTypeResourceFromYaml(yamlName, nodeNameValue, user, mapToConvert,
1180 resourceVf, needLock, nodeTypeArtifactsToHandle, nodeTypesNewCreatedArtifacts,
1181 forceCertificationAllowed, csarInfo, isNested));
1185 void testCreateRIAndRelationsFromYaml() {
1186 String yamlName = "group.yml";
1187 Service service = createServiceObject(true);
1188 Map<String, UploadComponentInstanceInfo> uploadComponentInstanceInfoMap = new HashMap<>();
1189 String topologyTemplateYaml = getMainTemplateContent("service_import_template.yml");
1191 List<ArtifactDefinition> nodeTypesNewCreatedArtifacts = new ArrayList<>();
1192 Map<String, NodeTypeInfo> nodeTypesInfo = new HashMap<>();
1193 CsarInfo csarInfo = getCsarInfo();
1194 Map<String, EnumMap<ArtifactsBusinessLogic.ArtifactOperationEnum, List<ArtifactDefinition>>> nodeTypesArtifactsToCreate = new HashMap<>();
1195 String nodeName = "org.openecomp.resource.derivedFrom.zxjTestImportServiceAb.test";
1197 Assertions.assertNotNull(sIBL
1198 .createRIAndRelationsFromYaml(yamlName, service, uploadComponentInstanceInfoMap,
1199 topologyTemplateYaml, nodeTypesNewCreatedArtifacts, nodeTypesInfo,
1200 csarInfo, nodeTypesArtifactsToCreate, nodeName));
1204 void testCreateServiceInstancesRelations() {
1205 String yamlName = "group.yml";
1206 Service service = createServiceObject(true);
1207 service.setComponentInstances(creatComponentInstances());
1208 Resource newResource = createNewResource();
1209 Map<String, UploadComponentInstanceInfo> uploadResInstancesMap = getUploadResInstancesMap();
1210 ComponentParametersView componentParametersView = new ComponentParametersView();
1211 RequirementDefinition requirementDefinition = new RequirementDefinition();
1212 CapabilityDefinition capabilityDefinition = new CapabilityDefinition();
1213 capabilityDefinition.setName("as");
1214 capabilityDefinition.setUniqueId("1");
1215 capabilityDefinition.setOwnerId("2");
1216 ResponseFormat responseFormat = new ResponseFormat();
1217 responseFormat.setStatus(200);
1218 when(serviceImportParseLogic.getResourceAfterCreateRelations(any(Resource.class))).thenReturn(newResource);
1219 when(serviceImportParseLogic.getComponentFilterAfterCreateRelations()).thenReturn(componentParametersView);
1220 when(toscaOperationFacade.getToscaElement(anyString(), any(ComponentParametersView.class))).thenReturn(Either.left(service));
1221 when(serviceImportParseLogic.findAvailableRequirement(anyString(),
1222 anyString(), any(UploadComponentInstanceInfo.class), any(ComponentInstance.class),
1223 anyString())).thenReturn(Either.left(requirementDefinition));
1224 when(serviceImportParseLogic.findAvailableCapabilityByTypeOrName(any(RequirementDefinition.class),
1225 any(ComponentInstance.class), any(UploadReqInfo.class))).thenReturn(capabilityDefinition);
1226 when(componentsUtils.getResponseFormat(any(ActionStatus.class), anyString())).thenReturn(responseFormat);
1227 when(toscaOperationFacade.getToscaElement(anyString())).thenReturn(Either.left(service));
1228 Assertions.assertNotNull(sIBL.createServiceInstancesRelations(user, yamlName, service, uploadResInstancesMap));
1232 void testCreateServiceInstancesRelations_Empty() {
1233 String yamlName = "group.yml";
1234 Service service = createServiceObject(true);
1235 service.setComponentInstances(creatComponentInstances());
1236 Map<String, UploadComponentInstanceInfo> uploadResInstancesMap = new HashMap<>();
1238 Assertions.assertThrows(ComponentException.class,
1239 () -> sIBL.createServiceInstancesRelations(user, yamlName, service, uploadResInstancesMap));
1243 void testProcessComponentInstance() {
1244 String yamlName = "group.yml";
1245 Service service = createServiceObject(true);
1246 Resource originResource = createParseResourceObject(false);
1247 originResource.setResourceType(ResourceTypeEnum.VF);
1248 List<ComponentInstance> componentInstancesList = creatComponentInstances();
1249 Map<String, DataTypeDefinition> dataTypeDefinitionMap = new HashMap<>();
1250 DataTypeDefinition dataTypeDefinition = new DataTypeDefinition();
1251 dataTypeDefinition.setName("dataTypeDefinitionName");
1252 dataTypeDefinitionMap.put("dataTypeDefinitionMap", dataTypeDefinition);
1253 Either<Map<String, DataTypeDefinition>, JanusGraphOperationStatus> allDataTypes = Either.left(dataTypeDefinitionMap);
1254 Map<String, List<ComponentInstanceProperty>> instProperties = new HashMap<>();
1255 Map<ComponentInstance, Map<String, List<CapabilityDefinition>>> instCapabilties = new HashMap<>();
1256 Map<ComponentInstance, Map<String, List<RequirementDefinition>>> instRequirements = new HashMap<>();
1257 Map<String, Map<String, ArtifactDefinition>> instDeploymentArtifacts = new HashMap<>();
1258 Map<String, Map<String, ArtifactDefinition>> instArtifacts = new HashMap<>();
1259 Map<String, List<AttributeDefinition>> instAttributes = new HashMap<>();
1260 Map<String, UploadNodeFilterInfo> instNodeFilter = new HashMap<>();
1261 Map<String, Resource> originCompMap = new HashMap<>();
1262 originCompMap.put("componentUid", originResource);
1263 Map<String, List<ComponentInstanceInput>> instInputs = new HashMap<>();
1264 UploadComponentInstanceInfo uploadComponentInstanceInfo = new UploadComponentInstanceInfo();
1265 uploadComponentInstanceInfo.setName("zxjTestImportServiceAb");
1266 Assertions.assertNotNull(service);
1268 sIBL.processComponentInstance(yamlName, service, componentInstancesList, allDataTypes.left().value(),
1269 instProperties, instCapabilties, instRequirements, instDeploymentArtifacts,
1270 instArtifacts, instAttributes, originCompMap, instInputs, instNodeFilter, null,
1271 uploadComponentInstanceInfo);
1275 void testProcessComponentInstance_null2() {
1276 String yamlName = "group.yml";
1277 Service service = createServiceObject(true);
1278 Resource originResource = createParseResourceObject(false);
1279 List<ComponentInstance> componentInstancesList = creatComponentInstances();
1280 Either<Map<String, DataTypeDefinition>, JanusGraphOperationStatus> allDataTypes = null;
1281 Map<String, List<ComponentInstanceProperty>> instProperties = new HashMap<>();
1282 Map<ComponentInstance, Map<String, List<CapabilityDefinition>>> instCapabilties = new HashMap<>();
1283 Map<ComponentInstance, Map<String, List<RequirementDefinition>>> instRequirements = new HashMap<>();
1284 Map<String, Map<String, ArtifactDefinition>> instDeploymentArtifacts = new HashMap<>();
1285 Map<String, Map<String, ArtifactDefinition>> instArtifacts = new HashMap<>();
1286 Map<String, List<AttributeDefinition>> instAttributes = new HashMap<>();
1287 Map<String, UploadNodeFilterInfo> instNodeFilter = new HashMap<>();
1288 Map<String, Resource> originCompMap = new HashMap<>();
1289 originCompMap.put("componentUid", originResource);
1290 Map<String, List<ComponentInstanceInput>> instInputs = new HashMap<>();
1291 UploadComponentInstanceInfo uploadComponentInstanceInfo = new UploadComponentInstanceInfo();
1292 uploadComponentInstanceInfo.setName("zxjTestImportServiceAb0");
1294 Assertions.assertThrows(ComponentException.class, () -> sIBL.processComponentInstance(yamlName,
1295 service, componentInstancesList, null, instProperties, instCapabilties,
1296 instRequirements, instDeploymentArtifacts, instArtifacts, instAttributes, originCompMap,
1297 instInputs, instNodeFilter, null, uploadComponentInstanceInfo));
1301 void testAddInputsValuesToRi2() {
1302 UploadComponentInstanceInfo uploadComponentInstanceInfo = new UploadComponentInstanceInfo();
1303 Map<String, List<UploadPropInfo>> properties = new HashMap<>();
1304 List<UploadPropInfo> uploadPropInfoList = new ArrayList<>();
1305 UploadPropInfo uploadPropInfo = new UploadPropInfo();
1306 uploadPropInfo.setName("uploadPropInfo");
1307 uploadPropInfoList.add(uploadPropInfo);
1308 uploadPropInfoList.add(uploadPropInfo);
1309 properties.put("propertiesMap", uploadPropInfoList);
1310 uploadComponentInstanceInfo.setProperties(properties);
1311 Service resource = createServiceObject(true);
1312 Resource originResource = createParseResourceObject(false);
1313 List<InputDefinition> inputs = new ArrayList<>();
1314 InputDefinition inputDefinition = new InputDefinition();
1315 inputDefinition.setUniqueId("uniqueId");
1316 inputs.add(inputDefinition);
1317 originResource.setInputs(inputs);
1318 ComponentInstance currentCompInstance = new ComponentInstance();
1319 Map<String, List<ComponentInstanceInput>> instInputs = new HashMap<>();
1320 Map<String, DataTypeDefinition> allDataTypes = new HashMap<>();
1322 Assertions.assertThrows(ComponentException.class, () -> sIBL
1323 .addInputsValuesToRi(uploadComponentInstanceInfo, resource, originResource,
1324 currentCompInstance, instInputs, allDataTypes));
1328 void testProcessProperty2() {
1329 Service resource = createServiceObject(true);
1330 List<InputDefinition> inputs = new ArrayList<>();
1331 ComponentInstance currentCompInstance = null;
1332 Map<String, DataTypeDefinition> allDataTypes = new HashMap<>();
1333 Map<String, InputDefinition> currPropertiesMap = new HashMap<>();
1334 InputDefinition inputDefinition = new InputDefinition();
1335 inputDefinition.setName("inputDefinitionName");
1336 inputDefinition.setType("inputDefinitionType");
1337 inputs.add(inputDefinition);
1338 currPropertiesMap.put("propertyInfoName", inputDefinition);
1339 resource.setInputs(inputs);
1340 List<ComponentInstanceInput> instPropList = new ArrayList<>();
1341 List<UploadPropInfo> propertyList = new ArrayList<>();
1342 List<GetInputValueDataDefinition> get_input = new ArrayList<>();
1343 GetInputValueDataDefinition getInputValueDataDefinition = new GetInputValueDataDefinition();
1344 getInputValueDataDefinition.setPropName("getInputValueDataDefinitionName");
1345 getInputValueDataDefinition.setInputName("inputDefinitionName");
1346 get_input.add(getInputValueDataDefinition);
1347 UploadPropInfo propertyInfo = new UploadPropInfo();
1348 propertyInfo.setValue("value");
1349 propertyInfo.setGet_input(get_input);
1350 propertyInfo.setName("propertyInfoName");
1351 propertyList.add(propertyInfo);
1352 Assertions.assertNotNull(resource);
1354 sIBL.processProperty(resource, allDataTypes, currPropertiesMap, instPropList, propertyList);
1358 void testProcessGetInput() {
1359 List<GetInputValueDataDefinition> getInputValues = new ArrayList<>();
1360 List<InputDefinition> inputs = new ArrayList<>();
1361 GetInputValueDataDefinition getInputIndex = new GetInputValueDataDefinition();
1363 Assertions.assertThrows(ComponentException.class, () -> sIBL.processGetInput(getInputValues, inputs, getInputIndex));
1367 void testProcessGetInput_optional() {
1368 List<GetInputValueDataDefinition> getInputValues = new ArrayList<>();
1369 List<InputDefinition> inputs = new ArrayList<>();
1370 InputDefinition inputDefinition = new InputDefinition();
1371 inputDefinition.setUniqueId("uniqueId");
1372 inputDefinition.setName("InputName");
1373 inputs.add(inputDefinition);
1374 GetInputValueDataDefinition getInputIndex = new GetInputValueDataDefinition();
1375 getInputIndex.setInputName("InputName");
1376 Assertions.assertNotNull(inputs);
1378 sIBL.processGetInput(getInputValues, inputs, getInputIndex);
1382 void testAddPropertyValuesToRi() {
1383 UploadComponentInstanceInfo uploadComponentInstanceInfo = new UploadComponentInstanceInfo();
1384 uploadComponentInstanceInfo.setProperties(getUploadPropInfoProperties());
1385 Resource resource = createParseResourceObject(true);
1386 List<InputDefinition> inputs = new ArrayList<>();
1387 InputDefinition inputDefinition = new InputDefinition();
1388 inputDefinition.setName("inputDefinitionName");
1389 inputDefinition.setUniqueId("uniqueId");
1390 inputDefinition.setType("inputDefinitionType");
1391 inputs.add(inputDefinition);
1392 resource.setInputs(inputs);
1393 Resource originResource = createParseResourceObject(false);
1394 originResource.setProperties(getProperties());
1395 ComponentInstance currentCompInstance = new ComponentInstance();
1396 Map<String, List<ComponentInstanceProperty>> instProperties = new HashMap<>();
1397 Map<String, DataTypeDefinition> allDataTypes = new HashMap<>();
1398 ResponseFormat responseFormat = new ResponseFormat();
1399 when(serviceImportParseLogic.findInputByName(eq(inputs), any(GetInputValueDataDefinition.class)))
1400 .thenReturn(inputDefinition);
1401 when(componentsUtils.getResponseFormat(any(ActionStatus.class))).thenReturn(responseFormat);
1402 Assertions.assertNotNull(
1403 sIBL.addPropertyValuesToRi(uploadComponentInstanceInfo, resource, originResource,
1404 currentCompInstance, instProperties, allDataTypes));
1408 void testAddPropertyValuesToRi_else() {
1409 UploadComponentInstanceInfo uploadComponentInstanceInfo = new UploadComponentInstanceInfo();
1410 Resource resource = createParseResourceObject(true);
1411 Resource originResource = createParseResourceObject(false);
1412 originResource.setProperties(getProperties());
1413 ComponentInstance currentCompInstance = new ComponentInstance();
1414 Map<String, List<ComponentInstanceProperty>> instProperties = new HashMap<>();
1415 Map<String, DataTypeDefinition> allDataTypes = new HashMap<>();
1416 ResponseFormat responseFormat = new ResponseFormat();
1417 when(componentsUtils.getResponseFormat(any(ActionStatus.class))).thenReturn(responseFormat);
1418 Assertions.assertNotNull(
1419 sIBL.addPropertyValuesToRi(uploadComponentInstanceInfo, resource, originResource, currentCompInstance,
1420 instProperties, allDataTypes));
1424 void testAddPropertyValuesToRi2() {
1425 UploadComponentInstanceInfo uploadComponentInstanceInfo = new UploadComponentInstanceInfo();
1426 uploadComponentInstanceInfo.setProperties(getUploadPropInfoProperties());
1427 Service service = createServiceObject(true);
1428 List<InputDefinition> inputs = new ArrayList<>();
1429 InputDefinition inputDefinition = new InputDefinition();
1430 inputDefinition.setName("inputDefinitionName");
1431 inputDefinition.setUniqueId("uniqueId");
1432 inputDefinition.setType("inputDefinitionType");
1433 inputs.add(inputDefinition);
1434 service.setInputs(inputs);
1435 Resource originResource = createParseResourceObject(false);
1436 originResource.setProperties(getProperties());
1437 ComponentInstance currentCompInstance = new ComponentInstance();
1438 Map<String, List<ComponentInstanceProperty>> instProperties = new HashMap<>();
1439 Map<String, DataTypeDefinition> allDataTypes = new HashMap<>();
1440 ResponseFormat responseFormat = new ResponseFormat();
1441 when(componentsUtils.getResponseFormat(any(ActionStatus.class))).thenReturn(responseFormat);
1442 when(serviceImportParseLogic.findInputByName(anyList(), any(GetInputValueDataDefinition.class)))
1443 .thenReturn(inputDefinition);
1444 Assertions.assertNotNull(
1445 sIBL.addPropertyValuesToRi(uploadComponentInstanceInfo, service, originResource,
1446 currentCompInstance, instProperties, allDataTypes));
1450 void testAddPropertyValuesToRi2_else() {
1451 UploadComponentInstanceInfo uploadComponentInstanceInfo = new UploadComponentInstanceInfo();
1452 Service service = createServiceObject(true);
1453 Resource originResource = createParseResourceObject(false);
1454 originResource.setProperties(getProperties());
1455 ComponentInstance currentCompInstance = new ComponentInstance();
1456 Map<String, List<ComponentInstanceProperty>> instProperties = new HashMap<>();
1457 Map<String, DataTypeDefinition> allDataTypes = new HashMap<>();
1458 ResponseFormat responseFormat = new ResponseFormat();
1459 when(componentsUtils.getResponseFormat(any(ActionStatus.class))).thenReturn(responseFormat);
1460 Assertions.assertNotNull(
1461 sIBL.addPropertyValuesToRi(uploadComponentInstanceInfo, service, originResource, currentCompInstance,
1462 instProperties, allDataTypes));
1466 void testProcessComponentInstanceCapabilities() {
1467 Either<Map<String, DataTypeDefinition>, JanusGraphOperationStatus> allDataTypes = null;
1468 Map<ComponentInstance, Map<String, List<CapabilityDefinition>>> instCapabilties = new HashMap<>();
1469 UploadComponentInstanceInfo uploadComponentInstanceInfo = new UploadComponentInstanceInfo();
1470 uploadComponentInstanceInfo.setCapabilities(getCapabilities());
1471 ComponentInstance currentCompInstance = new ComponentInstance();
1472 Resource originResource = createParseResourceObject(false);
1473 Assertions.assertNotNull(originResource);
1474 sIBL.processComponentInstanceCapabilities(null, instCapabilties, uploadComponentInstanceInfo, currentCompInstance,
1479 void testProcessComponentInstanceCapabilities_null() {
1480 Either<Map<String, DataTypeDefinition>, JanusGraphOperationStatus> allDataTypes = null;
1481 Map<ComponentInstance, Map<String, List<CapabilityDefinition>>> instCapabilties = new HashMap<>();
1482 UploadComponentInstanceInfo uploadComponentInstanceInfo = new UploadComponentInstanceInfo();
1483 ComponentInstance currentCompInstance = new ComponentInstance();
1484 Resource originResource = createParseResourceObject(false);
1485 Assertions.assertNotNull(originResource);
1487 sIBL.processComponentInstanceCapabilities(null, instCapabilties, uploadComponentInstanceInfo, currentCompInstance,
1492 void testUpdateCapabilityPropertiesValues() {
1493 Either<Map<String, DataTypeDefinition>, JanusGraphOperationStatus> allDataTypes = null;
1494 Map<String, List<CapabilityDefinition>> originCapabilities = new HashMap<>();
1495 Map<String, Map<String, UploadPropInfo>> newPropertiesMap = new HashMap<>();
1496 Assertions.assertNull(allDataTypes);
1497 sIBL.updateCapabilityPropertiesValues(null, originCapabilities, newPropertiesMap);
1501 void testUpdatePropertyValues() {
1502 List<ComponentInstanceProperty> properties = new ArrayList<>();
1503 Map<String, UploadPropInfo> newProperties = new HashMap<>();
1504 Map<String, DataTypeDefinition> allDataTypes = new HashMap<>();
1505 Assertions.assertNotNull(allDataTypes);
1506 sIBL.updatePropertyValues(properties, newProperties, allDataTypes);
1510 void testUpdatePropertyValue() {
1511 ComponentInstanceProperty property = new ComponentInstanceProperty();
1512 property.setType("services");
1513 UploadPropInfo propertyInfo = new UploadPropInfo();
1514 propertyInfo.setValue("value");
1515 Map<String, DataTypeDefinition> allDataTypes = new HashMap<>();
1516 when(serviceBusinessLogic.validatePropValueBeforeCreate(any(IPropertyInputCommon.class), anyString(), anyBoolean(), anyMap())).thenReturn(
1518 Assertions.assertNotNull(sIBL.updatePropertyValue(property, propertyInfo, allDataTypes));
1522 void testGetOriginResource() {
1523 String yamlName = "group.yml";
1524 Map<String, Resource> originCompMap = new HashMap<>();
1525 ComponentInstance currentCompInstance = new ComponentInstance();
1526 currentCompInstance.setComponentUid("currentCompInstance");
1527 when(toscaOperationFacade.getToscaFullElement(anyString()))
1528 .thenReturn(Either.left(createParseResourceObject(true)));
1529 Assertions.assertNotNull(sIBL.getOriginResource(yamlName, originCompMap, currentCompInstance));
1533 void testUpdateCalculatedCapReqWithSubstitutionMappings() {
1534 Resource resource = createParseResourceObject(false);
1535 resource.setComponentInstances(creatComponentInstances());
1536 Map<String, UploadComponentInstanceInfo> uploadResInstancesMap = getUploadResInstancesMap();
1538 when(toscaOperationFacade.deleteAllCalculatedCapabilitiesRequirements(any())).thenReturn(StorageOperationStatus.OK);
1539 Assertions.assertNotNull(sIBL.updateCalculatedCapReqWithSubstitutionMappings(resource, uploadResInstancesMap));
1543 void testFillUpdatedInstCapabilitiesRequirements() {
1544 List<ComponentInstance> componentInstances = creatComponentInstances();
1545 Map<String, UploadComponentInstanceInfo> uploadResInstancesMap = getUploadResInstancesMap();
1546 Map<ComponentInstance, Map<String, List<CapabilityDefinition>>> updatedInstCapabilities = new HashMap<>();
1547 Map<ComponentInstance, Map<String, List<RequirementDefinition>>> updatedInstRequirement = new HashMap<>();
1548 Assertions.assertNotNull(componentInstances);
1550 sIBL.fillUpdatedInstCapabilitiesRequirements(componentInstances, uploadResInstancesMap,
1551 updatedInstCapabilities, updatedInstRequirement);
1555 void testFillUpdatedInstCapabilities() {
1556 Map<ComponentInstance, Map<String, List<CapabilityDefinition>>> updatedInstCapabilties = new HashMap<>();
1557 Map<String, List<CapabilityDefinition>> capabilities = new HashMap<>();
1558 List<CapabilityDefinition> capabilityDefinitionList = new ArrayList<>();
1559 CapabilityDefinition capabilityDefinition = new CapabilityDefinition();
1560 capabilityDefinition.setName("mme_ipu_vdu.feature");
1561 capabilityDefinitionList.add(capabilityDefinition);
1562 capabilities.put("tosca.capabilities.Node", capabilityDefinitionList);
1563 ComponentInstance instance = new ComponentInstance();
1564 instance.setCapabilities(capabilities);
1565 Map<String, String> capabilitiesNamesToUpdate = new HashMap<>();
1566 capabilitiesNamesToUpdate.put("mme_ipu_vdu.feature", "capabilitiesNamesToUpdate");
1567 Assertions.assertNotNull(instance);
1569 sIBL.fillUpdatedInstCapabilities(updatedInstCapabilties, instance, capabilitiesNamesToUpdate);
1573 void testFillUpdatedInstRequirements() {
1574 Map<ComponentInstance, Map<String, List<RequirementDefinition>>> updatedInstRequirements = new
1576 ComponentInstance instance = new ComponentInstance();
1577 Map<String, List<RequirementDefinition>> requirements = new HashMap<>();
1578 List<RequirementDefinition> requirementDefinitionList = new ArrayList<>();
1579 RequirementDefinition requirementDefinition = new RequirementDefinition();
1580 requirementDefinition.setName("zxjtestimportserviceab0.mme_ipu_vdu.dependency.test");
1581 requirementDefinitionList.add(requirementDefinition);
1582 requirements.put("tosca.capabilities.Node", requirementDefinitionList);
1583 instance.setRequirements(requirements);
1584 Map<String, String> requirementsNamesToUpdate = new HashMap<>();
1585 requirementsNamesToUpdate.put("zxjtestimportserviceab0.mme_ipu_vdu.dependency.test",
1586 "requirementsNamesToUpdate");
1587 Assertions.assertNotNull(instance);
1589 sIBL.fillUpdatedInstRequirements(updatedInstRequirements, instance, requirementsNamesToUpdate);
1593 void testAddRelationsToRI() {
1594 String yamlName = "group.yml";
1595 Service service = createServiceObject(true);
1597 Map<String, UploadComponentInstanceInfo> uploadResInstancesMap = new HashMap<>();
1598 UploadComponentInstanceInfo nodesInfoValue = getUploadComponentInstanceInfo();
1599 uploadResInstancesMap.put("uploadComponentInstanceInfo", nodesInfoValue);
1600 List<ComponentInstance> componentInstancesList = creatComponentInstances();
1601 ComponentInstance componentInstance = new ComponentInstance();
1602 componentInstance.setName("zxjTestImportServiceAb");
1603 componentInstancesList.add(componentInstance);
1604 service.setComponentInstances(componentInstancesList);
1605 List<RequirementCapabilityRelDef> relations = new ArrayList<>();
1606 RequirementDefinition requirementDefinition = new RequirementDefinition();
1607 requirementDefinition.setOwnerId("1");
1608 requirementDefinition.setUniqueId("2");
1609 requirementDefinition.setCapability("3");
1610 CapabilityDefinition capabilityDefinition = new CapabilityDefinition();
1611 capabilityDefinition.setName("4");
1612 capabilityDefinition.setUniqueId("5");
1613 capabilityDefinition.setOwnerId("6");
1614 ResponseFormat responseFormat = new ResponseFormat();
1615 responseFormat.setStatus(200);
1616 when(serviceImportParseLogic.findAvailableRequirement(anyString(),
1617 anyString(), any(UploadComponentInstanceInfo.class), any(ComponentInstance.class),
1618 anyString())).thenReturn(Either.left(requirementDefinition));
1619 when(serviceImportParseLogic.findAvailableCapabilityByTypeOrName(any(RequirementDefinition.class),
1620 any(ComponentInstance.class), any(UploadReqInfo.class))).thenReturn(capabilityDefinition);
1621 when(componentsUtils.getResponseFormat(any(ActionStatus.class), anyString())).thenReturn(responseFormat);
1622 Assertions.assertNotNull(service);
1624 sIBL.addRelationsToRI(yamlName, service, uploadResInstancesMap, componentInstancesList, relations);
1628 void testAddRelationsToRI_null() {
1629 String yamlName = "group.yml";
1630 Service service = createServiceObject(true);
1631 Map<String, UploadComponentInstanceInfo> uploadResInstancesMap = new HashMap<>();
1632 UploadComponentInstanceInfo nodesInfoValue = getUploadComponentInstanceInfo();
1633 uploadResInstancesMap.put("uploadComponentInstanceInfo", nodesInfoValue);
1634 List<ComponentInstance> componentInstancesList = new ArrayList<>();
1635 List<RequirementCapabilityRelDef> relations = new ArrayList<>();
1637 Assertions.assertThrows(ComponentException.class, () -> sIBL.addRelationsToRI(yamlName,
1638 service, uploadResInstancesMap, componentInstancesList, relations));
1642 void testAddRelationToRI() {
1643 String yamlName = "group.yml";
1644 Service service = createServiceObject(true);
1645 service.setComponentInstances(creatComponentInstances());
1647 UploadComponentInstanceInfo nodesInfoValue = getUploadComponentInstanceInfo();
1648 List<RequirementCapabilityRelDef> relations = new ArrayList<>();
1649 RequirementDefinition requirementDefinition = new RequirementDefinition();
1650 requirementDefinition.setName("zxjtestimportserviceab0.mme_ipu_vdu.dependency.test");
1651 CapabilityDefinition capabilityDefinition = new CapabilityDefinition();
1652 capabilityDefinition.setName("capabilityDefinitionName");
1653 capabilityDefinition.setUniqueId("capabilityDefinitionUniqueId");
1654 capabilityDefinition.setOwnerId("capabilityDefinitionOwnerId");
1655 ResponseFormat responseFormat = new ResponseFormat();
1656 when(serviceImportParseLogic.findAvailableRequirement(anyString(), anyString(), any(UploadComponentInstanceInfo.class),
1657 any(ComponentInstance.class), anyString())).thenReturn(Either.left(requirementDefinition));
1658 when(serviceImportParseLogic.findAvailableCapabilityByTypeOrName(any(RequirementDefinition.class),
1659 any(ComponentInstance.class), any(UploadReqInfo.class))).thenReturn(capabilityDefinition);
1660 when(componentsUtils.getResponseFormat(any(ActionStatus.class), anyString())).thenReturn(responseFormat);
1661 Assertions.assertNotNull(sIBL.addRelationToRI(yamlName, service, nodesInfoValue, relations));
1662 Assertions.assertNotNull(relations.get(0).getRelationships().get(0).getOperations());
1666 void testAddRelationToRI_null() {
1667 String yamlName = "group.yml";
1668 Service service = createServiceObject(true);
1669 List<ComponentInstance> componentInstancesList = new ArrayList<>();
1670 service.setComponentInstances(componentInstancesList);
1671 ResponseFormat responseFormat = new ResponseFormat();
1672 UploadComponentInstanceInfo nodesInfoValue = getUploadComponentInstanceInfo();
1673 List<RequirementCapabilityRelDef> relations = new ArrayList<>();
1674 when(componentsUtils.getResponseFormat(any(ActionStatus.class), anyString())).thenReturn(responseFormat);
1675 Assertions.assertNotNull(sIBL.addRelationToRI(yamlName, service, nodesInfoValue, relations));
1679 void testGetResourceAfterCreateRelations() {
1680 Service service = createServiceObject(true);
1681 ComponentParametersView componentParametersView = createComponentParametersView();
1682 when(serviceImportParseLogic.getComponentFilterAfterCreateRelations()).thenReturn(componentParametersView);
1683 when(toscaOperationFacade.getToscaElement(anyString(), any(ComponentParametersView.class)))
1684 .thenReturn(Either.left(createServiceObject(true)));
1685 Assertions.assertNotNull(sIBL.getResourceAfterCreateRelations(service));
1689 void testCreateServiceInstances() {
1690 String yamlName = "group.yml";
1691 Service service = createServiceObject(true);
1692 Map<String, UploadComponentInstanceInfo> uploadResInstancesMap = new HashMap<>();
1693 UploadComponentInstanceInfo nodesInfoValue = getUploadComponentInstanceInfo();
1694 uploadResInstancesMap.put("uploadResInstancesMap", nodesInfoValue);
1695 Map<String, Resource> nodeNamespaceMap = new HashMap<>();
1696 Resource resource = createParseResourceObject(true);
1697 resource.setToscaResourceName("toscaResourceName");
1698 nodeNamespaceMap.put("nodeNamespaceMap", resource);
1700 Assertions.assertThrows(ComponentException.class,
1701 () -> sIBL.createServiceInstances(yamlName, service, uploadResInstancesMap, nodeNamespaceMap));
1705 void testCreateAndAddResourceInstance() {
1706 UploadComponentInstanceInfo uploadComponentInstanceInfo = getUploadComponentInstanceInfo();
1707 String yamlName = "group.yml";
1708 Resource resource = createParseResourceObject(false);
1709 Resource originResource = createParseResourceObject(true);
1710 originResource.setResourceType(ResourceTypeEnum.VF);
1711 Map<String, Resource> nodeNamespaceMap = new HashMap<>();
1712 nodeNamespaceMap.put("resources", originResource);
1713 Map<String, Resource> existingnodeTypeMap = new HashMap<>();
1714 Map<ComponentInstance, Resource> resourcesInstancesMap = new HashMap<>();
1716 Assertions.assertThrows(ComponentException.class, () -> sIBL
1717 .createAndAddResourceInstance(uploadComponentInstanceInfo, yamlName, resource,
1718 nodeNamespaceMap, existingnodeTypeMap, resourcesInstancesMap));
1722 void testCreateAndAddResourceInstances() {
1723 UploadComponentInstanceInfo uploadComponentInstanceInfo = getUploadComponentInstanceInfo();
1724 String yamlName = "group.yml";
1725 Service service = createServiceObject(true);
1726 service.setServiceType("services");
1727 Resource originResource = createParseResourceObject(true);
1728 originResource.setResourceType(ResourceTypeEnum.VF);
1729 Map<String, Resource> nodeNamespaceMap = new HashMap<>();
1730 nodeNamespaceMap.put("resources", originResource);
1731 Map<String, Resource> existingnodeTypeMap = new HashMap<>();
1732 Map<ComponentInstance, Resource> resourcesInstancesMap = new HashMap<>();
1734 Assertions.assertThrows(ComponentException.class, () -> sIBL
1735 .createAndAddResourceInstance(uploadComponentInstanceInfo, yamlName, service,
1736 nodeNamespaceMap, existingnodeTypeMap, resourcesInstancesMap));
1740 void testValidateResourceInstanceBeforeCreate() {
1741 String yamlName = "group.yml";
1742 UploadComponentInstanceInfo uploadComponentInstanceInfo = getUploadComponentInstanceInfo();
1743 Resource originResource = createParseResourceObject(true);
1744 ResourceMetadataDataDefinition componentMetadataDataDefinition = new ResourceMetadataDataDefinition();
1745 componentMetadataDataDefinition.setState(LifecycleStateEnum.CERTIFIED.name());
1746 ComponentMetadataDefinition componentMetadataDefinition = new ComponentMetadataDefinition(componentMetadataDataDefinition);
1747 originResource.setComponentMetadataDefinition(componentMetadataDefinition);
1748 originResource.setComponentType(ComponentTypeEnum.RESOURCE);
1749 originResource.setToscaResourceName("toscaResourceName");
1750 originResource.setResourceType(ResourceTypeEnum.VF);
1751 originResource.setResourceType(ResourceTypeEnum.VF);
1752 Map<String, Resource> nodeNamespaceMap = new HashMap<>();
1753 nodeNamespaceMap.put("resources", originResource);
1754 when(toscaOperationFacade.getLatestResourceByToscaResourceName(anyString())).thenReturn(Either.left(originResource));
1755 Assertions.assertNotNull(
1756 sIBL.validateResourceInstanceBeforeCreate(yamlName, uploadComponentInstanceInfo, nodeNamespaceMap));
1760 void testHandleServiceNodeTypes() {
1761 String yamlName = "group.yml";
1762 Service service = createServiceObject(true);
1763 String topologyTemplateYaml = getMainTemplateContent("service_import_template.yml");
1765 boolean needLock = true;
1766 Map<String, EnumMap<ArtifactsBusinessLogic.ArtifactOperationEnum, List<ArtifactDefinition>>> nodeTypesArtifactsToHandle = new HashMap<>();
1767 List<ArtifactDefinition> nodeTypesNewCreatedArtifacts = new ArrayList<>();
1768 Map<String, NodeTypeInfo> nodeTypesInfo = getNodeTypesInfo();
1769 CsarInfo csarInfo = getCsarInfo();
1770 String nodeName = "org.openecomp.resource.derivedFrom.zxjTestImportServiceAb.test";
1771 when(toscaOperationFacade.getLatestResourceByToscaResourceName(anyString())).thenReturn(Either.left(createOldResource()));
1772 Assertions.assertNotNull(service);
1774 sIBL.handleServiceNodeTypes(yamlName, service, topologyTemplateYaml, needLock, nodeTypesArtifactsToHandle,
1775 nodeTypesNewCreatedArtifacts,
1776 nodeTypesInfo, csarInfo, nodeName);
1780 void testValidateResourceNotExisted() {
1781 String type = "org.openecomp.resource.vf";
1783 Assertions.assertThrows(ComponentException.class, () -> sIBL.validateResourceNotExisted(type));
1787 void testHandleNestedVF() {
1788 Service service = createServiceObject(true);
1789 Map<String, EnumMap<ArtifactsBusinessLogic.ArtifactOperationEnum, List<ArtifactDefinition>>> nodeTypesArtifactsToHandle = new HashMap<>();
1790 List<ArtifactDefinition> createdArtifacts = new ArrayList<>();
1791 Map<String, NodeTypeInfo> nodesInfo = getNodeTypesInfo();
1792 CsarInfo csarInfo = getCsarInfo();
1793 String nodeName = "org.openecomp.resource.derivedFrom.zxjTestImportServiceAb.test";
1795 Assertions.assertThrows(ComponentException.class, () -> sIBL.handleNestedVF(service,
1796 nodeTypesArtifactsToHandle, createdArtifacts, nodesInfo, csarInfo, nodeName));
1800 void testHandleNestedVfc() {
1801 Service service = createServiceObject(true);
1802 Map<String, EnumMap<ArtifactsBusinessLogic.ArtifactOperationEnum, List<ArtifactDefinition>>> nodeTypesArtifactsToHandle = new HashMap<>();
1803 List<ArtifactDefinition> createdArtifacts = new ArrayList<>();
1804 Map<String, NodeTypeInfo> nodesInfo = new HashMap<>();
1805 CsarInfo csarInfo = getCsarInfo();
1806 String nodeName = "org.openecomp.resource.derivedFrom.zxjTestImportServiceAb.test";
1808 Assertions.assertThrows(ComponentException.class, () -> sIBL.handleNestedVfc(service,
1809 nodeTypesArtifactsToHandle, createdArtifacts, nodesInfo, csarInfo, nodeName));
1813 void testHandleComplexVfc() {
1814 Map<String, EnumMap<ArtifactsBusinessLogic.ArtifactOperationEnum, List<ArtifactDefinition>>> nodeTypesArtifactsToHandle = new HashMap<>();
1815 List<ArtifactDefinition> createdArtifacts = new ArrayList<>();
1816 Map<String, NodeTypeInfo> nodesInfo = new HashMap<>();
1817 CsarInfo csarInfo = getCsarInfo();
1818 String nodeName = "org.openecomp.resource.derivedFrom.zxjTestImportServiceAb.test";
1819 String yamlName = "group.yml";
1820 when(serviceImportParseLogic.buildValidComplexVfc(any(CsarInfo.class), anyString(), anyMap()))
1821 .thenReturn(createNewResource());
1822 when(toscaOperationFacade.getFullLatestComponentByToscaResourceName(anyString()))
1823 .thenReturn(Either.left(createNewResource()));
1824 when(serviceImportParseLogic.validateNestedDerivedFromDuringUpdate(any(Resource.class), any(Resource.class), anyBoolean()))
1825 .thenReturn(Either.left(true));
1827 Assertions.assertThrows(ComponentException.class, () -> sIBL
1828 .handleComplexVfc(nodeTypesArtifactsToHandle, createdArtifacts, nodesInfo,
1829 csarInfo, nodeName, yamlName));
1833 void testHandleComplexVfcStatus() {
1834 Map<String, EnumMap<ArtifactsBusinessLogic.ArtifactOperationEnum, List<ArtifactDefinition>>> nodeTypesArtifactsToHandle = new HashMap<>();
1835 List<ArtifactDefinition> createdArtifacts = new ArrayList<>();
1836 Map<String, NodeTypeInfo> nodesInfo = new HashMap<>();
1837 CsarInfo csarInfo = getCsarInfo();
1838 String nodeName = "org.openecomp.resource.derivedFrom.zxjTestImportServiceAb.test";
1839 String yamlName = "group.yml";
1840 when(serviceImportParseLogic.buildValidComplexVfc(any(CsarInfo.class), anyString(), anyMap()))
1841 .thenReturn(createNewResource());
1842 when(toscaOperationFacade.getFullLatestComponentByToscaResourceName(anyString()))
1843 .thenReturn(Either.right(StorageOperationStatus.NOT_FOUND));
1845 Assertions.assertThrows(ComponentException.class, () -> sIBL
1846 .handleComplexVfc(nodeTypesArtifactsToHandle, createdArtifacts, nodesInfo,
1847 csarInfo, nodeName, yamlName));
1851 void testHandleComplexVfc2() {
1852 Map<String, EnumMap<ArtifactsBusinessLogic.ArtifactOperationEnum, List<ArtifactDefinition>>> nodeTypesArtifactsToHandle = new HashMap<>();
1853 List<ArtifactDefinition> createdArtifacts = new ArrayList<>();
1854 Map<String, NodeTypeInfo> nodesInfo = getNodeTypesInfo();
1855 String nodeName = "org.openecomp.resource.derivedFrom.zxjTestImportServiceAb.test";
1856 String yamlName = "group.yml";
1857 CsarInfo csarInfo = getCsarInfo();
1858 Map<String, byte[]> csar = new HashMap<>();
1859 csar.put(yamlName, yamlName.getBytes());
1860 csarInfo.setCsar(csar);
1861 Resource oldComplexVfc = createParseResourceObject(false);
1862 Resource newComplexVfc = createParseResourceObject(true);
1864 Assertions.assertThrows(ComponentException.class, () -> sIBL
1865 .handleComplexVfc(nodeTypesArtifactsToHandle, createdArtifacts, nodesInfo,
1866 csarInfo, nodeName, yamlName, oldComplexVfc, newComplexVfc));
1870 void testUpdateResourceFromYaml() throws IOException {
1871 String nodeName = "org.openecomp.resource.derivedFrom.zxjTestImportServiceAb.test";
1872 Resource newResource = createNewResource();
1873 Resource oldResource = createOldResource();
1874 AuditingActionEnum actionEnum = AuditingActionEnum.CREATE_RESOURCE;
1875 List<ArtifactDefinition> createdArtifacts = new ArrayList<>();
1876 String yamlFileName = "group.yml";
1877 String yamlFileContent = getYamlFileContent();
1878 CsarInfo csarInfo = getCsarInfo();
1879 Map<String, NodeTypeInfo> nodeTypesInfo = getNodeTypesInfo();
1880 Map<String, Object> map = new HashMap<>();
1881 map.put("tosca_definitions_version", "123");
1882 nodeTypesInfo.get(nodeName).setMappedToscaTemplate(map);
1883 Map<String, EnumMap<ArtifactsBusinessLogic.ArtifactOperationEnum, List<ArtifactDefinition>>> nodeTypesArtifactsToHandle = new HashMap<>();
1884 boolean isNested = true;
1886 when(csarBusinessLogic.getParsedToscaYamlInfo(anyString(), anyString(), anyMap(), any(CsarInfo.class),
1887 anyString(), any(Component.class))).thenReturn(getParsedToscaYamlInfo());
1888 when(serviceImportParseLogic.prepareResourceForUpdate(any(Resource.class), any(Resource.class),
1889 any(User.class), anyBoolean(), anyBoolean())).thenReturn(oldResource);
1890 when(serviceImportParseLogic.validateCapabilityTypesCreate(any(User.class), any(ICapabilityTypeOperation.class),
1891 any(Resource.class), any(AuditingActionEnum.class), anyBoolean())).thenReturn(Either.left(true));
1892 when(toscaOperationFacade.overrideComponent(any(Resource.class), any(Resource.class)))
1893 .thenReturn(Either.left(newResource));
1894 Assertions.assertThrows(ComponentException.class, () -> sIBL
1895 .updateResourceFromYaml(oldResource, newResource, actionEnum, createdArtifacts,
1896 yamlFileName, yamlFileContent, csarInfo, nodeTypesInfo,
1897 nodeTypesArtifactsToHandle, nodeName, isNested));
1901 void testCreateResourceFromYaml() throws IOException {
1902 String nodeName = "org.openecomp.resource.derivedFrom.zxjTestImportServiceAb.test";
1903 Resource resource = createParseResourceObject(true);
1904 String topologyTemplateYaml = getMainTemplateContent();
1905 String yamlName = "group.yml";
1907 Map<String, NodeTypeInfo> nodeTypesInfo = getNodeTypesInfo();
1908 Map<String, Object> map = new HashMap<>();
1909 map.put("tosca_definitions_version", "123");
1910 nodeTypesInfo.get(nodeName).setMappedToscaTemplate(map);
1912 CsarInfo csarInfo = getCsarInfo();
1913 Map<String, EnumMap<ArtifactsBusinessLogic.ArtifactOperationEnum, List<ArtifactDefinition>>> nodeTypesArtifactsToCreate = new HashMap<>();
1914 boolean shouldLock = false;
1915 boolean inTransaction = true;
1917 when(csarBusinessLogic.getParsedToscaYamlInfo(anyString(), anyString(), anyMap(), any(CsarInfo.class),
1918 anyString(), any(Component.class))).thenReturn(getParsedToscaYamlInfo());
1919 when(serviceBusinessLogic.fetchAndSetDerivedFromGenericType(any(Component.class))).thenReturn(resource);
1920 when(toscaOperationFacade.validateComponentNameExists(anyString(), any(ResourceTypeEnum.class), any(ComponentTypeEnum.class)))
1921 .thenReturn(Either.left(false));
1922 when(toscaOperationFacade.createToscaComponent(any(Resource.class))).thenReturn(Either.left(resource));
1923 Assertions.assertThrows(ComponentException.class, () -> sIBL.createResourceFromYaml(resource,
1924 topologyTemplateYaml, yamlName, nodeTypesInfo, csarInfo,
1925 nodeTypesArtifactsToCreate, shouldLock, inTransaction, nodeName));
1929 void testCreateResourceAndRIsFromYaml() throws IOException {
1930 String yamlName = "group.yml";
1931 String nodeName = "org.openecomp.resource.derivedFrom.zxjTestImportServiceAb.test";
1932 Resource resource = createParseResourceObject(true);
1933 resource.setSystemName("SystemName");
1934 resource.setComponentType(ComponentTypeEnum.RESOURCE);
1935 AuditingActionEnum actionEnum = AuditingActionEnum.CREATE_RESOURCE;
1936 boolean isNormative = true;
1937 List<ArtifactDefinition> createdArtifacts = new ArrayList<>();
1938 String topologyTemplateYaml = getMainTemplateContent();
1939 Map<String, NodeTypeInfo> nodeTypesInfo = getNodeTypesInfo();
1940 Map<String, Object> map = new HashMap<>();
1941 map.put("tosca_definitions_version", "123");
1942 nodeTypesInfo.get(nodeName).setMappedToscaTemplate(map);
1943 ParsedToscaYamlInfo parsedToscaYamlInfo = getParsedToscaYamlInfo();
1945 CsarInfo csarInfo = getCsarInfo();
1946 Map<String, EnumMap<ArtifactsBusinessLogic.ArtifactOperationEnum, List<ArtifactDefinition>>> nodeTypesArtifactsToCreate = new HashMap<>();
1947 boolean shouldLock = false;
1948 boolean inTransaction = true;
1949 when(serviceBusinessLogic.fetchAndSetDerivedFromGenericType(any(Resource.class)))
1950 .thenReturn(resource);
1952 when(serviceBusinessLogic.lockComponentByName(anyString(), any(), anyString()))
1953 .thenReturn(Either.left(true));
1955 when(toscaOperationFacade.validateComponentNameExists(anyString(), any(ResourceTypeEnum.class), any(ComponentTypeEnum.class)))
1956 .thenReturn(Either.left(false));
1958 when(toscaOperationFacade.createToscaComponent(any(Resource.class))).thenReturn(Either.left(resource));
1960 Assertions.assertThrows(ComponentException.class, () -> sIBL
1961 .createResourceAndRIsFromYaml(yamlName, resource, parsedToscaYamlInfo, actionEnum,
1962 isNormative, createdArtifacts, topologyTemplateYaml, nodeTypesInfo, csarInfo,
1963 nodeTypesArtifactsToCreate, shouldLock, inTransaction, nodeName));
1967 void testCreateGroupsOnResource2() {
1968 Resource resource = createParseResourceObject(false);
1969 Map<String, GroupDefinition> groups = null;
1970 List<GroupDefinition> groupDefinitionList = new ArrayList<>();
1971 GroupDefinition groupDefinition = new GroupDefinition();
1972 groupDefinition.setUniqueId("groupDefinitionUniqueId");
1973 groupDefinition.setName("groupDefinition");
1974 groupDefinitionList.add(groupDefinition);
1976 Assertions.assertNotNull(
1977 sIBL.createGroupsOnResource(resource, groups));
1981 void testCreateGroupsOnResource2_null() {
1982 Resource resource = createParseResourceObject(false);
1983 Map<String, GroupDefinition> groups = null;
1985 Either<Resource, ResponseFormat> result = sIBL.createGroupsOnResource(resource, groups);
1986 assertEquals(result.left().value(), resource);
1990 void testUpdateGroupsMembersUsingResource2() {
1991 Resource resource = createParseResourceObject(true);
1992 Map<String, GroupDefinition> groups = getGroups();
1994 Assertions.assertNotNull(
1995 sIBL.updateGroupsMembersUsingResource(groups, resource));
1999 void testUpdateGroupsMembersUsingResource_left2() {
2000 Resource resource = createParseResourceObject(true);
2001 Map<String, GroupDefinition> groups = getGroups();
2003 Assertions.assertNotNull(
2004 sIBL.updateGroupsMembersUsingResource(groups, resource));
2008 void testUpdateGroupMembers() throws IOException {
2009 Map<String, GroupDefinition> groups = new HashMap<>();
2010 GroupDefinition updatedGroupDefinition = new GroupDefinition();
2011 Resource component = createParseResourceObject(true);
2012 List<ComponentInstance> componentInstances = creatComponentInstances();
2013 String groupName = "tosca_simple_yaml_1_1";
2014 Map<String, String> members = new HashMap<>();
2015 members.put("zxjTestImportServiceAb", getGroupsYaml());
2016 Assertions.assertNotNull(component);
2018 sIBL.updateGroupMembers(groups, updatedGroupDefinition, component, componentInstances, groupName, members);
2022 void testUpdateGroupMembers_null() throws IOException {
2023 Map<String, GroupDefinition> groups = new HashMap<>();
2024 GroupDefinition updatedGroupDefinition = new GroupDefinition();
2025 Resource component = createParseResourceObject(true);
2026 List<ComponentInstance> componentInstances = new ArrayList<>();
2027 String groupName = "tosca_simple_yaml_1_1";
2028 Map<String, String> members = new HashMap<>();
2029 members.put("zxjTestImportServiceAb", getGroupsYaml());
2031 Assertions.assertThrows(ComponentException.class, () -> sIBL.updateGroupMembers(groups,
2032 updatedGroupDefinition, component, componentInstances, groupName, members));
2036 void setCreateResourceTransaction() {
2037 Resource resource = createParseResourceObject(false);
2038 resource.setComponentType(ComponentTypeEnum.RESOURCE);
2039 boolean isNormative = true;
2040 when(toscaOperationFacade.validateComponentNameExists(anyString(), any(ResourceTypeEnum.class), any(ComponentTypeEnum.class)))
2041 .thenReturn(Either.right(StorageOperationStatus.BAD_REQUEST));
2043 Assertions.assertThrows(ComponentException.class, () -> sIBL.createResourceTransaction(resource, user, isNormative));
2047 void setCreateResourceTransaction_leftTrue() {
2048 Resource resource = createParseResourceObject(false);
2049 resource.setComponentType(ComponentTypeEnum.RESOURCE);
2050 boolean isNormative = true;
2051 when(toscaOperationFacade.validateComponentNameExists(anyString(), any(), any())).thenReturn(Either.left(true));
2053 Assertions.assertThrows(ComponentException.class, () -> sIBL.createResourceTransaction(resource, user, isNormative));
2057 void setCreateResourceTransaction_Left() {
2058 Resource resource = createParseResourceObject(false);
2059 resource.setComponentType(ComponentTypeEnum.RESOURCE);
2060 when(toscaOperationFacade.validateComponentNameExists(anyString(), any(), any())).thenReturn(Either.left(false));
2061 when(toscaOperationFacade.createToscaComponent(any(Resource.class))).thenReturn(Either.left(resource));
2062 Assertions.assertNotNull(sIBL.createResourceTransaction(resource, user, false));
2066 void testUpdateExistingResourceByImport() {
2067 Resource newResource = createNewResource();
2068 Resource oldResource = createOldResource();
2069 when(serviceImportParseLogic.prepareResourceForUpdate(any(Resource.class), any(Resource.class),
2070 any(User.class), anyBoolean(), anyBoolean())).thenReturn(oldResource);
2071 when(serviceImportParseLogic.validateCapabilityTypesCreate(any(User.class), any(ICapabilityTypeOperation.class),
2072 any(Resource.class), any(AuditingActionEnum.class), anyBoolean())).thenReturn(Either.left(true));
2073 when(toscaOperationFacade.overrideComponent(any(Resource.class), any(Resource.class)))
2074 .thenReturn(Either.left(newResource));
2075 Assertions.assertNotNull(sIBL.updateExistingResourceByImport(newResource, oldResource, user, true, false, true));
2079 void testCreateNewResourceToOldResource() {
2080 Resource newResource = createNewResource();
2081 Resource oldResource = createOldResource();
2083 sIBL.createNewResourceToOldResource(newResource, oldResource, user);
2084 assertEquals(newResource.getSystemName(), oldResource.getSystemName());
2088 void testCreateResourcesFromYamlNodeTypesList() {
2089 String yamlName = "group.yml";
2090 Service service = createServiceObject(true);
2091 Map<String, Object> mappedToscaTemplate = new HashMap<>();
2092 boolean needLock = true;
2093 Map<String, EnumMap<ArtifactsBusinessLogic.ArtifactOperationEnum, List<ArtifactDefinition>>> nodeTypesArtifactsToHandle = new HashMap<>();
2094 List<ArtifactDefinition> nodeTypesNewCreatedArtifacts = new ArrayList<>();
2095 Map<String, NodeTypeInfo> nodeTypesInfo = new HashMap<>();
2096 CsarInfo csarInfo = getCsarInfo();
2098 Assertions.assertThrows(ComponentException.class, () -> sIBL
2099 .createResourcesFromYamlNodeTypesList(yamlName, service, mappedToscaTemplate, needLock,
2100 nodeTypesArtifactsToHandle, nodeTypesNewCreatedArtifacts, nodeTypesInfo, csarInfo));
2104 void testCreateNodeTypes() {
2105 String yamlName = "group.yml";
2106 Service service = createServiceObject(true);
2107 boolean needLock = true;
2108 Map<String, EnumMap<ArtifactsBusinessLogic.ArtifactOperationEnum, List<ArtifactDefinition>>> nodeTypesArtifactsToHandle = new HashMap<>();
2109 EnumMap<ArtifactsBusinessLogic.ArtifactOperationEnum, List<ArtifactDefinition>> enumListEnumMap =
2110 new EnumMap<>(ArtifactsBusinessLogic.ArtifactOperationEnum.class);
2111 List<ArtifactDefinition> artifactDefinitions = new ArrayList<>();
2112 ArtifactDefinition artifactDefinition = new ArtifactDefinition();
2113 artifactDefinition.setArtifactName("artifactName");
2114 artifactDefinitions.add(artifactDefinition);
2115 enumListEnumMap.put(ArtifactsBusinessLogic.ArtifactOperationEnum.CREATE,
2116 artifactDefinitions);
2117 nodeTypesArtifactsToHandle.put("nodeTyp", enumListEnumMap);
2118 List<ArtifactDefinition> nodeTypesNewCreatedArtifacts = new ArrayList<>();
2119 Map<String, NodeTypeInfo> nodeTypesInfo = getNodeTypesInfo();
2120 CsarInfo csarInfo = getCsarInfo();
2121 Map<String, Object> mapToConvert = new HashMap<>();
2122 Map<String, Object> nodeTypes = new HashMap<>();
2123 NodeTypeInfo nodeTypeInfo = new NodeTypeInfo();
2124 nodeTypesInfo.put("nodeTyp", nodeTypeInfo);
2125 nodeTypes.put("org.openecomp.resource.derivedFrom.zxjTestImportServiceAb.test",
2128 Assertions.assertThrows(ComponentException.class, () -> sIBL.createNodeTypes(yamlName,
2129 service, needLock, nodeTypesArtifactsToHandle, nodeTypesNewCreatedArtifacts,
2130 nodeTypesInfo, csarInfo, mapToConvert, nodeTypes));
2134 void testCreateNodeTypesElse() {
2135 String nodeName = "org.openecomp.resource.derivedFrom.zxjTestImportServiceAb.test";
2136 String yamlName = "group.yml";
2137 Service service = createServiceObject(true);
2138 boolean needLock = true;
2139 Map<String, EnumMap<ArtifactsBusinessLogic.ArtifactOperationEnum, List<ArtifactDefinition>>> nodeTypesArtifactsToHandle = new HashMap<>();
2140 EnumMap<ArtifactsBusinessLogic.ArtifactOperationEnum, List<ArtifactDefinition>> enumListEnumMap =
2141 new EnumMap<>(ArtifactsBusinessLogic.ArtifactOperationEnum.class);
2142 List<ArtifactDefinition> artifactDefinitions = new ArrayList<>();
2143 ArtifactDefinition artifactDefinition = new ArtifactDefinition();
2144 artifactDefinition.setArtifactName("artifactName");
2145 artifactDefinitions.add(artifactDefinition);
2146 enumListEnumMap.put(ArtifactsBusinessLogic.ArtifactOperationEnum.CREATE,
2147 artifactDefinitions);
2148 nodeTypesArtifactsToHandle.put("nodeTyp", enumListEnumMap);
2149 List<ArtifactDefinition> nodeTypesNewCreatedArtifacts = new ArrayList<>();
2150 Map<String, NodeTypeInfo> nodeTypesInfo = getNodeTypesInfo();
2151 Map<String, Object> map = new HashMap<>();
2152 map.put("tosca_definitions_version", "123");
2153 nodeTypesInfo.get(nodeName).setMappedToscaTemplate(map);
2154 ParsedToscaYamlInfo parsedToscaYamlInfo = getParsedToscaYamlInfo();
2156 CsarInfo csarInfo = getCsarInfo();
2157 Map<String, Object> mapToConvert = new HashMap<>();
2158 Map<String, Object> nodeTypes = new HashMap<>();
2159 NodeTypeInfo nodeTypeInfo = new NodeTypeInfo();
2160 nodeTypes.put("org.openecomp.resource.derivedFrom.zxjTestImportServiceAb.test",
2162 when(serviceImportParseLogic.createNodeTypeResourceFromYaml(anyString(), any(Map.Entry.class), any(User.class),
2163 anyMap(), any(Service.class), anyBoolean(), anyMap(), anyList(), anyBoolean(), any(CsarInfo.class),
2164 anyBoolean())).thenReturn(getResourceCreated());
2165 Assertions.assertNotNull(service);
2167 sIBL.createNodeTypes(yamlName,
2168 service, needLock, nodeTypesArtifactsToHandle, nodeTypesNewCreatedArtifacts,
2169 nodeTypesInfo, csarInfo, mapToConvert, nodeTypes);
2172 protected ImmutablePair<Resource, ActionStatus> getResourceCreated() {
2173 Resource resource = createOldResource();
2174 ImmutablePair<Resource, ActionStatus> resourceCreated = new ImmutablePair<>(resource, ActionStatus.OK);
2176 return resourceCreated;
2179 protected Resource createNewResource() {
2180 Resource newResource = createParseResourceObject(false);
2181 newResource.setVersion("1.0");
2182 newResource.setInvariantUUID("");
2183 newResource.setLifecycleState(null);
2184 newResource.setUUID("");
2185 newResource.setNormalizedName("");
2186 newResource.setSystemName("");
2187 newResource.setCsarUUID("");
2188 newResource.setImportedToscaChecksum("");
2189 newResource.setDerivedFromGenericType("");
2190 newResource.setDerivedFromGenericVersion("");
2191 Map<String, ArtifactDefinition> toscaArtifacts = new HashMap<>();
2192 ArtifactDefinition artifactDefinition = new ArtifactDefinition();
2193 artifactDefinition.setArtifactName("artifactDefinition");
2194 toscaArtifacts.put("toscaArtifactsMap", artifactDefinition);
2195 Map<String, InterfaceDefinition> interfaces = new HashMap<>();
2196 InterfaceDefinition interfaceDefinition = new InterfaceDefinition();
2197 interfaceDefinition.setOwnerId("OwnerId");
2198 interfaces.put("interfacesMap", interfaceDefinition);
2199 newResource.setInterfaces(interfaces);
2200 newResource.setToscaArtifacts(toscaArtifacts);
2201 newResource.setProperties(getProperties());
2205 protected Resource createOldResource() {
2206 Resource newResource = createParseResourceObject(false);
2207 newResource.setVersion("1.0");
2208 newResource.setUniqueId("ResourceUniqueId");
2209 newResource.setInvariantUUID("552e8f6c-340c-4fb4-8a82-fe7732fd8010");
2210 newResource.setLifecycleState(LifecycleStateEnum.CERTIFIED);
2211 newResource.setUUID("13065b80-ca96-4331-b643-d28aeaf961cb");
2212 newResource.setNormalizedName("NormalizedName");
2213 newResource.setSystemName("default");
2214 newResource.setCsarUUID("CsarUUID");
2215 newResource.setImportedToscaChecksum("ImportedToscaChecksum");
2216 newResource.setDerivedFromGenericType("DerivedFromGenericType");
2217 newResource.setDerivedFromGenericVersion("0.1");
2218 Map<String, ArtifactDefinition> toscaArtifacts = new HashMap<>();
2219 ArtifactDefinition artifactDefinition = new ArtifactDefinition();
2220 artifactDefinition.setArtifactName("tosca_simple_yaml_1_1");
2221 toscaArtifacts.put("tosca_definitions_version", artifactDefinition);
2222 Map<String, InterfaceDefinition> interfaces = new HashMap<>();
2223 InterfaceDefinition interfaceDefinition = new InterfaceDefinition();
2224 interfaceDefinition.setDescription("Invoked upon receipt of an Instantiate VNF request");
2225 interfaces.put("tosca_simple_yaml_1_1", interfaceDefinition);
2226 newResource.setInterfaces(interfaces);
2227 newResource.setToscaArtifacts(toscaArtifacts);
2228 List<PropertyDefinition> properties = new ArrayList<>();
2229 PropertyDefinition propertyDefinition = new PropertyDefinition();
2230 propertyDefinition.setName("tosca_simple_yaml_1_1");
2231 properties.add(propertyDefinition);
2232 newResource.setProperties(properties);
2236 protected Map<String, InputDefinition> getCurrPropertiesMap() {
2237 Map<String, InputDefinition> currPropertiesMap = new HashMap<>();
2238 InputDefinition inputDefinition = new InputDefinition();
2239 inputDefinition.setName("inputDefinitionName");
2240 inputDefinition.setUniqueId("uniqueId");
2241 inputDefinition.setType("inputDefinitionType");
2242 currPropertiesMap.put("propertyInfoName", inputDefinition);
2243 return currPropertiesMap;
2246 protected List<UploadPropInfo> getPropertyList() {
2247 List<UploadPropInfo> propertyList = new ArrayList<>();
2248 List<GetInputValueDataDefinition> get_input = new ArrayList<>();
2249 GetInputValueDataDefinition getInputValueDataDefinition = new GetInputValueDataDefinition();
2250 getInputValueDataDefinition.setPropName("getInputValueDataDefinitionName");
2251 getInputValueDataDefinition.setInputName("inputDefinitionName");
2252 get_input.add(getInputValueDataDefinition);
2253 UploadPropInfo propertyInfo = new UploadPropInfo();
2254 propertyInfo.setValue("value");
2255 propertyInfo.setGet_input(get_input);
2256 propertyInfo.setName("propertyInfoName");
2257 propertyList.add(propertyInfo);
2258 return propertyList;
2261 private Map<String, NodeTypeInfo> getNodeTypesInfo() {
2262 Map<String, NodeTypeInfo> nodeTypesInfo = new HashMap<>();
2263 NodeTypeInfo nodeTypeInfo = new NodeTypeInfo();
2264 Map<String, Object> mappedToscaTemplate = new HashMap<>();
2265 nodeTypeInfo.setNested(true);
2266 nodeTypeInfo.setTemplateFileName("templateFileName");
2267 nodeTypeInfo.setMappedToscaTemplate(mappedToscaTemplate);
2268 String nodeName = "org.openecomp.resource.derivedFrom.zxjTestImportServiceAb.test";
2269 nodeTypesInfo.put(nodeName, nodeTypeInfo);
2270 return nodeTypesInfo;
2273 private Map<String, Object> getNodeTypes() {
2274 Map<String, Object> nodeTypesInfo = new HashMap<>();
2275 NodeTypeInfo nodeTypeInfo = new NodeTypeInfo();
2276 Map<String, Object> mappedToscaTemplate = new HashMap<>();
2277 nodeTypeInfo.setNested(true);
2278 nodeTypeInfo.setTemplateFileName("templateFileName");
2279 nodeTypeInfo.setMappedToscaTemplate(mappedToscaTemplate);
2280 String nodeName = "org.openecomp.resource.derivedFrom.zxjTestImportServiceAb.test";
2281 nodeTypesInfo.put(nodeName, nodeTypeInfo);
2282 return nodeTypesInfo;
2285 private Map<String, UploadComponentInstanceInfo> getUploadResInstancesMap() {
2286 Map<String, UploadComponentInstanceInfo> uploadResInstancesMap = new HashMap<>();
2287 UploadComponentInstanceInfo uploadComponentInstanceInfo = getUploadComponentInstanceInfo();
2288 Map<String, String> capabilitiesNamesToUpdate = new HashMap<>();
2289 capabilitiesNamesToUpdate.put("mme_ipu_vdu.feature", "capabilitiesNamesToUpdate");
2290 Map<String, String> requirementsNamesToUpdate = new HashMap<>();
2291 requirementsNamesToUpdate.put("mme_ipu_vdu.feature", "capabilitiesNamesToUpdate");
2292 uploadResInstancesMap.put("zxjTestImportServiceAb", uploadComponentInstanceInfo);
2293 return uploadResInstancesMap;
2296 protected Map<String, List<UploadPropInfo>> getUploadPropInfoProperties() {
2297 Map<String, List<UploadPropInfo>> properties = new HashMap<>();
2298 List<UploadPropInfo> uploadPropInfoList = new ArrayList<>();
2299 UploadPropInfo uploadPropInfo = new UploadPropInfo();
2300 List<GetInputValueDataDefinition> get_input = new ArrayList<>();
2301 GetInputValueDataDefinition getInputValueDataDefinition = new GetInputValueDataDefinition();
2302 getInputValueDataDefinition.setPropName("getInputValueDataDefinitionName");
2303 get_input.add(getInputValueDataDefinition);
2304 uploadPropInfo.setName("propertiesName");
2305 uploadPropInfo.setValue("value");
2306 uploadPropInfo.setGet_input(get_input);
2307 uploadPropInfoList.add(uploadPropInfo);
2308 properties.put("uploadComponentInstanceInfo", uploadPropInfoList);
2312 protected List<PropertyDefinition> getProperties() {
2313 List<PropertyDefinition> properties = new ArrayList<>();
2314 PropertyDefinition propertyDefinition = new PropertyDefinition();
2315 propertyDefinition.setName("propertiesName");
2316 properties.add(propertyDefinition);
2320 protected Map<String, List<UploadReqInfo>> gerRequirements() {
2321 Map<String, List<UploadReqInfo>> uploadReqInfoMap = new HashMap<>();
2322 String requirementName = "tosca.capabilities.Node";
2323 List<UploadReqInfo> uploadReqInfoList = new ArrayList<>();
2324 UploadReqInfo uploadReqInfo = new UploadReqInfo();
2325 uploadReqInfo.setCapabilityName("tosca.capabilities.Node");
2326 uploadReqInfoMap.put(requirementName, uploadReqInfoList);
2327 return uploadReqInfoMap;
2330 protected ComponentParametersView createComponentParametersView() {
2331 ComponentParametersView parametersView = new ComponentParametersView();
2332 parametersView.disableAll();
2333 parametersView.setIgnoreComponentInstances(false);
2334 parametersView.setIgnoreComponentInstancesProperties(false);
2335 parametersView.setIgnoreCapabilities(false);
2336 parametersView.setIgnoreRequirements(false);
2337 parametersView.setIgnoreGroups(false);
2338 return parametersView;
2341 protected Map<String, byte[]> crateCsarFromPayload() {
2342 String payloadName = "valid_vf.csar";
2343 String rootPath = System.getProperty("user.dir");
2347 Map<String, byte[]> returnValue = null;
2349 path = Paths.get(rootPath + "/src/test/resources/valid_vf.csar");
2350 data = Files.readAllBytes(path);
2351 payloadData = Base64.encodeBase64String(data);
2352 UploadResourceInfo resourceInfo = new UploadResourceInfo();
2353 resourceInfo.setPayloadName(payloadName);
2354 resourceInfo.setPayloadData(payloadData);
2355 Method privateMethod = null;
2356 privateMethod = AbstractValidationsServlet.class.getDeclaredMethod("getCsarFromPayload", UploadResourceInfo.class);
2357 privateMethod.setAccessible(true);
2358 returnValue = (Map<String, byte[]>) privateMethod.invoke(servlet, resourceInfo);
2359 } catch (IOException | NoSuchMethodException | SecurityException | IllegalAccessException | IllegalArgumentException |
2360 InvocationTargetException e) {
2361 e.printStackTrace();
2366 protected List<ComponentInstance> creatComponentInstances() {
2367 List<ComponentInstance> componentInstances = new ArrayList<>();
2368 ComponentInstance componentInstance = new ComponentInstance();
2369 Map<String, List<CapabilityDefinition>> capabilities = new HashMap<>();
2370 List<CapabilityDefinition> capabilityDefinitionList = new ArrayList<>();
2371 CapabilityDefinition capabilityDefinition = new CapabilityDefinition();
2372 capabilityDefinition.setName("mme_ipu_vdu.feature");
2373 capabilityDefinitionList.add(capabilityDefinition);
2374 capabilities.put("tosca.capabilities.Node", capabilityDefinitionList);
2376 Map<String, List<RequirementDefinition>> requirements = new HashMap<>();
2377 List<RequirementDefinition> requirementDefinitionList = new ArrayList<>();
2378 RequirementDefinition requirementDefinition = new RequirementDefinition();
2379 requirementDefinition.setName("zxjtestimportserviceab0.mme_ipu_vdu.dependency.test");
2380 requirementDefinitionList.add(requirementDefinition);
2381 requirements.put("tosca.capabilities.Node", requirementDefinitionList);
2382 componentInstance.setRequirements(requirements);
2383 componentInstance.setCapabilities(capabilities);
2384 componentInstance.setUniqueId("uniqueId");
2385 componentInstance.setComponentUid("componentUid");
2386 componentInstance.setName("zxjTestImportServiceAb");
2387 componentInstance.setNormalizedName("zxjTestImportServiceAb");
2388 componentInstance.setProperties(getProperties());
2389 componentInstances.add(componentInstance);
2390 return componentInstances;
2393 private CreateServiceFromYamlParameter getCsfyp() {
2394 CreateServiceFromYamlParameter csfyp = new CreateServiceFromYamlParameter();
2395 List<ArtifactDefinition> createdArtifacts = new ArrayList<>();
2396 Map<String, NodeTypeInfo> nodeTypesInfo = getNodeTypesInfo();
2398 csfyp.setNodeName("org.openecomp.resource.derivedFrom.zxjTestImportServiceAb.test");
2399 csfyp.setTopologyTemplateYaml(getMainTemplateContent("service_import_template.yml"));
2400 csfyp.setCreatedArtifacts(createdArtifacts);
2401 csfyp.setInTransaction(true);
2402 csfyp.setShouldLock(true);
2403 csfyp.setCsarInfo(getCsarInfo());
2404 csfyp.setParsedToscaYamlInfo(getParsedToscaYamlInfo());
2405 csfyp.setNodeTypesInfo(nodeTypesInfo);
2406 csfyp.setYamlName("group.yml");
2410 private ParsedToscaYamlInfo getParsedToscaYamlInfo() {
2411 ParsedToscaYamlInfo parsedToscaYamlInfo = new ParsedToscaYamlInfo();
2412 Map<String, InputDefinition> inputs = new HashMap<>();
2413 Map<String, UploadComponentInstanceInfo> instances = new HashMap<>();
2414 UploadComponentInstanceInfo uploadComponentInstanceInfo = getUploadComponentInstanceInfo();
2415 instances.put("instances", uploadComponentInstanceInfo);
2416 Map<String, GroupDefinition> groups = new HashMap<>();
2417 Map<String, PolicyDefinition> policies = new HashMap<>();
2418 parsedToscaYamlInfo.setGroups(groups);
2419 parsedToscaYamlInfo.setInputs(inputs);
2420 parsedToscaYamlInfo.setInstances(instances);
2421 parsedToscaYamlInfo.setPolicies(policies);
2422 return parsedToscaYamlInfo;
2425 String getMainTemplateContent(String fileName) {
2426 String mainTemplateContent = null;
2428 mainTemplateContent = loadFileNameToJsonString(fileName);
2429 } catch (IOException e) {
2430 e.printStackTrace();
2432 return mainTemplateContent;
2435 protected ServiceCsarInfo getCsarInfo() {
2436 String csarUuid = "0010";
2437 User user = new User("jh0003");
2440 File csarFile = new File(
2441 ServiceImportBusinessLogicTest.class.getClassLoader().getResource("csars/service-Ser09080002-csar.csar").toURI());
2442 Map<String, byte[]> csar = ZipUtils.readZip(csarFile, false);
2444 String vfReousrceName = "resouceName";
2445 String mainTemplateName = "Definitions/service_import_template.yml";
2447 Optional<String> keyOp = csar.keySet().stream().filter(k -> k.endsWith("service-Ser09080002-template.yml")).findAny();
2448 byte[] mainTemplateService = keyOp.map(csar::get).orElse(null);
2449 assertNotNull(mainTemplateService);
2450 final String mainTemplateContent = new String(mainTemplateService);
2452 return new ServiceCsarInfo(user, csarUuid, csar, vfReousrceName, mainTemplateName, mainTemplateContent, false);
2453 } catch (URISyntaxException | ZipException e) {
2459 private ImmutablePair<String, byte[]> getNodeType() {
2461 File resource = new File(
2462 ServiceImportBusinessLogicTest.class.getClassLoader().getResource("node-types/resource-Extcp-template.yml").toURI());
2463 byte[] extcpResource = Files.readAllBytes(resource.toPath());
2465 return new ImmutablePair<>("org.openecomp.resource.cp.extCP", extcpResource);
2466 } catch (URISyntaxException | IOException e) {
2472 protected CsarUtils.NonMetaArtifactInfo getNonMetaArtifactInfo() {
2473 String artifactName = "artifactName", path = "/src/test/resources/valid_vf.csar", artifactType = "AAI_SERVICE_MODEL";
2474 ArtifactGroupTypeEnum artifactGroupType = ArtifactGroupTypeEnum.TOSCA;
2475 String rootPath = System.getProperty("user.dir");
2477 byte[] data = new byte[0];
2478 path2 = Paths.get(rootPath + "/src/test/resources/valid_vf.csar");
2480 data = Files.readAllBytes(path2);
2481 } catch (IOException e) {
2482 e.printStackTrace();
2484 String artifactUniqueId = "artifactUniqueId";
2485 boolean isFromCsar = true;
2486 CsarUtils.NonMetaArtifactInfo nonMetaArtifactInfo = new CsarUtils.NonMetaArtifactInfo(artifactName,
2487 path, artifactType, artifactGroupType, data, artifactUniqueId, isFromCsar);
2488 return nonMetaArtifactInfo;
2492 protected void assertComponentException(ComponentException e, ActionStatus expectedStatus, String... variables) {
2493 ResponseFormat actualResponse = e.getResponseFormat() != null ?
2494 e.getResponseFormat() : componentsUtils.getResponseFormat(e.getActionStatus(), e.getParams());
2495 assertParseResponse(actualResponse, expectedStatus, variables);
2498 private void assertParseResponse(ResponseFormat actualResponse, ActionStatus expectedStatus, String... variables) {
2499 ResponseFormat expectedResponse = responseManager.getResponseFormat(expectedStatus, variables);
2500 assertThat(expectedResponse.getStatus()).isEqualTo(actualResponse.getStatus());
2501 assertThat(expectedResponse.getFormattedMessage()).isEqualTo(actualResponse.getFormattedMessage());