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.CapabilityTypeDefinition;
86 import org.openecomp.sdc.be.model.Component;
87 import org.openecomp.sdc.be.model.ComponentInstance;
88 import org.openecomp.sdc.be.model.ComponentInstanceInput;
89 import org.openecomp.sdc.be.model.ComponentInstanceProperty;
90 import org.openecomp.sdc.be.model.ComponentMetadataDefinition;
91 import org.openecomp.sdc.be.model.ComponentParametersView;
92 import org.openecomp.sdc.be.model.DataTypeDefinition;
93 import org.openecomp.sdc.be.model.GroupDefinition;
94 import org.openecomp.sdc.be.model.GroupTypeDefinition;
95 import org.openecomp.sdc.be.model.IPropertyInputCommon;
96 import org.openecomp.sdc.be.model.InputDefinition;
97 import org.openecomp.sdc.be.model.InterfaceDefinition;
98 import org.openecomp.sdc.be.model.LifecycleStateEnum;
99 import org.openecomp.sdc.be.model.NodeTypeInfo;
100 import org.openecomp.sdc.be.model.Operation;
101 import org.openecomp.sdc.be.model.ParsedToscaYamlInfo;
102 import org.openecomp.sdc.be.model.PolicyDefinition;
103 import org.openecomp.sdc.be.model.PropertyDefinition;
104 import org.openecomp.sdc.be.model.RequirementCapabilityRelDef;
105 import org.openecomp.sdc.be.model.RequirementDefinition;
106 import org.openecomp.sdc.be.model.Resource;
107 import org.openecomp.sdc.be.model.Service;
108 import org.openecomp.sdc.be.model.UploadComponentInstanceInfo;
109 import org.openecomp.sdc.be.model.UploadNodeFilterInfo;
110 import org.openecomp.sdc.be.model.UploadPropInfo;
111 import org.openecomp.sdc.be.model.UploadReqInfo;
112 import org.openecomp.sdc.be.model.UploadResourceInfo;
113 import org.openecomp.sdc.be.model.User;
114 import org.openecomp.sdc.be.model.cache.ApplicationDataTypeCache;
115 import org.openecomp.sdc.be.model.operations.api.ICapabilityTypeOperation;
116 import org.openecomp.sdc.be.model.operations.api.StorageOperationStatus;
117 import org.openecomp.sdc.be.model.operations.impl.ArtifactTypeOperation;
118 import org.openecomp.sdc.be.model.operations.impl.CapabilityTypeOperation;
119 import org.openecomp.sdc.be.model.operations.impl.GroupTypeOperation;
120 import org.openecomp.sdc.be.resources.data.auditing.AuditingActionEnum;
121 import org.openecomp.sdc.be.servlets.AbstractValidationsServlet;
122 import org.openecomp.sdc.be.tosca.CsarUtils;
123 import org.openecomp.sdc.be.tosca.ToscaExportHandler;
124 import org.openecomp.sdc.common.api.ArtifactGroupTypeEnum;
125 import org.openecomp.sdc.common.api.ArtifactTypeEnum;
126 import org.openecomp.sdc.common.api.Constants;
127 import org.openecomp.sdc.common.zip.ZipUtils;
128 import org.openecomp.sdc.common.zip.exception.ZipException;
129 import org.openecomp.sdc.exception.ResponseFormat;
130 import org.yaml.snakeyaml.Yaml;
132 class ServiceImportBusinessLogicTest extends ServiceImportBussinessLogicBaseTestSetup {
134 private final ArtifactDefinition artifactDefinition = mock(ArtifactDefinition.class);
135 private final ResourceImportManager resourceImportManager = mock(ResourceImportManager.class);
136 private final ServletUtils servletUtils = mock(ServletUtils.class);
137 private final AbstractValidationsServlet servlet = new ArtifactExternalServlet(userBusinessLogic,
138 componentInstanceBusinessLogic, componentsUtils, servletUtils, resourceImportManager, artifactsBusinessLogic);
139 private final ApplicationDataTypeCache applicationDataTypeCache = mock(ApplicationDataTypeCache.class);
140 private final ArtifactTypeOperation artifactTypeOperation = mock(ArtifactTypeOperation.class);
141 private final DataTypeBusinessLogic dataTypeBusinessLogic = mock(DataTypeBusinessLogic.class);
142 private final ArtifactTypeImportManager artifactTypeImportManager = mock(ArtifactTypeImportManager.class);
143 private final GroupTypeOperation groupTypeOperation = mock(GroupTypeOperation.class);
144 private final CapabilityTypeOperation capabilityTypeOperation = mock(CapabilityTypeOperation.class);
145 private final CapabilityTypeImportManager capabilityTypeImportManager = mock(CapabilityTypeImportManager.class);
148 private ServiceImportBusinessLogic sIBL;
150 public static String loadFileNameToJsonString(String fileName) throws IOException {
151 String sourceDir = "src/test/resources/normativeTypes";
152 return loadFileNameToJsonString(sourceDir, fileName);
155 private static String loadFileNameToJsonString(String sourceDir, String fileName) throws IOException {
156 java.nio.file.Path filePath = FileSystems.getDefault().getPath(sourceDir, fileName);
157 byte[] fileContent = Files.readAllBytes(filePath);
158 return new String(fileContent);
163 MockitoAnnotations.openMocks(this);
164 when(artifactDefinition.getMandatory()).thenReturn(true);
165 when(artifactDefinition.getArtifactName()).thenReturn("creatorFullName");
166 when(artifactDefinition.getArtifactType()).thenReturn("TOSCA_CSAR");
170 void testCreateService_OK() {
171 Service oldService = createServiceObject(true);
172 oldService.setComponentInstances(creatComponentInstances());
173 oldService.setComponentInstancesProperties(
174 Collections.singletonMap(COMPONENT_ID, Collections.singletonList(new ComponentInstanceProperty())));
175 String payloadName = "valid_vf";
176 Map<String, byte[]> payload = crateCsarFromPayload();
177 Service newService = createServiceObject(true);
178 newService.setComponentInstances(creatComponentInstances());
179 ComponentInstanceProperty componentInstanceProperty = new ComponentInstanceProperty();
180 componentInstanceProperty.setName("propertiesName");
181 final JSONObject jsonObject = new JSONObject();
182 jsonObject.put(ToscaGetFunctionType.GET_INPUT.getFunctionName(), "zxjTestImportServiceAb_propertiesName");
183 componentInstanceProperty.setValue(jsonObject.toJSONString());
185 Map<String, ArtifactDefinition> toscaArtifacts = new HashMap<>();
186 ArtifactDefinition artifactDef = new ArtifactDefinition();
187 String artifactUniqueId = "test_extcp_resource.assettoscatemplate";
188 artifactDef.setUniqueId(artifactUniqueId);
189 toscaArtifacts.put(ToscaExportHandler.ASSET_TOSCA_TEMPLATE, artifactDef);
190 Resource resource = new Resource();
191 String resourceUniqueId = "extcp_resource";
192 resource.setUniqueId(resourceUniqueId);
193 resource.setToscaArtifacts(toscaArtifacts);
194 ImmutablePair<String, byte[]> resourceTemplate = getNodeType();
195 String updatedNodeType = "org.openecomp.resource.cp.extCP";
197 newService.setComponentInstancesProperties(
198 Collections.singletonMap(COMPONENT_ID + "." + "zxjTestImportServiceAb", Collections.singletonList(componentInstanceProperty)));
199 newService.setProperties(getProperties());
201 when(serviceBusinessLogic.validateServiceBeforeCreate(eq(newService), any(User.class), any(AuditingActionEnum.class)))
202 .thenReturn(Either.left(newService));
203 when(toscaOperationFacade.validateCsarUuidUniqueness(anyString())).thenReturn(StorageOperationStatus.OK);
204 ServiceCsarInfo csarInfo = getCsarInfo();
205 when(csarBusinessLogic.getCsarInfo(any(Service.class), any(), any(User.class), any(Map.class), anyString())).thenReturn(csarInfo);
206 when(serviceImportParseLogic.findNodeTypesArtifactsToHandle(any(Map.class), any(CsarInfo.class), any(Service.class)))
207 .thenReturn(Either.left(new HashMap<String, EnumMap<ArtifactsBusinessLogic.ArtifactOperationEnum, List<ArtifactDefinition>>>()));
208 when(csarBusinessLogic.getParsedToscaYamlInfo(anyString(), anyString(), any(), any(CsarInfo.class), any(), any(Service.class)))
209 .thenReturn(getParsedToscaYamlInfo());
210 when(serviceBusinessLogic.lockComponentByName(newService.getSystemName(), oldService, CREATE_RESOURCE)).thenReturn(Either.left(true));
211 when(toscaOperationFacade.getLatestResourceByToscaResourceName(anyString())).thenReturn(Either.left(createOldResource()));
212 when(serviceImportParseLogic.createServiceTransaction(oldService, csarInfo.getModifier(), false)).thenReturn(newService);
213 when(serviceImportParseLogic.createInputsOnService(eq(oldService), anyMap())).thenReturn(newService);
214 Assertions.assertDoesNotThrow(() -> {
215 when(serviceImportParseLogic.createSubstitutionFilterOnService(eq(oldService), any())).thenReturn(newService);
217 when(serviceImportParseLogic.getNodeTypesFromTemplate(anyMap())).thenReturn(getNodeTypes());
218 when(serviceImportParseLogic.createNodeTypeResourceFromYaml(anyString(), any(Map.Entry.class), any(User.class), anyMap(), any(Service.class),
219 anyBoolean(), any(), anyList(), anyBoolean(), any(CsarInfo.class), anyBoolean())).thenReturn(
220 new ImmutablePair<>(new Resource(), ActionStatus.OK));
221 when(serviceImportParseLogic.getComponentWithInstancesFilter()).thenReturn(new ComponentParametersView());
222 when(toscaOperationFacade.getToscaElement(anyString(), any(ComponentParametersView.class))).thenReturn(Either.left(newService));
223 when(serviceImportParseLogic.getComponentFilterAfterCreateRelations()).thenReturn(new ComponentParametersView());
224 when(toscaOperationFacade.getToscaElement(anyString(), any(ComponentParametersView.class))).thenReturn(Either.left(newService));
225 when(serviceImportParseLogic.findAvailableRequirement(anyString(), anyString(), any(UploadComponentInstanceInfo.class),
226 any(ComponentInstance.class), anyString())).thenReturn(Either.left(new RequirementDefinition()));
227 when(serviceImportParseLogic.findAvailableCapabilityByTypeOrName(any(RequirementDefinition.class), any(ComponentInstance.class),
228 any(UploadReqInfo.class))).thenReturn(new CapabilityDefinition());
229 when(componentsUtils.getResponseFormat(eq(ActionStatus.OK), anyString())).thenReturn(new ResponseFormat(200));
230 when(toscaOperationFacade.getToscaElement(anyString())).thenReturn(Either.left(newService));
231 doNothing().when(compositionBusinessLogic).setPositionsForComponentInstances(any(Service.class), anyString());
232 when(groupBusinessLogic.validateUpdateVfGroupNames(anyMap(), anyString())).thenReturn(Either.left(new HashMap<>()));
233 when(csarArtifactsAndGroupsBusinessLogic.deleteVFModules(any(Service.class), any(CsarInfo.class), anyBoolean(), anyBoolean()))
234 .thenReturn(Either.left(newService));
235 when(serviceImportParseLogic.getServiceWithGroups(anyString())).thenReturn(newService);
236 when(mockJanusGraphDao.commit()).thenReturn(JanusGraphOperationStatus.OK);
237 when(graphLockOperation.unlockComponentByName(anyString(), anyString(), any(NodeTypeEnum.class))).thenReturn(StorageOperationStatus.OK);
238 when(serviceImportParseLogic.createOutputsOnService(any(Service.class), any(), anyString())).thenReturn(newService);
239 when(toscaOperationFacade.updateInputsToComponent(anyList(), eq(newService.getUniqueId()))).thenReturn(Either.left(new ArrayList<>()));
241 when(applicationDataTypeCache.get(any(), contains("tosca.datatypes.test_"))).thenReturn(Either.right(JanusGraphOperationStatus.NOT_FOUND));
242 DataTypeDefinition typeToBeUpdated = new DataTypeDefinition();
243 List<PropertyDefinition> properties = new ArrayList<>();
244 PropertyDefinition nameProperty = new PropertyDefinition();
245 nameProperty.setName("name");
246 nameProperty.setType("string");
247 properties.add(nameProperty);
248 PropertyDefinition versionProperty = new PropertyDefinition();
249 versionProperty.setName("version");
250 versionProperty.setType("string");
251 properties.add(versionProperty);
252 typeToBeUpdated.setProperties(properties);
253 when(applicationDataTypeCache.get(any(), eq("onap.datatypes.ToscaConceptIdentifier.datatype"))).thenReturn(Either.left(typeToBeUpdated));
254 when(applicationDataTypeCache.get(any(), matches("^((?!(tosca.datatypes.test_|onap.datatypes.ToscaConceptIdentifier)).)*$"))).thenReturn(Either.left(new DataTypeDefinition()));
256 when(artifactTypeOperation.getArtifactTypeByUid(contains("tosca.testartifacts.Name"))).thenReturn(Either.right(StorageOperationStatus.NOT_FOUND));
257 when(artifactTypeOperation.getArtifactTypeByUid(contains("tosca.artifacts"))).thenReturn(Either.left(null));
259 when(capabilityTypeOperation.getCapabilityType(anyString()))
260 .thenReturn(Either.left(new CapabilityTypeDefinition()));
261 when(capabilityTypeOperation.getCapabilityType(contains("tosca.testcapabilitytypes.Name")))
262 .thenReturn(Either.right(StorageOperationStatus.NOT_FOUND));
264 when(toscaOperationFacade.getLatestByToscaResourceName(contains("org.openecomp.resource"), isNull()))
265 .thenReturn(Either.right(StorageOperationStatus.NOT_FOUND));
266 when(toscaOperationFacade.getLatestByToscaResourceName(contains("tosca.nodes."), isNull()))
267 .thenReturn(Either.right(StorageOperationStatus.NOT_FOUND));
268 when(toscaOperationFacade.getLatestByToscaResourceName(contains(updatedNodeType), isNull())).thenReturn(Either.left(resource));
269 when(artifactsBusinessLogic.handleDownloadRequestById(resourceUniqueId, artifactUniqueId, user.getUserId(), ComponentTypeEnum.RESOURCE, null, null))
270 .thenReturn(resourceTemplate);
271 when(toscaOperationFacade.updatePropertyOfComponent(eq(oldService), any(PropertyDefinition.class))).thenReturn(Either.left(null));
272 when(toscaOperationFacade.updateComponentInstancePropsToComponent(anyMap(), anyString())).thenReturn(Either.left(null));
273 when(groupTypeOperation.getGroupTypeByUid(anyString())).thenReturn(Either.left(new GroupTypeDefinition()));
275 Service result = sIBL.createService(oldService, AuditingActionEnum.CREATE_RESOURCE, user, payload, payloadName);
276 assertNotNull(result);
277 assertNotNull(result.getComponentInstances());
278 assertEquals(1, result.getComponentInstances().size());
279 assertNotNull(result.getComponentInstances().get(0));
280 assertNotNull(result.getComponentInstances().get(0).getCapabilities());
281 assertEquals(1, result.getComponentInstances().get(0).getCapabilities().size());
282 assertNotNull(result.getComponentInstances().get(0).getRequirements());
283 assertEquals(1, result.getComponentInstances().get(0).getRequirements().size());
284 assertNotNull(result.getCategories());
285 assertEquals(1, result.getCategories().size());
287 ArgumentCaptor<String> yaml = ArgumentCaptor.forClass(String.class);
288 verify(dataTypeBusinessLogic).createDataTypeFromYaml(yaml.capture(), isNull(), anyBoolean());
289 Map<String, Object> yamlMap = new Yaml().load(yaml.getValue());
290 assertEquals(3, yamlMap.size());
291 assertNotNull(yamlMap.get("tosca.datatypes.test_a"));
292 assertNotNull(yamlMap.get("tosca.datatypes.test_b"));
293 assertNotNull(yamlMap.get("onap.datatypes.ToscaConceptIdentifier"));
295 ArgumentCaptor<String> artifactTypes = ArgumentCaptor.forClass(String.class);
296 verify(artifactTypeImportManager).createArtifactTypes(artifactTypes.capture(),isNull(), anyBoolean());
297 Map<String, Object> artifactTypesMap = new Yaml().load(artifactTypes.getValue());
298 assertEquals(1, artifactTypesMap.size());
299 assertNotNull(artifactTypesMap.get("tosca.testartifacts.Name"));
301 ArgumentCaptor<String> capabilityTypes = ArgumentCaptor.forClass(String.class);
302 verify(capabilityTypeImportManager).createCapabilityTypes(
303 capabilityTypes.capture(),
306 Map<String, Object> capabilityTypesMap = new Yaml().load(capabilityTypes.getValue());
307 assertEquals(1, capabilityTypesMap.size());
308 assertNotNull(capabilityTypesMap.get("tosca.testcapabilitytypes.Name"));
310 ArgumentCaptor<Map<String, Object>> nodeTypes = ArgumentCaptor.forClass(Map.class);
311 verify(resourceImportManager).importAllNormativeResource(nodeTypes.capture(), any(), any(), any(),
312 anyBoolean(), anyBoolean());
313 Map<String, Object> nodeTypesMap = nodeTypes.getValue();
314 Map<String, Object> newUpdatedNodeType = (Map<String, Object>) nodeTypesMap.get(updatedNodeType);
315 assertEquals(8, ((Map<String, Object>) newUpdatedNodeType.get("properties")).size());
319 void testCreateService_Fail_NotFoundNodeTypesArtifacts() {
320 Service oldService = createServiceObject(true);
321 String payloadName = "valid_vf";
322 Map<String, byte[]> payload = crateCsarFromPayload();
323 Service newService = createServiceObject(true);
325 when(serviceBusinessLogic.validateServiceBeforeCreate(any(Service.class), any(User.class), any(AuditingActionEnum.class)))
326 .thenReturn(Either.left(newService));
327 when(toscaOperationFacade.validateCsarUuidUniqueness(anyString())).thenReturn(StorageOperationStatus.OK);
328 when(csarBusinessLogic.getCsarInfo(any(Service.class), any(), any(User.class), any(Map.class), anyString())).thenReturn(getCsarInfo());
329 when(serviceImportParseLogic.findNodeTypesArtifactsToHandle(any(Map.class), any(CsarInfo.class), any(Service.class)))
330 .thenReturn(Either.right(ActionStatus.GENERAL_ERROR));
331 when(csarBusinessLogic.getParsedToscaYamlInfo(anyString(), anyString(), any(), any(CsarInfo.class), anyString(),
332 any(Service.class))).thenReturn(getParsedToscaYamlInfo());
334 Assertions.assertThrows(ComponentException.class,
335 () -> sIBL.createService(oldService, AuditingActionEnum.CREATE_RESOURCE, user, payload, payloadName));
339 void testCreateServiceFromCsar() {
340 Service oldService = createServiceObject(true);
341 String csarUUID = "valid_vf";
342 Map<String, byte[]> payload = crateCsarFromPayload();
343 ServiceCsarInfo csarInfo = getCsarInfo();
344 Map<String, EnumMap<ArtifactsBusinessLogic.ArtifactOperationEnum, List<ArtifactDefinition>>> map =
347 when(csarBusinessLogic.getCsarInfo(any(Service.class), any(), any(User.class),
348 any(Map.class), anyString())).thenReturn(csarInfo);
349 when(serviceImportParseLogic.findNodeTypesArtifactsToHandle(any(Map.class), any(CsarInfo.class),
350 any(Service.class))).thenReturn(Either.left(map));
351 Assertions.assertThrows(ComponentException.class, () -> sIBL.createServiceFromCsar(oldService,
352 user, payload, csarUUID));
356 void testCreateServiceFromYaml() {
357 Service oldService = createServiceObject(true);
358 Resource resource = createOldResource();
359 String topologyTemplateYaml = getMainTemplateContent("service_import_template.yml");
360 String yamlName = "group.yml";
361 ServiceCsarInfo csarInfo = getCsarInfo();
362 Map<String, EnumMap<ArtifactsBusinessLogic.ArtifactOperationEnum, List<ArtifactDefinition>>> nodeTypesArtifactsToCreate = new HashMap<>();
363 String nodeName = "org.openecomp.resource.derivedFrom.zxjTestImportServiceAb.test";
365 Map<String, NodeTypeInfo> nodeTypesInfo = getNodeTypesInfo();
366 Map<String, Object> map = new HashMap<>();
367 map.put("tosca_definitions_version", "123");
368 nodeTypesInfo.get(nodeName).setMappedToscaTemplate(map);
369 ParsedToscaYamlInfo parsedToscaYamlInfo = getParsedToscaYamlInfo();
370 when(toscaOperationFacade.getLatestResourceByToscaResourceName(anyString())).thenReturn(Either.left(resource));
371 when(csarBusinessLogic.getParsedToscaYamlInfo(anyString(), anyString(), any(Map.class),
372 eq(csarInfo), anyString(), any(Component.class))).thenReturn(parsedToscaYamlInfo);
373 when(serviceBusinessLogic.lockComponentByName(anyString(), any(Service.class), anyString()))
374 .thenReturn(Either.left(true));
376 Assertions.assertThrows(ComponentException.class, () -> sIBL.createServiceFromYaml(oldService,
377 topologyTemplateYaml, yamlName, nodeTypesInfo, csarInfo,
378 nodeTypesArtifactsToCreate, false, true, nodeName, user.getUserId()));
382 void testCreateServiceAndRIsFromYaml() {
383 String nodeName = "org.openecomp.resource.derivedFrom.zxjTestImportServiceAb.test";
384 Service oldService = createServiceObject(true);
385 Resource resource = createOldResource();
386 Map<String, EnumMap<ArtifactsBusinessLogic.ArtifactOperationEnum, List<ArtifactDefinition>>> nodeTypesArtifactsToCreate = new HashMap<>();
387 CreateServiceFromYamlParameter csfyp = getCsfyp();
388 Map<String, NodeTypeInfo> nodeTypesInfo = getNodeTypesInfo();
389 Map<String, Object> map = new HashMap<>();
390 map.put("tosca_definitions_version", "123");
391 nodeTypesInfo.get(nodeName).setMappedToscaTemplate(map);
392 ParsedToscaYamlInfo parsedToscaYamlInfo = getParsedToscaYamlInfo();
393 csfyp.setNodeTypesInfo(nodeTypesInfo);
394 csfyp.setParsedToscaYamlInfo(parsedToscaYamlInfo);
395 when(toscaOperationFacade.getLatestResourceByToscaResourceName(anyString())).thenReturn(Either.left(resource));
396 Assertions.assertThrows(ComponentException.class, () -> sIBL.createServiceAndRIsFromYaml(oldService,
397 false, nodeTypesArtifactsToCreate, false, true, csfyp, user.getUserId()));
401 void testCreateServiceAndRIsFromYamlShoudLook() {
402 String nodeName = "org.openecomp.resource.derivedFrom.zxjTestImportServiceAb.test";
403 Service oldService = createServiceObject(true);
404 Resource resource = createOldResource();
405 Map<String, EnumMap<ArtifactsBusinessLogic.ArtifactOperationEnum, List<ArtifactDefinition>>> nodeTypesArtifactsToCreate = new HashMap<>();
406 CreateServiceFromYamlParameter csfyp = getCsfyp();
407 Map<String, NodeTypeInfo> nodeTypesInfo = getNodeTypesInfo();
408 Map<String, Object> map = new HashMap<>();
409 map.put("tosca_definitions_version", "123");
410 nodeTypesInfo.get(nodeName).setMappedToscaTemplate(map);
411 ParsedToscaYamlInfo parsedToscaYamlInfo = getParsedToscaYamlInfo();
412 csfyp.setNodeTypesInfo(nodeTypesInfo);
413 csfyp.setParsedToscaYamlInfo(parsedToscaYamlInfo);
414 when(toscaOperationFacade.getLatestResourceByToscaResourceName(anyString())).thenReturn(Either.left(resource));
415 Assertions.assertThrows(ComponentException.class, () -> sIBL.createServiceAndRIsFromYaml(oldService,
416 false, nodeTypesArtifactsToCreate, false, true, csfyp, user.getUserId()));
420 void testCreateOrUpdateArtifacts() {
421 ArtifactsBusinessLogic.ArtifactOperationEnum operation = ArtifactsBusinessLogic.ArtifactOperationEnum.UPDATE;
422 List<ArtifactDefinition> createdArtifacts = new ArrayList<>();
423 String yamlFileName = "group.yml";
424 CsarInfo csarInfo = getCsarInfo();
425 Resource preparedResource = createParseResourceObject(false);
426 preparedResource.setResourceType(ResourceTypeEnum.VF);
427 String nodeName = "org.openecomp.resource.derivedFrom.zxjTestImportServiceAb.test";
428 Map<String, EnumMap<ArtifactsBusinessLogic.ArtifactOperationEnum, List<ArtifactDefinition>>> nodeTypesArtifactsToHandle = new HashMap<>();
429 EnumMap<ArtifactsBusinessLogic.ArtifactOperationEnum, List<ArtifactDefinition>> enumListEnumMap =
430 new EnumMap<>(ArtifactsBusinessLogic.ArtifactOperationEnum.class);
431 List<ArtifactDefinition> artifactDefinitions = new ArrayList<>();
432 ArtifactDefinition artifactDefinition = new ArtifactDefinition();
433 artifactDefinition.setArtifactName("artifactName");
434 artifactDefinitions.add(artifactDefinition);
435 enumListEnumMap.put(ArtifactsBusinessLogic.ArtifactOperationEnum.CREATE,
436 artifactDefinitions);
437 nodeTypesArtifactsToHandle.put(nodeName, enumListEnumMap);
438 NodeTypeInfoToUpdateArtifacts nodeTypeInfoToUpdateArtifacts = new NodeTypeInfoToUpdateArtifacts(nodeName, nodeTypesArtifactsToHandle);
439 nodeTypeInfoToUpdateArtifacts.setNodeName(nodeName);
440 nodeTypeInfoToUpdateArtifacts.setNodeTypesArtifactsToHandle(nodeTypesArtifactsToHandle);
442 Assertions.assertNotNull(
443 sIBL.createOrUpdateArtifacts(operation, createdArtifacts, yamlFileName, csarInfo,
444 preparedResource, nodeTypeInfoToUpdateArtifacts, true, true)
449 void testHandleVfCsarArtifacts() {
450 Resource resource = createParseResourceObject(true);
451 Map<String, ArtifactDefinition> deploymentArtifacts = new HashMap<>();
452 ArtifactDefinition artifactDefinition = new ArtifactDefinition();
453 artifactDefinition.setArtifactName(Constants.VENDOR_LICENSE_MODEL);
454 artifactDefinition.setUniqueId("uniqueId");
455 deploymentArtifacts.put("deploymentArtifacts", artifactDefinition);
456 resource.setDeploymentArtifacts(deploymentArtifacts);
457 CsarInfo csarInfo = getCsarInfo();
458 Map<String, byte[]> csar = new HashMap<>();
459 String csarKey = CsarUtils.ARTIFACTS_PATH + "HEAT.meta";
460 byte[] artifactsMetaBytes = "src/test/resources/normativeTypes/valid_vf.csar".getBytes();
461 csar.put(csarKey, artifactsMetaBytes);
462 csarInfo.setCsar(csar);
463 List<ArtifactDefinition> createdArtifacts = new ArrayList<>();
464 ArtifactOperationInfo artifactOperation = new ArtifactOperationInfo(true, true, ArtifactsBusinessLogic.ArtifactOperationEnum.CREATE);
465 when(toscaOperationFacade.getToscaElement(anyString())).thenReturn(Either.left(resource));
466 when(csarArtifactsAndGroupsBusinessLogic
467 .createResourceArtifactsFromCsar(any(CsarInfo.class), any(Resource.class), anyString(), anyString(),
468 anyList())).thenReturn(Either.left(resource));
469 Assertions.assertNotNull(
470 sIBL.handleVfCsarArtifacts(resource,
471 csarInfo, createdArtifacts, artifactOperation, true, true));
475 void testHandleVfCsarArtifactsGetToscaElement() {
476 Resource resource = createParseResourceObject(true);
477 Map<String, ArtifactDefinition> deploymentArtifacts = new HashMap<>();
478 ArtifactDefinition artifactDefinition = new ArtifactDefinition();
479 artifactDefinition.setArtifactName(Constants.VENDOR_LICENSE_MODEL);
480 artifactDefinition.setUniqueId("uniqueId");
481 deploymentArtifacts.put("deploymentArtifacts", artifactDefinition);
482 resource.setDeploymentArtifacts(deploymentArtifacts);
483 CsarInfo csarInfo = getCsarInfo();
484 Map<String, byte[]> csar = new HashMap<>();
485 String csarKey = CsarUtils.ARTIFACTS_PATH + "HEAT.meta";
486 byte[] artifactsMetaBytes = "src/test/resources/normativeTypes/valid_vf.csar".getBytes();
487 csar.put(csarKey, artifactsMetaBytes);
488 csarInfo.setCsar(csar);
489 List<ArtifactDefinition> createdArtifacts = new ArrayList<>();
490 ArtifactOperationInfo artifactOperation = new ArtifactOperationInfo(true, true, ArtifactsBusinessLogic.ArtifactOperationEnum.CREATE);
491 when(toscaOperationFacade.getToscaElement(anyString())).thenReturn(Either.left(resource));
492 when(csarArtifactsAndGroupsBusinessLogic
493 .createResourceArtifactsFromCsar(any(CsarInfo.class), any(Resource.class), anyString(), anyString(),
494 anyList())).thenReturn(Either.left(resource));
495 Assertions.assertNotNull(
496 sIBL.handleVfCsarArtifacts(resource,
497 csarInfo, createdArtifacts, artifactOperation, true, true));
501 void testCreateOrUpdateSingleNonMetaArtifactToComstants() {
502 Resource resource = createParseResourceObject(false);
503 CsarInfo csarInfo = getCsarInfo();
504 ArtifactOperationInfo artifactOperation = new ArtifactOperationInfo(true, true, ArtifactsBusinessLogic.ArtifactOperationEnum.UPDATE);
505 Map<String, ArtifactDefinition> deploymentArtifacts = new HashMap<>();
506 ArtifactDefinition artifactDefinition = new ArtifactDefinition();
507 artifactDefinition.setArtifactName("artifactDefinition");
508 deploymentArtifacts.put("deploymentArtifacts", artifactDefinition);
509 resource.setDeploymentArtifacts(deploymentArtifacts);
510 Assertions.assertNotNull(resource);
511 Assertions.assertNotNull(csarInfo);
512 sIBL.createOrUpdateSingleNonMetaArtifactToComstants(resource, csarInfo, artifactOperation, true, true);
517 void testCreateOrUpdateNonMetaArtifacts() {
518 CsarInfo csarInfo = getCsarInfo();
519 Resource resource = createParseResourceObject(false);
520 List<ArtifactDefinition> createdArtifacts = new ArrayList<>();
521 ArtifactOperationInfo artifactOperation = new ArtifactOperationInfo(true, true, ArtifactsBusinessLogic.ArtifactOperationEnum.UPDATE);
523 Either<Resource, ResponseFormat> result = sIBL.createOrUpdateNonMetaArtifacts(csarInfo, resource,
524 createdArtifacts, true, true, artifactOperation);
525 assertEquals(result.left().value(), resource);
529 void testFindVfCsarArtifactsToHandle() {
530 Resource resource = createParseResourceObject(false);
531 Map<String, ArtifactDefinition> deploymentArtifacts = new HashMap<>();
532 ArtifactDefinition artifactDefinition = new ArtifactDefinition();
533 artifactDefinition.setArtifactName("artifactDefinition");
534 deploymentArtifacts.put("deploymentArtifacts", artifactDefinition);
535 Map<String, ArtifactDefinition> artifacts = new HashMap<>();
536 artifacts.put("artifacts", artifactDefinition);
537 List<GroupDefinition> groups = new ArrayList<>();
538 GroupDefinition groupDefinition = new GroupDefinition();
539 groupDefinition.setUniqueId("groupDefinitionUniqueId");
540 groupDefinition.setName("groupDefinition");
541 groups.add(groupDefinition);
542 resource.setDeploymentArtifacts(deploymentArtifacts);
543 resource.setArtifacts(artifacts);
544 resource.setGroups(groups);
545 List<CsarUtils.NonMetaArtifactInfo> artifactPathAndNameList = new ArrayList<>();
547 Either<EnumMap<ArtifactsBusinessLogic.ArtifactOperationEnum, List<CsarUtils.NonMetaArtifactInfo>>,
548 ResponseFormat> result = sIBL.findVfCsarArtifactsToHandle(resource, artifactPathAndNameList, user);
549 assertNotNull(result.left().value());
553 void testOrganizeVfCsarArtifactsByArtifactOperation() {
554 List<CsarUtils.NonMetaArtifactInfo> artifactPathAndNameList = new ArrayList<>();
555 artifactPathAndNameList.add(getNonMetaArtifactInfo());
556 List<ArtifactDefinition> existingArtifactsToHandle = new ArrayList<>();
557 ArtifactDefinition artifactDefinition = new ArtifactDefinition();
558 artifactDefinition.setArtifactName("artifactName");
559 artifactDefinition.setArtifactType(ArtifactTypeEnum.AAI_SERVICE_MODEL.name());
560 artifactDefinition.setArtifactChecksum("artifactChecksum");
561 existingArtifactsToHandle.add(artifactDefinition);
562 Resource resource = createParseResourceObject(false);
564 Either<EnumMap<ArtifactsBusinessLogic.ArtifactOperationEnum, List<CsarUtils.NonMetaArtifactInfo>>, ResponseFormat>
565 enumMapResponseFormatEither = sIBL.organizeVfCsarArtifactsByArtifactOperation(artifactPathAndNameList,
566 existingArtifactsToHandle,
568 assertNotNull(enumMapResponseFormatEither.left().value());
572 void testOrganizeVfCsarArtifactsByArtifactOperationElse() {
573 List<CsarUtils.NonMetaArtifactInfo> artifactPathAndNameList = new ArrayList<>();
574 artifactPathAndNameList.add(getNonMetaArtifactInfo());
575 List<ArtifactDefinition> existingArtifactsToHandle = new ArrayList<>();
576 ArtifactDefinition artifactDefinition = new ArtifactDefinition();
577 artifactDefinition.setArtifactName("artifactName");
578 artifactDefinition.setArtifactType(ArtifactTypeEnum.AAI_VF_MODEL.name());
579 artifactDefinition.setArtifactChecksum("artifactChecksum");
580 existingArtifactsToHandle.add(artifactDefinition);
581 Resource resource = createParseResourceObject(false);
582 Assertions.assertNotNull(
583 sIBL.organizeVfCsarArtifactsByArtifactOperation(artifactPathAndNameList, existingArtifactsToHandle, resource,
588 void testProcessCsarArtifacts() {
589 CsarInfo csarInfo = getCsarInfo();
590 Resource resource = createParseResourceObject(false);
591 List<ArtifactDefinition> createdArtifacts = new ArrayList<>();
592 Either<Resource, ResponseFormat> resStatus = Either.left(resource);
593 List<CsarUtils.NonMetaArtifactInfo> artifactPathAndNameList = new ArrayList<>();
594 artifactPathAndNameList.add(getNonMetaArtifactInfo());
595 EnumMap<ArtifactsBusinessLogic.ArtifactOperationEnum, List<CsarUtils.NonMetaArtifactInfo>> vfCsarArtifactsToHandle = new
596 EnumMap<>(ArtifactsBusinessLogic.ArtifactOperationEnum.class);
597 vfCsarArtifactsToHandle.put(ArtifactsBusinessLogic.ArtifactOperationEnum.CREATE, artifactPathAndNameList);
598 Assertions.assertNotNull(
599 sIBL.processCsarArtifacts(csarInfo,
600 resource, createdArtifacts, true, true, resStatus, vfCsarArtifactsToHandle));
604 void testCreateOrUpdateSingleNonMetaArtifact() {
605 Resource resource = createParseResourceObject(false);
606 CsarInfo csarInfo = getCsarInfo();
607 Map<String, byte[]> csar = csarInfo.getCsar();
608 String rootPath = System.getProperty("user.dir");
610 byte[] data = new byte[0];
611 path = Paths.get(rootPath + "/src/test/resources/valid_vf.csar");
613 data = Files.readAllBytes(path);
614 } catch (IOException e) {
617 csar.put("valid_vf.csar", data);
618 String artifactPath = "valid_vf.csar", artifactFileName = "", artifactType = "";
619 ArtifactGroupTypeEnum artifactGroupType = ArtifactGroupTypeEnum.TOSCA;
620 String artifactLabel = "", artifactDisplayName = "", artifactDescription = "", artifactId = "artifactId";
621 ArtifactOperationInfo artifactOperation = new ArtifactOperationInfo(true, true, ArtifactsBusinessLogic.ArtifactOperationEnum.UPDATE);
622 List<ArtifactDefinition> createdArtifacts = new ArrayList<>();
623 ArtifactDefinition artifactDefinition = new ArtifactDefinition();
624 artifactDefinition.setArtifactName("artifactName");
625 Either<ArtifactDefinition, Operation> artifactDefinitionOperationEither = Either.left(artifactDefinition);
626 when(csarArtifactsAndGroupsBusinessLogic.createOrUpdateCsarArtifactFromJson(any(Resource.class), any(User.class),
627 any(Map.class), any(ArtifactOperationInfo.class))).thenReturn(Either.left(artifactDefinitionOperationEither));
628 when(artifactsBusinessLogic.handleDelete(anyString(), anyString(), any(User.class), any(Component.class), anyBoolean(), anyBoolean()))
629 .thenReturn(Either.left(artifactDefinition));
630 Assertions.assertNotNull(
631 sIBL.createOrUpdateSingleNonMetaArtifact(resource, csarInfo, artifactPath,
632 artifactFileName, artifactType, artifactGroupType, artifactLabel,
633 artifactDisplayName, artifactDescription, artifactId, artifactOperation,
634 createdArtifacts, true, true, true));
638 void testCreateOrUpdateServiceArtifacts() throws IOException {
639 ArtifactsBusinessLogic.ArtifactOperationEnum operation = ArtifactsBusinessLogic.ArtifactOperationEnum.UPDATE;
640 List<ArtifactDefinition> createdArtifacts = new ArrayList<>();
641 String yamlFileName = "group.yml";
642 CsarInfo csarInfo = getCsarInfo();
643 Map<String, byte[]> csar = new HashMap<>();
644 String csarKey = CsarUtils.ARTIFACTS_PATH + "HEAT.meta";
645 byte[] artifactsMetaBytes = "src/test/resources/normativeTypes/valid_vf.csar".getBytes();
646 csar.put(csarKey, artifactsMetaBytes);
647 csarInfo.setCsar(csar);
648 Service preparedService = createServiceObject(true);
649 Map<String, ArtifactDefinition> deploymentArtifacts = new HashMap<>();
650 ArtifactDefinition artifactDefinition = new ArtifactDefinition();
651 artifactDefinition.setArtifactName("artifactDefinition");
652 deploymentArtifacts.put("deploymentArtifacts", artifactDefinition);
653 preparedService.setDeploymentArtifacts(deploymentArtifacts);
654 String nodeName = "org.openecomp.resource.derivedFrom.zxjTestImportServiceAb.test";
655 Map<String, EnumMap<ArtifactsBusinessLogic.ArtifactOperationEnum, List<ArtifactDefinition>>> nodeTypesArtifactsToHandle = new HashMap<>();
656 NodeTypeInfoToUpdateArtifacts nodeTypeInfoToUpdateArtifacts = new NodeTypeInfoToUpdateArtifacts(nodeName, nodeTypesArtifactsToHandle);
658 when(toscaOperationFacade.getToscaElement(anyString())).thenReturn(Either.left(createServiceObject(true)));
659 when(csarArtifactsAndGroupsBusinessLogic.updateResourceArtifactsFromCsar(any(CsarInfo.class), any(Service.class),
660 anyString(), anyString(), anyList(), anyBoolean(), anyBoolean())).thenReturn(Either.left(preparedService));
661 Assertions.assertNotNull(
662 sIBL.createOrUpdateArtifacts(operation, createdArtifacts, yamlFileName, csarInfo,
663 preparedService, nodeTypeInfoToUpdateArtifacts, true, true));
667 void testHandleVfCsarServiceArtifacts() {
668 Service service = createServiceObject(true);
669 Map<String, ArtifactDefinition> deploymentArtifacts = new HashMap<>();
670 ArtifactDefinition artifactDefinition = new ArtifactDefinition();
671 artifactDefinition.setArtifactName(Constants.VENDOR_LICENSE_MODEL);
672 artifactDefinition.setUniqueId("uniqueId");
673 deploymentArtifacts.put("deploymentArtifacts", artifactDefinition);
674 service.setDeploymentArtifacts(deploymentArtifacts);
675 CsarInfo csarInfo = getCsarInfo();
676 List<ArtifactDefinition> createdArtifacts = new ArrayList<>();
677 ArtifactOperationInfo artifactOperation = new ArtifactOperationInfo(true, true, ArtifactsBusinessLogic.ArtifactOperationEnum.CREATE);
678 when(toscaOperationFacade.getToscaElement(anyString())).thenReturn(Either.left(service));
679 when(csarArtifactsAndGroupsBusinessLogic.deleteVFModules(any(Service.class), any(CsarInfo.class), anyBoolean(), anyBoolean())).thenReturn(
680 Either.left(service));
681 Assertions.assertNotNull(
682 sIBL.handleVfCsarArtifacts(service, csarInfo, createdArtifacts, artifactOperation, true, true));
686 void testHandleVfCsarServiceArtifactsGetToscaElement() throws IOException {
687 Service service = createServiceObject(true);
688 Map<String, ArtifactDefinition> deploymentArtifacts = new HashMap<>();
689 ArtifactDefinition artifactDefinition = new ArtifactDefinition();
690 artifactDefinition.setArtifactName(Constants.VENDOR_LICENSE_MODEL);
691 artifactDefinition.setUniqueId("uniqueId");
692 deploymentArtifacts.put("deploymentArtifacts", artifactDefinition);
693 service.setDeploymentArtifacts(deploymentArtifacts);
694 CsarInfo csarInfo = getCsarInfo();
695 Map<String, byte[]> csar = new HashMap<>();
696 String csarKey = CsarUtils.ARTIFACTS_PATH + "HEAT.meta";
697 byte[] artifactsMetaBytes = "src/test/resources/normativeTypes/valid_vf.csar".getBytes();
698 csar.put(csarKey, artifactsMetaBytes);
699 csarInfo.setCsar(csar);
700 List<ArtifactDefinition> createdArtifacts = new ArrayList<>();
701 ArtifactOperationInfo artifactOperation = new ArtifactOperationInfo(true, true, ArtifactsBusinessLogic.ArtifactOperationEnum.CREATE);
702 when(toscaOperationFacade.getToscaElement(anyString())).thenReturn(Either.left(service));
703 when(csarArtifactsAndGroupsBusinessLogic.createResourceArtifactsFromCsar(any(CsarInfo.class), any(Service.class),
704 anyString(), anyString(), anyList())).thenReturn(Either.left(service));
705 Assertions.assertNotNull(
706 sIBL.handleVfCsarArtifacts(service,
707 csarInfo, createdArtifacts, artifactOperation, true, true));
711 void testCreateOrUpdateNonMetaServiceArtifacts() {
712 CsarInfo csarInfo = getCsarInfo();
713 Service service = createServiceObject(true);
714 List<ArtifactDefinition> createdArtifacts = new ArrayList<>();
715 ArtifactOperationInfo artifactOperation = new ArtifactOperationInfo(true, true, ArtifactsBusinessLogic.ArtifactOperationEnum.CREATE);
717 Either<Service, ResponseFormat> result = sIBL.createOrUpdateNonMetaArtifacts(csarInfo,
718 service, createdArtifacts, true, true, artifactOperation);
719 assertEquals(result.left().value(), service);
723 void testFindServiceCsarArtifactsToHandle() {
724 Service service = createServiceObject(true);
725 Map<String, ArtifactDefinition> deploymentArtifacts = new HashMap<>();
726 ArtifactDefinition artifactDefinition = new ArtifactDefinition();
727 artifactDefinition.setArtifactName("artifactDefinition");
728 deploymentArtifacts.put("deploymentArtifacts", artifactDefinition);
729 Map<String, ArtifactDefinition> artifacts = new HashMap<>();
730 artifacts.put("artifacts", artifactDefinition);
731 List<GroupDefinition> groups = new ArrayList<>();
732 GroupDefinition groupDefinition = new GroupDefinition();
733 groupDefinition.setUniqueId("groupDefinitionUniqueId");
734 groupDefinition.setName("groupDefinition");
735 groups.add(groupDefinition);
736 service.setDeploymentArtifacts(deploymentArtifacts);
737 service.setArtifacts(artifacts);
738 service.setGroups(groups);
739 List<CsarUtils.NonMetaArtifactInfo> artifactPathAndNameList = new ArrayList<>();
741 Either<EnumMap<ArtifactsBusinessLogic.ArtifactOperationEnum, List<CsarUtils.NonMetaArtifactInfo>>,
742 ResponseFormat> result = sIBL.findVfCsarArtifactsToHandle(service, artifactPathAndNameList, user);
743 assertNotNull(result.left().value());
747 void testOrganizeVfCsarArtifactsByServiceArtifactOperation() {
748 List<CsarUtils.NonMetaArtifactInfo> artifactPathAndNameList = new ArrayList<>();
749 artifactPathAndNameList.add(getNonMetaArtifactInfo());
750 List<ArtifactDefinition> existingArtifactsToHandle = new ArrayList<>();
751 ArtifactDefinition artifactDefinition = new ArtifactDefinition();
752 artifactDefinition.setArtifactName("artifactName");
753 artifactDefinition.setArtifactType(ArtifactTypeEnum.AAI_SERVICE_MODEL.name());
754 artifactDefinition.setArtifactChecksum("artifactChecksum");
755 existingArtifactsToHandle.add(artifactDefinition);
756 Service service = createServiceObject(true);
758 Either<EnumMap<ArtifactsBusinessLogic.ArtifactOperationEnum, List<CsarUtils.NonMetaArtifactInfo>>, ResponseFormat>
759 enumMapResponseFormatEither = sIBL.organizeVfCsarArtifactsByArtifactOperation(artifactPathAndNameList,
760 existingArtifactsToHandle, service, user);
761 assertNotNull(enumMapResponseFormatEither.left().value());
765 void testOrganizeVfCsarArtifactsByServiceArtifactOperationElse() {
766 List<CsarUtils.NonMetaArtifactInfo> artifactPathAndNameList = new ArrayList<>();
767 artifactPathAndNameList.add(getNonMetaArtifactInfo());
768 List<ArtifactDefinition> existingArtifactsToHandle = new ArrayList<>();
769 ArtifactDefinition artifactDefinition = new ArtifactDefinition();
770 artifactDefinition.setArtifactName("artifactName");
771 artifactDefinition.setArtifactType(ArtifactTypeEnum.AAI_VF_MODEL.name());
772 artifactDefinition.setArtifactChecksum("artifactChecksum");
773 existingArtifactsToHandle.add(artifactDefinition);
774 Service service = createServiceObject(true);
775 Assertions.assertNotNull(
776 sIBL.organizeVfCsarArtifactsByArtifactOperation(artifactPathAndNameList, existingArtifactsToHandle, service, user));
781 void testProcessServiceCsarArtifacts() {
782 CsarInfo csarInfo = getCsarInfo();
783 Service service = createServiceObject(true);
784 List<ArtifactDefinition> createdArtifacts = new ArrayList<>();
785 Either<Service, ResponseFormat> resStatus = Either.left(service);
786 EnumMap<ArtifactsBusinessLogic.ArtifactOperationEnum, List<CsarUtils.NonMetaArtifactInfo>> vfCsarArtifactsToHandle = new
787 EnumMap<>(ArtifactsBusinessLogic.ArtifactOperationEnum.class);
788 List<CsarUtils.NonMetaArtifactInfo> objects = new ArrayList<>();
789 objects.add(getNonMetaArtifactInfo());
790 vfCsarArtifactsToHandle.put(ArtifactsBusinessLogic.ArtifactOperationEnum.CREATE, objects);
791 Assertions.assertNotNull(
792 sIBL.processCsarArtifacts(csarInfo, service, createdArtifacts, true, true, resStatus, vfCsarArtifactsToHandle));
796 void testGetValidArtifactNames() {
797 CsarInfo csarInfo = getCsarInfo();
798 Map<String, Set<List<String>>> collectedWarningMessages = new HashMap<>();
799 Either<List<CsarUtils.NonMetaArtifactInfo>, String> result = sIBL.getValidArtifactNames(csarInfo,
800 collectedWarningMessages);
801 assertNotNull(result.left().value());
805 void testCreateOrUpdateSingleNonMetaServiceArtifact() {
806 Service service = createServiceObject(true);
807 CsarInfo csarInfo = getCsarInfo();
808 Map<String, byte[]> csar = csarInfo.getCsar();
809 String rootPath = System.getProperty("user.dir");
811 byte[] data = new byte[0];
812 path = Paths.get(rootPath + "/src/test/resources/valid_vf.csar");
814 data = Files.readAllBytes(path);
815 } catch (IOException e) {
818 csar.put("valid_vf.csar", data);
819 csarInfo.setCsar(csar);
820 String artifactPath = "valid_vf.csar", artifactFileName = "", artifactType = "";
821 ArtifactGroupTypeEnum artifactGroupType = ArtifactGroupTypeEnum.TOSCA;
822 String artifactLabel = "", artifactDisplayName = "", artifactDescription = "", artifactId = "artifactId";
823 ArtifactOperationInfo artifactOperation = new ArtifactOperationInfo(true, true, ArtifactsBusinessLogic.ArtifactOperationEnum.UPDATE);
824 List<ArtifactDefinition> createdArtifacts = new ArrayList<>();
825 ArtifactDefinition artifactDefinition = new ArtifactDefinition();
826 artifactDefinition.setArtifactName("artifactName");
827 Either<ArtifactDefinition, Operation> artifactDefinitionOperationEither = Either.left(artifactDefinition);
828 when(csarArtifactsAndGroupsBusinessLogic.createOrUpdateCsarArtifactFromJson(any(Service.class), any(User.class),
829 anyMap(), any(ArtifactOperationInfo.class))).thenReturn(Either.left(artifactDefinitionOperationEither));
830 when(artifactsBusinessLogic.handleDelete(anyString(), anyString(), any(User.class), any(Component.class), anyBoolean(), anyBoolean()))
831 .thenReturn(Either.left(artifactDefinition));
832 Assertions.assertNotNull(
833 sIBL.createOrUpdateSingleNonMetaArtifact(service, csarInfo, artifactPath, artifactFileName,
834 artifactType, artifactGroupType, artifactLabel, artifactDisplayName,
835 artifactDescription, artifactId, artifactOperation, createdArtifacts,
840 void testCreateOrUpdateSingleNonMetaServiceArtifactNull() {
841 Service service = createServiceObject(true);
842 CsarInfo csarInfo = getCsarInfo();
843 String artifactPath = "valid_vf.csar", artifactFileName = "", artifactType = "";
844 ArtifactGroupTypeEnum artifactGroupType = ArtifactGroupTypeEnum.TOSCA;
845 String artifactLabel = "", artifactDisplayName = "", artifactDescription = "", artifactId = "artifactId";
846 ArtifactOperationInfo artifactOperation = new ArtifactOperationInfo(true, true, ArtifactsBusinessLogic.ArtifactOperationEnum.UPDATE);
847 List<ArtifactDefinition> createdArtifacts = new ArrayList<>();
848 when(artifactsBusinessLogic.handleDelete(anyString(), anyString(), any(User.class), any(Component.class), anyBoolean(), anyBoolean()))
849 .thenReturn(Either.left(artifactDefinition));
850 Assertions.assertNotNull(
851 sIBL.createOrUpdateSingleNonMetaArtifact(service, csarInfo, artifactPath, artifactFileName,
852 artifactType, artifactGroupType, artifactLabel, artifactDisplayName,
853 artifactDescription, artifactId, artifactOperation, createdArtifacts,
858 void testCreateGroupsOnResource() {
859 Service service = createServiceObject(true);
860 Map<String, GroupDefinition> groups = new HashMap<>();
861 Assertions.assertNotNull(sIBL.createGroupsOnResource(service, groups));
865 void testCreateGroupsOnResourceNull() {
866 Service service = createServiceObject(true);
867 Map<String, GroupDefinition> groups = new HashMap<>();
868 Assertions.assertNotNull(
869 sIBL.createGroupsOnResource(service, groups));
873 void testUpdateGroupsMembersUsingResource() {
874 Service service = createServiceObject(true);
875 Map<String, GroupDefinition> groups = getGroups();
877 Assertions.assertNotNull(
878 sIBL.updateGroupsMembersUsingResource(groups, service));
882 void testUpdateGroupsMembersUsingResource_left() {
883 Service service = createServiceObject(true);
884 Map<String, GroupDefinition> groups = getGroups();
886 Assertions.assertNotNull(
887 sIBL.updateGroupsMembersUsingResource(groups, service));
891 void testCreateRIAndRelationsFromResourceYaml() throws IOException {
892 String nodeName = "org.openecomp.resource.derivedFrom.zxjTestImportServiceAb.test";
893 String yamlName = "group.yml";
894 Resource resource = createParseResourceObject(true);
895 Map<String, UploadComponentInstanceInfo> uploadComponentInstanceInfoMap = new HashMap<>();
896 String topologyTemplateYaml = getMainTemplateContent();
897 List<ArtifactDefinition> nodeTypesNewCreatedArtifacts = new ArrayList<>();
899 Map<String, NodeTypeInfo> nodeTypesInfo = getNodeTypesInfo();
900 Map<String, Object> map = new HashMap<>();
901 map.put("tosca_definitions_version", "123");
902 nodeTypesInfo.get(nodeName).setMappedToscaTemplate(map);
904 CsarInfo csarInfo = getCsarInfo();
905 Map<String, EnumMap<ArtifactsBusinessLogic.ArtifactOperationEnum, List<ArtifactDefinition>>> nodeTypesArtifactsToCreate = new HashMap<>();
907 Assertions.assertThrows(ComponentException.class, () -> sIBL
908 .createRIAndRelationsFromYaml(yamlName, resource, uploadComponentInstanceInfoMap,
909 topologyTemplateYaml, nodeTypesNewCreatedArtifacts, nodeTypesInfo,
910 csarInfo, nodeTypesArtifactsToCreate, nodeName));
914 void testCreateResourceInstancesRelations() {
915 String yamlName = "group.yml";
916 Resource resource = createParseResourceObject(true);
917 resource.setComponentInstances(creatComponentInstances());
918 resource.setResourceType(ResourceTypeEnum.VF);
919 Map<String, UploadComponentInstanceInfo> uploadResInstancesMap = new HashMap<>();
920 uploadResInstancesMap.put("uploadResInstancesMap", getUploadComponentInstanceInfo());
921 when(serviceImportParseLogic.getResourceAfterCreateRelations(any(Resource.class))).thenReturn(resource);
922 when(toscaOperationFacade.getToscaFullElement(anyString())).thenReturn(Either.left(resource));
923 Assertions.assertThrows(ComponentException.class, () -> sIBL
924 .createResourceInstancesRelations(user, yamlName, resource, uploadResInstancesMap));
928 void testCreateResourceInstancesRelations_Empty() {
929 String yamlName = "group.yml";
930 Resource resource = createParseResourceObject(true);
931 resource.setComponentInstances(creatComponentInstances());
932 resource.setResourceType(ResourceTypeEnum.VF);
933 Map<String, UploadComponentInstanceInfo> uploadResInstancesMap = new HashMap<>();
934 uploadResInstancesMap.put("uploadResInstancesMap", getUploadComponentInstanceInfo());
935 when(serviceImportParseLogic.getResourceAfterCreateRelations(any(Resource.class))).thenReturn(resource);
936 when(toscaOperationFacade.getToscaFullElement(anyString())).thenReturn(Either.left(resource));
937 Assertions.assertThrows(ComponentException.class, () -> sIBL
938 .createResourceInstancesRelations(user, yamlName, resource, uploadResInstancesMap));
942 void testProcessComponentInstance1() {
943 String yamlName = "group.yml";
944 Resource resource = createParseResourceObject(true);
945 Resource originResource = createParseResourceObject(false);
946 originResource.setResourceType(ResourceTypeEnum.VF);
947 List<ComponentInstance> componentInstancesList = creatComponentInstances();
948 Map<String, DataTypeDefinition> dataTypeDefinitionMap = new HashMap<>();
949 DataTypeDefinition dataTypeDefinition = new DataTypeDefinition();
950 dataTypeDefinition.setName("dataTypeDefinitionName");
951 dataTypeDefinitionMap.put("dataTypeDefinitionMap", dataTypeDefinition);
952 Either<Map<String, DataTypeDefinition>, JanusGraphOperationStatus> allDataTypes = Either.left(dataTypeDefinitionMap);
953 Map<String, List<ComponentInstanceProperty>> instProperties = new HashMap<>();
954 Map<ComponentInstance, Map<String, List<CapabilityDefinition>>> instCapabilties = new HashMap<>();
955 Map<ComponentInstance, Map<String, List<RequirementDefinition>>> instRequirements = new HashMap<>();
956 Map<String, Map<String, ArtifactDefinition>> instDeploymentArtifacts = new HashMap<>();
957 Map<String, Map<String, ArtifactDefinition>> instArtifacts = new HashMap<>();
958 Map<String, List<AttributeDefinition>> instAttributes = new HashMap<>();
959 Map<String, UploadNodeFilterInfo> instNodeFilter = new HashMap<>();
960 Map<String, Resource> originCompMap = new HashMap<>();
961 originCompMap.put("componentUid", originResource);
962 Map<String, List<ComponentInstanceInput>> instInputs = new HashMap<>();
963 UploadComponentInstanceInfo uploadComponentInstanceInfo = new UploadComponentInstanceInfo();
964 uploadComponentInstanceInfo.setName("zxjTestImportServiceAb");
965 Assertions.assertNotNull(resource);
966 Assertions.assertNotNull(yamlName);
967 sIBL.processComponentInstance(yamlName, resource, componentInstancesList, allDataTypes.left().value(), instProperties,
968 instCapabilties, instRequirements, instDeploymentArtifacts, instArtifacts, instAttributes,
969 originCompMap, instInputs, instNodeFilter, null, uploadComponentInstanceInfo);
973 void testProcessComponentInstance_null() {
974 String yamlName = "group.yml";
975 Resource resource = createParseResourceObject(true);
976 Resource originResource = createParseResourceObject(false);
977 List<ComponentInstance> componentInstancesList = creatComponentInstances();
978 Either<Map<String, DataTypeDefinition>, JanusGraphOperationStatus> allDataTypes = null;
979 Map<String, List<ComponentInstanceProperty>> instProperties = new HashMap<>();
980 Map<ComponentInstance, Map<String, List<CapabilityDefinition>>> instCapabilties = new HashMap<>();
981 Map<ComponentInstance, Map<String, List<RequirementDefinition>>> instRequirements = new HashMap<>();
982 Map<String, Map<String, ArtifactDefinition>> instDeploymentArtifacts = new HashMap<>();
983 Map<String, Map<String, ArtifactDefinition>> instArtifacts = new HashMap<>();
984 Map<String, List<AttributeDefinition>> instAttributes = new HashMap<>();
985 Map<String, Resource> originCompMap = new HashMap<>();
986 Map<String, UploadNodeFilterInfo> instNodeFilter = new HashMap<>();
987 originCompMap.put("componentUid", originResource);
988 Map<String, List<ComponentInstanceInput>> instInputs = new HashMap<>();
989 UploadComponentInstanceInfo uploadComponentInstanceInfo = new UploadComponentInstanceInfo();
990 uploadComponentInstanceInfo.setName("zxjTestImportServiceAb0");
992 Assertions.assertThrows(ComponentException.class, () -> sIBL.processComponentInstance(yamlName,
993 resource, componentInstancesList, null, instProperties, instCapabilties,
994 instRequirements, instDeploymentArtifacts, instArtifacts, instAttributes, originCompMap,
995 instInputs, instNodeFilter, null, uploadComponentInstanceInfo));
999 void testAddInputsValuesToRi() {
1000 UploadComponentInstanceInfo uploadComponentInstanceInfo = new UploadComponentInstanceInfo();
1001 Map<String, List<UploadPropInfo>> properties = new HashMap<>();
1002 List<UploadPropInfo> uploadPropInfoList = getPropertyList();
1003 properties.put("propertiesMap", uploadPropInfoList);
1004 uploadComponentInstanceInfo.setProperties(properties);
1005 Resource resource = createParseResourceObject(true);
1006 Resource originResource = createParseResourceObject(false);
1007 List<InputDefinition> inputs = new ArrayList<>();
1008 InputDefinition inputDefinition = new InputDefinition();
1009 inputDefinition.setName("inputDefinitionName");
1010 inputDefinition.setUniqueId("uniqueId");
1011 inputDefinition.setType("inputDefinitionType");
1012 inputs.add(inputDefinition);
1013 originResource.setInputs(inputs);
1014 ComponentInstance currentCompInstance = new ComponentInstance();
1015 Map<String, List<ComponentInstanceInput>> instInputs = new HashMap<>();
1016 Map<String, DataTypeDefinition> allDataTypes = new HashMap<>();
1017 DataTypeDefinition dataTypeDefinition = new DataTypeDefinition();
1018 dataTypeDefinition.setName("dataTypeDefinitionName");
1019 allDataTypes.put("dataTypeDefinitionMap", dataTypeDefinition);
1021 Assertions.assertThrows(ComponentException.class, () -> sIBL
1022 .addInputsValuesToRi(uploadComponentInstanceInfo, resource, originResource,
1023 currentCompInstance, instInputs, allDataTypes));
1027 void testProcessProperty() {
1028 Resource resource = createParseResourceObject(true);
1029 List<InputDefinition> inputs = new ArrayList<>();
1030 InputDefinition inputDefinition = new InputDefinition();
1031 inputDefinition.setName("inputDefinitionName");
1032 inputDefinition.setUniqueId("uniqueId");
1033 inputDefinition.setType("inputDefinitionType");
1034 inputs.add(inputDefinition);
1035 resource.setInputs(inputs);
1036 ComponentInstance currentCompInstance = null;
1037 Map<String, DataTypeDefinition> allDataTypes = new HashMap<>();
1038 Map<String, InputDefinition> currPropertiesMap = new HashMap<>();
1039 currPropertiesMap.put("propertyInfoName", inputDefinition);
1040 List<ComponentInstanceInput> instPropList = new ArrayList<>();
1041 List<UploadPropInfo> propertyList = getPropertyList();
1042 Assertions.assertNotNull(resource);
1043 Assertions.assertNotNull(currPropertiesMap);
1044 sIBL.processProperty(resource, allDataTypes, currPropertiesMap, instPropList, propertyList);
1048 void testHandleSubstitutionMappings() {
1049 Resource resource = createParseResourceObject(true);
1050 resource.setResourceType(ResourceTypeEnum.VF);
1051 Map<String, UploadComponentInstanceInfo> uploadResInstancesMap = new HashMap<>();
1052 when(toscaOperationFacade.getToscaFullElement(anyString()))
1053 .thenReturn(Either.right(StorageOperationStatus.BAD_REQUEST));
1055 Assertions.assertThrows(ComponentException.class,
1056 () -> sIBL.handleSubstitutionMappings(resource, uploadResInstancesMap));
1060 void testHandleSubstitutionMappings_left() {
1061 Resource resource = createParseResourceObject(true);
1062 resource.setResourceType(ResourceTypeEnum.VF);
1063 Map<String, UploadComponentInstanceInfo> uploadResInstancesMap = new HashMap<>();
1064 when(toscaOperationFacade.getToscaFullElement(anyString()))
1065 .thenReturn(Either.left(resource));
1067 Assertions.assertThrows(ComponentException.class,
1068 () -> sIBL.handleSubstitutionMappings(resource, uploadResInstancesMap));
1072 void testCreateResourceInstances() {
1073 String yamlName = "group.yml";
1074 Resource resource = createParseResourceObject(true);
1075 Resource originResource = createParseResourceObject(false);
1076 Map<String, UploadComponentInstanceInfo> uploadResInstancesMap = new HashMap<>();
1077 UploadComponentInstanceInfo nodesInfoValue = new UploadComponentInstanceInfo();
1078 nodesInfoValue.setName("zxjTestImportServiceAb");
1079 nodesInfoValue.setRequirements(gerRequirements());
1080 uploadResInstancesMap.put("uploadComponentInstanceInfo", nodesInfoValue);
1081 Map<String, Resource> nodeNamespaceMap = new HashMap<>();
1082 nodeNamespaceMap.put("resources", originResource);
1084 Assertions.assertThrows(ComponentException.class,
1085 () -> sIBL.createResourceInstances(yamlName, resource, uploadResInstancesMap, nodeNamespaceMap));
1089 void testHandleNodeTypes() throws IOException {
1090 String nodeName = "org.openecomp.resource.derivedFrom.zxjTestImportServiceAb.test";
1091 String yamlName = "group.yml";
1092 Resource resource = createParseResourceObject(true);
1093 String topologyTemplateYaml = getMainTemplateContent();
1094 boolean needLock = true;
1095 Map<String, EnumMap<ArtifactsBusinessLogic.ArtifactOperationEnum, List<ArtifactDefinition>>> nodeTypesArtifactsToHandle = new HashMap<>();
1096 List<ArtifactDefinition> nodeTypesNewCreatedArtifacts = new ArrayList<>();
1097 Map<String, NodeTypeInfo> nodeTypesInfo = getNodeTypesInfo();
1098 Map<String, Object> map = new HashMap<>();
1099 map.put("tosca_definitions_version", "123");
1100 nodeTypesInfo.get(nodeName).setMappedToscaTemplate(map);
1101 ParsedToscaYamlInfo parsedToscaYamlInfo = getParsedToscaYamlInfo();
1102 CsarInfo csarInfo = getCsarInfo();
1103 Assertions.assertNotNull(resource);
1105 sIBL.handleNodeTypes(yamlName, resource, topologyTemplateYaml, needLock, nodeTypesArtifactsToHandle,
1106 nodeTypesNewCreatedArtifacts, nodeTypesInfo, csarInfo, nodeName);
1110 void testHandleNestedVfc1() {
1111 String nodeName = "org.openecomp.resource.derivedFrom.zxjTestImportServiceAb.test";
1112 Resource resource = createParseResourceObject(false);
1113 Map<String, EnumMap<ArtifactsBusinessLogic.ArtifactOperationEnum, List<ArtifactDefinition>>> nodeTypesArtifactsToHandle = new HashMap<>();
1114 List<ArtifactDefinition> createdArtifacts = new ArrayList<>();
1115 Map<String, NodeTypeInfo> nodesInfo = new HashMap<>();
1116 NodeTypeInfo nodeTypeInfo = new NodeTypeInfo();
1117 nodeTypeInfo.setTemplateFileName("groups.yml");
1118 nodeTypeInfo.setMappedToscaTemplate(new HashMap<>());
1119 nodesInfo.put(nodeName, nodeTypeInfo);
1120 CsarInfo csarInfo = getCsarInfo();
1122 Assertions.assertThrows(ComponentException.class, () -> sIBL.handleNestedVfc(resource,
1123 nodeTypesArtifactsToHandle, createdArtifacts, nodesInfo, csarInfo, nodeName));
1127 void testHandleComplexVfc1() {
1128 Resource resource = createParseResourceObject(true);
1129 Map<String, EnumMap<ArtifactsBusinessLogic.ArtifactOperationEnum, List<ArtifactDefinition>>> nodeTypesArtifactsToHandle = new HashMap<>();
1130 List<ArtifactDefinition> createdArtifacts = new ArrayList<>();
1131 Map<String, NodeTypeInfo> nodesInfo = new HashMap<>();
1132 CsarInfo csarInfo = getCsarInfo();
1133 String nodeName = "org.openecomp.resource.derivedFrom.zxjTestImportServiceAb.test";
1134 String yamlName = "group.yml";
1135 when(serviceImportParseLogic.buildValidComplexVfc(any(Resource.class), any(CsarInfo.class), anyString(),
1136 anyMap())).thenReturn(createParseResourceObject(false));
1137 when(toscaOperationFacade.getFullLatestComponentByToscaResourceName(anyString()))
1138 .thenReturn(Either.left(resource));
1139 when(serviceImportParseLogic.validateNestedDerivedFromDuringUpdate(any(Resource.class), any(Resource.class),
1140 anyBoolean())).thenReturn(Either.left(true));
1142 Assertions.assertThrows(ComponentException.class, () -> sIBL.handleComplexVfc(resource,
1143 nodeTypesArtifactsToHandle, createdArtifacts, nodesInfo, csarInfo, nodeName, yamlName));
1147 void testCreateNodeTypes1() {
1148 String nodeName = "org.openecomp.resource.derivedFrom.zxjTestImportServiceAb.test";
1149 String yamlName = "group.yml";
1150 Resource resource = createParseResourceObject(false);
1151 boolean needLock = true;
1152 Map<String, EnumMap<ArtifactsBusinessLogic.ArtifactOperationEnum, List<ArtifactDefinition>>> nodeTypesArtifactsToHandle = new HashMap<>();
1153 EnumMap<ArtifactsBusinessLogic.ArtifactOperationEnum, List<ArtifactDefinition>> enumListEnumMap =
1154 new EnumMap<>(ArtifactsBusinessLogic.ArtifactOperationEnum.class);
1155 List<ArtifactDefinition> artifactDefinitions = new ArrayList<>();
1156 ArtifactDefinition artifactDefinition = new ArtifactDefinition();
1157 artifactDefinition.setArtifactName("artifactName");
1158 artifactDefinitions.add(artifactDefinition);
1159 enumListEnumMap.put(ArtifactsBusinessLogic.ArtifactOperationEnum.CREATE,
1160 artifactDefinitions);
1161 nodeTypesArtifactsToHandle.put("nodeTyp", enumListEnumMap);
1162 List<ArtifactDefinition> nodeTypesNewCreatedArtifacts = new ArrayList<>();
1163 Map<String, NodeTypeInfo> nodeTypesInfo = getNodeTypesInfo();
1164 Map<String, Object> map = new HashMap<>();
1165 map.put("tosca_definitions_version", "123");
1166 nodeTypesInfo.get(nodeName).setMappedToscaTemplate(map);
1167 ParsedToscaYamlInfo parsedToscaYamlInfo = getParsedToscaYamlInfo();
1169 CsarInfo csarInfo = getCsarInfo();
1170 Map<String, Object> mapToConvert = new HashMap<>();
1171 Map<String, Object> nodeTypes = new HashMap<>();
1172 nodeTypes.put(nodeName, "");
1173 Assertions.assertNotNull(resource);
1175 sIBL.createNodeTypes(yamlName,
1176 resource, needLock, nodeTypesArtifactsToHandle, nodeTypesNewCreatedArtifacts,
1177 nodeTypesInfo, csarInfo, mapToConvert, nodeTypes);
1181 void testCreateNodeTypeResourceFromYaml() throws IOException {
1182 String yamlName = "group.yml";
1183 String nodeName = "org.openecomp.resource.derivedFrom.zxjTestImportServiceAb.test";
1184 Map<String, Object> nodeMap = new HashMap<>();
1185 nodeMap.put(nodeName, getGroupsYaml());
1186 Map.Entry<String, Object> nodeNameValue = nodeMap.entrySet().iterator().next();
1187 Map<String, Object> mapToConvert = new HashedMap();
1188 Resource resourceVf = createParseResourceObject(false);
1189 boolean needLock = true;
1190 Map<ArtifactsBusinessLogic.ArtifactOperationEnum, List<ArtifactDefinition>> nodeTypeArtifactsToHandle = new HashMap<>();
1191 List<ArtifactDefinition> nodeTypesNewCreatedArtifacts = new ArrayList<>();
1192 boolean forceCertificationAllowed = true;
1193 CsarInfo csarInfo = getCsarInfo();
1194 boolean isNested = true;
1195 UploadResourceInfo resourceMetaData = new UploadResourceInfo();
1196 resourceMetaData.setResourceType("VFC");
1197 ImmutablePair<Resource, ActionStatus> immutablePair = new ImmutablePair<>(resourceVf, ActionStatus.CREATED);
1198 when(serviceImportParseLogic.fillResourceMetadata(anyString(), any(Resource.class), anyString(), any(User.class)))
1199 .thenReturn(resourceMetaData);
1200 when(serviceImportParseLogic.buildNodeTypeYaml(any(Map.Entry.class), anyMap(), anyString(), any(CsarInfo.class)))
1201 .thenReturn(nodeName);
1202 when(serviceBusinessLogic.validateUser(any(User.class), anyString(), any(Component.class), any(AuditingActionEnum.class),
1203 anyBoolean())).thenReturn(user);
1204 when(serviceImportParseLogic.createResourceFromNodeType(anyString(), any(UploadResourceInfo.class), any(User.class), anyBoolean(),
1206 anyMap(), anyList(), anyBoolean(), any(CsarInfo.class),
1207 anyString(), anyBoolean())).thenReturn(immutablePair);
1208 Assertions.assertNotNull(
1209 sIBL.createNodeTypeResourceFromYaml(yamlName, nodeNameValue, user, mapToConvert,
1210 resourceVf, needLock, nodeTypeArtifactsToHandle, nodeTypesNewCreatedArtifacts,
1211 forceCertificationAllowed, csarInfo, isNested));
1215 void testCreateRIAndRelationsFromYaml() {
1216 String yamlName = "group.yml";
1217 Service service = createServiceObject(true);
1218 Map<String, UploadComponentInstanceInfo> uploadComponentInstanceInfoMap = new HashMap<>();
1219 String topologyTemplateYaml = getMainTemplateContent("service_import_template.yml");
1221 List<ArtifactDefinition> nodeTypesNewCreatedArtifacts = new ArrayList<>();
1222 Map<String, NodeTypeInfo> nodeTypesInfo = new HashMap<>();
1223 CsarInfo csarInfo = getCsarInfo();
1224 Map<String, EnumMap<ArtifactsBusinessLogic.ArtifactOperationEnum, List<ArtifactDefinition>>> nodeTypesArtifactsToCreate = new HashMap<>();
1225 String nodeName = "org.openecomp.resource.derivedFrom.zxjTestImportServiceAb.test";
1227 Assertions.assertNotNull(sIBL
1228 .createRIAndRelationsFromYaml(yamlName, service, uploadComponentInstanceInfoMap,
1229 topologyTemplateYaml, nodeTypesNewCreatedArtifacts, nodeTypesInfo,
1230 csarInfo, nodeTypesArtifactsToCreate, nodeName));
1234 void testCreateServiceInstancesRelations() {
1235 String yamlName = "group.yml";
1236 Service service = createServiceObject(true);
1237 service.setComponentInstances(creatComponentInstances());
1238 Resource newResource = createNewResource();
1239 Map<String, UploadComponentInstanceInfo> uploadResInstancesMap = getUploadResInstancesMap();
1240 ComponentParametersView componentParametersView = new ComponentParametersView();
1241 RequirementDefinition requirementDefinition = new RequirementDefinition();
1242 CapabilityDefinition capabilityDefinition = new CapabilityDefinition();
1243 capabilityDefinition.setName("as");
1244 capabilityDefinition.setUniqueId("1");
1245 capabilityDefinition.setOwnerId("2");
1246 ResponseFormat responseFormat = new ResponseFormat();
1247 responseFormat.setStatus(200);
1248 when(serviceImportParseLogic.getResourceAfterCreateRelations(any(Resource.class))).thenReturn(newResource);
1249 when(serviceImportParseLogic.getComponentFilterAfterCreateRelations()).thenReturn(componentParametersView);
1250 when(toscaOperationFacade.getToscaElement(anyString(), any(ComponentParametersView.class))).thenReturn(Either.left(service));
1251 when(serviceImportParseLogic.findAvailableRequirement(anyString(),
1252 anyString(), any(UploadComponentInstanceInfo.class), any(ComponentInstance.class),
1253 anyString())).thenReturn(Either.left(requirementDefinition));
1254 when(serviceImportParseLogic.findAvailableCapabilityByTypeOrName(any(RequirementDefinition.class),
1255 any(ComponentInstance.class), any(UploadReqInfo.class))).thenReturn(capabilityDefinition);
1256 when(componentsUtils.getResponseFormat(any(ActionStatus.class), anyString())).thenReturn(responseFormat);
1257 when(toscaOperationFacade.getToscaElement(anyString())).thenReturn(Either.left(service));
1258 Assertions.assertNotNull(sIBL.createServiceInstancesRelations(user, yamlName, service, uploadResInstancesMap));
1262 void testCreateServiceInstancesRelations_Empty() {
1263 String yamlName = "group.yml";
1264 Service service = createServiceObject(true);
1265 service.setComponentInstances(creatComponentInstances());
1266 Map<String, UploadComponentInstanceInfo> uploadResInstancesMap = new HashMap<>();
1268 Assertions.assertThrows(ComponentException.class,
1269 () -> sIBL.createServiceInstancesRelations(user, yamlName, service, uploadResInstancesMap));
1273 void testProcessComponentInstance() {
1274 String yamlName = "group.yml";
1275 Service service = createServiceObject(true);
1276 Resource originResource = createParseResourceObject(false);
1277 originResource.setResourceType(ResourceTypeEnum.VF);
1278 List<ComponentInstance> componentInstancesList = creatComponentInstances();
1279 Map<String, DataTypeDefinition> dataTypeDefinitionMap = new HashMap<>();
1280 DataTypeDefinition dataTypeDefinition = new DataTypeDefinition();
1281 dataTypeDefinition.setName("dataTypeDefinitionName");
1282 dataTypeDefinitionMap.put("dataTypeDefinitionMap", dataTypeDefinition);
1283 Either<Map<String, DataTypeDefinition>, JanusGraphOperationStatus> allDataTypes = Either.left(dataTypeDefinitionMap);
1284 Map<String, List<ComponentInstanceProperty>> instProperties = new HashMap<>();
1285 Map<ComponentInstance, Map<String, List<CapabilityDefinition>>> instCapabilties = new HashMap<>();
1286 Map<ComponentInstance, Map<String, List<RequirementDefinition>>> instRequirements = new HashMap<>();
1287 Map<String, Map<String, ArtifactDefinition>> instDeploymentArtifacts = new HashMap<>();
1288 Map<String, Map<String, ArtifactDefinition>> instArtifacts = new HashMap<>();
1289 Map<String, List<AttributeDefinition>> instAttributes = new HashMap<>();
1290 Map<String, UploadNodeFilterInfo> instNodeFilter = new HashMap<>();
1291 Map<String, Resource> originCompMap = new HashMap<>();
1292 originCompMap.put("componentUid", originResource);
1293 Map<String, List<ComponentInstanceInput>> instInputs = new HashMap<>();
1294 UploadComponentInstanceInfo uploadComponentInstanceInfo = new UploadComponentInstanceInfo();
1295 uploadComponentInstanceInfo.setName("zxjTestImportServiceAb");
1296 Assertions.assertNotNull(service);
1298 sIBL.processComponentInstance(yamlName, service, componentInstancesList, allDataTypes.left().value(),
1299 instProperties, instCapabilties, instRequirements, instDeploymentArtifacts,
1300 instArtifacts, instAttributes, originCompMap, instInputs, instNodeFilter, null,
1301 uploadComponentInstanceInfo);
1305 void testProcessComponentInstance_null2() {
1306 String yamlName = "group.yml";
1307 Service service = createServiceObject(true);
1308 Resource originResource = createParseResourceObject(false);
1309 List<ComponentInstance> componentInstancesList = creatComponentInstances();
1310 Either<Map<String, DataTypeDefinition>, JanusGraphOperationStatus> allDataTypes = null;
1311 Map<String, List<ComponentInstanceProperty>> instProperties = new HashMap<>();
1312 Map<ComponentInstance, Map<String, List<CapabilityDefinition>>> instCapabilties = new HashMap<>();
1313 Map<ComponentInstance, Map<String, List<RequirementDefinition>>> instRequirements = new HashMap<>();
1314 Map<String, Map<String, ArtifactDefinition>> instDeploymentArtifacts = new HashMap<>();
1315 Map<String, Map<String, ArtifactDefinition>> instArtifacts = new HashMap<>();
1316 Map<String, List<AttributeDefinition>> instAttributes = new HashMap<>();
1317 Map<String, UploadNodeFilterInfo> instNodeFilter = new HashMap<>();
1318 Map<String, Resource> originCompMap = new HashMap<>();
1319 originCompMap.put("componentUid", originResource);
1320 Map<String, List<ComponentInstanceInput>> instInputs = new HashMap<>();
1321 UploadComponentInstanceInfo uploadComponentInstanceInfo = new UploadComponentInstanceInfo();
1322 uploadComponentInstanceInfo.setName("zxjTestImportServiceAb0");
1324 Assertions.assertThrows(ComponentException.class, () -> sIBL.processComponentInstance(yamlName,
1325 service, componentInstancesList, null, instProperties, instCapabilties,
1326 instRequirements, instDeploymentArtifacts, instArtifacts, instAttributes, originCompMap,
1327 instInputs, instNodeFilter, null, uploadComponentInstanceInfo));
1331 void testAddInputsValuesToRi2() {
1332 UploadComponentInstanceInfo uploadComponentInstanceInfo = new UploadComponentInstanceInfo();
1333 Map<String, List<UploadPropInfo>> properties = new HashMap<>();
1334 List<UploadPropInfo> uploadPropInfoList = new ArrayList<>();
1335 UploadPropInfo uploadPropInfo = new UploadPropInfo();
1336 uploadPropInfo.setName("uploadPropInfo");
1337 uploadPropInfoList.add(uploadPropInfo);
1338 uploadPropInfoList.add(uploadPropInfo);
1339 properties.put("propertiesMap", uploadPropInfoList);
1340 uploadComponentInstanceInfo.setProperties(properties);
1341 Service resource = createServiceObject(true);
1342 Resource originResource = createParseResourceObject(false);
1343 List<InputDefinition> inputs = new ArrayList<>();
1344 InputDefinition inputDefinition = new InputDefinition();
1345 inputDefinition.setUniqueId("uniqueId");
1346 inputs.add(inputDefinition);
1347 originResource.setInputs(inputs);
1348 ComponentInstance currentCompInstance = new ComponentInstance();
1349 Map<String, List<ComponentInstanceInput>> instInputs = new HashMap<>();
1350 Map<String, DataTypeDefinition> allDataTypes = new HashMap<>();
1352 Assertions.assertThrows(ComponentException.class, () -> sIBL
1353 .addInputsValuesToRi(uploadComponentInstanceInfo, resource, originResource,
1354 currentCompInstance, instInputs, allDataTypes));
1358 void testProcessProperty2() {
1359 Service resource = createServiceObject(true);
1360 List<InputDefinition> inputs = new ArrayList<>();
1361 ComponentInstance currentCompInstance = null;
1362 Map<String, DataTypeDefinition> allDataTypes = new HashMap<>();
1363 Map<String, InputDefinition> currPropertiesMap = new HashMap<>();
1364 InputDefinition inputDefinition = new InputDefinition();
1365 inputDefinition.setName("inputDefinitionName");
1366 inputDefinition.setType("inputDefinitionType");
1367 inputs.add(inputDefinition);
1368 currPropertiesMap.put("propertyInfoName", inputDefinition);
1369 resource.setInputs(inputs);
1370 List<ComponentInstanceInput> instPropList = new ArrayList<>();
1371 List<UploadPropInfo> propertyList = new ArrayList<>();
1372 List<GetInputValueDataDefinition> get_input = new ArrayList<>();
1373 GetInputValueDataDefinition getInputValueDataDefinition = new GetInputValueDataDefinition();
1374 getInputValueDataDefinition.setPropName("getInputValueDataDefinitionName");
1375 getInputValueDataDefinition.setInputName("inputDefinitionName");
1376 get_input.add(getInputValueDataDefinition);
1377 UploadPropInfo propertyInfo = new UploadPropInfo();
1378 propertyInfo.setValue("value");
1379 propertyInfo.setGet_input(get_input);
1380 propertyInfo.setName("propertyInfoName");
1381 propertyList.add(propertyInfo);
1382 Assertions.assertNotNull(resource);
1384 sIBL.processProperty(resource, allDataTypes, currPropertiesMap, instPropList, propertyList);
1388 void testProcessGetInput() {
1389 List<GetInputValueDataDefinition> getInputValues = new ArrayList<>();
1390 List<InputDefinition> inputs = new ArrayList<>();
1391 GetInputValueDataDefinition getInputIndex = new GetInputValueDataDefinition();
1393 Assertions.assertThrows(ComponentException.class, () -> sIBL.processGetInput(getInputValues, inputs, getInputIndex));
1397 void testProcessGetInput_optional() {
1398 List<GetInputValueDataDefinition> getInputValues = new ArrayList<>();
1399 List<InputDefinition> inputs = new ArrayList<>();
1400 InputDefinition inputDefinition = new InputDefinition();
1401 inputDefinition.setUniqueId("uniqueId");
1402 inputDefinition.setName("InputName");
1403 inputs.add(inputDefinition);
1404 GetInputValueDataDefinition getInputIndex = new GetInputValueDataDefinition();
1405 getInputIndex.setInputName("InputName");
1406 Assertions.assertNotNull(inputs);
1408 sIBL.processGetInput(getInputValues, inputs, getInputIndex);
1412 void testAddPropertyValuesToRi() {
1413 UploadComponentInstanceInfo uploadComponentInstanceInfo = new UploadComponentInstanceInfo();
1414 uploadComponentInstanceInfo.setProperties(getUploadPropInfoProperties());
1415 Resource resource = createParseResourceObject(true);
1416 List<InputDefinition> inputs = new ArrayList<>();
1417 InputDefinition inputDefinition = new InputDefinition();
1418 inputDefinition.setName("inputDefinitionName");
1419 inputDefinition.setUniqueId("uniqueId");
1420 inputDefinition.setType("inputDefinitionType");
1421 inputs.add(inputDefinition);
1422 resource.setInputs(inputs);
1423 Resource originResource = createParseResourceObject(false);
1424 originResource.setProperties(getProperties());
1425 ComponentInstance currentCompInstance = new ComponentInstance();
1426 Map<String, List<ComponentInstanceProperty>> instProperties = new HashMap<>();
1427 Map<String, DataTypeDefinition> allDataTypes = new HashMap<>();
1428 ResponseFormat responseFormat = new ResponseFormat();
1429 when(serviceImportParseLogic.findInputByName(eq(inputs), any(GetInputValueDataDefinition.class)))
1430 .thenReturn(inputDefinition);
1431 when(componentsUtils.getResponseFormat(any(ActionStatus.class))).thenReturn(responseFormat);
1432 Assertions.assertNotNull(
1433 sIBL.addPropertyValuesToRi(uploadComponentInstanceInfo, resource, originResource,
1434 currentCompInstance, instProperties, allDataTypes));
1438 void testAddPropertyValuesToRi_else() {
1439 UploadComponentInstanceInfo uploadComponentInstanceInfo = new UploadComponentInstanceInfo();
1440 Resource resource = createParseResourceObject(true);
1441 Resource originResource = createParseResourceObject(false);
1442 originResource.setProperties(getProperties());
1443 ComponentInstance currentCompInstance = new ComponentInstance();
1444 Map<String, List<ComponentInstanceProperty>> instProperties = new HashMap<>();
1445 Map<String, DataTypeDefinition> allDataTypes = new HashMap<>();
1446 ResponseFormat responseFormat = new ResponseFormat();
1447 when(componentsUtils.getResponseFormat(any(ActionStatus.class))).thenReturn(responseFormat);
1448 Assertions.assertNotNull(
1449 sIBL.addPropertyValuesToRi(uploadComponentInstanceInfo, resource, originResource, currentCompInstance,
1450 instProperties, allDataTypes));
1454 void testAddPropertyValuesToRi2() {
1455 UploadComponentInstanceInfo uploadComponentInstanceInfo = new UploadComponentInstanceInfo();
1456 uploadComponentInstanceInfo.setProperties(getUploadPropInfoProperties());
1457 Service service = createServiceObject(true);
1458 List<InputDefinition> inputs = new ArrayList<>();
1459 InputDefinition inputDefinition = new InputDefinition();
1460 inputDefinition.setName("inputDefinitionName");
1461 inputDefinition.setUniqueId("uniqueId");
1462 inputDefinition.setType("inputDefinitionType");
1463 inputs.add(inputDefinition);
1464 service.setInputs(inputs);
1465 Resource originResource = createParseResourceObject(false);
1466 originResource.setProperties(getProperties());
1467 ComponentInstance currentCompInstance = new ComponentInstance();
1468 Map<String, List<ComponentInstanceProperty>> instProperties = new HashMap<>();
1469 Map<String, DataTypeDefinition> allDataTypes = new HashMap<>();
1470 ResponseFormat responseFormat = new ResponseFormat();
1471 when(componentsUtils.getResponseFormat(any(ActionStatus.class))).thenReturn(responseFormat);
1472 when(serviceImportParseLogic.findInputByName(anyList(), any(GetInputValueDataDefinition.class)))
1473 .thenReturn(inputDefinition);
1474 Assertions.assertNotNull(
1475 sIBL.addPropertyValuesToRi(uploadComponentInstanceInfo, service, originResource,
1476 currentCompInstance, instProperties, allDataTypes));
1480 void testAddPropertyValuesToRi2_else() {
1481 UploadComponentInstanceInfo uploadComponentInstanceInfo = new UploadComponentInstanceInfo();
1482 Service service = createServiceObject(true);
1483 Resource originResource = createParseResourceObject(false);
1484 originResource.setProperties(getProperties());
1485 ComponentInstance currentCompInstance = new ComponentInstance();
1486 Map<String, List<ComponentInstanceProperty>> instProperties = new HashMap<>();
1487 Map<String, DataTypeDefinition> allDataTypes = new HashMap<>();
1488 ResponseFormat responseFormat = new ResponseFormat();
1489 when(componentsUtils.getResponseFormat(any(ActionStatus.class))).thenReturn(responseFormat);
1490 Assertions.assertNotNull(
1491 sIBL.addPropertyValuesToRi(uploadComponentInstanceInfo, service, originResource, currentCompInstance,
1492 instProperties, allDataTypes));
1496 void testProcessComponentInstanceCapabilities() {
1497 Either<Map<String, DataTypeDefinition>, JanusGraphOperationStatus> allDataTypes = null;
1498 Map<ComponentInstance, Map<String, List<CapabilityDefinition>>> instCapabilties = new HashMap<>();
1499 UploadComponentInstanceInfo uploadComponentInstanceInfo = new UploadComponentInstanceInfo();
1500 uploadComponentInstanceInfo.setCapabilities(getCapabilities());
1501 ComponentInstance currentCompInstance = new ComponentInstance();
1502 Resource originResource = createParseResourceObject(false);
1503 Assertions.assertNotNull(originResource);
1504 sIBL.processComponentInstanceCapabilities(null, instCapabilties, uploadComponentInstanceInfo, currentCompInstance,
1509 void testProcessComponentInstanceCapabilities_null() {
1510 Either<Map<String, DataTypeDefinition>, JanusGraphOperationStatus> allDataTypes = null;
1511 Map<ComponentInstance, Map<String, List<CapabilityDefinition>>> instCapabilties = new HashMap<>();
1512 UploadComponentInstanceInfo uploadComponentInstanceInfo = new UploadComponentInstanceInfo();
1513 ComponentInstance currentCompInstance = new ComponentInstance();
1514 Resource originResource = createParseResourceObject(false);
1515 Assertions.assertNotNull(originResource);
1517 sIBL.processComponentInstanceCapabilities(null, instCapabilties, uploadComponentInstanceInfo, currentCompInstance,
1522 void testUpdateCapabilityPropertiesValues() {
1523 Either<Map<String, DataTypeDefinition>, JanusGraphOperationStatus> allDataTypes = null;
1524 Map<String, List<CapabilityDefinition>> originCapabilities = new HashMap<>();
1525 Map<String, Map<String, UploadPropInfo>> newPropertiesMap = new HashMap<>();
1526 Assertions.assertNull(allDataTypes);
1527 sIBL.updateCapabilityPropertiesValues(null, originCapabilities, newPropertiesMap);
1531 void testUpdatePropertyValues() {
1532 List<ComponentInstanceProperty> properties = new ArrayList<>();
1533 Map<String, UploadPropInfo> newProperties = new HashMap<>();
1534 Map<String, DataTypeDefinition> allDataTypes = new HashMap<>();
1535 Assertions.assertNotNull(allDataTypes);
1536 sIBL.updatePropertyValues(properties, newProperties, allDataTypes);
1540 void testUpdatePropertyValue() {
1541 ComponentInstanceProperty property = new ComponentInstanceProperty();
1542 property.setType("services");
1543 UploadPropInfo propertyInfo = new UploadPropInfo();
1544 propertyInfo.setValue("value");
1545 Map<String, DataTypeDefinition> allDataTypes = new HashMap<>();
1546 when(serviceBusinessLogic.validatePropValueBeforeCreate(any(IPropertyInputCommon.class), anyString(), anyBoolean(), anyMap())).thenReturn(
1548 Assertions.assertNotNull(sIBL.updatePropertyValue(property, propertyInfo, allDataTypes));
1552 void testGetOriginResource() {
1553 String yamlName = "group.yml";
1554 Map<String, Resource> originCompMap = new HashMap<>();
1555 ComponentInstance currentCompInstance = new ComponentInstance();
1556 currentCompInstance.setComponentUid("currentCompInstance");
1557 when(toscaOperationFacade.getToscaFullElement(anyString()))
1558 .thenReturn(Either.left(createParseResourceObject(true)));
1559 Assertions.assertNotNull(sIBL.getOriginResource(yamlName, originCompMap, currentCompInstance));
1563 void testUpdateCalculatedCapReqWithSubstitutionMappings() {
1564 Resource resource = createParseResourceObject(false);
1565 resource.setComponentInstances(creatComponentInstances());
1566 Map<String, UploadComponentInstanceInfo> uploadResInstancesMap = getUploadResInstancesMap();
1568 when(toscaOperationFacade.deleteAllCalculatedCapabilitiesRequirements(any())).thenReturn(StorageOperationStatus.OK);
1569 Assertions.assertNotNull(sIBL.updateCalculatedCapReqWithSubstitutionMappings(resource, uploadResInstancesMap));
1573 void testFillUpdatedInstCapabilitiesRequirements() {
1574 List<ComponentInstance> componentInstances = creatComponentInstances();
1575 Map<String, UploadComponentInstanceInfo> uploadResInstancesMap = getUploadResInstancesMap();
1576 Map<ComponentInstance, Map<String, List<CapabilityDefinition>>> updatedInstCapabilities = new HashMap<>();
1577 Map<ComponentInstance, Map<String, List<RequirementDefinition>>> updatedInstRequirement = new HashMap<>();
1578 Assertions.assertNotNull(componentInstances);
1580 sIBL.fillUpdatedInstCapabilitiesRequirements(componentInstances, uploadResInstancesMap,
1581 updatedInstCapabilities, updatedInstRequirement);
1585 void testFillUpdatedInstCapabilities() {
1586 Map<ComponentInstance, Map<String, List<CapabilityDefinition>>> updatedInstCapabilties = new HashMap<>();
1587 Map<String, List<CapabilityDefinition>> capabilities = new HashMap<>();
1588 List<CapabilityDefinition> capabilityDefinitionList = new ArrayList<>();
1589 CapabilityDefinition capabilityDefinition = new CapabilityDefinition();
1590 capabilityDefinition.setName("mme_ipu_vdu.feature");
1591 capabilityDefinitionList.add(capabilityDefinition);
1592 capabilities.put("tosca.capabilities.Node", capabilityDefinitionList);
1593 ComponentInstance instance = new ComponentInstance();
1594 instance.setCapabilities(capabilities);
1595 Map<String, String> capabilitiesNamesToUpdate = new HashMap<>();
1596 capabilitiesNamesToUpdate.put("mme_ipu_vdu.feature", "capabilitiesNamesToUpdate");
1597 Assertions.assertNotNull(instance);
1599 sIBL.fillUpdatedInstCapabilities(updatedInstCapabilties, instance, capabilitiesNamesToUpdate);
1603 void testFillUpdatedInstRequirements() {
1604 Map<ComponentInstance, Map<String, List<RequirementDefinition>>> updatedInstRequirements = new
1606 ComponentInstance instance = new ComponentInstance();
1607 Map<String, List<RequirementDefinition>> requirements = new HashMap<>();
1608 List<RequirementDefinition> requirementDefinitionList = new ArrayList<>();
1609 RequirementDefinition requirementDefinition = new RequirementDefinition();
1610 requirementDefinition.setName("zxjtestimportserviceab0.mme_ipu_vdu.dependency.test");
1611 requirementDefinitionList.add(requirementDefinition);
1612 requirements.put("tosca.capabilities.Node", requirementDefinitionList);
1613 instance.setRequirements(requirements);
1614 Map<String, String> requirementsNamesToUpdate = new HashMap<>();
1615 requirementsNamesToUpdate.put("zxjtestimportserviceab0.mme_ipu_vdu.dependency.test",
1616 "requirementsNamesToUpdate");
1617 Assertions.assertNotNull(instance);
1619 sIBL.fillUpdatedInstRequirements(updatedInstRequirements, instance, requirementsNamesToUpdate);
1623 void testAddRelationsToRI() {
1624 String yamlName = "group.yml";
1625 Service service = createServiceObject(true);
1627 Map<String, UploadComponentInstanceInfo> uploadResInstancesMap = new HashMap<>();
1628 UploadComponentInstanceInfo nodesInfoValue = getUploadComponentInstanceInfo();
1629 uploadResInstancesMap.put("uploadComponentInstanceInfo", nodesInfoValue);
1630 List<ComponentInstance> componentInstancesList = creatComponentInstances();
1631 ComponentInstance componentInstance = new ComponentInstance();
1632 componentInstance.setName("zxjTestImportServiceAb");
1633 componentInstancesList.add(componentInstance);
1634 service.setComponentInstances(componentInstancesList);
1635 List<RequirementCapabilityRelDef> relations = new ArrayList<>();
1636 RequirementDefinition requirementDefinition = new RequirementDefinition();
1637 requirementDefinition.setOwnerId("1");
1638 requirementDefinition.setUniqueId("2");
1639 requirementDefinition.setCapability("3");
1640 CapabilityDefinition capabilityDefinition = new CapabilityDefinition();
1641 capabilityDefinition.setName("4");
1642 capabilityDefinition.setUniqueId("5");
1643 capabilityDefinition.setOwnerId("6");
1644 ResponseFormat responseFormat = new ResponseFormat();
1645 responseFormat.setStatus(200);
1646 when(serviceImportParseLogic.findAvailableRequirement(anyString(),
1647 anyString(), any(UploadComponentInstanceInfo.class), any(ComponentInstance.class),
1648 anyString())).thenReturn(Either.left(requirementDefinition));
1649 when(serviceImportParseLogic.findAvailableCapabilityByTypeOrName(any(RequirementDefinition.class),
1650 any(ComponentInstance.class), any(UploadReqInfo.class))).thenReturn(capabilityDefinition);
1651 when(componentsUtils.getResponseFormat(any(ActionStatus.class), anyString())).thenReturn(responseFormat);
1652 Assertions.assertNotNull(service);
1654 sIBL.addRelationsToRI(yamlName, service, uploadResInstancesMap, componentInstancesList, relations);
1658 void testAddRelationsToRI_null() {
1659 String yamlName = "group.yml";
1660 Service service = createServiceObject(true);
1661 Map<String, UploadComponentInstanceInfo> uploadResInstancesMap = new HashMap<>();
1662 UploadComponentInstanceInfo nodesInfoValue = getUploadComponentInstanceInfo();
1663 uploadResInstancesMap.put("uploadComponentInstanceInfo", nodesInfoValue);
1664 List<ComponentInstance> componentInstancesList = new ArrayList<>();
1665 List<RequirementCapabilityRelDef> relations = new ArrayList<>();
1667 Assertions.assertThrows(ComponentException.class, () -> sIBL.addRelationsToRI(yamlName,
1668 service, uploadResInstancesMap, componentInstancesList, relations));
1672 void testAddRelationToRI() {
1673 String yamlName = "group.yml";
1674 Service service = createServiceObject(true);
1675 service.setComponentInstances(creatComponentInstances());
1677 UploadComponentInstanceInfo nodesInfoValue = getUploadComponentInstanceInfo();
1678 List<RequirementCapabilityRelDef> relations = new ArrayList<>();
1679 RequirementDefinition requirementDefinition = new RequirementDefinition();
1680 requirementDefinition.setName("zxjtestimportserviceab0.mme_ipu_vdu.dependency.test");
1681 CapabilityDefinition capabilityDefinition = new CapabilityDefinition();
1682 capabilityDefinition.setName("capabilityDefinitionName");
1683 capabilityDefinition.setUniqueId("capabilityDefinitionUniqueId");
1684 capabilityDefinition.setOwnerId("capabilityDefinitionOwnerId");
1685 ResponseFormat responseFormat = new ResponseFormat();
1686 when(serviceImportParseLogic.findAvailableRequirement(anyString(), anyString(), any(UploadComponentInstanceInfo.class),
1687 any(ComponentInstance.class), anyString())).thenReturn(Either.left(requirementDefinition));
1688 when(serviceImportParseLogic.findAvailableCapabilityByTypeOrName(any(RequirementDefinition.class),
1689 any(ComponentInstance.class), any(UploadReqInfo.class))).thenReturn(capabilityDefinition);
1690 when(componentsUtils.getResponseFormat(any(ActionStatus.class), anyString())).thenReturn(responseFormat);
1691 Assertions.assertNotNull(sIBL.addRelationToRI(yamlName, service, nodesInfoValue, relations));
1692 Assertions.assertNotNull(relations.get(0).getRelationships().get(0).getOperations());
1696 void testAddRelationToRI_null() {
1697 String yamlName = "group.yml";
1698 Service service = createServiceObject(true);
1699 List<ComponentInstance> componentInstancesList = new ArrayList<>();
1700 service.setComponentInstances(componentInstancesList);
1701 ResponseFormat responseFormat = new ResponseFormat();
1702 UploadComponentInstanceInfo nodesInfoValue = getUploadComponentInstanceInfo();
1703 List<RequirementCapabilityRelDef> relations = new ArrayList<>();
1704 when(componentsUtils.getResponseFormat(any(ActionStatus.class), anyString())).thenReturn(responseFormat);
1705 Assertions.assertNotNull(sIBL.addRelationToRI(yamlName, service, nodesInfoValue, relations));
1709 void testGetResourceAfterCreateRelations() {
1710 Service service = createServiceObject(true);
1711 ComponentParametersView componentParametersView = createComponentParametersView();
1712 when(serviceImportParseLogic.getComponentFilterAfterCreateRelations()).thenReturn(componentParametersView);
1713 when(toscaOperationFacade.getToscaElement(anyString(), any(ComponentParametersView.class)))
1714 .thenReturn(Either.left(createServiceObject(true)));
1715 Assertions.assertNotNull(sIBL.getResourceAfterCreateRelations(service));
1719 void testCreateServiceInstances() {
1720 String yamlName = "group.yml";
1721 Service service = createServiceObject(true);
1722 Map<String, UploadComponentInstanceInfo> uploadResInstancesMap = new HashMap<>();
1723 UploadComponentInstanceInfo nodesInfoValue = getUploadComponentInstanceInfo();
1724 uploadResInstancesMap.put("uploadResInstancesMap", nodesInfoValue);
1725 Map<String, Resource> nodeNamespaceMap = new HashMap<>();
1726 Resource resource = createParseResourceObject(true);
1727 resource.setToscaResourceName("toscaResourceName");
1728 nodeNamespaceMap.put("nodeNamespaceMap", resource);
1730 Assertions.assertThrows(ComponentException.class,
1731 () -> sIBL.createServiceInstances(yamlName, service, uploadResInstancesMap, nodeNamespaceMap));
1735 void testCreateAndAddResourceInstance() {
1736 UploadComponentInstanceInfo uploadComponentInstanceInfo = getUploadComponentInstanceInfo();
1737 String yamlName = "group.yml";
1738 Resource resource = createParseResourceObject(false);
1739 Resource originResource = createParseResourceObject(true);
1740 originResource.setResourceType(ResourceTypeEnum.VF);
1741 Map<String, Resource> nodeNamespaceMap = new HashMap<>();
1742 nodeNamespaceMap.put("resources", originResource);
1743 Map<String, Resource> existingnodeTypeMap = new HashMap<>();
1744 Map<ComponentInstance, Resource> resourcesInstancesMap = new HashMap<>();
1746 Assertions.assertThrows(ComponentException.class, () -> sIBL
1747 .createAndAddResourceInstance(uploadComponentInstanceInfo, yamlName, resource,
1748 nodeNamespaceMap, existingnodeTypeMap, resourcesInstancesMap));
1752 void testCreateAndAddResourceInstances() {
1753 UploadComponentInstanceInfo uploadComponentInstanceInfo = getUploadComponentInstanceInfo();
1754 String yamlName = "group.yml";
1755 Service service = createServiceObject(true);
1756 service.setServiceType("services");
1757 Resource originResource = createParseResourceObject(true);
1758 originResource.setResourceType(ResourceTypeEnum.VF);
1759 Map<String, Resource> nodeNamespaceMap = new HashMap<>();
1760 nodeNamespaceMap.put("resources", originResource);
1761 Map<String, Resource> existingnodeTypeMap = new HashMap<>();
1762 Map<ComponentInstance, Resource> resourcesInstancesMap = new HashMap<>();
1764 Assertions.assertThrows(ComponentException.class, () -> sIBL
1765 .createAndAddResourceInstance(uploadComponentInstanceInfo, yamlName, service,
1766 nodeNamespaceMap, existingnodeTypeMap, resourcesInstancesMap));
1770 void testValidateResourceInstanceBeforeCreate() {
1771 String yamlName = "group.yml";
1772 UploadComponentInstanceInfo uploadComponentInstanceInfo = getUploadComponentInstanceInfo();
1773 Resource originResource = createParseResourceObject(true);
1774 ResourceMetadataDataDefinition componentMetadataDataDefinition = new ResourceMetadataDataDefinition();
1775 componentMetadataDataDefinition.setState(LifecycleStateEnum.CERTIFIED.name());
1776 ComponentMetadataDefinition componentMetadataDefinition = new ComponentMetadataDefinition(componentMetadataDataDefinition);
1777 originResource.setComponentMetadataDefinition(componentMetadataDefinition);
1778 originResource.setComponentType(ComponentTypeEnum.RESOURCE);
1779 originResource.setToscaResourceName("toscaResourceName");
1780 originResource.setResourceType(ResourceTypeEnum.VF);
1781 originResource.setResourceType(ResourceTypeEnum.VF);
1782 Map<String, Resource> nodeNamespaceMap = new HashMap<>();
1783 nodeNamespaceMap.put("resources", originResource);
1784 when(toscaOperationFacade.getLatestResourceByToscaResourceName(anyString())).thenReturn(Either.left(originResource));
1785 Assertions.assertNotNull(
1786 sIBL.validateResourceInstanceBeforeCreate(yamlName, uploadComponentInstanceInfo, nodeNamespaceMap));
1790 void testHandleServiceNodeTypes() {
1791 String yamlName = "group.yml";
1792 Service service = createServiceObject(true);
1793 String topologyTemplateYaml = getMainTemplateContent("service_import_template.yml");
1795 boolean needLock = true;
1796 Map<String, EnumMap<ArtifactsBusinessLogic.ArtifactOperationEnum, List<ArtifactDefinition>>> nodeTypesArtifactsToHandle = new HashMap<>();
1797 List<ArtifactDefinition> nodeTypesNewCreatedArtifacts = new ArrayList<>();
1798 Map<String, NodeTypeInfo> nodeTypesInfo = getNodeTypesInfo();
1799 CsarInfo csarInfo = getCsarInfo();
1800 String nodeName = "org.openecomp.resource.derivedFrom.zxjTestImportServiceAb.test";
1801 when(toscaOperationFacade.getLatestResourceByToscaResourceName(anyString())).thenReturn(Either.left(createOldResource()));
1802 Assertions.assertNotNull(service);
1804 sIBL.handleServiceNodeTypes(yamlName, service, topologyTemplateYaml, needLock, nodeTypesArtifactsToHandle,
1805 nodeTypesNewCreatedArtifacts,
1806 nodeTypesInfo, csarInfo, nodeName);
1810 void testValidateResourceNotExisted() {
1811 String type = "org.openecomp.resource.vf";
1813 Assertions.assertThrows(ComponentException.class, () -> sIBL.validateResourceNotExisted(type));
1817 void testHandleNestedVF() {
1818 Service service = createServiceObject(true);
1819 Map<String, EnumMap<ArtifactsBusinessLogic.ArtifactOperationEnum, List<ArtifactDefinition>>> nodeTypesArtifactsToHandle = new HashMap<>();
1820 List<ArtifactDefinition> createdArtifacts = new ArrayList<>();
1821 Map<String, NodeTypeInfo> nodesInfo = getNodeTypesInfo();
1822 CsarInfo csarInfo = getCsarInfo();
1823 String nodeName = "org.openecomp.resource.derivedFrom.zxjTestImportServiceAb.test";
1825 Assertions.assertThrows(ComponentException.class, () -> sIBL.handleNestedVF(service,
1826 nodeTypesArtifactsToHandle, createdArtifacts, nodesInfo, csarInfo, nodeName));
1830 void testHandleNestedVfc() {
1831 Service service = createServiceObject(true);
1832 Map<String, EnumMap<ArtifactsBusinessLogic.ArtifactOperationEnum, List<ArtifactDefinition>>> nodeTypesArtifactsToHandle = new HashMap<>();
1833 List<ArtifactDefinition> createdArtifacts = new ArrayList<>();
1834 Map<String, NodeTypeInfo> nodesInfo = new HashMap<>();
1835 CsarInfo csarInfo = getCsarInfo();
1836 String nodeName = "org.openecomp.resource.derivedFrom.zxjTestImportServiceAb.test";
1838 Assertions.assertThrows(ComponentException.class, () -> sIBL.handleNestedVfc(service,
1839 nodeTypesArtifactsToHandle, createdArtifacts, nodesInfo, csarInfo, nodeName));
1843 void testHandleComplexVfc() {
1844 Map<String, EnumMap<ArtifactsBusinessLogic.ArtifactOperationEnum, List<ArtifactDefinition>>> nodeTypesArtifactsToHandle = new HashMap<>();
1845 List<ArtifactDefinition> createdArtifacts = new ArrayList<>();
1846 Map<String, NodeTypeInfo> nodesInfo = new HashMap<>();
1847 CsarInfo csarInfo = getCsarInfo();
1848 String nodeName = "org.openecomp.resource.derivedFrom.zxjTestImportServiceAb.test";
1849 String yamlName = "group.yml";
1850 when(serviceImportParseLogic.buildValidComplexVfc(any(CsarInfo.class), anyString(), anyMap()))
1851 .thenReturn(createNewResource());
1852 when(toscaOperationFacade.getFullLatestComponentByToscaResourceName(anyString()))
1853 .thenReturn(Either.left(createNewResource()));
1854 when(serviceImportParseLogic.validateNestedDerivedFromDuringUpdate(any(Resource.class), any(Resource.class), anyBoolean()))
1855 .thenReturn(Either.left(true));
1857 Assertions.assertThrows(ComponentException.class, () -> sIBL
1858 .handleComplexVfc(nodeTypesArtifactsToHandle, createdArtifacts, nodesInfo,
1859 csarInfo, nodeName, yamlName));
1863 void testHandleComplexVfcStatus() {
1864 Map<String, EnumMap<ArtifactsBusinessLogic.ArtifactOperationEnum, List<ArtifactDefinition>>> nodeTypesArtifactsToHandle = new HashMap<>();
1865 List<ArtifactDefinition> createdArtifacts = new ArrayList<>();
1866 Map<String, NodeTypeInfo> nodesInfo = new HashMap<>();
1867 CsarInfo csarInfo = getCsarInfo();
1868 String nodeName = "org.openecomp.resource.derivedFrom.zxjTestImportServiceAb.test";
1869 String yamlName = "group.yml";
1870 when(serviceImportParseLogic.buildValidComplexVfc(any(CsarInfo.class), anyString(), anyMap()))
1871 .thenReturn(createNewResource());
1872 when(toscaOperationFacade.getFullLatestComponentByToscaResourceName(anyString()))
1873 .thenReturn(Either.right(StorageOperationStatus.NOT_FOUND));
1875 Assertions.assertThrows(ComponentException.class, () -> sIBL
1876 .handleComplexVfc(nodeTypesArtifactsToHandle, createdArtifacts, nodesInfo,
1877 csarInfo, nodeName, yamlName));
1881 void testHandleComplexVfc2() {
1882 Map<String, EnumMap<ArtifactsBusinessLogic.ArtifactOperationEnum, List<ArtifactDefinition>>> nodeTypesArtifactsToHandle = new HashMap<>();
1883 List<ArtifactDefinition> createdArtifacts = new ArrayList<>();
1884 Map<String, NodeTypeInfo> nodesInfo = getNodeTypesInfo();
1885 String nodeName = "org.openecomp.resource.derivedFrom.zxjTestImportServiceAb.test";
1886 String yamlName = "group.yml";
1887 CsarInfo csarInfo = getCsarInfo();
1888 Map<String, byte[]> csar = new HashMap<>();
1889 csar.put(yamlName, yamlName.getBytes());
1890 csarInfo.setCsar(csar);
1891 Resource oldComplexVfc = createParseResourceObject(false);
1892 Resource newComplexVfc = createParseResourceObject(true);
1894 Assertions.assertThrows(ComponentException.class, () -> sIBL
1895 .handleComplexVfc(nodeTypesArtifactsToHandle, createdArtifacts, nodesInfo,
1896 csarInfo, nodeName, yamlName, oldComplexVfc, newComplexVfc));
1900 void testUpdateResourceFromYaml() throws IOException {
1901 String nodeName = "org.openecomp.resource.derivedFrom.zxjTestImportServiceAb.test";
1902 Resource newResource = createNewResource();
1903 Resource oldResource = createOldResource();
1904 AuditingActionEnum actionEnum = AuditingActionEnum.CREATE_RESOURCE;
1905 List<ArtifactDefinition> createdArtifacts = new ArrayList<>();
1906 String yamlFileName = "group.yml";
1907 String yamlFileContent = getYamlFileContent();
1908 CsarInfo csarInfo = getCsarInfo();
1909 Map<String, NodeTypeInfo> nodeTypesInfo = getNodeTypesInfo();
1910 Map<String, Object> map = new HashMap<>();
1911 map.put("tosca_definitions_version", "123");
1912 nodeTypesInfo.get(nodeName).setMappedToscaTemplate(map);
1913 Map<String, EnumMap<ArtifactsBusinessLogic.ArtifactOperationEnum, List<ArtifactDefinition>>> nodeTypesArtifactsToHandle = new HashMap<>();
1914 boolean isNested = true;
1916 when(csarBusinessLogic.getParsedToscaYamlInfo(anyString(), anyString(), anyMap(), any(CsarInfo.class),
1917 anyString(), any(Component.class))).thenReturn(getParsedToscaYamlInfo());
1918 when(serviceImportParseLogic.prepareResourceForUpdate(any(Resource.class), any(Resource.class),
1919 any(User.class), anyBoolean(), anyBoolean())).thenReturn(oldResource);
1920 when(serviceImportParseLogic.validateCapabilityTypesCreate(any(User.class), any(ICapabilityTypeOperation.class),
1921 any(Resource.class), any(AuditingActionEnum.class), anyBoolean())).thenReturn(Either.left(true));
1922 when(toscaOperationFacade.overrideComponent(any(Resource.class), any(Resource.class)))
1923 .thenReturn(Either.left(newResource));
1924 Assertions.assertThrows(ComponentException.class, () -> sIBL
1925 .updateResourceFromYaml(oldResource, newResource, actionEnum, createdArtifacts,
1926 yamlFileName, yamlFileContent, csarInfo, nodeTypesInfo,
1927 nodeTypesArtifactsToHandle, nodeName, isNested));
1931 void testCreateResourceFromYaml() throws IOException {
1932 String nodeName = "org.openecomp.resource.derivedFrom.zxjTestImportServiceAb.test";
1933 Resource resource = createParseResourceObject(true);
1934 String topologyTemplateYaml = getMainTemplateContent();
1935 String yamlName = "group.yml";
1937 Map<String, NodeTypeInfo> nodeTypesInfo = getNodeTypesInfo();
1938 Map<String, Object> map = new HashMap<>();
1939 map.put("tosca_definitions_version", "123");
1940 nodeTypesInfo.get(nodeName).setMappedToscaTemplate(map);
1942 CsarInfo csarInfo = getCsarInfo();
1943 Map<String, EnumMap<ArtifactsBusinessLogic.ArtifactOperationEnum, List<ArtifactDefinition>>> nodeTypesArtifactsToCreate = new HashMap<>();
1944 boolean shouldLock = false;
1945 boolean inTransaction = true;
1947 when(csarBusinessLogic.getParsedToscaYamlInfo(anyString(), anyString(), anyMap(), any(CsarInfo.class),
1948 anyString(), any(Component.class))).thenReturn(getParsedToscaYamlInfo());
1949 when(serviceBusinessLogic.fetchAndSetDerivedFromGenericType(any(Component.class))).thenReturn(resource);
1950 when(toscaOperationFacade.validateComponentNameExists(anyString(), any(ResourceTypeEnum.class), any(ComponentTypeEnum.class)))
1951 .thenReturn(Either.left(false));
1952 when(toscaOperationFacade.createToscaComponent(any(Resource.class))).thenReturn(Either.left(resource));
1953 Assertions.assertThrows(ComponentException.class, () -> sIBL.createResourceFromYaml(resource,
1954 topologyTemplateYaml, yamlName, nodeTypesInfo, csarInfo,
1955 nodeTypesArtifactsToCreate, shouldLock, inTransaction, nodeName));
1959 void testCreateResourceAndRIsFromYaml() throws IOException {
1960 String yamlName = "group.yml";
1961 String nodeName = "org.openecomp.resource.derivedFrom.zxjTestImportServiceAb.test";
1962 Resource resource = createParseResourceObject(true);
1963 resource.setSystemName("SystemName");
1964 resource.setComponentType(ComponentTypeEnum.RESOURCE);
1965 AuditingActionEnum actionEnum = AuditingActionEnum.CREATE_RESOURCE;
1966 boolean isNormative = true;
1967 List<ArtifactDefinition> createdArtifacts = new ArrayList<>();
1968 String topologyTemplateYaml = getMainTemplateContent();
1969 Map<String, NodeTypeInfo> nodeTypesInfo = getNodeTypesInfo();
1970 Map<String, Object> map = new HashMap<>();
1971 map.put("tosca_definitions_version", "123");
1972 nodeTypesInfo.get(nodeName).setMappedToscaTemplate(map);
1973 ParsedToscaYamlInfo parsedToscaYamlInfo = getParsedToscaYamlInfo();
1975 CsarInfo csarInfo = getCsarInfo();
1976 Map<String, EnumMap<ArtifactsBusinessLogic.ArtifactOperationEnum, List<ArtifactDefinition>>> nodeTypesArtifactsToCreate = new HashMap<>();
1977 boolean shouldLock = false;
1978 boolean inTransaction = true;
1979 when(serviceBusinessLogic.fetchAndSetDerivedFromGenericType(any(Resource.class)))
1980 .thenReturn(resource);
1982 when(serviceBusinessLogic.lockComponentByName(anyString(), any(), anyString()))
1983 .thenReturn(Either.left(true));
1985 when(toscaOperationFacade.validateComponentNameExists(anyString(), any(ResourceTypeEnum.class), any(ComponentTypeEnum.class)))
1986 .thenReturn(Either.left(false));
1988 when(toscaOperationFacade.createToscaComponent(any(Resource.class))).thenReturn(Either.left(resource));
1990 Assertions.assertThrows(ComponentException.class, () -> sIBL
1991 .createResourceAndRIsFromYaml(yamlName, resource, parsedToscaYamlInfo, actionEnum,
1992 isNormative, createdArtifacts, topologyTemplateYaml, nodeTypesInfo, csarInfo,
1993 nodeTypesArtifactsToCreate, shouldLock, inTransaction, nodeName));
1997 void testCreateGroupsOnResource2() {
1998 Resource resource = createParseResourceObject(false);
1999 Map<String, GroupDefinition> groups = null;
2000 List<GroupDefinition> groupDefinitionList = new ArrayList<>();
2001 GroupDefinition groupDefinition = new GroupDefinition();
2002 groupDefinition.setUniqueId("groupDefinitionUniqueId");
2003 groupDefinition.setName("groupDefinition");
2004 groupDefinitionList.add(groupDefinition);
2006 Assertions.assertNotNull(
2007 sIBL.createGroupsOnResource(resource, groups));
2011 void testCreateGroupsOnResource2_null() {
2012 Resource resource = createParseResourceObject(false);
2013 Map<String, GroupDefinition> groups = null;
2015 Either<Resource, ResponseFormat> result = sIBL.createGroupsOnResource(resource, groups);
2016 assertEquals(result.left().value(), resource);
2020 void testUpdateGroupsMembersUsingResource2() {
2021 Resource resource = createParseResourceObject(true);
2022 Map<String, GroupDefinition> groups = getGroups();
2024 Assertions.assertNotNull(
2025 sIBL.updateGroupsMembersUsingResource(groups, resource));
2029 void testUpdateGroupsMembersUsingResource_left2() {
2030 Resource resource = createParseResourceObject(true);
2031 Map<String, GroupDefinition> groups = getGroups();
2033 Assertions.assertNotNull(
2034 sIBL.updateGroupsMembersUsingResource(groups, resource));
2038 void testUpdateGroupMembers() throws IOException {
2039 Map<String, GroupDefinition> groups = new HashMap<>();
2040 GroupDefinition updatedGroupDefinition = new GroupDefinition();
2041 Resource component = createParseResourceObject(true);
2042 List<ComponentInstance> componentInstances = creatComponentInstances();
2043 String groupName = "tosca_simple_yaml_1_1";
2044 Map<String, String> members = new HashMap<>();
2045 members.put("zxjTestImportServiceAb", getGroupsYaml());
2046 Assertions.assertNotNull(component);
2048 sIBL.updateGroupMembers(groups, updatedGroupDefinition, component, componentInstances, groupName, members);
2052 void testUpdateGroupMembers_null() throws IOException {
2053 Map<String, GroupDefinition> groups = new HashMap<>();
2054 GroupDefinition updatedGroupDefinition = new GroupDefinition();
2055 Resource component = createParseResourceObject(true);
2056 List<ComponentInstance> componentInstances = new ArrayList<>();
2057 String groupName = "tosca_simple_yaml_1_1";
2058 Map<String, String> members = new HashMap<>();
2059 members.put("zxjTestImportServiceAb", getGroupsYaml());
2061 Assertions.assertThrows(ComponentException.class, () -> sIBL.updateGroupMembers(groups,
2062 updatedGroupDefinition, component, componentInstances, groupName, members));
2066 void setCreateResourceTransaction() {
2067 Resource resource = createParseResourceObject(false);
2068 resource.setComponentType(ComponentTypeEnum.RESOURCE);
2069 boolean isNormative = true;
2070 when(toscaOperationFacade.validateComponentNameExists(anyString(), any(ResourceTypeEnum.class), any(ComponentTypeEnum.class)))
2071 .thenReturn(Either.right(StorageOperationStatus.BAD_REQUEST));
2073 Assertions.assertThrows(ComponentException.class, () -> sIBL.createResourceTransaction(resource, user, isNormative));
2077 void setCreateResourceTransaction_leftTrue() {
2078 Resource resource = createParseResourceObject(false);
2079 resource.setComponentType(ComponentTypeEnum.RESOURCE);
2080 boolean isNormative = true;
2081 when(toscaOperationFacade.validateComponentNameExists(anyString(), any(), any())).thenReturn(Either.left(true));
2083 Assertions.assertThrows(ComponentException.class, () -> sIBL.createResourceTransaction(resource, user, isNormative));
2087 void setCreateResourceTransaction_Left() {
2088 Resource resource = createParseResourceObject(false);
2089 resource.setComponentType(ComponentTypeEnum.RESOURCE);
2090 when(toscaOperationFacade.validateComponentNameExists(anyString(), any(), any())).thenReturn(Either.left(false));
2091 when(toscaOperationFacade.createToscaComponent(any(Resource.class))).thenReturn(Either.left(resource));
2092 Assertions.assertNotNull(sIBL.createResourceTransaction(resource, user, false));
2096 void testUpdateExistingResourceByImport() {
2097 Resource newResource = createNewResource();
2098 Resource oldResource = createOldResource();
2099 when(serviceImportParseLogic.prepareResourceForUpdate(any(Resource.class), any(Resource.class),
2100 any(User.class), anyBoolean(), anyBoolean())).thenReturn(oldResource);
2101 when(serviceImportParseLogic.validateCapabilityTypesCreate(any(User.class), any(ICapabilityTypeOperation.class),
2102 any(Resource.class), any(AuditingActionEnum.class), anyBoolean())).thenReturn(Either.left(true));
2103 when(toscaOperationFacade.overrideComponent(any(Resource.class), any(Resource.class)))
2104 .thenReturn(Either.left(newResource));
2105 Assertions.assertNotNull(sIBL.updateExistingResourceByImport(newResource, oldResource, user, true, false, true));
2109 void testCreateNewResourceToOldResource() {
2110 Resource newResource = createNewResource();
2111 Resource oldResource = createOldResource();
2113 sIBL.createNewResourceToOldResource(newResource, oldResource, user);
2114 assertEquals(newResource.getSystemName(), oldResource.getSystemName());
2118 void testCreateResourcesFromYamlNodeTypesList() {
2119 String yamlName = "group.yml";
2120 Service service = createServiceObject(true);
2121 Map<String, Object> mappedToscaTemplate = new HashMap<>();
2122 boolean needLock = true;
2123 Map<String, EnumMap<ArtifactsBusinessLogic.ArtifactOperationEnum, List<ArtifactDefinition>>> nodeTypesArtifactsToHandle = new HashMap<>();
2124 List<ArtifactDefinition> nodeTypesNewCreatedArtifacts = new ArrayList<>();
2125 Map<String, NodeTypeInfo> nodeTypesInfo = new HashMap<>();
2126 CsarInfo csarInfo = getCsarInfo();
2128 Assertions.assertThrows(ComponentException.class, () -> sIBL
2129 .createResourcesFromYamlNodeTypesList(yamlName, service, mappedToscaTemplate, needLock,
2130 nodeTypesArtifactsToHandle, nodeTypesNewCreatedArtifacts, nodeTypesInfo, csarInfo));
2134 void testCreateNodeTypes() {
2135 String yamlName = "group.yml";
2136 Service service = createServiceObject(true);
2137 boolean needLock = true;
2138 Map<String, EnumMap<ArtifactsBusinessLogic.ArtifactOperationEnum, List<ArtifactDefinition>>> nodeTypesArtifactsToHandle = new HashMap<>();
2139 EnumMap<ArtifactsBusinessLogic.ArtifactOperationEnum, List<ArtifactDefinition>> enumListEnumMap =
2140 new EnumMap<>(ArtifactsBusinessLogic.ArtifactOperationEnum.class);
2141 List<ArtifactDefinition> artifactDefinitions = new ArrayList<>();
2142 ArtifactDefinition artifactDefinition = new ArtifactDefinition();
2143 artifactDefinition.setArtifactName("artifactName");
2144 artifactDefinitions.add(artifactDefinition);
2145 enumListEnumMap.put(ArtifactsBusinessLogic.ArtifactOperationEnum.CREATE,
2146 artifactDefinitions);
2147 nodeTypesArtifactsToHandle.put("nodeTyp", enumListEnumMap);
2148 List<ArtifactDefinition> nodeTypesNewCreatedArtifacts = new ArrayList<>();
2149 Map<String, NodeTypeInfo> nodeTypesInfo = getNodeTypesInfo();
2150 CsarInfo csarInfo = getCsarInfo();
2151 Map<String, Object> mapToConvert = new HashMap<>();
2152 Map<String, Object> nodeTypes = new HashMap<>();
2153 NodeTypeInfo nodeTypeInfo = new NodeTypeInfo();
2154 nodeTypesInfo.put("nodeTyp", nodeTypeInfo);
2155 nodeTypes.put("org.openecomp.resource.derivedFrom.zxjTestImportServiceAb.test",
2158 Assertions.assertThrows(ComponentException.class, () -> sIBL.createNodeTypes(yamlName,
2159 service, needLock, nodeTypesArtifactsToHandle, nodeTypesNewCreatedArtifacts,
2160 nodeTypesInfo, csarInfo, mapToConvert, nodeTypes));
2164 void testCreateNodeTypesElse() {
2165 String nodeName = "org.openecomp.resource.derivedFrom.zxjTestImportServiceAb.test";
2166 String yamlName = "group.yml";
2167 Service service = createServiceObject(true);
2168 boolean needLock = true;
2169 Map<String, EnumMap<ArtifactsBusinessLogic.ArtifactOperationEnum, List<ArtifactDefinition>>> nodeTypesArtifactsToHandle = new HashMap<>();
2170 EnumMap<ArtifactsBusinessLogic.ArtifactOperationEnum, List<ArtifactDefinition>> enumListEnumMap =
2171 new EnumMap<>(ArtifactsBusinessLogic.ArtifactOperationEnum.class);
2172 List<ArtifactDefinition> artifactDefinitions = new ArrayList<>();
2173 ArtifactDefinition artifactDefinition = new ArtifactDefinition();
2174 artifactDefinition.setArtifactName("artifactName");
2175 artifactDefinitions.add(artifactDefinition);
2176 enumListEnumMap.put(ArtifactsBusinessLogic.ArtifactOperationEnum.CREATE,
2177 artifactDefinitions);
2178 nodeTypesArtifactsToHandle.put("nodeTyp", enumListEnumMap);
2179 List<ArtifactDefinition> nodeTypesNewCreatedArtifacts = new ArrayList<>();
2180 Map<String, NodeTypeInfo> nodeTypesInfo = getNodeTypesInfo();
2181 Map<String, Object> map = new HashMap<>();
2182 map.put("tosca_definitions_version", "123");
2183 nodeTypesInfo.get(nodeName).setMappedToscaTemplate(map);
2184 ParsedToscaYamlInfo parsedToscaYamlInfo = getParsedToscaYamlInfo();
2186 CsarInfo csarInfo = getCsarInfo();
2187 Map<String, Object> mapToConvert = new HashMap<>();
2188 Map<String, Object> nodeTypes = new HashMap<>();
2189 NodeTypeInfo nodeTypeInfo = new NodeTypeInfo();
2190 nodeTypes.put("org.openecomp.resource.derivedFrom.zxjTestImportServiceAb.test",
2192 when(serviceImportParseLogic.createNodeTypeResourceFromYaml(anyString(), any(Map.Entry.class), any(User.class),
2193 anyMap(), any(Service.class), anyBoolean(), anyMap(), anyList(), anyBoolean(), any(CsarInfo.class),
2194 anyBoolean())).thenReturn(getResourceCreated());
2195 Assertions.assertNotNull(service);
2197 sIBL.createNodeTypes(yamlName,
2198 service, needLock, nodeTypesArtifactsToHandle, nodeTypesNewCreatedArtifacts,
2199 nodeTypesInfo, csarInfo, mapToConvert, nodeTypes);
2202 protected ImmutablePair<Resource, ActionStatus> getResourceCreated() {
2203 Resource resource = createOldResource();
2204 ImmutablePair<Resource, ActionStatus> resourceCreated = new ImmutablePair<>(resource, ActionStatus.OK);
2206 return resourceCreated;
2209 protected Resource createNewResource() {
2210 Resource newResource = createParseResourceObject(false);
2211 newResource.setVersion("1.0");
2212 newResource.setInvariantUUID("");
2213 newResource.setLifecycleState(null);
2214 newResource.setUUID("");
2215 newResource.setNormalizedName("");
2216 newResource.setSystemName("");
2217 newResource.setCsarUUID("");
2218 newResource.setImportedToscaChecksum("");
2219 newResource.setDerivedFromGenericType("");
2220 newResource.setDerivedFromGenericVersion("");
2221 Map<String, ArtifactDefinition> toscaArtifacts = new HashMap<>();
2222 ArtifactDefinition artifactDefinition = new ArtifactDefinition();
2223 artifactDefinition.setArtifactName("artifactDefinition");
2224 toscaArtifacts.put("toscaArtifactsMap", artifactDefinition);
2225 Map<String, InterfaceDefinition> interfaces = new HashMap<>();
2226 InterfaceDefinition interfaceDefinition = new InterfaceDefinition();
2227 interfaceDefinition.setOwnerId("OwnerId");
2228 interfaces.put("interfacesMap", interfaceDefinition);
2229 newResource.setInterfaces(interfaces);
2230 newResource.setToscaArtifacts(toscaArtifacts);
2231 newResource.setProperties(getProperties());
2235 protected Resource createOldResource() {
2236 Resource newResource = createParseResourceObject(false);
2237 newResource.setVersion("1.0");
2238 newResource.setUniqueId("ResourceUniqueId");
2239 newResource.setInvariantUUID("552e8f6c-340c-4fb4-8a82-fe7732fd8010");
2240 newResource.setLifecycleState(LifecycleStateEnum.CERTIFIED);
2241 newResource.setUUID("13065b80-ca96-4331-b643-d28aeaf961cb");
2242 newResource.setNormalizedName("NormalizedName");
2243 newResource.setSystemName("default");
2244 newResource.setCsarUUID("CsarUUID");
2245 newResource.setImportedToscaChecksum("ImportedToscaChecksum");
2246 newResource.setDerivedFromGenericType("DerivedFromGenericType");
2247 newResource.setDerivedFromGenericVersion("0.1");
2248 Map<String, ArtifactDefinition> toscaArtifacts = new HashMap<>();
2249 ArtifactDefinition artifactDefinition = new ArtifactDefinition();
2250 artifactDefinition.setArtifactName("tosca_simple_yaml_1_1");
2251 toscaArtifacts.put("tosca_definitions_version", artifactDefinition);
2252 Map<String, InterfaceDefinition> interfaces = new HashMap<>();
2253 InterfaceDefinition interfaceDefinition = new InterfaceDefinition();
2254 interfaceDefinition.setDescription("Invoked upon receipt of an Instantiate VNF request");
2255 interfaces.put("tosca_simple_yaml_1_1", interfaceDefinition);
2256 newResource.setInterfaces(interfaces);
2257 newResource.setToscaArtifacts(toscaArtifacts);
2258 List<PropertyDefinition> properties = new ArrayList<>();
2259 PropertyDefinition propertyDefinition = new PropertyDefinition();
2260 propertyDefinition.setName("tosca_simple_yaml_1_1");
2261 properties.add(propertyDefinition);
2262 newResource.setProperties(properties);
2266 protected Map<String, InputDefinition> getCurrPropertiesMap() {
2267 Map<String, InputDefinition> currPropertiesMap = new HashMap<>();
2268 InputDefinition inputDefinition = new InputDefinition();
2269 inputDefinition.setName("inputDefinitionName");
2270 inputDefinition.setUniqueId("uniqueId");
2271 inputDefinition.setType("inputDefinitionType");
2272 currPropertiesMap.put("propertyInfoName", inputDefinition);
2273 return currPropertiesMap;
2276 protected List<UploadPropInfo> getPropertyList() {
2277 List<UploadPropInfo> propertyList = new ArrayList<>();
2278 List<GetInputValueDataDefinition> get_input = new ArrayList<>();
2279 GetInputValueDataDefinition getInputValueDataDefinition = new GetInputValueDataDefinition();
2280 getInputValueDataDefinition.setPropName("getInputValueDataDefinitionName");
2281 getInputValueDataDefinition.setInputName("inputDefinitionName");
2282 get_input.add(getInputValueDataDefinition);
2283 UploadPropInfo propertyInfo = new UploadPropInfo();
2284 propertyInfo.setValue("value");
2285 propertyInfo.setGet_input(get_input);
2286 propertyInfo.setName("propertyInfoName");
2287 propertyList.add(propertyInfo);
2288 return propertyList;
2291 private Map<String, NodeTypeInfo> getNodeTypesInfo() {
2292 Map<String, NodeTypeInfo> nodeTypesInfo = new HashMap<>();
2293 NodeTypeInfo nodeTypeInfo = new NodeTypeInfo();
2294 Map<String, Object> mappedToscaTemplate = new HashMap<>();
2295 nodeTypeInfo.setNested(true);
2296 nodeTypeInfo.setTemplateFileName("templateFileName");
2297 nodeTypeInfo.setMappedToscaTemplate(mappedToscaTemplate);
2298 String nodeName = "org.openecomp.resource.derivedFrom.zxjTestImportServiceAb.test";
2299 nodeTypesInfo.put(nodeName, nodeTypeInfo);
2300 return nodeTypesInfo;
2303 private Map<String, Object> getNodeTypes() {
2304 Map<String, Object> nodeTypesInfo = new HashMap<>();
2305 NodeTypeInfo nodeTypeInfo = new NodeTypeInfo();
2306 Map<String, Object> mappedToscaTemplate = new HashMap<>();
2307 nodeTypeInfo.setNested(true);
2308 nodeTypeInfo.setTemplateFileName("templateFileName");
2309 nodeTypeInfo.setMappedToscaTemplate(mappedToscaTemplate);
2310 String nodeName = "org.openecomp.resource.derivedFrom.zxjTestImportServiceAb.test";
2311 nodeTypesInfo.put(nodeName, nodeTypeInfo);
2312 return nodeTypesInfo;
2315 private Map<String, UploadComponentInstanceInfo> getUploadResInstancesMap() {
2316 Map<String, UploadComponentInstanceInfo> uploadResInstancesMap = new HashMap<>();
2317 UploadComponentInstanceInfo uploadComponentInstanceInfo = getUploadComponentInstanceInfo();
2318 Map<String, String> capabilitiesNamesToUpdate = new HashMap<>();
2319 capabilitiesNamesToUpdate.put("mme_ipu_vdu.feature", "capabilitiesNamesToUpdate");
2320 Map<String, String> requirementsNamesToUpdate = new HashMap<>();
2321 requirementsNamesToUpdate.put("mme_ipu_vdu.feature", "capabilitiesNamesToUpdate");
2322 uploadResInstancesMap.put("zxjTestImportServiceAb", uploadComponentInstanceInfo);
2323 return uploadResInstancesMap;
2326 protected Map<String, List<UploadPropInfo>> getUploadPropInfoProperties() {
2327 Map<String, List<UploadPropInfo>> properties = new HashMap<>();
2328 List<UploadPropInfo> uploadPropInfoList = new ArrayList<>();
2329 UploadPropInfo uploadPropInfo = new UploadPropInfo();
2330 List<GetInputValueDataDefinition> get_input = new ArrayList<>();
2331 GetInputValueDataDefinition getInputValueDataDefinition = new GetInputValueDataDefinition();
2332 getInputValueDataDefinition.setPropName("getInputValueDataDefinitionName");
2333 get_input.add(getInputValueDataDefinition);
2334 uploadPropInfo.setName("propertiesName");
2335 uploadPropInfo.setValue("value");
2336 uploadPropInfo.setGet_input(get_input);
2337 uploadPropInfoList.add(uploadPropInfo);
2338 properties.put("uploadComponentInstanceInfo", uploadPropInfoList);
2342 protected List<PropertyDefinition> getProperties() {
2343 List<PropertyDefinition> properties = new ArrayList<>();
2344 PropertyDefinition propertyDefinition = new PropertyDefinition();
2345 propertyDefinition.setName("propertiesName");
2346 properties.add(propertyDefinition);
2350 protected Map<String, List<UploadReqInfo>> gerRequirements() {
2351 Map<String, List<UploadReqInfo>> uploadReqInfoMap = new HashMap<>();
2352 String requirementName = "tosca.capabilities.Node";
2353 List<UploadReqInfo> uploadReqInfoList = new ArrayList<>();
2354 UploadReqInfo uploadReqInfo = new UploadReqInfo();
2355 uploadReqInfo.setCapabilityName("tosca.capabilities.Node");
2356 uploadReqInfoMap.put(requirementName, uploadReqInfoList);
2357 return uploadReqInfoMap;
2360 protected ComponentParametersView createComponentParametersView() {
2361 ComponentParametersView parametersView = new ComponentParametersView();
2362 parametersView.disableAll();
2363 parametersView.setIgnoreComponentInstances(false);
2364 parametersView.setIgnoreComponentInstancesProperties(false);
2365 parametersView.setIgnoreCapabilities(false);
2366 parametersView.setIgnoreRequirements(false);
2367 parametersView.setIgnoreGroups(false);
2368 return parametersView;
2371 protected Map<String, byte[]> crateCsarFromPayload() {
2372 String payloadName = "valid_vf.csar";
2373 String rootPath = System.getProperty("user.dir");
2377 Map<String, byte[]> returnValue = null;
2379 path = Paths.get(rootPath + "/src/test/resources/valid_vf.csar");
2380 data = Files.readAllBytes(path);
2381 payloadData = Base64.encodeBase64String(data);
2382 UploadResourceInfo resourceInfo = new UploadResourceInfo();
2383 resourceInfo.setPayloadName(payloadName);
2384 resourceInfo.setPayloadData(payloadData);
2385 Method privateMethod = null;
2386 privateMethod = AbstractValidationsServlet.class.getDeclaredMethod("getCsarFromPayload", UploadResourceInfo.class);
2387 privateMethod.setAccessible(true);
2388 returnValue = (Map<String, byte[]>) privateMethod.invoke(servlet, resourceInfo);
2389 } catch (IOException | NoSuchMethodException | SecurityException | IllegalAccessException | IllegalArgumentException |
2390 InvocationTargetException e) {
2391 e.printStackTrace();
2396 protected List<ComponentInstance> creatComponentInstances() {
2397 List<ComponentInstance> componentInstances = new ArrayList<>();
2398 ComponentInstance componentInstance = new ComponentInstance();
2399 Map<String, List<CapabilityDefinition>> capabilities = new HashMap<>();
2400 List<CapabilityDefinition> capabilityDefinitionList = new ArrayList<>();
2401 CapabilityDefinition capabilityDefinition = new CapabilityDefinition();
2402 capabilityDefinition.setName("mme_ipu_vdu.feature");
2403 capabilityDefinitionList.add(capabilityDefinition);
2404 capabilities.put("tosca.capabilities.Node", capabilityDefinitionList);
2406 Map<String, List<RequirementDefinition>> requirements = new HashMap<>();
2407 List<RequirementDefinition> requirementDefinitionList = new ArrayList<>();
2408 RequirementDefinition requirementDefinition = new RequirementDefinition();
2409 requirementDefinition.setName("zxjtestimportserviceab0.mme_ipu_vdu.dependency.test");
2410 requirementDefinitionList.add(requirementDefinition);
2411 requirements.put("tosca.capabilities.Node", requirementDefinitionList);
2412 componentInstance.setRequirements(requirements);
2413 componentInstance.setCapabilities(capabilities);
2414 componentInstance.setUniqueId("uniqueId");
2415 componentInstance.setComponentUid("componentUid");
2416 componentInstance.setName("zxjTestImportServiceAb");
2417 componentInstance.setNormalizedName("zxjTestImportServiceAb");
2418 componentInstance.setProperties(getProperties());
2419 componentInstances.add(componentInstance);
2420 return componentInstances;
2423 private CreateServiceFromYamlParameter getCsfyp() {
2424 CreateServiceFromYamlParameter csfyp = new CreateServiceFromYamlParameter();
2425 List<ArtifactDefinition> createdArtifacts = new ArrayList<>();
2426 Map<String, NodeTypeInfo> nodeTypesInfo = getNodeTypesInfo();
2428 csfyp.setNodeName("org.openecomp.resource.derivedFrom.zxjTestImportServiceAb.test");
2429 csfyp.setTopologyTemplateYaml(getMainTemplateContent("service_import_template.yml"));
2430 csfyp.setCreatedArtifacts(createdArtifacts);
2431 csfyp.setInTransaction(true);
2432 csfyp.setShouldLock(true);
2433 csfyp.setCsarInfo(getCsarInfo());
2434 csfyp.setParsedToscaYamlInfo(getParsedToscaYamlInfo());
2435 csfyp.setNodeTypesInfo(nodeTypesInfo);
2436 csfyp.setYamlName("group.yml");
2440 private ParsedToscaYamlInfo getParsedToscaYamlInfo() {
2441 ParsedToscaYamlInfo parsedToscaYamlInfo = new ParsedToscaYamlInfo();
2442 Map<String, InputDefinition> inputs = new HashMap<>();
2443 Map<String, UploadComponentInstanceInfo> instances = new HashMap<>();
2444 UploadComponentInstanceInfo uploadComponentInstanceInfo = getUploadComponentInstanceInfo();
2445 instances.put("instances", uploadComponentInstanceInfo);
2446 Map<String, GroupDefinition> groups = new HashMap<>();
2447 Map<String, PolicyDefinition> policies = new HashMap<>();
2448 parsedToscaYamlInfo.setGroups(groups);
2449 parsedToscaYamlInfo.setInputs(inputs);
2450 parsedToscaYamlInfo.setInstances(instances);
2451 parsedToscaYamlInfo.setPolicies(policies);
2452 return parsedToscaYamlInfo;
2455 String getMainTemplateContent(String fileName) {
2456 String mainTemplateContent = null;
2458 mainTemplateContent = loadFileNameToJsonString(fileName);
2459 } catch (IOException e) {
2460 e.printStackTrace();
2462 return mainTemplateContent;
2465 protected ServiceCsarInfo getCsarInfo() {
2466 String csarUuid = "0010";
2467 User user = new User("jh0003");
2470 File csarFile = new File(
2471 ServiceImportBusinessLogicTest.class.getClassLoader().getResource("csars/service-Ser09080002-csar.csar").toURI());
2472 Map<String, byte[]> csar = ZipUtils.readZip(csarFile, false);
2474 String vfReousrceName = "resouceName";
2475 String mainTemplateName = "Definitions/service_import_template.yml";
2477 Optional<String> keyOp = csar.keySet().stream().filter(k -> k.endsWith("service-Ser09080002-template.yml")).findAny();
2478 byte[] mainTemplateService = keyOp.map(csar::get).orElse(null);
2479 assertNotNull(mainTemplateService);
2480 final String mainTemplateContent = new String(mainTemplateService);
2482 return new ServiceCsarInfo(user, csarUuid, csar, vfReousrceName, mainTemplateName, mainTemplateContent, false);
2483 } catch (URISyntaxException | ZipException e) {
2489 private ImmutablePair<String, byte[]> getNodeType() {
2491 File resource = new File(
2492 ServiceImportBusinessLogicTest.class.getClassLoader().getResource("node-types/resource-Extcp-template.yml").toURI());
2493 byte[] extcpResource = Files.readAllBytes(resource.toPath());
2495 return new ImmutablePair<>("org.openecomp.resource.cp.extCP", extcpResource);
2496 } catch (URISyntaxException | IOException e) {
2502 protected CsarUtils.NonMetaArtifactInfo getNonMetaArtifactInfo() {
2503 String artifactName = "artifactName", path = "/src/test/resources/valid_vf.csar", artifactType = "AAI_SERVICE_MODEL";
2504 ArtifactGroupTypeEnum artifactGroupType = ArtifactGroupTypeEnum.TOSCA;
2505 String rootPath = System.getProperty("user.dir");
2507 byte[] data = new byte[0];
2508 path2 = Paths.get(rootPath + "/src/test/resources/valid_vf.csar");
2510 data = Files.readAllBytes(path2);
2511 } catch (IOException e) {
2512 e.printStackTrace();
2514 String artifactUniqueId = "artifactUniqueId";
2515 boolean isFromCsar = true;
2516 CsarUtils.NonMetaArtifactInfo nonMetaArtifactInfo = new CsarUtils.NonMetaArtifactInfo(artifactName,
2517 path, artifactType, artifactGroupType, data, artifactUniqueId, isFromCsar);
2518 return nonMetaArtifactInfo;
2522 protected void assertComponentException(ComponentException e, ActionStatus expectedStatus, String... variables) {
2523 ResponseFormat actualResponse = e.getResponseFormat() != null ?
2524 e.getResponseFormat() : componentsUtils.getResponseFormat(e.getActionStatus(), e.getParams());
2525 assertParseResponse(actualResponse, expectedStatus, variables);
2528 private void assertParseResponse(ResponseFormat actualResponse, ActionStatus expectedStatus, String... variables) {
2529 ResponseFormat expectedResponse = responseManager.getResponseFormat(expectedStatus, variables);
2530 assertThat(expectedResponse.getStatus()).isEqualTo(actualResponse.getStatus());
2531 assertThat(expectedResponse.getFormattedMessage()).isEqualTo(actualResponse.getFormattedMessage());