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.doReturn;
31 import static org.mockito.Mockito.eq;
32 import static org.mockito.Mockito.isNull;
33 import static org.mockito.Mockito.matches;
34 import static org.mockito.Mockito.mock;
35 import static org.mockito.Mockito.verify;
36 import static org.mockito.Mockito.when;
37 import static org.openecomp.sdc.be.components.impl.ServiceImportBusinessLogic.CREATE_RESOURCE;
39 import fj.data.Either;
41 import java.io.IOException;
42 import java.lang.reflect.InvocationTargetException;
43 import java.lang.reflect.Method;
44 import java.net.URISyntaxException;
45 import java.nio.file.FileSystems;
46 import java.nio.file.Files;
47 import java.nio.file.Path;
48 import java.nio.file.Paths;
49 import java.util.ArrayList;
50 import java.util.Collections;
51 import java.util.EnumMap;
52 import java.util.HashMap;
53 import java.util.List;
55 import java.util.Optional;
57 import org.apache.commons.codec.binary.Base64;
58 import org.apache.commons.collections.map.HashedMap;
59 import org.apache.commons.lang3.tuple.ImmutablePair;
60 import org.json.simple.JSONObject;
61 import org.junit.jupiter.api.Assertions;
62 import org.junit.jupiter.api.BeforeEach;
63 import org.junit.jupiter.api.Test;
64 import org.mockito.ArgumentCaptor;
65 import org.mockito.InjectMocks;
66 import org.mockito.MockitoAnnotations;
67 import org.openecomp.sdc.be.components.csar.CsarInfo;
68 import org.openecomp.sdc.be.components.csar.ServiceCsarInfo;
69 import org.openecomp.sdc.be.components.impl.artifact.ArtifactOperationInfo;
70 import org.openecomp.sdc.be.components.impl.exceptions.ComponentException;
71 import org.openecomp.sdc.be.components.impl.utils.CreateServiceFromYamlParameter;
72 import org.openecomp.sdc.be.dao.api.ActionStatus;
73 import org.openecomp.sdc.be.dao.janusgraph.JanusGraphOperationStatus;
74 import org.openecomp.sdc.be.datatypes.components.ResourceMetadataDataDefinition;
75 import org.openecomp.sdc.be.datatypes.elements.GetInputValueDataDefinition;
76 import org.openecomp.sdc.be.datatypes.enums.ComponentTypeEnum;
77 import org.openecomp.sdc.be.datatypes.enums.NodeTypeEnum;
78 import org.openecomp.sdc.be.datatypes.enums.ResourceTypeEnum;
79 import org.openecomp.sdc.be.datatypes.tosca.ToscaGetFunctionType;
80 import org.openecomp.sdc.be.externalapi.servlet.ArtifactExternalServlet;
81 import org.openecomp.sdc.be.impl.ServletUtils;
82 import org.openecomp.sdc.be.info.NodeTypeInfoToUpdateArtifacts;
83 import org.openecomp.sdc.be.model.ArtifactDefinition;
84 import org.openecomp.sdc.be.model.AttributeDefinition;
85 import org.openecomp.sdc.be.model.CapabilityDefinition;
86 import org.openecomp.sdc.be.model.CapabilityTypeDefinition;
87 import org.openecomp.sdc.be.model.Component;
88 import org.openecomp.sdc.be.model.ComponentInstance;
89 import org.openecomp.sdc.be.model.ComponentInstanceInput;
90 import org.openecomp.sdc.be.model.ComponentInstanceProperty;
91 import org.openecomp.sdc.be.model.ComponentMetadataDefinition;
92 import org.openecomp.sdc.be.model.ComponentParametersView;
93 import org.openecomp.sdc.be.model.DataTypeDefinition;
94 import org.openecomp.sdc.be.model.GroupDefinition;
95 import org.openecomp.sdc.be.model.GroupTypeDefinition;
96 import org.openecomp.sdc.be.model.IPropertyInputCommon;
97 import org.openecomp.sdc.be.model.InputDefinition;
98 import org.openecomp.sdc.be.model.InterfaceDefinition;
99 import org.openecomp.sdc.be.model.LifecycleStateEnum;
100 import org.openecomp.sdc.be.model.NodeTypeInfo;
101 import org.openecomp.sdc.be.model.Operation;
102 import org.openecomp.sdc.be.model.ParsedToscaYamlInfo;
103 import org.openecomp.sdc.be.model.PolicyDefinition;
104 import org.openecomp.sdc.be.model.PropertyDefinition;
105 import org.openecomp.sdc.be.model.RequirementCapabilityRelDef;
106 import org.openecomp.sdc.be.model.RequirementDefinition;
107 import org.openecomp.sdc.be.model.Resource;
108 import org.openecomp.sdc.be.model.Service;
109 import org.openecomp.sdc.be.model.UploadComponentInstanceInfo;
110 import org.openecomp.sdc.be.model.UploadNodeFilterInfo;
111 import org.openecomp.sdc.be.model.UploadPropInfo;
112 import org.openecomp.sdc.be.model.UploadReqInfo;
113 import org.openecomp.sdc.be.model.UploadResourceInfo;
114 import org.openecomp.sdc.be.model.User;
115 import org.openecomp.sdc.be.model.cache.ApplicationDataTypeCache;
116 import org.openecomp.sdc.be.model.operations.api.ICapabilityTypeOperation;
117 import org.openecomp.sdc.be.model.operations.api.StorageOperationStatus;
118 import org.openecomp.sdc.be.model.operations.impl.ArtifactTypeOperation;
119 import org.openecomp.sdc.be.model.operations.impl.CapabilityTypeOperation;
120 import org.openecomp.sdc.be.model.operations.impl.GroupTypeOperation;
121 import org.openecomp.sdc.be.model.operations.impl.ModelOperation;
122 import org.openecomp.sdc.be.resources.data.auditing.AuditingActionEnum;
123 import org.openecomp.sdc.be.servlets.AbstractValidationsServlet;
124 import org.openecomp.sdc.be.tosca.CsarUtils;
125 import org.openecomp.sdc.be.tosca.ToscaExportHandler;
126 import org.openecomp.sdc.common.api.ArtifactGroupTypeEnum;
127 import org.openecomp.sdc.common.api.ArtifactTypeEnum;
128 import org.openecomp.sdc.common.api.Constants;
129 import org.openecomp.sdc.common.zip.ZipUtils;
130 import org.openecomp.sdc.common.zip.exception.ZipException;
131 import org.openecomp.sdc.exception.ResponseFormat;
132 import org.yaml.snakeyaml.Yaml;
134 class ServiceImportBusinessLogicTest extends ServiceImportBussinessLogicBaseTestSetup {
136 private final ArtifactDefinition artifactDefinition = mock(ArtifactDefinition.class);
137 private final ResourceImportManager resourceImportManager = mock(ResourceImportManager.class);
138 private final ServletUtils servletUtils = mock(ServletUtils.class);
139 private final AbstractValidationsServlet servlet = new ArtifactExternalServlet(
140 componentInstanceBusinessLogic, componentsUtils, servletUtils, resourceImportManager, artifactsBusinessLogic);
141 private final ApplicationDataTypeCache applicationDataTypeCache = mock(ApplicationDataTypeCache.class);
142 private final ArtifactTypeOperation artifactTypeOperation = mock(ArtifactTypeOperation.class);
143 private final DataTypeBusinessLogic dataTypeBusinessLogic = mock(DataTypeBusinessLogic.class);
144 private final ArtifactTypeImportManager artifactTypeImportManager = mock(ArtifactTypeImportManager.class);
145 private final GroupTypeOperation groupTypeOperation = mock(GroupTypeOperation.class);
146 private final CapabilityTypeOperation capabilityTypeOperation = mock(CapabilityTypeOperation.class);
147 private final CapabilityTypeImportManager capabilityTypeImportManager = mock(CapabilityTypeImportManager.class);
148 private final InterfaceLifecycleTypeImportManager interfaceLifecycleTypeImportManager = mock(InterfaceLifecycleTypeImportManager.class);
151 private ServiceImportBusinessLogic sIBL;
153 public static String loadFileNameToJsonString(String fileName) throws IOException {
154 String sourceDir = "src/test/resources/normativeTypes";
155 return loadFileNameToJsonString(sourceDir, fileName);
158 private static String loadFileNameToJsonString(String sourceDir, String fileName) throws IOException {
159 java.nio.file.Path filePath = FileSystems.getDefault().getPath(sourceDir, fileName);
160 byte[] fileContent = Files.readAllBytes(filePath);
161 return new String(fileContent);
166 MockitoAnnotations.openMocks(this);
167 when(artifactDefinition.getMandatory()).thenReturn(true);
168 when(artifactDefinition.getArtifactName()).thenReturn("creatorFullName");
169 when(artifactDefinition.getArtifactType()).thenReturn("TOSCA_CSAR");
173 void testCreateService_OK() {
174 Service oldService = createServiceObject(true);
175 oldService.setComponentInstances(creatComponentInstances());
176 oldService.setComponentInstancesProperties(
177 Collections.singletonMap(COMPONENT_ID, Collections.singletonList(new ComponentInstanceProperty())));
178 String payloadName = "valid_vf";
179 Map<String, byte[]> payload = crateCsarFromPayload();
180 Service newService = createServiceObject(true);
181 newService.setComponentInstances(creatComponentInstances());
182 ComponentInstanceProperty componentInstanceProperty = new ComponentInstanceProperty();
183 componentInstanceProperty.setName("propertiesName");
184 final JSONObject jsonObject = new JSONObject();
185 jsonObject.put(ToscaGetFunctionType.GET_INPUT.getFunctionName(), "zxjTestImportServiceAb_propertiesName");
186 componentInstanceProperty.setValue(jsonObject.toJSONString());
188 Map<String, ArtifactDefinition> toscaArtifacts = new HashMap<>();
189 ArtifactDefinition artifactDef = new ArtifactDefinition();
190 String artifactUniqueId = "test_extcp_resource.assettoscatemplate";
191 artifactDef.setUniqueId(artifactUniqueId);
192 toscaArtifacts.put(ToscaExportHandler.ASSET_TOSCA_TEMPLATE, artifactDef);
193 Resource resource = new Resource();
194 String resourceUniqueId = "extcp_resource";
195 resource.setUniqueId(resourceUniqueId);
196 resource.setToscaArtifacts(toscaArtifacts);
197 resource.getComponentMetadataDefinition().getMetadataDataDefinition().setState(LifecycleStateEnum.CERTIFIED.name());
198 resource.setResourceType(ResourceTypeEnum.VF);
200 ImmutablePair<String, byte[]> resourceTemplate = getNodeType();
201 String updatedNodeType = "org.openecomp.resource.cp.extCP";
202 resource.setToscaResourceName(updatedNodeType);
204 newService.setComponentInstancesProperties(
205 Collections.singletonMap(COMPONENT_ID + "." + "zxjTestImportServiceAb", Collections.singletonList(componentInstanceProperty)));
206 newService.setProperties(getProperties());
208 when(serviceBusinessLogic.validateServiceBeforeCreate(eq(newService), any(User.class), any(AuditingActionEnum.class)))
209 .thenReturn(Either.left(newService));
210 when(toscaOperationFacade.validateCsarUuidUniqueness(anyString())).thenReturn(StorageOperationStatus.OK);
211 ServiceCsarInfo csarInfo = getCsarInfo();
212 when(csarBusinessLogic.getCsarInfo(any(Service.class), any(), any(User.class), any(Map.class), anyString(), any())).thenReturn(csarInfo);
213 when(serviceImportParseLogic.findNodeTypesArtifactsToHandle(any(Map.class), any(CsarInfo.class), any(Service.class)))
214 .thenReturn(Either.left(new HashMap<String, EnumMap<ArtifactsBusinessLogic.ArtifactOperationEnum, List<ArtifactDefinition>>>()));
215 doReturn(getParsedToscaYamlInfo()).when(csarBusinessLogic)
216 .getParsedToscaYamlInfo(anyString(), anyString(), any(), any(CsarInfo.class), any(), any(Service.class));
217 doReturn(getParsedToscaYamlInfo()).when(csarBusinessLogic).getParsedToscaYamlInfo(any(ServiceCsarInfo.class), any(Service.class));
218 when(serviceBusinessLogic.lockComponentByName(newService.getSystemName(), oldService, CREATE_RESOURCE)).thenReturn(Either.left(true));
219 when(toscaOperationFacade.getLatestResourceByToscaResourceName(anyString())).thenReturn(Either.left(createOldResource()));
220 when(serviceImportParseLogic.createServiceTransaction(oldService, csarInfo.getModifier(), false,
221 AuditingActionEnum.CREATE_RESOURCE)).thenReturn(newService);
222 when(serviceImportParseLogic.createInputsOnService(eq(oldService), anyMap())).thenReturn(newService);
223 Assertions.assertDoesNotThrow(() -> {
224 when(serviceImportParseLogic.createSubstitutionFilterOnService(eq(oldService), any())).thenReturn(newService);
226 when(serviceImportParseLogic.getNodeTypesFromTemplate(anyMap())).thenReturn(getNodeTypes());
227 when(serviceImportParseLogic.createNodeTypeResourceFromYaml(anyString(), any(Map.Entry.class), any(User.class), anyMap(), any(Service.class),
228 anyBoolean(), any(), anyList(), anyBoolean(), any(CsarInfo.class), anyBoolean())).thenReturn(
229 new ImmutablePair<>(resource, ActionStatus.OK));
230 when(serviceImportParseLogic.getComponentWithInstancesFilter()).thenReturn(new ComponentParametersView());
231 when(toscaOperationFacade.getToscaElement(anyString(), any(ComponentParametersView.class))).thenReturn(Either.left(newService));
232 when(serviceImportParseLogic.getComponentFilterAfterCreateRelations()).thenReturn(new ComponentParametersView());
233 when(toscaOperationFacade.getToscaElement(anyString(), any(ComponentParametersView.class))).thenReturn(Either.left(newService));
234 when(serviceImportParseLogic.findAvailableRequirement(anyString(), anyString(), any(UploadComponentInstanceInfo.class),
235 any(ComponentInstance.class), anyString())).thenReturn(Either.left(new RequirementDefinition()));
236 when(serviceImportParseLogic.findAvailableCapabilityByTypeOrName(any(RequirementDefinition.class), any(ComponentInstance.class),
237 any(UploadReqInfo.class))).thenReturn(new CapabilityDefinition());
238 when(componentsUtils.getResponseFormat(eq(ActionStatus.OK), anyString())).thenReturn(new ResponseFormat(200));
239 when(toscaOperationFacade.getToscaElement(anyString())).thenReturn(Either.left(newService));
240 doNothing().when(compositionBusinessLogic).setPositionsForComponentInstances(any(Service.class), anyString());
241 when(groupBusinessLogic.validateUpdateVfGroupNames(anyMap(), anyString())).thenReturn(Either.left(new HashMap<>()));
242 when(csarArtifactsAndGroupsBusinessLogic.deleteVFModules(any(Service.class), any(CsarInfo.class), anyBoolean(), anyBoolean()))
243 .thenReturn(Either.left(newService));
244 when(serviceImportParseLogic.getServiceWithGroups(anyString())).thenReturn(newService);
245 when(mockJanusGraphDao.commit()).thenReturn(JanusGraphOperationStatus.OK);
246 when(graphLockOperation.unlockComponentByName(anyString(), anyString(), any(NodeTypeEnum.class))).thenReturn(StorageOperationStatus.OK);
247 when(serviceImportParseLogic.createOutputsOnService(any(Service.class), any(), anyString())).thenReturn(newService);
248 when(toscaOperationFacade.updateInputsToComponent(anyList(), eq(newService.getUniqueId()))).thenReturn(Either.left(new ArrayList<>()));
250 when(applicationDataTypeCache.get(any(), contains("tosca.datatypes.test_"))).thenReturn(Either.right(JanusGraphOperationStatus.NOT_FOUND));
251 DataTypeDefinition typeToBeUpdated = new DataTypeDefinition();
252 List<PropertyDefinition> properties = new ArrayList<>();
253 PropertyDefinition nameProperty = new PropertyDefinition();
254 nameProperty.setName("name");
255 nameProperty.setType("string");
256 properties.add(nameProperty);
257 PropertyDefinition versionProperty = new PropertyDefinition();
258 versionProperty.setName("version");
259 versionProperty.setType("string");
260 properties.add(versionProperty);
261 typeToBeUpdated.setProperties(properties);
262 when(applicationDataTypeCache.get(any(), eq("onap.datatypes.ToscaConceptIdentifier.datatype"))).thenReturn(Either.left(typeToBeUpdated));
263 when(applicationDataTypeCache.get(any(), matches("^((?!(tosca.datatypes.test_|onap.datatypes.ToscaConceptIdentifier)).)*$"))).thenReturn(
264 Either.left(new DataTypeDefinition()));
266 when(artifactTypeOperation.getArtifactTypeByUid(contains("tosca.testartifacts.Name"))).thenReturn(
267 Either.right(StorageOperationStatus.NOT_FOUND));
268 when(artifactTypeOperation.getArtifactTypeByUid(contains("tosca.artifacts"))).thenReturn(Either.left(null));
270 when(interfaceLifecycleTypeOperation.getInterface(contains("tosca.interfaces"))).thenReturn(Either.left(new InterfaceDefinition()));
271 when(interfaceLifecycleTypeOperation.getInterface(contains("tosca.interfaces.test"))).thenReturn(
272 Either.right(StorageOperationStatus.NOT_FOUND));
274 when(capabilityTypeOperation.getCapabilityType(anyString()))
275 .thenReturn(Either.left(new CapabilityTypeDefinition()));
276 when(capabilityTypeOperation.getCapabilityType(contains("tosca.testcapabilitytypes.Name")))
277 .thenReturn(Either.right(StorageOperationStatus.NOT_FOUND));
279 when(toscaOperationFacade.getLatestByToscaResourceName(contains("org.openecomp.resource"), isNull()))
280 .thenReturn(Either.right(StorageOperationStatus.NOT_FOUND));
281 when(toscaOperationFacade.getLatestByToscaResourceName(contains("tosca.nodes."), isNull()))
282 .thenReturn(Either.right(StorageOperationStatus.NOT_FOUND));
283 when(toscaOperationFacade.getLatestByToscaResourceName(updatedNodeType, null)).thenReturn(Either.left(resource));
284 when(toscaOperationFacade.getLatestByToscaResourceName(contains("org.openecomp.service."), isNull()))
285 .thenReturn(Either.right(StorageOperationStatus.NOT_FOUND));
286 when(artifactsBusinessLogic.handleDownloadRequestById(resourceUniqueId, artifactUniqueId, user.getUserId(), ComponentTypeEnum.RESOURCE, null,
288 .thenReturn(resourceTemplate);
289 when(toscaOperationFacade.updatePropertyOfComponent(eq(oldService), any(PropertyDefinition.class))).thenReturn(Either.left(null));
290 when(toscaOperationFacade.updateComponentInstancePropsToComponent(anyMap(), anyString())).thenReturn(Either.left(null));
291 when(groupTypeOperation.getGroupTypeByUid(anyString())).thenReturn(Either.left(new GroupTypeDefinition()));
293 Service result = sIBL.createService(oldService, AuditingActionEnum.CREATE_RESOURCE, user, payload, payloadName);
294 assertNotNull(result);
295 assertNotNull(result.getComponentInstances());
296 assertEquals(1, result.getComponentInstances().size());
297 assertNotNull(result.getComponentInstances().get(0));
298 assertNotNull(result.getComponentInstances().get(0).getCapabilities());
299 assertEquals(1, result.getComponentInstances().get(0).getCapabilities().size());
300 assertNotNull(result.getComponentInstances().get(0).getRequirements());
301 assertEquals(1, result.getComponentInstances().get(0).getRequirements().size());
302 assertNotNull(result.getCategories());
303 assertEquals(1, result.getCategories().size());
305 ArgumentCaptor<String> yaml = ArgumentCaptor.forClass(String.class);
306 verify(dataTypeBusinessLogic).createDataTypeFromYaml(yaml.capture(), isNull(), anyBoolean());
307 Map<String, Object> yamlMap = new Yaml().load(yaml.getValue());
308 assertEquals(3, yamlMap.size());
309 assertNotNull(yamlMap.get("tosca.datatypes.test_a"));
310 assertNotNull(yamlMap.get("tosca.datatypes.test_b"));
311 assertNotNull(yamlMap.get("onap.datatypes.ToscaConceptIdentifier"));
313 ArgumentCaptor<String> artifactTypes = ArgumentCaptor.forClass(String.class);
314 verify(artifactTypeImportManager).createArtifactTypes(artifactTypes.capture(), isNull(), anyBoolean());
315 Map<String, Object> artifactTypesMap = new Yaml().load(artifactTypes.getValue());
316 assertEquals(1, artifactTypesMap.size());
317 assertNotNull(artifactTypesMap.get("tosca.testartifacts.Name"));
319 ArgumentCaptor<String> capabilityTypes = ArgumentCaptor.forClass(String.class);
320 verify(capabilityTypeImportManager).createCapabilityTypes(
321 capabilityTypes.capture(),
324 Map<String, Object> capabilityTypesMap = new Yaml().load(capabilityTypes.getValue());
325 assertEquals(1, capabilityTypesMap.size());
326 assertNotNull(capabilityTypesMap.get("tosca.testcapabilitytypes.Name"));
328 ArgumentCaptor<Map<String, Object>> nodeTypes = ArgumentCaptor.forClass(Map.class);
329 verify(resourceImportManager).importAllNormativeResource(nodeTypes.capture(), any(), any(), any(), any(),
330 anyBoolean(), anyBoolean());
331 Map<String, Object> nodeTypesMap = nodeTypes.getValue();
332 Map<String, Object> newUpdatedNodeType = (Map<String, Object>) nodeTypesMap.get(updatedNodeType);
333 assertEquals(8, ((Map<String, Object>) newUpdatedNodeType.get("properties")).size());
334 Assertions.assertNull(newUpdatedNodeType.get("attributes"));
335 assertEquals(3, ((List<Map<String, Object>>) newUpdatedNodeType.get("requirements")).size());
336 assertEquals(1, ((Map<String, Object>) newUpdatedNodeType.get("capabilities")).size());
337 assertEquals(2, ((Map<String, Object>) newUpdatedNodeType.get("interfaces")).size());
339 ArgumentCaptor<String> interfaceTypes = ArgumentCaptor.forClass(String.class);
340 verify(interfaceLifecycleTypeImportManager).createLifecycleTypes(interfaceTypes.capture(), any(), anyBoolean());
341 Map<String, Object> yamlInterfaceMap = new Yaml().load(interfaceTypes.getValue());
342 assertEquals(3, yamlInterfaceMap.size());
343 assertNotNull(yamlInterfaceMap.get("tosca.interfaces.test.node.lifecycle.Attach"));
344 assertNotNull(yamlInterfaceMap.get("tosca.interfaces.test.node.lifecycle.Detach"));
345 assertNotNull(yamlInterfaceMap.get("tosca.interfaces.test.node.lifecycle.Reconfigure"));
350 void testCreateService_Fail_NotFoundNodeTypesArtifacts() {
351 Service oldService = createServiceObject(true);
352 String payloadName = "valid_vf";
353 Map<String, byte[]> payload = crateCsarFromPayload();
354 Service newService = createServiceObject(true);
356 when(serviceBusinessLogic.validateServiceBeforeCreate(any(Service.class), any(User.class), any(AuditingActionEnum.class)))
357 .thenReturn(Either.left(newService));
358 when(toscaOperationFacade.validateCsarUuidUniqueness(anyString())).thenReturn(StorageOperationStatus.OK);
359 when(csarBusinessLogic.getCsarInfo(any(Service.class), any(), any(User.class), any(Map.class), anyString(), any())).thenReturn(getCsarInfo());
360 when(serviceImportParseLogic.findNodeTypesArtifactsToHandle(any(Map.class), any(CsarInfo.class), any(Service.class)))
361 .thenReturn(Either.right(ActionStatus.GENERAL_ERROR));
362 when(csarBusinessLogic.getParsedToscaYamlInfo(anyString(), anyString(), any(), any(CsarInfo.class), anyString(),
363 any(Service.class))).thenReturn(getParsedToscaYamlInfo());
365 Assertions.assertThrows(ComponentException.class,
366 () -> sIBL.createService(oldService, AuditingActionEnum.CREATE_RESOURCE, user, payload, payloadName));
370 void testCreateServiceFromCsar() {
371 Service oldService = createServiceObject(true);
372 String csarUUID = "valid_vf";
373 Map<String, byte[]> payload = crateCsarFromPayload();
374 ServiceCsarInfo csarInfo = getCsarInfo();
375 Map<String, EnumMap<ArtifactsBusinessLogic.ArtifactOperationEnum, List<ArtifactDefinition>>> map =
378 when(csarBusinessLogic.getCsarInfo(any(Service.class), any(), any(User.class),
379 any(Map.class), anyString(), any())).thenReturn(csarInfo);
380 when(serviceImportParseLogic.findNodeTypesArtifactsToHandle(any(Map.class), any(CsarInfo.class),
381 any(Service.class))).thenReturn(Either.left(map));
382 Assertions.assertThrows(ComponentException.class, () -> sIBL.createServiceFromCsar(oldService,
383 user, payload, csarUUID, null));
387 void testCreateServiceFromYaml() {
388 Service oldService = createServiceObject(true);
389 Resource resource = createOldResource();
390 String topologyTemplateYaml = getMainTemplateContent("service_import_template.yml");
391 String yamlName = "group.yml";
392 ServiceCsarInfo csarInfo = getCsarInfo();
393 Map<String, EnumMap<ArtifactsBusinessLogic.ArtifactOperationEnum, List<ArtifactDefinition>>> nodeTypesArtifactsToCreate = new HashMap<>();
394 String nodeName = "org.openecomp.resource.derivedFrom.zxjTestImportServiceAb.test";
396 Map<String, NodeTypeInfo> nodeTypesInfo = getNodeTypesInfo();
397 Map<String, Object> map = new HashMap<>();
398 map.put("tosca_definitions_version", "123");
399 nodeTypesInfo.get(nodeName).setMappedToscaTemplate(map);
400 ParsedToscaYamlInfo parsedToscaYamlInfo = getParsedToscaYamlInfo();
401 when(toscaOperationFacade.getLatestResourceByToscaResourceName(anyString())).thenReturn(Either.left(resource));
402 when(csarBusinessLogic.getParsedToscaYamlInfo(anyString(), anyString(), any(Map.class),
403 eq(csarInfo), anyString(), any(Component.class))).thenReturn(parsedToscaYamlInfo);
404 when(serviceBusinessLogic.lockComponentByName(anyString(), any(Service.class), anyString()))
405 .thenReturn(Either.left(true));
407 Assertions.assertThrows(ComponentException.class, () -> sIBL.createServiceFromYaml(oldService,
408 topologyTemplateYaml, yamlName, nodeTypesInfo, csarInfo,
409 nodeTypesArtifactsToCreate, false, true, nodeName, user.getUserId(), null));
413 void testCreateServiceAndRIsFromYaml() {
414 String nodeName = "org.openecomp.resource.derivedFrom.zxjTestImportServiceAb.test";
415 Service oldService = createServiceObject(true);
416 Resource resource = createOldResource();
417 Map<String, EnumMap<ArtifactsBusinessLogic.ArtifactOperationEnum, List<ArtifactDefinition>>> nodeTypesArtifactsToCreate = new HashMap<>();
418 CreateServiceFromYamlParameter csfyp = getCsfyp();
419 Map<String, NodeTypeInfo> nodeTypesInfo = getNodeTypesInfo();
420 Map<String, Object> map = new HashMap<>();
421 map.put("tosca_definitions_version", "123");
422 nodeTypesInfo.get(nodeName).setMappedToscaTemplate(map);
423 ParsedToscaYamlInfo parsedToscaYamlInfo = getParsedToscaYamlInfo();
424 csfyp.setNodeTypesInfo(nodeTypesInfo);
425 csfyp.setParsedToscaYamlInfo(parsedToscaYamlInfo);
426 when(toscaOperationFacade.getLatestResourceByToscaResourceName(anyString())).thenReturn(Either.left(resource));
427 Assertions.assertThrows(ComponentException.class, () -> sIBL.createServiceAndRIsFromYaml(oldService,
428 false, nodeTypesArtifactsToCreate, false, true, csfyp, user.getUserId(), null));
432 void testCreateServiceAndRIsFromYamlShoudLook() {
433 String nodeName = "org.openecomp.resource.derivedFrom.zxjTestImportServiceAb.test";
434 Service oldService = createServiceObject(true);
435 Resource resource = createOldResource();
436 Map<String, EnumMap<ArtifactsBusinessLogic.ArtifactOperationEnum, List<ArtifactDefinition>>> nodeTypesArtifactsToCreate = new HashMap<>();
437 CreateServiceFromYamlParameter csfyp = getCsfyp();
438 Map<String, NodeTypeInfo> nodeTypesInfo = getNodeTypesInfo();
439 Map<String, Object> map = new HashMap<>();
440 map.put("tosca_definitions_version", "123");
441 nodeTypesInfo.get(nodeName).setMappedToscaTemplate(map);
442 ParsedToscaYamlInfo parsedToscaYamlInfo = getParsedToscaYamlInfo();
443 csfyp.setNodeTypesInfo(nodeTypesInfo);
444 csfyp.setParsedToscaYamlInfo(parsedToscaYamlInfo);
445 when(toscaOperationFacade.getLatestResourceByToscaResourceName(anyString())).thenReturn(Either.left(resource));
446 Assertions.assertThrows(ComponentException.class, () -> sIBL.createServiceAndRIsFromYaml(oldService,
447 false, nodeTypesArtifactsToCreate, false, true, csfyp, user.getUserId(), null));
451 void testCreateOrUpdateArtifacts() {
452 ArtifactsBusinessLogic.ArtifactOperationEnum operation = ArtifactsBusinessLogic.ArtifactOperationEnum.UPDATE;
453 List<ArtifactDefinition> createdArtifacts = new ArrayList<>();
454 String yamlFileName = "group.yml";
455 CsarInfo csarInfo = getCsarInfo();
456 Resource preparedResource = createParseResourceObject(false);
457 preparedResource.setResourceType(ResourceTypeEnum.VF);
458 String nodeName = "org.openecomp.resource.derivedFrom.zxjTestImportServiceAb.test";
459 Map<String, EnumMap<ArtifactsBusinessLogic.ArtifactOperationEnum, List<ArtifactDefinition>>> nodeTypesArtifactsToHandle = new HashMap<>();
460 EnumMap<ArtifactsBusinessLogic.ArtifactOperationEnum, List<ArtifactDefinition>> enumListEnumMap =
461 new EnumMap<>(ArtifactsBusinessLogic.ArtifactOperationEnum.class);
462 List<ArtifactDefinition> artifactDefinitions = new ArrayList<>();
463 ArtifactDefinition artifactDefinition = new ArtifactDefinition();
464 artifactDefinition.setArtifactName("artifactName");
465 artifactDefinitions.add(artifactDefinition);
466 enumListEnumMap.put(ArtifactsBusinessLogic.ArtifactOperationEnum.CREATE,
467 artifactDefinitions);
468 nodeTypesArtifactsToHandle.put(nodeName, enumListEnumMap);
469 NodeTypeInfoToUpdateArtifacts nodeTypeInfoToUpdateArtifacts = new NodeTypeInfoToUpdateArtifacts(nodeName, nodeTypesArtifactsToHandle);
470 nodeTypeInfoToUpdateArtifacts.setNodeName(nodeName);
471 nodeTypeInfoToUpdateArtifacts.setNodeTypesArtifactsToHandle(nodeTypesArtifactsToHandle);
473 Assertions.assertNotNull(
474 sIBL.createOrUpdateArtifacts(operation, createdArtifacts, yamlFileName, csarInfo,
475 preparedResource, nodeTypeInfoToUpdateArtifacts, true, true)
480 void testHandleVfCsarArtifacts() {
481 Resource resource = createParseResourceObject(true);
482 Map<String, ArtifactDefinition> deploymentArtifacts = new HashMap<>();
483 ArtifactDefinition artifactDefinition = new ArtifactDefinition();
484 artifactDefinition.setArtifactName(Constants.VENDOR_LICENSE_MODEL);
485 artifactDefinition.setUniqueId("uniqueId");
486 deploymentArtifacts.put("deploymentArtifacts", artifactDefinition);
487 resource.setDeploymentArtifacts(deploymentArtifacts);
488 CsarInfo csarInfo = getCsarInfo();
489 Map<String, byte[]> csar = new HashMap<>();
490 String csarKey = CsarUtils.ARTIFACTS_PATH + "HEAT.meta";
491 byte[] artifactsMetaBytes = "src/test/resources/normativeTypes/valid_vf.csar".getBytes();
492 csar.put(csarKey, artifactsMetaBytes);
493 csarInfo.setCsar(csar);
494 List<ArtifactDefinition> createdArtifacts = new ArrayList<>();
495 ArtifactOperationInfo artifactOperation = new ArtifactOperationInfo(true, true, ArtifactsBusinessLogic.ArtifactOperationEnum.CREATE);
496 when(toscaOperationFacade.getToscaElement(anyString())).thenReturn(Either.left(resource));
497 when(csarArtifactsAndGroupsBusinessLogic
498 .createResourceArtifactsFromCsar(any(CsarInfo.class), any(Resource.class), anyString(), anyString(),
499 anyList())).thenReturn(Either.left(resource));
500 Assertions.assertNotNull(
501 sIBL.handleVfCsarArtifacts(resource,
502 csarInfo, createdArtifacts, artifactOperation, true, true));
506 void testHandleVfCsarArtifactsGetToscaElement() {
507 Resource resource = createParseResourceObject(true);
508 Map<String, ArtifactDefinition> deploymentArtifacts = new HashMap<>();
509 ArtifactDefinition artifactDefinition = new ArtifactDefinition();
510 artifactDefinition.setArtifactName(Constants.VENDOR_LICENSE_MODEL);
511 artifactDefinition.setUniqueId("uniqueId");
512 deploymentArtifacts.put("deploymentArtifacts", artifactDefinition);
513 resource.setDeploymentArtifacts(deploymentArtifacts);
514 CsarInfo csarInfo = getCsarInfo();
515 Map<String, byte[]> csar = new HashMap<>();
516 String csarKey = CsarUtils.ARTIFACTS_PATH + "HEAT.meta";
517 byte[] artifactsMetaBytes = "src/test/resources/normativeTypes/valid_vf.csar".getBytes();
518 csar.put(csarKey, artifactsMetaBytes);
519 csarInfo.setCsar(csar);
520 List<ArtifactDefinition> createdArtifacts = new ArrayList<>();
521 ArtifactOperationInfo artifactOperation = new ArtifactOperationInfo(true, true, ArtifactsBusinessLogic.ArtifactOperationEnum.CREATE);
522 when(toscaOperationFacade.getToscaElement(anyString())).thenReturn(Either.left(resource));
523 when(csarArtifactsAndGroupsBusinessLogic
524 .createResourceArtifactsFromCsar(any(CsarInfo.class), any(Resource.class), anyString(), anyString(),
525 anyList())).thenReturn(Either.left(resource));
526 Assertions.assertNotNull(
527 sIBL.handleVfCsarArtifacts(resource,
528 csarInfo, createdArtifacts, artifactOperation, true, true));
532 void testCreateOrUpdateSingleNonMetaArtifactToComstants() {
533 Resource resource = createParseResourceObject(false);
534 CsarInfo csarInfo = getCsarInfo();
535 ArtifactOperationInfo artifactOperation = new ArtifactOperationInfo(true, true, ArtifactsBusinessLogic.ArtifactOperationEnum.UPDATE);
536 Map<String, ArtifactDefinition> deploymentArtifacts = new HashMap<>();
537 ArtifactDefinition artifactDefinition = new ArtifactDefinition();
538 artifactDefinition.setArtifactName("artifactDefinition");
539 deploymentArtifacts.put("deploymentArtifacts", artifactDefinition);
540 resource.setDeploymentArtifacts(deploymentArtifacts);
541 Assertions.assertNotNull(resource);
542 Assertions.assertNotNull(csarInfo);
543 sIBL.createOrUpdateSingleNonMetaArtifactToComstants(resource, csarInfo, artifactOperation, true, true);
548 void testCreateOrUpdateNonMetaArtifacts() {
549 CsarInfo csarInfo = getCsarInfo();
550 Resource resource = createParseResourceObject(false);
551 List<ArtifactDefinition> createdArtifacts = new ArrayList<>();
552 ArtifactOperationInfo artifactOperation = new ArtifactOperationInfo(true, true, ArtifactsBusinessLogic.ArtifactOperationEnum.UPDATE);
554 Either<Resource, ResponseFormat> result = sIBL.createOrUpdateNonMetaArtifacts(csarInfo, resource,
555 createdArtifacts, true, true, artifactOperation);
556 assertEquals(result.left().value(), resource);
560 void testFindVfCsarArtifactsToHandle() {
561 Resource resource = createParseResourceObject(false);
562 Map<String, ArtifactDefinition> deploymentArtifacts = new HashMap<>();
563 ArtifactDefinition artifactDefinition = new ArtifactDefinition();
564 artifactDefinition.setArtifactName("artifactDefinition");
565 deploymentArtifacts.put("deploymentArtifacts", artifactDefinition);
566 Map<String, ArtifactDefinition> artifacts = new HashMap<>();
567 artifacts.put("artifacts", artifactDefinition);
568 List<GroupDefinition> groups = new ArrayList<>();
569 GroupDefinition groupDefinition = new GroupDefinition();
570 groupDefinition.setUniqueId("groupDefinitionUniqueId");
571 groupDefinition.setName("groupDefinition");
572 groups.add(groupDefinition);
573 resource.setDeploymentArtifacts(deploymentArtifacts);
574 resource.setArtifacts(artifacts);
575 resource.setGroups(groups);
576 List<CsarUtils.NonMetaArtifactInfo> artifactPathAndNameList = new ArrayList<>();
578 Either<EnumMap<ArtifactsBusinessLogic.ArtifactOperationEnum, List<CsarUtils.NonMetaArtifactInfo>>,
579 ResponseFormat> result = sIBL.findVfCsarArtifactsToHandle(resource, artifactPathAndNameList, user);
580 assertNotNull(result.left().value());
584 void testOrganizeVfCsarArtifactsByArtifactOperation() {
585 List<CsarUtils.NonMetaArtifactInfo> artifactPathAndNameList = new ArrayList<>();
586 artifactPathAndNameList.add(getNonMetaArtifactInfo());
587 List<ArtifactDefinition> existingArtifactsToHandle = new ArrayList<>();
588 ArtifactDefinition artifactDefinition = new ArtifactDefinition();
589 artifactDefinition.setArtifactName("artifactName");
590 artifactDefinition.setArtifactType(ArtifactTypeEnum.AAI_SERVICE_MODEL.name());
591 artifactDefinition.setArtifactChecksum("artifactChecksum");
592 existingArtifactsToHandle.add(artifactDefinition);
593 Resource resource = createParseResourceObject(false);
595 Either<EnumMap<ArtifactsBusinessLogic.ArtifactOperationEnum, List<CsarUtils.NonMetaArtifactInfo>>, ResponseFormat>
596 enumMapResponseFormatEither = sIBL.organizeVfCsarArtifactsByArtifactOperation(artifactPathAndNameList,
597 existingArtifactsToHandle,
599 assertNotNull(enumMapResponseFormatEither.left().value());
603 void testOrganizeVfCsarArtifactsByArtifactOperationElse() {
604 List<CsarUtils.NonMetaArtifactInfo> artifactPathAndNameList = new ArrayList<>();
605 artifactPathAndNameList.add(getNonMetaArtifactInfo());
606 List<ArtifactDefinition> existingArtifactsToHandle = new ArrayList<>();
607 ArtifactDefinition artifactDefinition = new ArtifactDefinition();
608 artifactDefinition.setArtifactName("artifactName");
609 artifactDefinition.setArtifactType(ArtifactTypeEnum.AAI_VF_MODEL.name());
610 artifactDefinition.setArtifactChecksum("artifactChecksum");
611 existingArtifactsToHandle.add(artifactDefinition);
612 Resource resource = createParseResourceObject(false);
613 Assertions.assertNotNull(
614 sIBL.organizeVfCsarArtifactsByArtifactOperation(artifactPathAndNameList, existingArtifactsToHandle, resource,
619 void testProcessCsarArtifacts() {
620 CsarInfo csarInfo = getCsarInfo();
621 Resource resource = createParseResourceObject(false);
622 List<ArtifactDefinition> createdArtifacts = new ArrayList<>();
623 Either<Resource, ResponseFormat> resStatus = Either.left(resource);
624 List<CsarUtils.NonMetaArtifactInfo> artifactPathAndNameList = new ArrayList<>();
625 artifactPathAndNameList.add(getNonMetaArtifactInfo());
626 EnumMap<ArtifactsBusinessLogic.ArtifactOperationEnum, List<CsarUtils.NonMetaArtifactInfo>> vfCsarArtifactsToHandle = new
627 EnumMap<>(ArtifactsBusinessLogic.ArtifactOperationEnum.class);
628 vfCsarArtifactsToHandle.put(ArtifactsBusinessLogic.ArtifactOperationEnum.CREATE, artifactPathAndNameList);
629 Assertions.assertNotNull(
630 sIBL.processCsarArtifacts(csarInfo,
631 resource, createdArtifacts, true, true, resStatus, vfCsarArtifactsToHandle));
635 void testCreateOrUpdateSingleNonMetaArtifact() {
636 Resource resource = createParseResourceObject(false);
637 CsarInfo csarInfo = getCsarInfo();
638 Map<String, byte[]> csar = csarInfo.getCsar();
639 String rootPath = System.getProperty("user.dir");
641 byte[] data = new byte[0];
642 path = Paths.get(rootPath + "/src/test/resources/valid_vf.csar");
644 data = Files.readAllBytes(path);
645 } catch (IOException e) {
648 csar.put("valid_vf.csar", data);
649 String artifactPath = "valid_vf.csar", artifactFileName = "", artifactType = "";
650 ArtifactGroupTypeEnum artifactGroupType = ArtifactGroupTypeEnum.TOSCA;
651 String artifactLabel = "", artifactDisplayName = "", artifactDescription = "", artifactId = "artifactId";
652 ArtifactOperationInfo artifactOperation = new ArtifactOperationInfo(true, true, ArtifactsBusinessLogic.ArtifactOperationEnum.UPDATE);
653 List<ArtifactDefinition> createdArtifacts = new ArrayList<>();
654 ArtifactDefinition artifactDefinition = new ArtifactDefinition();
655 artifactDefinition.setArtifactName("artifactName");
656 Either<ArtifactDefinition, Operation> artifactDefinitionOperationEither = Either.left(artifactDefinition);
657 when(csarArtifactsAndGroupsBusinessLogic.createOrUpdateCsarArtifactFromJson(any(Resource.class), any(User.class),
658 any(Map.class), any(ArtifactOperationInfo.class))).thenReturn(Either.left(artifactDefinitionOperationEither));
659 when(artifactsBusinessLogic.handleDelete(anyString(), anyString(), any(User.class), any(Component.class), anyBoolean(), anyBoolean()))
660 .thenReturn(Either.left(artifactDefinition));
661 Assertions.assertNotNull(
662 sIBL.createOrUpdateSingleNonMetaArtifact(resource, csarInfo, artifactPath,
663 artifactFileName, artifactType, artifactGroupType, artifactLabel,
664 artifactDisplayName, artifactDescription, artifactId, artifactOperation,
665 createdArtifacts, true, true, true));
669 void testCreateOrUpdateServiceArtifacts() throws IOException {
670 ArtifactsBusinessLogic.ArtifactOperationEnum operation = ArtifactsBusinessLogic.ArtifactOperationEnum.UPDATE;
671 List<ArtifactDefinition> createdArtifacts = new ArrayList<>();
672 String yamlFileName = "group.yml";
673 CsarInfo csarInfo = getCsarInfo();
674 Map<String, byte[]> csar = new HashMap<>();
675 String csarKey = CsarUtils.ARTIFACTS_PATH + "HEAT.meta";
676 byte[] artifactsMetaBytes = "src/test/resources/normativeTypes/valid_vf.csar".getBytes();
677 csar.put(csarKey, artifactsMetaBytes);
678 csarInfo.setCsar(csar);
679 Service preparedService = createServiceObject(true);
680 Map<String, ArtifactDefinition> deploymentArtifacts = new HashMap<>();
681 ArtifactDefinition artifactDefinition = new ArtifactDefinition();
682 artifactDefinition.setArtifactName("artifactDefinition");
683 deploymentArtifacts.put("deploymentArtifacts", artifactDefinition);
684 preparedService.setDeploymentArtifacts(deploymentArtifacts);
686 when(toscaOperationFacade.getToscaElement(anyString())).thenReturn(Either.left(createServiceObject(true)));
687 when(csarArtifactsAndGroupsBusinessLogic.updateResourceArtifactsFromCsar(any(CsarInfo.class), any(Service.class),
688 anyString(), anyString(), anyList(), anyBoolean(), anyBoolean())).thenReturn(Either.left(preparedService));
689 Assertions.assertNotNull(
690 sIBL.createOrUpdateArtifacts(operation, createdArtifacts, yamlFileName, csarInfo,
691 preparedService, true, true));
695 void testHandleVfCsarServiceArtifacts() {
696 Service service = createServiceObject(true);
697 Map<String, ArtifactDefinition> deploymentArtifacts = new HashMap<>();
698 ArtifactDefinition artifactDefinition = new ArtifactDefinition();
699 artifactDefinition.setArtifactName(Constants.VENDOR_LICENSE_MODEL);
700 artifactDefinition.setUniqueId("uniqueId");
701 deploymentArtifacts.put("deploymentArtifacts", artifactDefinition);
702 service.setDeploymentArtifacts(deploymentArtifacts);
703 CsarInfo csarInfo = getCsarInfo();
704 List<ArtifactDefinition> createdArtifacts = new ArrayList<>();
705 ArtifactOperationInfo artifactOperation = new ArtifactOperationInfo(true, true, ArtifactsBusinessLogic.ArtifactOperationEnum.CREATE);
706 when(toscaOperationFacade.getToscaElement(anyString())).thenReturn(Either.left(service));
707 when(csarArtifactsAndGroupsBusinessLogic.deleteVFModules(any(Service.class), any(CsarInfo.class), anyBoolean(), anyBoolean())).thenReturn(
708 Either.left(service));
709 Assertions.assertNotNull(
710 sIBL.handleVfCsarArtifacts(service, csarInfo, createdArtifacts, artifactOperation, true, true));
714 void testHandleVfCsarServiceArtifactsGetToscaElement() throws IOException {
715 Service service = createServiceObject(true);
716 Map<String, ArtifactDefinition> deploymentArtifacts = new HashMap<>();
717 ArtifactDefinition artifactDefinition = new ArtifactDefinition();
718 artifactDefinition.setArtifactName(Constants.VENDOR_LICENSE_MODEL);
719 artifactDefinition.setUniqueId("uniqueId");
720 deploymentArtifacts.put("deploymentArtifacts", artifactDefinition);
721 service.setDeploymentArtifacts(deploymentArtifacts);
722 CsarInfo csarInfo = getCsarInfo();
723 Map<String, byte[]> csar = new HashMap<>();
724 String csarKey = CsarUtils.ARTIFACTS_PATH + "HEAT.meta";
725 byte[] artifactsMetaBytes = "src/test/resources/normativeTypes/valid_vf.csar".getBytes();
726 csar.put(csarKey, artifactsMetaBytes);
727 csarInfo.setCsar(csar);
728 List<ArtifactDefinition> createdArtifacts = new ArrayList<>();
729 ArtifactOperationInfo artifactOperation = new ArtifactOperationInfo(true, true, ArtifactsBusinessLogic.ArtifactOperationEnum.CREATE);
730 when(toscaOperationFacade.getToscaElement(anyString())).thenReturn(Either.left(service));
731 when(csarArtifactsAndGroupsBusinessLogic.createResourceArtifactsFromCsar(any(CsarInfo.class), any(Service.class),
732 anyString(), anyString(), anyList())).thenReturn(Either.left(service));
733 Assertions.assertNotNull(
734 sIBL.handleVfCsarArtifacts(service,
735 csarInfo, createdArtifacts, artifactOperation, true, true));
739 void testCreateOrUpdateNonMetaServiceArtifacts() {
740 CsarInfo csarInfo = getCsarInfo();
741 Service service = createServiceObject(true);
742 List<ArtifactDefinition> createdArtifacts = new ArrayList<>();
743 ArtifactOperationInfo artifactOperation = new ArtifactOperationInfo(true, true, ArtifactsBusinessLogic.ArtifactOperationEnum.CREATE);
745 Either<Service, ResponseFormat> result = sIBL.createOrUpdateNonMetaArtifacts(csarInfo,
746 service, createdArtifacts, true, true, artifactOperation);
747 assertEquals(result.left().value(), service);
751 void testFindServiceCsarArtifactsToHandle() {
752 Service service = createServiceObject(true);
753 Map<String, ArtifactDefinition> deploymentArtifacts = new HashMap<>();
754 ArtifactDefinition artifactDefinition = new ArtifactDefinition();
755 artifactDefinition.setArtifactName("artifactDefinition");
756 deploymentArtifacts.put("deploymentArtifacts", artifactDefinition);
757 Map<String, ArtifactDefinition> artifacts = new HashMap<>();
758 artifacts.put("artifacts", artifactDefinition);
759 List<GroupDefinition> groups = new ArrayList<>();
760 GroupDefinition groupDefinition = new GroupDefinition();
761 groupDefinition.setUniqueId("groupDefinitionUniqueId");
762 groupDefinition.setName("groupDefinition");
763 groups.add(groupDefinition);
764 service.setDeploymentArtifacts(deploymentArtifacts);
765 service.setArtifacts(artifacts);
766 service.setGroups(groups);
767 List<CsarUtils.NonMetaArtifactInfo> artifactPathAndNameList = new ArrayList<>();
769 Either<EnumMap<ArtifactsBusinessLogic.ArtifactOperationEnum, List<CsarUtils.NonMetaArtifactInfo>>,
770 ResponseFormat> result = sIBL.findVfCsarArtifactsToHandle(service, artifactPathAndNameList, user);
771 assertNotNull(result.left().value());
775 void testOrganizeVfCsarArtifactsByServiceArtifactOperation() {
776 List<CsarUtils.NonMetaArtifactInfo> artifactPathAndNameList = new ArrayList<>();
777 artifactPathAndNameList.add(getNonMetaArtifactInfo());
778 List<ArtifactDefinition> existingArtifactsToHandle = new ArrayList<>();
779 ArtifactDefinition artifactDefinition = new ArtifactDefinition();
780 artifactDefinition.setArtifactName("artifactName");
781 artifactDefinition.setArtifactType(ArtifactTypeEnum.AAI_SERVICE_MODEL.name());
782 artifactDefinition.setArtifactChecksum("artifactChecksum");
783 existingArtifactsToHandle.add(artifactDefinition);
784 Service service = createServiceObject(true);
786 Either<EnumMap<ArtifactsBusinessLogic.ArtifactOperationEnum, List<CsarUtils.NonMetaArtifactInfo>>, ResponseFormat>
787 enumMapResponseFormatEither = sIBL.organizeVfCsarArtifactsByArtifactOperation(artifactPathAndNameList,
788 existingArtifactsToHandle, service, user);
789 assertNotNull(enumMapResponseFormatEither.left().value());
793 void testOrganizeVfCsarArtifactsByServiceArtifactOperationElse() {
794 List<CsarUtils.NonMetaArtifactInfo> artifactPathAndNameList = new ArrayList<>();
795 artifactPathAndNameList.add(getNonMetaArtifactInfo());
796 List<ArtifactDefinition> existingArtifactsToHandle = new ArrayList<>();
797 ArtifactDefinition artifactDefinition = new ArtifactDefinition();
798 artifactDefinition.setArtifactName("artifactName");
799 artifactDefinition.setArtifactType(ArtifactTypeEnum.AAI_VF_MODEL.name());
800 artifactDefinition.setArtifactChecksum("artifactChecksum");
801 existingArtifactsToHandle.add(artifactDefinition);
802 Service service = createServiceObject(true);
803 Assertions.assertNotNull(
804 sIBL.organizeVfCsarArtifactsByArtifactOperation(artifactPathAndNameList, existingArtifactsToHandle, service, user));
809 void testProcessServiceCsarArtifacts() {
810 CsarInfo csarInfo = getCsarInfo();
811 Service service = createServiceObject(true);
812 List<ArtifactDefinition> createdArtifacts = new ArrayList<>();
813 Either<Service, ResponseFormat> resStatus = Either.left(service);
814 EnumMap<ArtifactsBusinessLogic.ArtifactOperationEnum, List<CsarUtils.NonMetaArtifactInfo>> vfCsarArtifactsToHandle = new
815 EnumMap<>(ArtifactsBusinessLogic.ArtifactOperationEnum.class);
816 List<CsarUtils.NonMetaArtifactInfo> objects = new ArrayList<>();
817 objects.add(getNonMetaArtifactInfo());
818 vfCsarArtifactsToHandle.put(ArtifactsBusinessLogic.ArtifactOperationEnum.CREATE, objects);
819 Assertions.assertNotNull(
820 sIBL.processCsarArtifacts(csarInfo, service, createdArtifacts, true, true, resStatus, vfCsarArtifactsToHandle));
824 void testGetValidArtifactNames() {
825 CsarInfo csarInfo = getCsarInfo();
826 Map<String, Set<List<String>>> collectedWarningMessages = new HashMap<>();
827 Either<List<CsarUtils.NonMetaArtifactInfo>, String> result = sIBL.getValidArtifactNames(csarInfo,
828 collectedWarningMessages);
829 assertNotNull(result.left().value());
833 void testCreateOrUpdateSingleNonMetaServiceArtifact() {
834 Service service = createServiceObject(true);
835 CsarInfo csarInfo = getCsarInfo();
836 Map<String, byte[]> csar = csarInfo.getCsar();
837 String rootPath = System.getProperty("user.dir");
839 byte[] data = new byte[0];
840 path = Paths.get(rootPath + "/src/test/resources/valid_vf.csar");
842 data = Files.readAllBytes(path);
843 } catch (IOException e) {
846 csar.put("valid_vf.csar", data);
847 csarInfo.setCsar(csar);
848 String artifactPath = "valid_vf.csar", artifactFileName = "", artifactType = "";
849 ArtifactGroupTypeEnum artifactGroupType = ArtifactGroupTypeEnum.TOSCA;
850 String artifactLabel = "", artifactDisplayName = "", artifactDescription = "", artifactId = "artifactId";
851 ArtifactOperationInfo artifactOperation = new ArtifactOperationInfo(true, true, ArtifactsBusinessLogic.ArtifactOperationEnum.UPDATE);
852 List<ArtifactDefinition> createdArtifacts = new ArrayList<>();
853 ArtifactDefinition artifactDefinition = new ArtifactDefinition();
854 artifactDefinition.setArtifactName("artifactName");
855 Either<ArtifactDefinition, Operation> artifactDefinitionOperationEither = Either.left(artifactDefinition);
856 when(csarArtifactsAndGroupsBusinessLogic.createOrUpdateCsarArtifactFromJson(any(Service.class), any(User.class),
857 anyMap(), any(ArtifactOperationInfo.class))).thenReturn(Either.left(artifactDefinitionOperationEither));
858 when(artifactsBusinessLogic.handleDelete(anyString(), anyString(), any(User.class), any(Component.class), anyBoolean(), anyBoolean()))
859 .thenReturn(Either.left(artifactDefinition));
860 Assertions.assertNotNull(
861 sIBL.createOrUpdateSingleNonMetaArtifact(service, csarInfo, artifactPath, artifactFileName,
862 artifactType, artifactGroupType, artifactLabel, artifactDisplayName,
863 artifactDescription, artifactId, artifactOperation, createdArtifacts,
868 void testCreateOrUpdateSingleNonMetaServiceArtifactNull() {
869 Service service = createServiceObject(true);
870 CsarInfo csarInfo = getCsarInfo();
871 String artifactPath = "valid_vf.csar", artifactFileName = "", artifactType = "";
872 ArtifactGroupTypeEnum artifactGroupType = ArtifactGroupTypeEnum.TOSCA;
873 String artifactLabel = "", artifactDisplayName = "", artifactDescription = "", artifactId = "artifactId";
874 ArtifactOperationInfo artifactOperation = new ArtifactOperationInfo(true, true, ArtifactsBusinessLogic.ArtifactOperationEnum.UPDATE);
875 List<ArtifactDefinition> createdArtifacts = new ArrayList<>();
876 when(artifactsBusinessLogic.handleDelete(anyString(), anyString(), any(User.class), any(Component.class), anyBoolean(), anyBoolean()))
877 .thenReturn(Either.left(artifactDefinition));
878 Assertions.assertNotNull(
879 sIBL.createOrUpdateSingleNonMetaArtifact(service, csarInfo, artifactPath, artifactFileName,
880 artifactType, artifactGroupType, artifactLabel, artifactDisplayName,
881 artifactDescription, artifactId, artifactOperation, createdArtifacts,
886 void testCreateGroupsOnResource() {
887 Service service = createServiceObject(true);
888 Map<String, GroupDefinition> groups = new HashMap<>();
889 Assertions.assertNotNull(sIBL.createGroupsOnResource(service, groups));
893 void testCreateGroupsOnResourceNull() {
894 Service service = createServiceObject(true);
895 Map<String, GroupDefinition> groups = new HashMap<>();
896 Assertions.assertNotNull(
897 sIBL.createGroupsOnResource(service, groups));
901 void testUpdateGroupsMembersUsingResource() {
902 Service service = createServiceObject(true);
903 Map<String, GroupDefinition> groups = getGroups();
905 Assertions.assertNotNull(
906 sIBL.updateGroupsMembersUsingResource(groups, service));
910 void testUpdateGroupsMembersUsingResource_left() {
911 Service service = createServiceObject(true);
912 Map<String, GroupDefinition> groups = getGroups();
914 Assertions.assertNotNull(
915 sIBL.updateGroupsMembersUsingResource(groups, service));
919 void testCreateRIAndRelationsFromResourceYaml() throws IOException {
920 String nodeName = "org.openecomp.resource.derivedFrom.zxjTestImportServiceAb.test";
921 String yamlName = "group.yml";
922 Resource resource = createParseResourceObject(true);
923 Map<String, UploadComponentInstanceInfo> uploadComponentInstanceInfoMap = new HashMap<>();
924 String topologyTemplateYaml = getMainTemplateContent();
925 List<ArtifactDefinition> nodeTypesNewCreatedArtifacts = new ArrayList<>();
927 Map<String, NodeTypeInfo> nodeTypesInfo = getNodeTypesInfo();
928 Map<String, Object> map = new HashMap<>();
929 map.put("tosca_definitions_version", "123");
930 nodeTypesInfo.get(nodeName).setMappedToscaTemplate(map);
932 CsarInfo csarInfo = getCsarInfo();
933 Map<String, EnumMap<ArtifactsBusinessLogic.ArtifactOperationEnum, List<ArtifactDefinition>>> nodeTypesArtifactsToCreate = new HashMap<>();
935 Assertions.assertThrows(ComponentException.class, () -> sIBL
936 .createRIAndRelationsFromYaml(yamlName, resource, uploadComponentInstanceInfoMap,
937 topologyTemplateYaml, nodeTypesNewCreatedArtifacts, nodeTypesInfo,
938 csarInfo, nodeTypesArtifactsToCreate, nodeName));
942 void testCreateResourceInstancesRelations() {
943 String yamlName = "group.yml";
944 Resource resource = createParseResourceObject(true);
945 resource.setComponentInstances(creatComponentInstances());
946 resource.setResourceType(ResourceTypeEnum.VF);
947 Map<String, UploadComponentInstanceInfo> uploadResInstancesMap = new HashMap<>();
948 uploadResInstancesMap.put("uploadResInstancesMap", getUploadComponentInstanceInfo());
949 when(serviceImportParseLogic.getResourceAfterCreateRelations(any(Resource.class))).thenReturn(resource);
950 when(toscaOperationFacade.getToscaFullElement(anyString())).thenReturn(Either.left(resource));
951 Assertions.assertThrows(ComponentException.class, () -> sIBL
952 .createResourceInstancesRelations(user, yamlName, resource, uploadResInstancesMap));
956 void testCreateResourceInstancesRelations_Empty() {
957 String yamlName = "group.yml";
958 Resource resource = createParseResourceObject(true);
959 resource.setComponentInstances(creatComponentInstances());
960 resource.setResourceType(ResourceTypeEnum.VF);
961 Map<String, UploadComponentInstanceInfo> uploadResInstancesMap = new HashMap<>();
962 uploadResInstancesMap.put("uploadResInstancesMap", getUploadComponentInstanceInfo());
963 when(serviceImportParseLogic.getResourceAfterCreateRelations(any(Resource.class))).thenReturn(resource);
964 when(toscaOperationFacade.getToscaFullElement(anyString())).thenReturn(Either.left(resource));
965 Assertions.assertThrows(ComponentException.class, () -> sIBL
966 .createResourceInstancesRelations(user, yamlName, resource, uploadResInstancesMap));
970 void testProcessComponentInstance1() {
971 String yamlName = "group.yml";
972 Resource resource = createParseResourceObject(true);
973 Resource originResource = createParseResourceObject(false);
974 originResource.setResourceType(ResourceTypeEnum.VF);
975 List<ComponentInstance> componentInstancesList = creatComponentInstances();
976 Map<String, DataTypeDefinition> dataTypeDefinitionMap = new HashMap<>();
977 DataTypeDefinition dataTypeDefinition = new DataTypeDefinition();
978 dataTypeDefinition.setName("dataTypeDefinitionName");
979 dataTypeDefinitionMap.put("dataTypeDefinitionMap", dataTypeDefinition);
980 Either<Map<String, DataTypeDefinition>, JanusGraphOperationStatus> allDataTypes = Either.left(dataTypeDefinitionMap);
981 Map<String, List<ComponentInstanceProperty>> instProperties = new HashMap<>();
982 Map<ComponentInstance, Map<String, List<CapabilityDefinition>>> instCapabilties = new HashMap<>();
983 Map<ComponentInstance, Map<String, List<RequirementDefinition>>> instRequirements = new HashMap<>();
984 Map<String, Map<String, ArtifactDefinition>> instDeploymentArtifacts = new HashMap<>();
985 Map<String, Map<String, ArtifactDefinition>> instArtifacts = new HashMap<>();
986 Map<String, List<AttributeDefinition>> instAttributes = new HashMap<>();
987 Map<String, UploadNodeFilterInfo> instNodeFilter = new HashMap<>();
988 Map<String, Resource> originCompMap = new HashMap<>();
989 originCompMap.put("componentUid", originResource);
990 Map<String, List<ComponentInstanceInput>> instInputs = new HashMap<>();
991 UploadComponentInstanceInfo uploadComponentInstanceInfo = new UploadComponentInstanceInfo();
992 uploadComponentInstanceInfo.setName("zxjTestImportServiceAb");
993 Assertions.assertNotNull(resource);
994 Assertions.assertNotNull(yamlName);
995 sIBL.processComponentInstance(yamlName, resource, componentInstancesList, allDataTypes.left().value(), instProperties,
996 instCapabilties, instRequirements, instDeploymentArtifacts, instArtifacts, instAttributes,
997 originCompMap, instInputs, instNodeFilter, null, uploadComponentInstanceInfo);
1001 void testProcessComponentInstance_null() {
1002 String yamlName = "group.yml";
1003 Resource resource = createParseResourceObject(true);
1004 Resource originResource = createParseResourceObject(false);
1005 List<ComponentInstance> componentInstancesList = creatComponentInstances();
1006 Either<Map<String, DataTypeDefinition>, JanusGraphOperationStatus> allDataTypes = null;
1007 Map<String, List<ComponentInstanceProperty>> instProperties = new HashMap<>();
1008 Map<ComponentInstance, Map<String, List<CapabilityDefinition>>> instCapabilties = new HashMap<>();
1009 Map<ComponentInstance, Map<String, List<RequirementDefinition>>> instRequirements = new HashMap<>();
1010 Map<String, Map<String, ArtifactDefinition>> instDeploymentArtifacts = new HashMap<>();
1011 Map<String, Map<String, ArtifactDefinition>> instArtifacts = new HashMap<>();
1012 Map<String, List<AttributeDefinition>> instAttributes = new HashMap<>();
1013 Map<String, Resource> originCompMap = new HashMap<>();
1014 Map<String, UploadNodeFilterInfo> instNodeFilter = new HashMap<>();
1015 originCompMap.put("componentUid", originResource);
1016 Map<String, List<ComponentInstanceInput>> instInputs = new HashMap<>();
1017 UploadComponentInstanceInfo uploadComponentInstanceInfo = new UploadComponentInstanceInfo();
1018 uploadComponentInstanceInfo.setName("zxjTestImportServiceAb0");
1020 Assertions.assertThrows(ComponentException.class, () -> sIBL.processComponentInstance(yamlName,
1021 resource, componentInstancesList, null, instProperties, instCapabilties,
1022 instRequirements, instDeploymentArtifacts, instArtifacts, instAttributes, originCompMap,
1023 instInputs, instNodeFilter, null, uploadComponentInstanceInfo));
1027 void testAddInputsValuesToRi() {
1028 UploadComponentInstanceInfo uploadComponentInstanceInfo = new UploadComponentInstanceInfo();
1029 Map<String, List<UploadPropInfo>> properties = new HashMap<>();
1030 List<UploadPropInfo> uploadPropInfoList = getPropertyList();
1031 properties.put("propertiesMap", uploadPropInfoList);
1032 uploadComponentInstanceInfo.setProperties(properties);
1033 Resource resource = createParseResourceObject(true);
1034 Resource originResource = createParseResourceObject(false);
1035 List<InputDefinition> inputs = new ArrayList<>();
1036 InputDefinition inputDefinition = new InputDefinition();
1037 inputDefinition.setName("inputDefinitionName");
1038 inputDefinition.setUniqueId("uniqueId");
1039 inputDefinition.setType("inputDefinitionType");
1040 inputs.add(inputDefinition);
1041 originResource.setInputs(inputs);
1042 ComponentInstance currentCompInstance = new ComponentInstance();
1043 Map<String, List<ComponentInstanceInput>> instInputs = new HashMap<>();
1044 Map<String, DataTypeDefinition> allDataTypes = new HashMap<>();
1045 DataTypeDefinition dataTypeDefinition = new DataTypeDefinition();
1046 dataTypeDefinition.setName("dataTypeDefinitionName");
1047 allDataTypes.put("dataTypeDefinitionMap", dataTypeDefinition);
1049 Assertions.assertThrows(ComponentException.class, () -> sIBL
1050 .addInputsValuesToRi(uploadComponentInstanceInfo, resource, originResource,
1051 currentCompInstance, instInputs, allDataTypes));
1055 void testProcessProperty() {
1056 Resource resource = createParseResourceObject(true);
1057 List<InputDefinition> inputs = new ArrayList<>();
1058 InputDefinition inputDefinition = new InputDefinition();
1059 inputDefinition.setName("inputDefinitionName");
1060 inputDefinition.setUniqueId("uniqueId");
1061 inputDefinition.setType("inputDefinitionType");
1062 inputs.add(inputDefinition);
1063 resource.setInputs(inputs);
1064 ComponentInstance currentCompInstance = null;
1065 Map<String, DataTypeDefinition> allDataTypes = new HashMap<>();
1066 Map<String, InputDefinition> currPropertiesMap = new HashMap<>();
1067 currPropertiesMap.put("propertyInfoName", inputDefinition);
1068 List<ComponentInstanceInput> instPropList = new ArrayList<>();
1069 List<UploadPropInfo> propertyList = getPropertyList();
1070 Assertions.assertNotNull(resource);
1071 Assertions.assertNotNull(currPropertiesMap);
1072 sIBL.processProperty(resource, allDataTypes, currPropertiesMap, instPropList, propertyList);
1076 void testHandleSubstitutionMappings() {
1077 Resource resource = createParseResourceObject(true);
1078 resource.setResourceType(ResourceTypeEnum.VF);
1079 Map<String, UploadComponentInstanceInfo> uploadResInstancesMap = new HashMap<>();
1080 when(toscaOperationFacade.getToscaFullElement(anyString()))
1081 .thenReturn(Either.right(StorageOperationStatus.BAD_REQUEST));
1083 Assertions.assertThrows(ComponentException.class,
1084 () -> sIBL.handleSubstitutionMappings(resource, uploadResInstancesMap));
1088 void testHandleSubstitutionMappings_left() {
1089 Resource resource = createParseResourceObject(true);
1090 resource.setResourceType(ResourceTypeEnum.VF);
1091 Map<String, UploadComponentInstanceInfo> uploadResInstancesMap = new HashMap<>();
1092 when(toscaOperationFacade.getToscaFullElement(anyString()))
1093 .thenReturn(Either.left(resource));
1095 Assertions.assertThrows(ComponentException.class,
1096 () -> sIBL.handleSubstitutionMappings(resource, uploadResInstancesMap));
1100 void testCreateResourceInstances() {
1101 String yamlName = "group.yml";
1102 Resource resource = createParseResourceObject(true);
1103 Resource originResource = createParseResourceObject(false);
1104 Map<String, UploadComponentInstanceInfo> uploadResInstancesMap = new HashMap<>();
1105 UploadComponentInstanceInfo nodesInfoValue = new UploadComponentInstanceInfo();
1106 nodesInfoValue.setName("zxjTestImportServiceAb");
1107 nodesInfoValue.setRequirements(gerRequirements());
1108 uploadResInstancesMap.put("uploadComponentInstanceInfo", nodesInfoValue);
1109 Map<String, Resource> nodeNamespaceMap = new HashMap<>();
1110 nodeNamespaceMap.put("resources", originResource);
1112 Assertions.assertThrows(ComponentException.class,
1113 () -> sIBL.createResourceInstances(yamlName, resource, uploadResInstancesMap, nodeNamespaceMap));
1117 void testHandleNodeTypes() throws IOException {
1118 String nodeName = "org.openecomp.resource.derivedFrom.zxjTestImportServiceAb.test";
1119 String yamlName = "group.yml";
1120 Resource resource = createParseResourceObject(true);
1121 String topologyTemplateYaml = getMainTemplateContent();
1122 boolean needLock = true;
1123 Map<String, EnumMap<ArtifactsBusinessLogic.ArtifactOperationEnum, List<ArtifactDefinition>>> nodeTypesArtifactsToHandle = new HashMap<>();
1124 List<ArtifactDefinition> nodeTypesNewCreatedArtifacts = new ArrayList<>();
1125 Map<String, NodeTypeInfo> nodeTypesInfo = getNodeTypesInfo();
1126 Map<String, Object> map = new HashMap<>();
1127 map.put("tosca_definitions_version", "123");
1128 nodeTypesInfo.get(nodeName).setMappedToscaTemplate(map);
1129 ParsedToscaYamlInfo parsedToscaYamlInfo = getParsedToscaYamlInfo();
1130 CsarInfo csarInfo = getCsarInfo();
1131 Assertions.assertNotNull(resource);
1133 sIBL.handleNodeTypes(yamlName, resource, topologyTemplateYaml, needLock, nodeTypesArtifactsToHandle,
1134 nodeTypesNewCreatedArtifacts, nodeTypesInfo, csarInfo, nodeName);
1138 void testHandleNestedVfc1() {
1139 String nodeName = "org.openecomp.resource.derivedFrom.zxjTestImportServiceAb.test";
1140 Resource resource = createParseResourceObject(false);
1141 Map<String, EnumMap<ArtifactsBusinessLogic.ArtifactOperationEnum, List<ArtifactDefinition>>> nodeTypesArtifactsToHandle = new HashMap<>();
1142 List<ArtifactDefinition> createdArtifacts = new ArrayList<>();
1143 Map<String, NodeTypeInfo> nodesInfo = new HashMap<>();
1144 NodeTypeInfo nodeTypeInfo = new NodeTypeInfo();
1145 nodeTypeInfo.setTemplateFileName("groups.yml");
1146 nodeTypeInfo.setMappedToscaTemplate(new HashMap<>());
1147 nodesInfo.put(nodeName, nodeTypeInfo);
1148 CsarInfo csarInfo = getCsarInfo();
1150 Assertions.assertThrows(ComponentException.class, () -> sIBL.handleNestedVfc(resource,
1151 nodeTypesArtifactsToHandle, createdArtifacts, nodesInfo, csarInfo, nodeName));
1155 void testHandleComplexVfc1() {
1156 Resource resource = createParseResourceObject(true);
1157 Map<String, EnumMap<ArtifactsBusinessLogic.ArtifactOperationEnum, List<ArtifactDefinition>>> nodeTypesArtifactsToHandle = new HashMap<>();
1158 List<ArtifactDefinition> createdArtifacts = new ArrayList<>();
1159 Map<String, NodeTypeInfo> nodesInfo = new HashMap<>();
1160 CsarInfo csarInfo = getCsarInfo();
1161 String nodeName = "org.openecomp.resource.derivedFrom.zxjTestImportServiceAb.test";
1162 String yamlName = "group.yml";
1163 when(serviceImportParseLogic.buildValidComplexVfc(any(Resource.class), any(CsarInfo.class), anyString(),
1164 anyMap())).thenReturn(createParseResourceObject(false));
1165 when(toscaOperationFacade.getFullLatestComponentByToscaResourceName(anyString()))
1166 .thenReturn(Either.left(resource));
1167 when(serviceImportParseLogic.validateNestedDerivedFromDuringUpdate(any(Resource.class), any(Resource.class),
1168 anyBoolean())).thenReturn(Either.left(true));
1170 Assertions.assertThrows(ComponentException.class, () -> sIBL.handleComplexVfc(resource,
1171 nodeTypesArtifactsToHandle, createdArtifacts, nodesInfo, csarInfo, nodeName, yamlName));
1175 void testCreateNodeTypes1() {
1176 String nodeName = "org.openecomp.resource.derivedFrom.zxjTestImportServiceAb.test";
1177 String yamlName = "group.yml";
1178 Resource resource = createParseResourceObject(false);
1179 boolean needLock = true;
1180 Map<String, EnumMap<ArtifactsBusinessLogic.ArtifactOperationEnum, List<ArtifactDefinition>>> nodeTypesArtifactsToHandle = new HashMap<>();
1181 EnumMap<ArtifactsBusinessLogic.ArtifactOperationEnum, List<ArtifactDefinition>> enumListEnumMap =
1182 new EnumMap<>(ArtifactsBusinessLogic.ArtifactOperationEnum.class);
1183 List<ArtifactDefinition> artifactDefinitions = new ArrayList<>();
1184 ArtifactDefinition artifactDefinition = new ArtifactDefinition();
1185 artifactDefinition.setArtifactName("artifactName");
1186 artifactDefinitions.add(artifactDefinition);
1187 enumListEnumMap.put(ArtifactsBusinessLogic.ArtifactOperationEnum.CREATE,
1188 artifactDefinitions);
1189 nodeTypesArtifactsToHandle.put("nodeTyp", enumListEnumMap);
1190 List<ArtifactDefinition> nodeTypesNewCreatedArtifacts = new ArrayList<>();
1191 Map<String, NodeTypeInfo> nodeTypesInfo = getNodeTypesInfo();
1192 Map<String, Object> map = new HashMap<>();
1193 map.put("tosca_definitions_version", "123");
1194 nodeTypesInfo.get(nodeName).setMappedToscaTemplate(map);
1195 ParsedToscaYamlInfo parsedToscaYamlInfo = getParsedToscaYamlInfo();
1197 CsarInfo csarInfo = getCsarInfo();
1198 Map<String, Object> mapToConvert = new HashMap<>();
1199 Map<String, Object> nodeTypes = new HashMap<>();
1200 nodeTypes.put(nodeName, "");
1201 Assertions.assertNotNull(resource);
1203 sIBL.createNodeTypes(yamlName,
1204 resource, needLock, nodeTypesArtifactsToHandle, nodeTypesNewCreatedArtifacts,
1205 nodeTypesInfo, csarInfo, mapToConvert, nodeTypes);
1209 void testCreateNodeTypeResourceFromYaml() throws IOException {
1210 String yamlName = "group.yml";
1211 String nodeName = "org.openecomp.resource.derivedFrom.zxjTestImportServiceAb.test";
1212 Map<String, Object> nodeMap = new HashMap<>();
1213 nodeMap.put(nodeName, getGroupsYaml());
1214 Map.Entry<String, Object> nodeNameValue = nodeMap.entrySet().iterator().next();
1215 Map<String, Object> mapToConvert = new HashedMap();
1216 Resource resourceVf = createParseResourceObject(false);
1217 boolean needLock = true;
1218 Map<ArtifactsBusinessLogic.ArtifactOperationEnum, List<ArtifactDefinition>> nodeTypeArtifactsToHandle = new HashMap<>();
1219 List<ArtifactDefinition> nodeTypesNewCreatedArtifacts = new ArrayList<>();
1220 boolean forceCertificationAllowed = true;
1221 CsarInfo csarInfo = getCsarInfo();
1222 boolean isNested = true;
1223 UploadResourceInfo resourceMetaData = new UploadResourceInfo();
1224 resourceMetaData.setResourceType("VFC");
1225 ImmutablePair<Resource, ActionStatus> immutablePair = new ImmutablePair<>(resourceVf, ActionStatus.CREATED);
1226 when(serviceImportParseLogic.fillResourceMetadata(anyString(), any(Resource.class), anyString(), any(User.class)))
1227 .thenReturn(resourceMetaData);
1228 when(serviceImportParseLogic.buildNodeTypeYaml(any(Map.Entry.class), anyMap(), anyString(), any(CsarInfo.class)))
1229 .thenReturn(nodeName);
1230 when(serviceBusinessLogic.validateUser(any(User.class), anyString(), any(Component.class), any(AuditingActionEnum.class),
1231 anyBoolean())).thenReturn(user);
1232 when(serviceImportParseLogic.createResourceFromNodeType(anyString(), any(UploadResourceInfo.class), any(User.class), anyBoolean(),
1234 anyMap(), anyList(), anyBoolean(), any(CsarInfo.class),
1235 anyString(), anyBoolean())).thenReturn(immutablePair);
1236 Assertions.assertNotNull(
1237 sIBL.createNodeTypeResourceFromYaml(yamlName, nodeNameValue, user, mapToConvert,
1238 resourceVf, needLock, nodeTypeArtifactsToHandle, nodeTypesNewCreatedArtifacts,
1239 forceCertificationAllowed, csarInfo, isNested));
1243 void testCreateRIAndRelationsFromYaml() {
1244 String yamlName = "group.yml";
1245 Service service = createServiceObject(true);
1246 Map<String, UploadComponentInstanceInfo> uploadComponentInstanceInfoMap = new HashMap<>();
1247 String topologyTemplateYaml = getMainTemplateContent("service_import_template.yml");
1249 List<ArtifactDefinition> nodeTypesNewCreatedArtifacts = new ArrayList<>();
1250 Map<String, NodeTypeInfo> nodeTypesInfo = new HashMap<>();
1251 CsarInfo csarInfo = getCsarInfo();
1252 Map<String, EnumMap<ArtifactsBusinessLogic.ArtifactOperationEnum, List<ArtifactDefinition>>> nodeTypesArtifactsToCreate = new HashMap<>();
1253 String nodeName = "org.openecomp.resource.derivedFrom.zxjTestImportServiceAb.test";
1255 Assertions.assertNotNull(sIBL
1256 .createRIAndRelationsFromYaml(yamlName, service, uploadComponentInstanceInfoMap,
1257 topologyTemplateYaml, nodeTypesNewCreatedArtifacts, nodeTypesInfo,
1258 csarInfo, nodeTypesArtifactsToCreate, nodeName));
1262 void testCreateServiceInstancesRelations() {
1263 String yamlName = "group.yml";
1264 Service service = createServiceObject(true);
1265 service.setComponentInstances(creatComponentInstances());
1266 Resource newResource = createNewResource();
1267 Map<String, UploadComponentInstanceInfo> uploadResInstancesMap = getUploadResInstancesMap();
1268 ComponentParametersView componentParametersView = new ComponentParametersView();
1269 RequirementDefinition requirementDefinition = new RequirementDefinition();
1270 CapabilityDefinition capabilityDefinition = new CapabilityDefinition();
1271 capabilityDefinition.setName("as");
1272 capabilityDefinition.setUniqueId("1");
1273 capabilityDefinition.setOwnerId("2");
1274 ResponseFormat responseFormat = new ResponseFormat();
1275 responseFormat.setStatus(200);
1276 when(serviceImportParseLogic.getResourceAfterCreateRelations(any(Resource.class))).thenReturn(newResource);
1277 when(serviceImportParseLogic.getComponentFilterAfterCreateRelations()).thenReturn(componentParametersView);
1278 when(toscaOperationFacade.getToscaElement(anyString(), any(ComponentParametersView.class))).thenReturn(Either.left(service));
1279 when(serviceImportParseLogic.findAvailableRequirement(anyString(),
1280 anyString(), any(UploadComponentInstanceInfo.class), any(ComponentInstance.class),
1281 anyString())).thenReturn(Either.left(requirementDefinition));
1282 when(serviceImportParseLogic.findAvailableCapabilityByTypeOrName(any(RequirementDefinition.class),
1283 any(ComponentInstance.class), any(UploadReqInfo.class))).thenReturn(capabilityDefinition);
1284 when(componentsUtils.getResponseFormat(any(ActionStatus.class), anyString())).thenReturn(responseFormat);
1285 when(toscaOperationFacade.getToscaElement(anyString())).thenReturn(Either.left(service));
1286 Assertions.assertNotNull(sIBL.createServiceInstancesRelations(user, yamlName, service, uploadResInstancesMap, null));
1290 void testCreateServiceInstancesRelations_Empty() {
1291 String yamlName = "group.yml";
1292 Service service = createServiceObject(true);
1293 service.setComponentInstances(creatComponentInstances());
1294 Map<String, UploadComponentInstanceInfo> uploadResInstancesMap = new HashMap<>();
1296 Assertions.assertThrows(ComponentException.class,
1297 () -> sIBL.createServiceInstancesRelations(user, yamlName, service, uploadResInstancesMap, null));
1301 void testProcessComponentInstance() {
1302 String yamlName = "group.yml";
1303 Service service = createServiceObject(true);
1304 Resource originResource = createParseResourceObject(false);
1305 originResource.setResourceType(ResourceTypeEnum.VF);
1306 List<ComponentInstance> componentInstancesList = creatComponentInstances();
1307 Map<String, DataTypeDefinition> dataTypeDefinitionMap = new HashMap<>();
1308 DataTypeDefinition dataTypeDefinition = new DataTypeDefinition();
1309 dataTypeDefinition.setName("dataTypeDefinitionName");
1310 dataTypeDefinitionMap.put("dataTypeDefinitionMap", dataTypeDefinition);
1311 Either<Map<String, DataTypeDefinition>, JanusGraphOperationStatus> allDataTypes = Either.left(dataTypeDefinitionMap);
1312 Map<String, List<ComponentInstanceProperty>> instProperties = new HashMap<>();
1313 Map<ComponentInstance, Map<String, List<CapabilityDefinition>>> instCapabilties = new HashMap<>();
1314 Map<ComponentInstance, Map<String, List<RequirementDefinition>>> instRequirements = new HashMap<>();
1315 Map<String, Map<String, ArtifactDefinition>> instDeploymentArtifacts = new HashMap<>();
1316 Map<String, Map<String, ArtifactDefinition>> instArtifacts = new HashMap<>();
1317 Map<String, List<AttributeDefinition>> instAttributes = new HashMap<>();
1318 Map<String, UploadNodeFilterInfo> instNodeFilter = new HashMap<>();
1319 Map<String, Resource> originCompMap = new HashMap<>();
1320 originCompMap.put("componentUid", originResource);
1321 Map<String, List<ComponentInstanceInput>> instInputs = new HashMap<>();
1322 UploadComponentInstanceInfo uploadComponentInstanceInfo = new UploadComponentInstanceInfo();
1323 uploadComponentInstanceInfo.setName("zxjTestImportServiceAb");
1324 Assertions.assertNotNull(service);
1326 sIBL.processComponentInstance(yamlName, service, componentInstancesList, allDataTypes.left().value(),
1327 instProperties, instCapabilties, instRequirements, instDeploymentArtifacts,
1328 instArtifacts, instAttributes, originCompMap, instInputs, instNodeFilter, null,
1329 uploadComponentInstanceInfo);
1333 void testProcessComponentInstance_null2() {
1334 String yamlName = "group.yml";
1335 Service service = createServiceObject(true);
1336 Resource originResource = createParseResourceObject(false);
1337 List<ComponentInstance> componentInstancesList = creatComponentInstances();
1338 Either<Map<String, DataTypeDefinition>, JanusGraphOperationStatus> allDataTypes = null;
1339 Map<String, List<ComponentInstanceProperty>> instProperties = new HashMap<>();
1340 Map<ComponentInstance, Map<String, List<CapabilityDefinition>>> instCapabilties = new HashMap<>();
1341 Map<ComponentInstance, Map<String, List<RequirementDefinition>>> instRequirements = new HashMap<>();
1342 Map<String, Map<String, ArtifactDefinition>> instDeploymentArtifacts = new HashMap<>();
1343 Map<String, Map<String, ArtifactDefinition>> instArtifacts = new HashMap<>();
1344 Map<String, List<AttributeDefinition>> instAttributes = new HashMap<>();
1345 Map<String, UploadNodeFilterInfo> instNodeFilter = new HashMap<>();
1346 Map<String, Resource> originCompMap = new HashMap<>();
1347 originCompMap.put("componentUid", originResource);
1348 Map<String, List<ComponentInstanceInput>> instInputs = new HashMap<>();
1349 UploadComponentInstanceInfo uploadComponentInstanceInfo = new UploadComponentInstanceInfo();
1350 uploadComponentInstanceInfo.setName("zxjTestImportServiceAb0");
1352 Assertions.assertThrows(ComponentException.class, () -> sIBL.processComponentInstance(yamlName,
1353 service, componentInstancesList, null, instProperties, instCapabilties,
1354 instRequirements, instDeploymentArtifacts, instArtifacts, instAttributes, originCompMap,
1355 instInputs, instNodeFilter, null, uploadComponentInstanceInfo));
1359 void testAddInputsValuesToRi2() {
1360 UploadComponentInstanceInfo uploadComponentInstanceInfo = new UploadComponentInstanceInfo();
1361 Map<String, List<UploadPropInfo>> properties = new HashMap<>();
1362 List<UploadPropInfo> uploadPropInfoList = new ArrayList<>();
1363 UploadPropInfo uploadPropInfo = new UploadPropInfo();
1364 uploadPropInfo.setName("uploadPropInfo");
1365 uploadPropInfoList.add(uploadPropInfo);
1366 uploadPropInfoList.add(uploadPropInfo);
1367 properties.put("propertiesMap", uploadPropInfoList);
1368 uploadComponentInstanceInfo.setProperties(properties);
1369 Service resource = createServiceObject(true);
1370 Resource originResource = createParseResourceObject(false);
1371 List<InputDefinition> inputs = new ArrayList<>();
1372 InputDefinition inputDefinition = new InputDefinition();
1373 inputDefinition.setUniqueId("uniqueId");
1374 inputs.add(inputDefinition);
1375 originResource.setInputs(inputs);
1376 ComponentInstance currentCompInstance = new ComponentInstance();
1377 Map<String, List<ComponentInstanceInput>> instInputs = new HashMap<>();
1378 Map<String, DataTypeDefinition> allDataTypes = new HashMap<>();
1380 Assertions.assertThrows(ComponentException.class, () -> sIBL
1381 .addInputsValuesToRi(uploadComponentInstanceInfo, resource, originResource,
1382 currentCompInstance, instInputs, allDataTypes));
1386 void testProcessProperty2() {
1387 Service resource = createServiceObject(true);
1388 List<InputDefinition> inputs = new ArrayList<>();
1389 ComponentInstance currentCompInstance = null;
1390 Map<String, DataTypeDefinition> allDataTypes = new HashMap<>();
1391 Map<String, InputDefinition> currPropertiesMap = new HashMap<>();
1392 InputDefinition inputDefinition = new InputDefinition();
1393 inputDefinition.setName("inputDefinitionName");
1394 inputDefinition.setType("inputDefinitionType");
1395 inputs.add(inputDefinition);
1396 currPropertiesMap.put("propertyInfoName", inputDefinition);
1397 resource.setInputs(inputs);
1398 List<ComponentInstanceInput> instPropList = new ArrayList<>();
1399 List<UploadPropInfo> propertyList = new ArrayList<>();
1400 List<GetInputValueDataDefinition> get_input = new ArrayList<>();
1401 GetInputValueDataDefinition getInputValueDataDefinition = new GetInputValueDataDefinition();
1402 getInputValueDataDefinition.setPropName("getInputValueDataDefinitionName");
1403 getInputValueDataDefinition.setInputName("inputDefinitionName");
1404 get_input.add(getInputValueDataDefinition);
1405 UploadPropInfo propertyInfo = new UploadPropInfo();
1406 propertyInfo.setValue("value");
1407 propertyInfo.setGet_input(get_input);
1408 propertyInfo.setName("propertyInfoName");
1409 propertyList.add(propertyInfo);
1410 Assertions.assertNotNull(resource);
1412 sIBL.processProperty(resource, allDataTypes, currPropertiesMap, instPropList, propertyList);
1416 void testProcessGetInput() {
1417 List<GetInputValueDataDefinition> getInputValues = new ArrayList<>();
1418 List<InputDefinition> inputs = new ArrayList<>();
1419 GetInputValueDataDefinition getInputIndex = new GetInputValueDataDefinition();
1421 Assertions.assertThrows(ComponentException.class, () -> sIBL.processGetInput(getInputValues, inputs, getInputIndex));
1425 void testProcessGetInput_optional() {
1426 List<GetInputValueDataDefinition> getInputValues = new ArrayList<>();
1427 List<InputDefinition> inputs = new ArrayList<>();
1428 InputDefinition inputDefinition = new InputDefinition();
1429 inputDefinition.setUniqueId("uniqueId");
1430 inputDefinition.setName("InputName");
1431 inputs.add(inputDefinition);
1432 GetInputValueDataDefinition getInputIndex = new GetInputValueDataDefinition();
1433 getInputIndex.setInputName("InputName");
1434 Assertions.assertNotNull(inputs);
1436 sIBL.processGetInput(getInputValues, inputs, getInputIndex);
1440 void testAddPropertyValuesToRi() {
1441 UploadComponentInstanceInfo uploadComponentInstanceInfo = new UploadComponentInstanceInfo();
1442 uploadComponentInstanceInfo.setProperties(getUploadPropInfoProperties());
1443 Resource resource = createParseResourceObject(true);
1444 List<InputDefinition> inputs = new ArrayList<>();
1445 InputDefinition inputDefinition = new InputDefinition();
1446 inputDefinition.setName("inputDefinitionName");
1447 inputDefinition.setUniqueId("uniqueId");
1448 inputDefinition.setType("inputDefinitionType");
1449 inputs.add(inputDefinition);
1450 resource.setInputs(inputs);
1451 Resource originResource = createParseResourceObject(false);
1452 originResource.setProperties(getProperties());
1453 ComponentInstance currentCompInstance = new ComponentInstance();
1454 Map<String, List<ComponentInstanceProperty>> instProperties = new HashMap<>();
1455 Map<String, DataTypeDefinition> allDataTypes = new HashMap<>();
1456 ResponseFormat responseFormat = new ResponseFormat();
1457 when(serviceImportParseLogic.findInputByName(eq(inputs), any(GetInputValueDataDefinition.class)))
1458 .thenReturn(inputDefinition);
1459 when(componentsUtils.getResponseFormat(any(ActionStatus.class))).thenReturn(responseFormat);
1460 Assertions.assertNotNull(
1461 sIBL.addPropertyValuesToRi(uploadComponentInstanceInfo, resource, originResource,
1462 currentCompInstance, instProperties, allDataTypes));
1466 void testAddPropertyValuesToRi_else() {
1467 UploadComponentInstanceInfo uploadComponentInstanceInfo = new UploadComponentInstanceInfo();
1468 Resource resource = createParseResourceObject(true);
1469 Resource originResource = createParseResourceObject(false);
1470 originResource.setProperties(getProperties());
1471 ComponentInstance currentCompInstance = new ComponentInstance();
1472 Map<String, List<ComponentInstanceProperty>> instProperties = new HashMap<>();
1473 Map<String, DataTypeDefinition> allDataTypes = new HashMap<>();
1474 ResponseFormat responseFormat = new ResponseFormat();
1475 when(componentsUtils.getResponseFormat(any(ActionStatus.class))).thenReturn(responseFormat);
1476 Assertions.assertNotNull(
1477 sIBL.addPropertyValuesToRi(uploadComponentInstanceInfo, resource, originResource, currentCompInstance,
1478 instProperties, allDataTypes));
1482 void testAddPropertyValuesToRi2() {
1483 UploadComponentInstanceInfo uploadComponentInstanceInfo = new UploadComponentInstanceInfo();
1484 uploadComponentInstanceInfo.setProperties(getUploadPropInfoProperties());
1485 Service service = createServiceObject(true);
1486 List<InputDefinition> inputs = new ArrayList<>();
1487 InputDefinition inputDefinition = new InputDefinition();
1488 inputDefinition.setName("inputDefinitionName");
1489 inputDefinition.setUniqueId("uniqueId");
1490 inputDefinition.setType("inputDefinitionType");
1491 inputs.add(inputDefinition);
1492 service.setInputs(inputs);
1493 Resource originResource = createParseResourceObject(false);
1494 originResource.setProperties(getProperties());
1495 ComponentInstance currentCompInstance = new ComponentInstance();
1496 Map<String, List<ComponentInstanceProperty>> instProperties = new HashMap<>();
1497 Map<String, DataTypeDefinition> allDataTypes = new HashMap<>();
1498 ResponseFormat responseFormat = new ResponseFormat();
1499 when(componentsUtils.getResponseFormat(any(ActionStatus.class))).thenReturn(responseFormat);
1500 when(serviceImportParseLogic.findInputByName(anyList(), any(GetInputValueDataDefinition.class)))
1501 .thenReturn(inputDefinition);
1502 Assertions.assertNotNull(
1503 sIBL.addPropertyValuesToRi(uploadComponentInstanceInfo, service, originResource,
1504 currentCompInstance, instProperties, allDataTypes));
1508 void testAddPropertyValuesToRi2_else() {
1509 UploadComponentInstanceInfo uploadComponentInstanceInfo = new UploadComponentInstanceInfo();
1510 Service service = createServiceObject(true);
1511 Resource originResource = createParseResourceObject(false);
1512 originResource.setProperties(getProperties());
1513 ComponentInstance currentCompInstance = new ComponentInstance();
1514 Map<String, List<ComponentInstanceProperty>> instProperties = new HashMap<>();
1515 Map<String, DataTypeDefinition> allDataTypes = new HashMap<>();
1516 ResponseFormat responseFormat = new ResponseFormat();
1517 when(componentsUtils.getResponseFormat(any(ActionStatus.class))).thenReturn(responseFormat);
1518 Assertions.assertNotNull(
1519 sIBL.addPropertyValuesToRi(uploadComponentInstanceInfo, service, originResource, currentCompInstance,
1520 instProperties, allDataTypes));
1524 void testProcessComponentInstanceCapabilities() {
1525 Either<Map<String, DataTypeDefinition>, JanusGraphOperationStatus> allDataTypes = null;
1526 Map<ComponentInstance, Map<String, List<CapabilityDefinition>>> instCapabilties = new HashMap<>();
1527 UploadComponentInstanceInfo uploadComponentInstanceInfo = new UploadComponentInstanceInfo();
1528 uploadComponentInstanceInfo.setCapabilities(getCapabilities());
1529 ComponentInstance currentCompInstance = new ComponentInstance();
1530 Resource originResource = createParseResourceObject(false);
1531 Assertions.assertNotNull(originResource);
1532 sIBL.processComponentInstanceCapabilities(null, instCapabilties, uploadComponentInstanceInfo, currentCompInstance,
1537 void testProcessComponentInstanceCapabilities_null() {
1538 Either<Map<String, DataTypeDefinition>, JanusGraphOperationStatus> allDataTypes = null;
1539 Map<ComponentInstance, Map<String, List<CapabilityDefinition>>> instCapabilties = new HashMap<>();
1540 UploadComponentInstanceInfo uploadComponentInstanceInfo = new UploadComponentInstanceInfo();
1541 ComponentInstance currentCompInstance = new ComponentInstance();
1542 Resource originResource = createParseResourceObject(false);
1543 Assertions.assertNotNull(originResource);
1545 sIBL.processComponentInstanceCapabilities(null, instCapabilties, uploadComponentInstanceInfo, currentCompInstance,
1550 void testProcessComponentInstanceInterfaces() {
1551 Service service = createServiceObject(true);
1552 service.setModel("testModel");
1553 Map<String, Map<String, InterfaceDefinition>> instInterfaces = new HashMap<>();
1554 UploadComponentInstanceInfo uploadComponentInstanceInfo = new UploadComponentInstanceInfo();
1555 uploadComponentInstanceInfo.setInterfaces(getInterfaces());
1556 ComponentInstance currentCompInstance = new ComponentInstance();
1557 Resource originResource = createParseResourceObject(false);
1558 Assertions.assertNotNull(originResource);
1560 InterfaceDefinition interfaceDef = new InterfaceDefinition();
1561 interfaceDef.setUniqueId("tosca.interfaces.lifecycle.TestInterface");
1562 Map<String, InterfaceDefinition> interfaceLifecycleTypes = new HashMap<>();
1563 interfaceLifecycleTypes.put("tosca.interfaces.lifecycle.TestInterface", interfaceDef);
1564 when(interfaceLifecycleTypeOperation.getAllInterfaceLifecycleTypes("testModel")).thenReturn(Either.left(interfaceLifecycleTypes));
1566 sIBL.addInterfaceValuesToRi(uploadComponentInstanceInfo, service, originResource, currentCompInstance, instInterfaces);
1570 void testProcessComponentInstanceInterfaces_null() {
1571 Service service = createServiceObject(true);
1572 Map<String, Map<String, InterfaceDefinition>> instInterfaces = new HashMap<>();
1573 UploadComponentInstanceInfo uploadComponentInstanceInfo = new UploadComponentInstanceInfo();
1574 ComponentInstance currentCompInstance = new ComponentInstance();
1575 Resource originResource = createParseResourceObject(false);
1576 Assertions.assertNotNull(originResource);
1577 sIBL.addInterfaceValuesToRi(uploadComponentInstanceInfo, service, originResource, currentCompInstance, instInterfaces);
1581 void testUpdateCapabilityPropertiesValues() {
1582 Either<Map<String, DataTypeDefinition>, JanusGraphOperationStatus> allDataTypes = null;
1583 Map<String, List<CapabilityDefinition>> originCapabilities = new HashMap<>();
1584 Map<String, Map<String, UploadPropInfo>> newPropertiesMap = new HashMap<>();
1585 Assertions.assertNull(allDataTypes);
1586 sIBL.updateCapabilityPropertiesValues(null, originCapabilities, newPropertiesMap);
1590 void testUpdatePropertyValues() {
1591 List<ComponentInstanceProperty> properties = new ArrayList<>();
1592 Map<String, UploadPropInfo> newProperties = new HashMap<>();
1593 Map<String, DataTypeDefinition> allDataTypes = new HashMap<>();
1594 Assertions.assertNotNull(allDataTypes);
1595 sIBL.updatePropertyValues(properties, newProperties, allDataTypes);
1599 void testUpdatePropertyValue() {
1600 ComponentInstanceProperty property = new ComponentInstanceProperty();
1601 property.setType("services");
1602 UploadPropInfo propertyInfo = new UploadPropInfo();
1603 propertyInfo.setValue("value");
1604 Map<String, DataTypeDefinition> allDataTypes = new HashMap<>();
1605 when(serviceBusinessLogic.validatePropValueBeforeCreate(any(IPropertyInputCommon.class), anyString(), anyBoolean(), anyMap())).thenReturn(
1607 Assertions.assertNotNull(sIBL.updatePropertyValue(property, propertyInfo, allDataTypes));
1611 void testGetOriginResource() {
1612 String yamlName = "group.yml";
1613 Map<String, Resource> originCompMap = new HashMap<>();
1614 ComponentInstance currentCompInstance = new ComponentInstance();
1615 currentCompInstance.setComponentUid("currentCompInstance");
1616 when(toscaOperationFacade.getToscaFullElement(anyString()))
1617 .thenReturn(Either.left(createParseResourceObject(true)));
1618 Assertions.assertNotNull(sIBL.getOriginResource(yamlName, originCompMap, currentCompInstance));
1622 void testUpdateCalculatedCapReqWithSubstitutionMappings() {
1623 Resource resource = createParseResourceObject(false);
1624 resource.setComponentInstances(creatComponentInstances());
1625 Map<String, UploadComponentInstanceInfo> uploadResInstancesMap = getUploadResInstancesMap();
1627 when(toscaOperationFacade.deleteAllCalculatedCapabilitiesRequirements(any())).thenReturn(StorageOperationStatus.OK);
1628 Assertions.assertNotNull(sIBL.updateCalculatedCapReqWithSubstitutionMappings(resource, uploadResInstancesMap));
1632 void testFillUpdatedInstCapabilitiesRequirements() {
1633 List<ComponentInstance> componentInstances = creatComponentInstances();
1634 Map<String, UploadComponentInstanceInfo> uploadResInstancesMap = getUploadResInstancesMap();
1635 Map<ComponentInstance, Map<String, List<CapabilityDefinition>>> updatedInstCapabilities = new HashMap<>();
1636 Map<ComponentInstance, Map<String, List<RequirementDefinition>>> updatedInstRequirement = new HashMap<>();
1637 Assertions.assertNotNull(componentInstances);
1639 sIBL.fillUpdatedInstCapabilitiesRequirements(componentInstances, uploadResInstancesMap,
1640 updatedInstCapabilities, updatedInstRequirement);
1644 void testFillUpdatedInstCapabilities() {
1645 Map<ComponentInstance, Map<String, List<CapabilityDefinition>>> updatedInstCapabilties = new HashMap<>();
1646 Map<String, List<CapabilityDefinition>> capabilities = new HashMap<>();
1647 List<CapabilityDefinition> capabilityDefinitionList = new ArrayList<>();
1648 CapabilityDefinition capabilityDefinition = new CapabilityDefinition();
1649 capabilityDefinition.setName("mme_ipu_vdu.feature");
1650 capabilityDefinitionList.add(capabilityDefinition);
1651 capabilities.put("tosca.capabilities.Node", capabilityDefinitionList);
1652 ComponentInstance instance = new ComponentInstance();
1653 instance.setCapabilities(capabilities);
1654 Map<String, String> capabilitiesNamesToUpdate = new HashMap<>();
1655 capabilitiesNamesToUpdate.put("mme_ipu_vdu.feature", "capabilitiesNamesToUpdate");
1656 Assertions.assertNotNull(instance);
1658 sIBL.fillUpdatedInstCapabilities(updatedInstCapabilties, instance, capabilitiesNamesToUpdate);
1662 void testFillUpdatedInstRequirements() {
1663 Map<ComponentInstance, Map<String, List<RequirementDefinition>>> updatedInstRequirements = new
1665 ComponentInstance instance = new ComponentInstance();
1666 Map<String, List<RequirementDefinition>> requirements = new HashMap<>();
1667 List<RequirementDefinition> requirementDefinitionList = new ArrayList<>();
1668 RequirementDefinition requirementDefinition = new RequirementDefinition();
1669 requirementDefinition.setName("zxjtestimportserviceab0.mme_ipu_vdu.dependency.test");
1670 requirementDefinitionList.add(requirementDefinition);
1671 requirements.put("tosca.capabilities.Node", requirementDefinitionList);
1672 instance.setRequirements(requirements);
1673 Map<String, String> requirementsNamesToUpdate = new HashMap<>();
1674 requirementsNamesToUpdate.put("zxjtestimportserviceab0.mme_ipu_vdu.dependency.test",
1675 "requirementsNamesToUpdate");
1676 Assertions.assertNotNull(instance);
1678 sIBL.fillUpdatedInstRequirements(updatedInstRequirements, instance, requirementsNamesToUpdate);
1682 void testAddRelationsToRI() {
1683 String yamlName = "group.yml";
1684 Service service = createServiceObject(true);
1686 Map<String, UploadComponentInstanceInfo> uploadResInstancesMap = new HashMap<>();
1687 UploadComponentInstanceInfo nodesInfoValue = getUploadComponentInstanceInfo();
1688 uploadResInstancesMap.put("uploadComponentInstanceInfo", nodesInfoValue);
1689 List<ComponentInstance> componentInstancesList = creatComponentInstances();
1690 ComponentInstance componentInstance = new ComponentInstance();
1691 componentInstance.setName("zxjTestImportServiceAb");
1692 componentInstancesList.add(componentInstance);
1693 service.setComponentInstances(componentInstancesList);
1694 List<RequirementCapabilityRelDef> relations = new ArrayList<>();
1695 RequirementDefinition requirementDefinition = new RequirementDefinition();
1696 requirementDefinition.setOwnerId("1");
1697 requirementDefinition.setUniqueId("2");
1698 requirementDefinition.setCapability("3");
1699 CapabilityDefinition capabilityDefinition = new CapabilityDefinition();
1700 capabilityDefinition.setName("4");
1701 capabilityDefinition.setUniqueId("5");
1702 capabilityDefinition.setOwnerId("6");
1703 ResponseFormat responseFormat = new ResponseFormat();
1704 responseFormat.setStatus(200);
1705 when(serviceImportParseLogic.findAvailableRequirement(anyString(),
1706 anyString(), any(UploadComponentInstanceInfo.class), any(ComponentInstance.class),
1707 anyString())).thenReturn(Either.left(requirementDefinition));
1708 when(serviceImportParseLogic.findAvailableCapabilityByTypeOrName(any(RequirementDefinition.class),
1709 any(ComponentInstance.class), any(UploadReqInfo.class))).thenReturn(capabilityDefinition);
1710 when(componentsUtils.getResponseFormat(any(ActionStatus.class), anyString())).thenReturn(responseFormat);
1711 Assertions.assertNotNull(service);
1713 sIBL.addRelationsToRI(yamlName, service, uploadResInstancesMap, componentInstancesList, relations);
1717 void testAddRelationsToRI_null() {
1718 String yamlName = "group.yml";
1719 Service service = createServiceObject(true);
1720 Map<String, UploadComponentInstanceInfo> uploadResInstancesMap = new HashMap<>();
1721 UploadComponentInstanceInfo nodesInfoValue = getUploadComponentInstanceInfo();
1722 uploadResInstancesMap.put("uploadComponentInstanceInfo", nodesInfoValue);
1723 List<ComponentInstance> componentInstancesList = new ArrayList<>();
1724 List<RequirementCapabilityRelDef> relations = new ArrayList<>();
1726 Assertions.assertThrows(ComponentException.class, () -> sIBL.addRelationsToRI(yamlName,
1727 service, uploadResInstancesMap, componentInstancesList, relations));
1731 void testAddRelationToRI() {
1732 String yamlName = "group.yml";
1733 Service service = createServiceObject(true);
1734 service.setComponentInstances(creatComponentInstances());
1736 UploadComponentInstanceInfo nodesInfoValue = getUploadComponentInstanceInfo();
1737 List<RequirementCapabilityRelDef> relations = new ArrayList<>();
1738 RequirementDefinition requirementDefinition = new RequirementDefinition();
1739 requirementDefinition.setName("zxjtestimportserviceab0.mme_ipu_vdu.dependency.test");
1740 CapabilityDefinition capabilityDefinition = new CapabilityDefinition();
1741 capabilityDefinition.setName("capabilityDefinitionName");
1742 capabilityDefinition.setUniqueId("capabilityDefinitionUniqueId");
1743 capabilityDefinition.setOwnerId("capabilityDefinitionOwnerId");
1744 ResponseFormat responseFormat = new ResponseFormat();
1745 when(serviceImportParseLogic.findAvailableRequirement(anyString(), anyString(), any(UploadComponentInstanceInfo.class),
1746 any(ComponentInstance.class), anyString())).thenReturn(Either.left(requirementDefinition));
1747 when(serviceImportParseLogic.findAvailableCapabilityByTypeOrName(any(RequirementDefinition.class),
1748 any(ComponentInstance.class), any(UploadReqInfo.class))).thenReturn(capabilityDefinition);
1749 when(componentsUtils.getResponseFormat(any(ActionStatus.class), anyString())).thenReturn(responseFormat);
1750 Assertions.assertNotNull(sIBL.addRelationToRI(yamlName, service, nodesInfoValue, relations));
1751 Assertions.assertNotNull(relations.get(0).getRelationships().get(0).getOperations());
1755 void testAddRelationToRI_null() {
1756 String yamlName = "group.yml";
1757 Service service = createServiceObject(true);
1758 List<ComponentInstance> componentInstancesList = new ArrayList<>();
1759 service.setComponentInstances(componentInstancesList);
1760 ResponseFormat responseFormat = new ResponseFormat();
1761 UploadComponentInstanceInfo nodesInfoValue = getUploadComponentInstanceInfo();
1762 List<RequirementCapabilityRelDef> relations = new ArrayList<>();
1763 when(componentsUtils.getResponseFormat(any(ActionStatus.class), anyString())).thenReturn(responseFormat);
1764 Assertions.assertNotNull(sIBL.addRelationToRI(yamlName, service, nodesInfoValue, relations));
1768 void testGetResourceAfterCreateRelations() {
1769 Service service = createServiceObject(true);
1770 ComponentParametersView componentParametersView = createComponentParametersView();
1771 when(serviceImportParseLogic.getComponentFilterAfterCreateRelations()).thenReturn(componentParametersView);
1772 when(toscaOperationFacade.getToscaElement(anyString(), any(ComponentParametersView.class)))
1773 .thenReturn(Either.left(createServiceObject(true)));
1774 Assertions.assertNotNull(sIBL.getResourceAfterCreateRelations(service));
1778 void testCreateServiceInstances() {
1779 String yamlName = "group.yml";
1780 Service service = createServiceObject(true);
1781 Map<String, UploadComponentInstanceInfo> uploadResInstancesMap = new HashMap<>();
1782 UploadComponentInstanceInfo nodesInfoValue = getUploadComponentInstanceInfo();
1783 uploadResInstancesMap.put("uploadResInstancesMap", nodesInfoValue);
1784 Map<String, Resource> nodeNamespaceMap = new HashMap<>();
1785 Resource resource = createParseResourceObject(true);
1786 resource.setToscaResourceName("toscaResourceName");
1787 nodeNamespaceMap.put("nodeNamespaceMap", resource);
1789 Assertions.assertThrows(ComponentException.class,
1790 () -> sIBL.createServiceInstances(yamlName, service, uploadResInstancesMap, nodeNamespaceMap));
1794 void testCreateAndAddResourceInstance() {
1795 UploadComponentInstanceInfo uploadComponentInstanceInfo = getUploadComponentInstanceInfo();
1796 String yamlName = "group.yml";
1797 Resource resource = createParseResourceObject(false);
1798 Resource originResource = createParseResourceObject(true);
1799 originResource.setResourceType(ResourceTypeEnum.VF);
1800 Map<String, Resource> nodeNamespaceMap = new HashMap<>();
1801 nodeNamespaceMap.put("resources", originResource);
1802 Map<String, Resource> existingnodeTypeMap = new HashMap<>();
1803 Map<ComponentInstance, Resource> resourcesInstancesMap = new HashMap<>();
1805 Assertions.assertThrows(ComponentException.class, () -> sIBL
1806 .createAndAddResourceInstance(uploadComponentInstanceInfo, yamlName, resource,
1807 nodeNamespaceMap, existingnodeTypeMap, resourcesInstancesMap));
1811 void testCreateAndAddResourceInstances() {
1812 UploadComponentInstanceInfo uploadComponentInstanceInfo = getUploadComponentInstanceInfo();
1813 String yamlName = "group.yml";
1814 Service service = createServiceObject(true);
1815 service.setServiceType("services");
1816 Resource originResource = createParseResourceObject(true);
1817 originResource.setResourceType(ResourceTypeEnum.VF);
1818 Map<String, Resource> nodeNamespaceMap = new HashMap<>();
1819 nodeNamespaceMap.put("resources", originResource);
1820 Map<String, Resource> existingnodeTypeMap = new HashMap<>();
1821 Map<ComponentInstance, Resource> resourcesInstancesMap = new HashMap<>();
1823 Assertions.assertThrows(ComponentException.class, () -> sIBL
1824 .createAndAddResourceInstance(uploadComponentInstanceInfo, yamlName, service,
1825 nodeNamespaceMap, existingnodeTypeMap, resourcesInstancesMap));
1829 void testValidateResourceInstanceBeforeCreate() {
1830 String yamlName = "group.yml";
1831 UploadComponentInstanceInfo uploadComponentInstanceInfo = getUploadComponentInstanceInfo();
1832 Resource originResource = createParseResourceObject(true);
1833 ResourceMetadataDataDefinition componentMetadataDataDefinition = new ResourceMetadataDataDefinition();
1834 componentMetadataDataDefinition.setState(LifecycleStateEnum.CERTIFIED.name());
1835 ComponentMetadataDefinition componentMetadataDefinition = new ComponentMetadataDefinition(componentMetadataDataDefinition);
1836 originResource.setComponentMetadataDefinition(componentMetadataDefinition);
1837 originResource.setComponentType(ComponentTypeEnum.RESOURCE);
1838 originResource.setToscaResourceName("toscaResourceName");
1839 originResource.setResourceType(ResourceTypeEnum.VF);
1840 Map<String, Resource> nodeNamespaceMap = new HashMap<>();
1841 nodeNamespaceMap.put("resources", originResource);
1842 when(toscaOperationFacade.getLatestByToscaResourceName(RESOURCE_TOSCA_NAME, null)).thenReturn(Either.left(originResource));
1843 Assertions.assertNotNull(
1844 sIBL.validateResourceInstanceBeforeCreate(yamlName, null, uploadComponentInstanceInfo, nodeNamespaceMap));
1848 void testHandleServiceNodeTypes() {
1849 String yamlName = "group.yml";
1850 Service service = createServiceObject(true);
1851 String topologyTemplateYaml = getMainTemplateContent("service_import_template.yml");
1853 boolean needLock = true;
1854 Map<String, EnumMap<ArtifactsBusinessLogic.ArtifactOperationEnum, List<ArtifactDefinition>>> nodeTypesArtifactsToHandle = new HashMap<>();
1855 List<ArtifactDefinition> nodeTypesNewCreatedArtifacts = new ArrayList<>();
1856 Map<String, NodeTypeInfo> nodeTypesInfo = getNodeTypesInfo();
1857 CsarInfo csarInfo = getCsarInfo();
1858 String nodeName = "org.openecomp.resource.derivedFrom.zxjTestImportServiceAb.test";
1859 when(toscaOperationFacade.getLatestResourceByToscaResourceName(anyString())).thenReturn(Either.left(createOldResource()));
1860 Assertions.assertNotNull(service);
1862 sIBL.handleServiceNodeTypes(yamlName, service, topologyTemplateYaml, needLock, nodeTypesArtifactsToHandle,
1863 nodeTypesNewCreatedArtifacts,
1864 nodeTypesInfo, csarInfo, nodeName);
1868 void testValidateResourceNotExisted() {
1869 String type = "org.openecomp.resource.vf";
1871 Assertions.assertThrows(ComponentException.class, () -> sIBL.validateResourceNotExisted(type));
1875 void testHandleNestedVF() {
1876 Service service = createServiceObject(true);
1877 Map<String, EnumMap<ArtifactsBusinessLogic.ArtifactOperationEnum, List<ArtifactDefinition>>> nodeTypesArtifactsToHandle = new HashMap<>();
1878 List<ArtifactDefinition> createdArtifacts = new ArrayList<>();
1879 Map<String, NodeTypeInfo> nodesInfo = getNodeTypesInfo();
1880 CsarInfo csarInfo = getCsarInfo();
1881 String nodeName = "org.openecomp.resource.derivedFrom.zxjTestImportServiceAb.test";
1883 Assertions.assertThrows(ComponentException.class, () -> sIBL.handleNestedVF(service,
1884 nodeTypesArtifactsToHandle, createdArtifacts, nodesInfo, csarInfo, nodeName));
1888 void testHandleNestedVfc() {
1889 Service service = createServiceObject(true);
1890 Map<String, EnumMap<ArtifactsBusinessLogic.ArtifactOperationEnum, List<ArtifactDefinition>>> nodeTypesArtifactsToHandle = new HashMap<>();
1891 List<ArtifactDefinition> createdArtifacts = new ArrayList<>();
1892 Map<String, NodeTypeInfo> nodesInfo = new HashMap<>();
1893 CsarInfo csarInfo = getCsarInfo();
1894 String nodeName = "org.openecomp.resource.derivedFrom.zxjTestImportServiceAb.test";
1896 Assertions.assertThrows(ComponentException.class, () -> sIBL.handleNestedVfc(service,
1897 nodeTypesArtifactsToHandle, createdArtifacts, nodesInfo, csarInfo, nodeName));
1901 void testHandleComplexVfc() {
1902 Map<String, EnumMap<ArtifactsBusinessLogic.ArtifactOperationEnum, List<ArtifactDefinition>>> nodeTypesArtifactsToHandle = new HashMap<>();
1903 List<ArtifactDefinition> createdArtifacts = new ArrayList<>();
1904 Map<String, NodeTypeInfo> nodesInfo = new HashMap<>();
1905 CsarInfo csarInfo = getCsarInfo();
1906 String nodeName = "org.openecomp.resource.derivedFrom.zxjTestImportServiceAb.test";
1907 String yamlName = "group.yml";
1908 when(serviceImportParseLogic.buildValidComplexVfc(any(CsarInfo.class), anyString(), anyMap()))
1909 .thenReturn(createNewResource());
1910 when(toscaOperationFacade.getFullLatestComponentByToscaResourceName(anyString()))
1911 .thenReturn(Either.left(createNewResource()));
1912 when(serviceImportParseLogic.validateNestedDerivedFromDuringUpdate(any(Resource.class), any(Resource.class), anyBoolean()))
1913 .thenReturn(Either.left(true));
1915 Assertions.assertThrows(ComponentException.class, () -> sIBL
1916 .handleComplexVfc(nodeTypesArtifactsToHandle, createdArtifacts, nodesInfo,
1917 csarInfo, nodeName, yamlName));
1921 void testHandleComplexVfcStatus() {
1922 Map<String, EnumMap<ArtifactsBusinessLogic.ArtifactOperationEnum, List<ArtifactDefinition>>> nodeTypesArtifactsToHandle = new HashMap<>();
1923 List<ArtifactDefinition> createdArtifacts = new ArrayList<>();
1924 Map<String, NodeTypeInfo> nodesInfo = new HashMap<>();
1925 CsarInfo csarInfo = getCsarInfo();
1926 String nodeName = "org.openecomp.resource.derivedFrom.zxjTestImportServiceAb.test";
1927 String yamlName = "group.yml";
1928 when(serviceImportParseLogic.buildValidComplexVfc(any(CsarInfo.class), anyString(), anyMap()))
1929 .thenReturn(createNewResource());
1930 when(toscaOperationFacade.getFullLatestComponentByToscaResourceName(anyString()))
1931 .thenReturn(Either.right(StorageOperationStatus.NOT_FOUND));
1933 Assertions.assertThrows(ComponentException.class, () -> sIBL
1934 .handleComplexVfc(nodeTypesArtifactsToHandle, createdArtifacts, nodesInfo,
1935 csarInfo, nodeName, yamlName));
1939 void testHandleComplexVfc2() {
1940 Map<String, EnumMap<ArtifactsBusinessLogic.ArtifactOperationEnum, List<ArtifactDefinition>>> nodeTypesArtifactsToHandle = new HashMap<>();
1941 List<ArtifactDefinition> createdArtifacts = new ArrayList<>();
1942 Map<String, NodeTypeInfo> nodesInfo = getNodeTypesInfo();
1943 String nodeName = "org.openecomp.resource.derivedFrom.zxjTestImportServiceAb.test";
1944 String yamlName = "group.yml";
1945 CsarInfo csarInfo = getCsarInfo();
1946 Map<String, byte[]> csar = new HashMap<>();
1947 csar.put(yamlName, yamlName.getBytes());
1948 csarInfo.setCsar(csar);
1949 Resource oldComplexVfc = createParseResourceObject(false);
1950 Resource newComplexVfc = createParseResourceObject(true);
1952 Assertions.assertThrows(ComponentException.class, () -> sIBL
1953 .handleComplexVfc(nodeTypesArtifactsToHandle, createdArtifacts, nodesInfo,
1954 csarInfo, nodeName, yamlName, oldComplexVfc, newComplexVfc));
1958 void testUpdateResourceFromYaml() throws IOException {
1959 String nodeName = "org.openecomp.resource.derivedFrom.zxjTestImportServiceAb.test";
1960 Resource newResource = createNewResource();
1961 Resource oldResource = createOldResource();
1962 AuditingActionEnum actionEnum = AuditingActionEnum.CREATE_RESOURCE;
1963 List<ArtifactDefinition> createdArtifacts = new ArrayList<>();
1964 String yamlFileName = "group.yml";
1965 String yamlFileContent = getYamlFileContent();
1966 CsarInfo csarInfo = getCsarInfo();
1967 Map<String, NodeTypeInfo> nodeTypesInfo = getNodeTypesInfo();
1968 Map<String, Object> map = new HashMap<>();
1969 map.put("tosca_definitions_version", "123");
1970 nodeTypesInfo.get(nodeName).setMappedToscaTemplate(map);
1971 Map<String, EnumMap<ArtifactsBusinessLogic.ArtifactOperationEnum, List<ArtifactDefinition>>> nodeTypesArtifactsToHandle = new HashMap<>();
1972 boolean isNested = true;
1974 when(csarBusinessLogic.getParsedToscaYamlInfo(anyString(), anyString(), anyMap(), any(CsarInfo.class),
1975 anyString(), any(Component.class))).thenReturn(getParsedToscaYamlInfo());
1976 when(serviceImportParseLogic.prepareResourceForUpdate(any(Resource.class), any(Resource.class),
1977 any(User.class), anyBoolean(), anyBoolean())).thenReturn(oldResource);
1978 when(serviceImportParseLogic.validateCapabilityTypesCreate(any(User.class), any(ICapabilityTypeOperation.class),
1979 any(Resource.class), any(AuditingActionEnum.class), anyBoolean())).thenReturn(Either.left(true));
1980 when(toscaOperationFacade.overrideComponent(any(Resource.class), any(Resource.class)))
1981 .thenReturn(Either.left(newResource));
1982 Assertions.assertThrows(ComponentException.class, () -> sIBL
1983 .updateResourceFromYaml(oldResource, newResource, actionEnum, createdArtifacts,
1984 yamlFileName, yamlFileContent, csarInfo, nodeTypesInfo,
1985 nodeTypesArtifactsToHandle, nodeName, isNested));
1989 void testCreateResourceFromYaml() throws IOException {
1990 String nodeName = "org.openecomp.resource.derivedFrom.zxjTestImportServiceAb.test";
1991 Resource resource = createParseResourceObject(true);
1992 String topologyTemplateYaml = getMainTemplateContent();
1993 String yamlName = "group.yml";
1995 Map<String, NodeTypeInfo> nodeTypesInfo = getNodeTypesInfo();
1996 Map<String, Object> map = new HashMap<>();
1997 map.put("tosca_definitions_version", "123");
1998 nodeTypesInfo.get(nodeName).setMappedToscaTemplate(map);
2000 CsarInfo csarInfo = getCsarInfo();
2001 Map<String, EnumMap<ArtifactsBusinessLogic.ArtifactOperationEnum, List<ArtifactDefinition>>> nodeTypesArtifactsToCreate = new HashMap<>();
2002 boolean shouldLock = false;
2003 boolean inTransaction = true;
2005 when(csarBusinessLogic.getParsedToscaYamlInfo(anyString(), anyString(), anyMap(), any(CsarInfo.class),
2006 anyString(), any(Component.class))).thenReturn(getParsedToscaYamlInfo());
2007 when(serviceBusinessLogic.fetchAndSetDerivedFromGenericType(any(Component.class))).thenReturn(resource);
2008 when(toscaOperationFacade.validateComponentNameExists(anyString(), any(ResourceTypeEnum.class), any(ComponentTypeEnum.class)))
2009 .thenReturn(Either.left(false));
2010 when(toscaOperationFacade.createToscaComponent(any(Resource.class))).thenReturn(Either.left(resource));
2011 Assertions.assertThrows(ComponentException.class, () -> sIBL.createResourceFromYaml(resource,
2012 topologyTemplateYaml, yamlName, nodeTypesInfo, csarInfo,
2013 nodeTypesArtifactsToCreate, shouldLock, inTransaction, nodeName));
2017 void testCreateResourceAndRIsFromYaml() throws IOException {
2018 String yamlName = "group.yml";
2019 String nodeName = "org.openecomp.resource.derivedFrom.zxjTestImportServiceAb.test";
2020 Resource resource = createParseResourceObject(true);
2021 resource.setSystemName("SystemName");
2022 resource.setComponentType(ComponentTypeEnum.RESOURCE);
2023 AuditingActionEnum actionEnum = AuditingActionEnum.CREATE_RESOURCE;
2024 boolean isNormative = true;
2025 List<ArtifactDefinition> createdArtifacts = new ArrayList<>();
2026 String topologyTemplateYaml = getMainTemplateContent();
2027 Map<String, NodeTypeInfo> nodeTypesInfo = getNodeTypesInfo();
2028 Map<String, Object> map = new HashMap<>();
2029 map.put("tosca_definitions_version", "123");
2030 nodeTypesInfo.get(nodeName).setMappedToscaTemplate(map);
2031 ParsedToscaYamlInfo parsedToscaYamlInfo = getParsedToscaYamlInfo();
2033 CsarInfo csarInfo = getCsarInfo();
2034 Map<String, EnumMap<ArtifactsBusinessLogic.ArtifactOperationEnum, List<ArtifactDefinition>>> nodeTypesArtifactsToCreate = new HashMap<>();
2035 boolean shouldLock = false;
2036 boolean inTransaction = true;
2037 when(serviceBusinessLogic.fetchAndSetDerivedFromGenericType(any(Resource.class)))
2038 .thenReturn(resource);
2040 when(serviceBusinessLogic.lockComponentByName(anyString(), any(), anyString()))
2041 .thenReturn(Either.left(true));
2043 when(toscaOperationFacade.validateComponentNameExists(anyString(), any(ResourceTypeEnum.class), any(ComponentTypeEnum.class)))
2044 .thenReturn(Either.left(false));
2046 when(toscaOperationFacade.createToscaComponent(any(Resource.class))).thenReturn(Either.left(resource));
2048 Assertions.assertThrows(ComponentException.class, () -> sIBL
2049 .createResourceAndRIsFromYaml(yamlName, resource, parsedToscaYamlInfo, actionEnum,
2050 isNormative, createdArtifacts, topologyTemplateYaml, nodeTypesInfo, csarInfo,
2051 nodeTypesArtifactsToCreate, shouldLock, inTransaction, nodeName));
2055 void testCreateGroupsOnResource2() {
2056 Resource resource = createParseResourceObject(false);
2057 Map<String, GroupDefinition> groups = null;
2058 List<GroupDefinition> groupDefinitionList = new ArrayList<>();
2059 GroupDefinition groupDefinition = new GroupDefinition();
2060 groupDefinition.setUniqueId("groupDefinitionUniqueId");
2061 groupDefinition.setName("groupDefinition");
2062 groupDefinitionList.add(groupDefinition);
2064 Assertions.assertNotNull(
2065 sIBL.createGroupsOnResource(resource, groups));
2069 void testCreateGroupsOnResource2_null() {
2070 Resource resource = createParseResourceObject(false);
2071 Map<String, GroupDefinition> groups = null;
2073 Either<Resource, ResponseFormat> result = sIBL.createGroupsOnResource(resource, groups);
2074 assertEquals(result.left().value(), resource);
2078 void testUpdateGroupsMembersUsingResource2() {
2079 Resource resource = createParseResourceObject(true);
2080 Map<String, GroupDefinition> groups = getGroups();
2082 Assertions.assertNotNull(
2083 sIBL.updateGroupsMembersUsingResource(groups, resource));
2087 void testUpdateGroupsMembersUsingResource_left2() {
2088 Resource resource = createParseResourceObject(true);
2089 Map<String, GroupDefinition> groups = getGroups();
2091 Assertions.assertNotNull(
2092 sIBL.updateGroupsMembersUsingResource(groups, resource));
2096 void testUpdateGroupMembers() throws IOException {
2097 Map<String, GroupDefinition> groups = new HashMap<>();
2098 GroupDefinition updatedGroupDefinition = new GroupDefinition();
2099 Resource component = createParseResourceObject(true);
2100 List<ComponentInstance> componentInstances = creatComponentInstances();
2101 String groupName = "tosca_simple_yaml_1_1";
2102 Map<String, String> members = new HashMap<>();
2103 members.put("zxjTestImportServiceAb", getGroupsYaml());
2104 Assertions.assertNotNull(component);
2106 sIBL.updateGroupMembers(groups, updatedGroupDefinition, component, componentInstances, groupName, members);
2110 void testUpdateGroupMembers_null() throws IOException {
2111 Map<String, GroupDefinition> groups = new HashMap<>();
2112 GroupDefinition updatedGroupDefinition = new GroupDefinition();
2113 Resource component = createParseResourceObject(true);
2114 List<ComponentInstance> componentInstances = new ArrayList<>();
2115 String groupName = "tosca_simple_yaml_1_1";
2116 Map<String, String> members = new HashMap<>();
2117 members.put("zxjTestImportServiceAb", getGroupsYaml());
2119 Assertions.assertThrows(ComponentException.class, () -> sIBL.updateGroupMembers(groups,
2120 updatedGroupDefinition, component, componentInstances, groupName, members));
2124 void setCreateResourceTransaction() {
2125 Resource resource = createParseResourceObject(false);
2126 resource.setComponentType(ComponentTypeEnum.RESOURCE);
2127 boolean isNormative = true;
2128 when(toscaOperationFacade.validateComponentNameExists(anyString(), any(ResourceTypeEnum.class), any(ComponentTypeEnum.class)))
2129 .thenReturn(Either.right(StorageOperationStatus.BAD_REQUEST));
2131 Assertions.assertThrows(ComponentException.class, () -> sIBL.createResourceTransaction(resource, user, isNormative));
2135 void setCreateResourceTransaction_leftTrue() {
2136 Resource resource = createParseResourceObject(false);
2137 resource.setComponentType(ComponentTypeEnum.RESOURCE);
2138 boolean isNormative = true;
2139 when(toscaOperationFacade.validateComponentNameExists(anyString(), any(), any())).thenReturn(Either.left(true));
2141 Assertions.assertThrows(ComponentException.class, () -> sIBL.createResourceTransaction(resource, user, isNormative));
2145 void setCreateResourceTransaction_Left() {
2146 Resource resource = createParseResourceObject(false);
2147 resource.setComponentType(ComponentTypeEnum.RESOURCE);
2148 when(toscaOperationFacade.validateComponentNameExists(anyString(), any(), any())).thenReturn(Either.left(false));
2149 when(toscaOperationFacade.createToscaComponent(any(Resource.class))).thenReturn(Either.left(resource));
2150 Assertions.assertNotNull(sIBL.createResourceTransaction(resource, user, false));
2154 void testUpdateExistingResourceByImport() {
2155 Resource newResource = createNewResource();
2156 Resource oldResource = createOldResource();
2157 when(serviceImportParseLogic.prepareResourceForUpdate(any(Resource.class), any(Resource.class),
2158 any(User.class), anyBoolean(), anyBoolean())).thenReturn(oldResource);
2159 when(serviceImportParseLogic.validateCapabilityTypesCreate(any(User.class), any(ICapabilityTypeOperation.class),
2160 any(Resource.class), any(AuditingActionEnum.class), anyBoolean())).thenReturn(Either.left(true));
2161 when(toscaOperationFacade.overrideComponent(any(Resource.class), any(Resource.class)))
2162 .thenReturn(Either.left(newResource));
2163 Assertions.assertNotNull(sIBL.updateExistingResourceByImport(newResource, oldResource, user, true, false, true));
2167 void testCreateNewResourceToOldResource() {
2168 Resource newResource = createNewResource();
2169 Resource oldResource = createOldResource();
2171 sIBL.createNewResourceToOldResource(newResource, oldResource, user);
2172 assertEquals(newResource.getSystemName(), oldResource.getSystemName());
2176 void testCreateResourcesFromYamlNodeTypesList() {
2177 String yamlName = "group.yml";
2178 Service service = createServiceObject(true);
2179 Map<String, Object> mappedToscaTemplate = new HashMap<>();
2180 boolean needLock = true;
2181 Map<String, EnumMap<ArtifactsBusinessLogic.ArtifactOperationEnum, List<ArtifactDefinition>>> nodeTypesArtifactsToHandle = new HashMap<>();
2182 List<ArtifactDefinition> nodeTypesNewCreatedArtifacts = new ArrayList<>();
2183 Map<String, NodeTypeInfo> nodeTypesInfo = new HashMap<>();
2184 CsarInfo csarInfo = getCsarInfo();
2186 Assertions.assertThrows(ComponentException.class, () -> sIBL
2187 .createResourcesFromYamlNodeTypesList(yamlName, service, mappedToscaTemplate, needLock,
2188 nodeTypesArtifactsToHandle, nodeTypesNewCreatedArtifacts, nodeTypesInfo, csarInfo));
2192 void testCreateNodeTypes() {
2193 String yamlName = "group.yml";
2194 Service service = createServiceObject(true);
2195 boolean needLock = true;
2196 Map<String, EnumMap<ArtifactsBusinessLogic.ArtifactOperationEnum, List<ArtifactDefinition>>> nodeTypesArtifactsToHandle = new HashMap<>();
2197 EnumMap<ArtifactsBusinessLogic.ArtifactOperationEnum, List<ArtifactDefinition>> enumListEnumMap =
2198 new EnumMap<>(ArtifactsBusinessLogic.ArtifactOperationEnum.class);
2199 List<ArtifactDefinition> artifactDefinitions = new ArrayList<>();
2200 ArtifactDefinition artifactDefinition = new ArtifactDefinition();
2201 artifactDefinition.setArtifactName("artifactName");
2202 artifactDefinitions.add(artifactDefinition);
2203 enumListEnumMap.put(ArtifactsBusinessLogic.ArtifactOperationEnum.CREATE,
2204 artifactDefinitions);
2205 nodeTypesArtifactsToHandle.put("nodeTyp", enumListEnumMap);
2206 List<ArtifactDefinition> nodeTypesNewCreatedArtifacts = new ArrayList<>();
2207 Map<String, NodeTypeInfo> nodeTypesInfo = getNodeTypesInfo();
2208 CsarInfo csarInfo = getCsarInfo();
2209 Map<String, Object> mapToConvert = new HashMap<>();
2210 Map<String, Object> nodeTypes = new HashMap<>();
2211 NodeTypeInfo nodeTypeInfo = new NodeTypeInfo();
2212 nodeTypesInfo.put("nodeTyp", nodeTypeInfo);
2213 nodeTypes.put("org.openecomp.resource.derivedFrom.zxjTestImportServiceAb.test",
2216 Assertions.assertThrows(ComponentException.class, () -> sIBL.createNodeTypes(yamlName,
2217 service, needLock, nodeTypesArtifactsToHandle, nodeTypesNewCreatedArtifacts,
2218 nodeTypesInfo, csarInfo, mapToConvert, nodeTypes));
2222 void testCreateNodeTypesElse() {
2223 String nodeName = "org.openecomp.resource.derivedFrom.zxjTestImportServiceAb.test";
2224 String yamlName = "group.yml";
2225 Service service = createServiceObject(true);
2226 boolean needLock = true;
2227 Map<String, EnumMap<ArtifactsBusinessLogic.ArtifactOperationEnum, List<ArtifactDefinition>>> nodeTypesArtifactsToHandle = new HashMap<>();
2228 EnumMap<ArtifactsBusinessLogic.ArtifactOperationEnum, List<ArtifactDefinition>> enumListEnumMap =
2229 new EnumMap<>(ArtifactsBusinessLogic.ArtifactOperationEnum.class);
2230 List<ArtifactDefinition> artifactDefinitions = new ArrayList<>();
2231 ArtifactDefinition artifactDefinition = new ArtifactDefinition();
2232 artifactDefinition.setArtifactName("artifactName");
2233 artifactDefinitions.add(artifactDefinition);
2234 enumListEnumMap.put(ArtifactsBusinessLogic.ArtifactOperationEnum.CREATE,
2235 artifactDefinitions);
2236 nodeTypesArtifactsToHandle.put("nodeTyp", enumListEnumMap);
2237 List<ArtifactDefinition> nodeTypesNewCreatedArtifacts = new ArrayList<>();
2238 Map<String, NodeTypeInfo> nodeTypesInfo = getNodeTypesInfo();
2239 Map<String, Object> map = new HashMap<>();
2240 map.put("tosca_definitions_version", "123");
2241 nodeTypesInfo.get(nodeName).setMappedToscaTemplate(map);
2242 ParsedToscaYamlInfo parsedToscaYamlInfo = getParsedToscaYamlInfo();
2244 CsarInfo csarInfo = getCsarInfo();
2245 Map<String, Object> mapToConvert = new HashMap<>();
2246 Map<String, Object> nodeTypes = new HashMap<>();
2247 NodeTypeInfo nodeTypeInfo = new NodeTypeInfo();
2248 nodeTypes.put("org.openecomp.resource.derivedFrom.zxjTestImportServiceAb.test",
2250 when(serviceImportParseLogic.createNodeTypeResourceFromYaml(anyString(), any(Map.Entry.class), any(User.class),
2251 anyMap(), any(Service.class), anyBoolean(), anyMap(), anyList(), anyBoolean(), any(CsarInfo.class),
2252 anyBoolean())).thenReturn(getResourceCreated());
2253 Assertions.assertNotNull(service);
2255 sIBL.createNodeTypes(yamlName,
2256 service, needLock, nodeTypesArtifactsToHandle, nodeTypesNewCreatedArtifacts,
2257 nodeTypesInfo, csarInfo, mapToConvert, nodeTypes);
2260 protected ImmutablePair<Resource, ActionStatus> getResourceCreated() {
2261 Resource resource = createOldResource();
2262 ImmutablePair<Resource, ActionStatus> resourceCreated = new ImmutablePair<>(resource, ActionStatus.OK);
2264 return resourceCreated;
2267 protected Resource createNewResource() {
2268 Resource newResource = createParseResourceObject(false);
2269 newResource.setVersion("1.0");
2270 newResource.setInvariantUUID("");
2271 newResource.setLifecycleState(null);
2272 newResource.setUUID("");
2273 newResource.setNormalizedName("");
2274 newResource.setSystemName("");
2275 newResource.setCsarUUID("");
2276 newResource.setImportedToscaChecksum("");
2277 newResource.setDerivedFromGenericType("");
2278 newResource.setDerivedFromGenericVersion("");
2279 Map<String, ArtifactDefinition> toscaArtifacts = new HashMap<>();
2280 ArtifactDefinition artifactDefinition = new ArtifactDefinition();
2281 artifactDefinition.setArtifactName("artifactDefinition");
2282 toscaArtifacts.put("toscaArtifactsMap", artifactDefinition);
2283 Map<String, InterfaceDefinition> interfaces = new HashMap<>();
2284 InterfaceDefinition interfaceDefinition = new InterfaceDefinition();
2285 interfaceDefinition.setOwnerId("OwnerId");
2286 interfaces.put("interfacesMap", interfaceDefinition);
2287 newResource.setInterfaces(interfaces);
2288 newResource.setToscaArtifacts(toscaArtifacts);
2289 newResource.setProperties(getProperties());
2293 protected Resource createOldResource() {
2294 Resource newResource = createParseResourceObject(false);
2295 newResource.setVersion("1.0");
2296 newResource.setUniqueId("ResourceUniqueId");
2297 newResource.setInvariantUUID("552e8f6c-340c-4fb4-8a82-fe7732fd8010");
2298 newResource.setLifecycleState(LifecycleStateEnum.CERTIFIED);
2299 newResource.setUUID("13065b80-ca96-4331-b643-d28aeaf961cb");
2300 newResource.setNormalizedName("NormalizedName");
2301 newResource.setSystemName("default");
2302 newResource.setCsarUUID("CsarUUID");
2303 newResource.setImportedToscaChecksum("ImportedToscaChecksum");
2304 newResource.setDerivedFromGenericType("DerivedFromGenericType");
2305 newResource.setDerivedFromGenericVersion("0.1");
2306 Map<String, ArtifactDefinition> toscaArtifacts = new HashMap<>();
2307 ArtifactDefinition artifactDefinition = new ArtifactDefinition();
2308 artifactDefinition.setArtifactName("tosca_simple_yaml_1_1");
2309 toscaArtifacts.put("tosca_definitions_version", artifactDefinition);
2310 Map<String, InterfaceDefinition> interfaces = new HashMap<>();
2311 InterfaceDefinition interfaceDefinition = new InterfaceDefinition();
2312 interfaceDefinition.setDescription("Invoked upon receipt of an Instantiate VNF request");
2313 interfaces.put("tosca_simple_yaml_1_1", interfaceDefinition);
2314 newResource.setInterfaces(interfaces);
2315 newResource.setToscaArtifacts(toscaArtifacts);
2316 List<PropertyDefinition> properties = new ArrayList<>();
2317 PropertyDefinition propertyDefinition = new PropertyDefinition();
2318 propertyDefinition.setName("tosca_simple_yaml_1_1");
2319 properties.add(propertyDefinition);
2320 newResource.setProperties(properties);
2324 protected Map<String, InputDefinition> getCurrPropertiesMap() {
2325 Map<String, InputDefinition> currPropertiesMap = new HashMap<>();
2326 InputDefinition inputDefinition = new InputDefinition();
2327 inputDefinition.setName("inputDefinitionName");
2328 inputDefinition.setUniqueId("uniqueId");
2329 inputDefinition.setType("inputDefinitionType");
2330 currPropertiesMap.put("propertyInfoName", inputDefinition);
2331 return currPropertiesMap;
2334 protected List<UploadPropInfo> getPropertyList() {
2335 List<UploadPropInfo> propertyList = new ArrayList<>();
2336 List<GetInputValueDataDefinition> get_input = new ArrayList<>();
2337 GetInputValueDataDefinition getInputValueDataDefinition = new GetInputValueDataDefinition();
2338 getInputValueDataDefinition.setPropName("getInputValueDataDefinitionName");
2339 getInputValueDataDefinition.setInputName("inputDefinitionName");
2340 get_input.add(getInputValueDataDefinition);
2341 UploadPropInfo propertyInfo = new UploadPropInfo();
2342 propertyInfo.setValue("value");
2343 propertyInfo.setGet_input(get_input);
2344 propertyInfo.setName("propertyInfoName");
2345 propertyList.add(propertyInfo);
2346 return propertyList;
2349 private Map<String, NodeTypeInfo> getNodeTypesInfo() {
2350 Map<String, NodeTypeInfo> nodeTypesInfo = new HashMap<>();
2351 NodeTypeInfo nodeTypeInfo = new NodeTypeInfo();
2352 Map<String, Object> mappedToscaTemplate = new HashMap<>();
2353 nodeTypeInfo.setNested(true);
2354 nodeTypeInfo.setTemplateFileName("templateFileName");
2355 nodeTypeInfo.setMappedToscaTemplate(mappedToscaTemplate);
2356 String nodeName = "org.openecomp.resource.derivedFrom.zxjTestImportServiceAb.test";
2357 nodeTypesInfo.put(nodeName, nodeTypeInfo);
2358 return nodeTypesInfo;
2361 private Map<String, Object> getNodeTypes() {
2362 Map<String, Object> nodeTypesInfo = new HashMap<>();
2363 NodeTypeInfo nodeTypeInfo = new NodeTypeInfo();
2364 Map<String, Object> mappedToscaTemplate = new HashMap<>();
2365 nodeTypeInfo.setNested(true);
2366 nodeTypeInfo.setTemplateFileName("templateFileName");
2367 nodeTypeInfo.setMappedToscaTemplate(mappedToscaTemplate);
2368 String nodeName = "org.openecomp.resource.derivedFrom.zxjTestImportServiceAb.test";
2369 nodeTypesInfo.put(nodeName, nodeTypeInfo);
2370 return nodeTypesInfo;
2373 private Map<String, UploadComponentInstanceInfo> getUploadResInstancesMap() {
2374 Map<String, UploadComponentInstanceInfo> uploadResInstancesMap = new HashMap<>();
2375 UploadComponentInstanceInfo uploadComponentInstanceInfo = getUploadComponentInstanceInfo();
2376 Map<String, String> capabilitiesNamesToUpdate = new HashMap<>();
2377 capabilitiesNamesToUpdate.put("mme_ipu_vdu.feature", "capabilitiesNamesToUpdate");
2378 Map<String, String> requirementsNamesToUpdate = new HashMap<>();
2379 requirementsNamesToUpdate.put("mme_ipu_vdu.feature", "capabilitiesNamesToUpdate");
2380 uploadResInstancesMap.put("zxjTestImportServiceAb", uploadComponentInstanceInfo);
2381 return uploadResInstancesMap;
2384 protected Map<String, List<UploadPropInfo>> getUploadPropInfoProperties() {
2385 Map<String, List<UploadPropInfo>> properties = new HashMap<>();
2386 List<UploadPropInfo> uploadPropInfoList = new ArrayList<>();
2387 UploadPropInfo uploadPropInfo = new UploadPropInfo();
2388 List<GetInputValueDataDefinition> get_input = new ArrayList<>();
2389 GetInputValueDataDefinition getInputValueDataDefinition = new GetInputValueDataDefinition();
2390 getInputValueDataDefinition.setPropName("getInputValueDataDefinitionName");
2391 get_input.add(getInputValueDataDefinition);
2392 uploadPropInfo.setName("propertiesName");
2393 uploadPropInfo.setValue("value");
2394 uploadPropInfo.setGet_input(get_input);
2395 uploadPropInfoList.add(uploadPropInfo);
2396 properties.put("uploadComponentInstanceInfo", uploadPropInfoList);
2400 protected List<PropertyDefinition> getProperties() {
2401 List<PropertyDefinition> properties = new ArrayList<>();
2402 PropertyDefinition propertyDefinition = new PropertyDefinition();
2403 propertyDefinition.setName("propertiesName");
2404 properties.add(propertyDefinition);
2408 protected Map<String, List<UploadReqInfo>> gerRequirements() {
2409 Map<String, List<UploadReqInfo>> uploadReqInfoMap = new HashMap<>();
2410 String requirementName = "tosca.capabilities.Node";
2411 List<UploadReqInfo> uploadReqInfoList = new ArrayList<>();
2412 UploadReqInfo uploadReqInfo = new UploadReqInfo();
2413 uploadReqInfo.setCapabilityName("tosca.capabilities.Node");
2414 uploadReqInfoMap.put(requirementName, uploadReqInfoList);
2415 return uploadReqInfoMap;
2418 protected ComponentParametersView createComponentParametersView() {
2419 ComponentParametersView parametersView = new ComponentParametersView();
2420 parametersView.disableAll();
2421 parametersView.setIgnoreComponentInstances(false);
2422 parametersView.setIgnoreComponentInstancesProperties(false);
2423 parametersView.setIgnoreCapabilities(false);
2424 parametersView.setIgnoreRequirements(false);
2425 parametersView.setIgnoreGroups(false);
2426 return parametersView;
2429 protected Map<String, byte[]> crateCsarFromPayload() {
2430 String payloadName = "valid_vf.csar";
2431 String rootPath = System.getProperty("user.dir");
2435 Map<String, byte[]> returnValue = null;
2437 path = Paths.get(rootPath + "/src/test/resources/valid_vf.csar");
2438 data = Files.readAllBytes(path);
2439 payloadData = Base64.encodeBase64String(data);
2440 UploadResourceInfo resourceInfo = new UploadResourceInfo();
2441 resourceInfo.setPayloadName(payloadName);
2442 resourceInfo.setPayloadData(payloadData);
2443 Method privateMethod = null;
2444 privateMethod = AbstractValidationsServlet.class.getDeclaredMethod("getCsarFromPayload", UploadResourceInfo.class);
2445 privateMethod.setAccessible(true);
2446 returnValue = (Map<String, byte[]>) privateMethod.invoke(servlet, resourceInfo);
2447 } catch (IOException | NoSuchMethodException | SecurityException | IllegalAccessException | IllegalArgumentException |
2448 InvocationTargetException e) {
2449 e.printStackTrace();
2454 protected List<ComponentInstance> creatComponentInstances() {
2455 List<ComponentInstance> componentInstances = new ArrayList<>();
2456 ComponentInstance componentInstance = new ComponentInstance();
2457 Map<String, List<CapabilityDefinition>> capabilities = new HashMap<>();
2458 List<CapabilityDefinition> capabilityDefinitionList = new ArrayList<>();
2459 CapabilityDefinition capabilityDefinition = new CapabilityDefinition();
2460 capabilityDefinition.setName("mme_ipu_vdu.feature");
2461 capabilityDefinitionList.add(capabilityDefinition);
2462 capabilities.put("tosca.capabilities.Node", capabilityDefinitionList);
2464 Map<String, List<RequirementDefinition>> requirements = new HashMap<>();
2465 List<RequirementDefinition> requirementDefinitionList = new ArrayList<>();
2466 RequirementDefinition requirementDefinition = new RequirementDefinition();
2467 requirementDefinition.setName("zxjtestimportserviceab0.mme_ipu_vdu.dependency.test");
2468 requirementDefinitionList.add(requirementDefinition);
2469 requirements.put("tosca.capabilities.Node", requirementDefinitionList);
2470 componentInstance.setRequirements(requirements);
2471 componentInstance.setCapabilities(capabilities);
2472 componentInstance.setUniqueId("uniqueId");
2473 componentInstance.setComponentUid("componentUid");
2474 componentInstance.setName("zxjTestImportServiceAb");
2475 componentInstance.setNormalizedName("zxjTestImportServiceAb");
2476 componentInstance.setProperties(getProperties());
2477 componentInstances.add(componentInstance);
2478 return componentInstances;
2481 private CreateServiceFromYamlParameter getCsfyp() {
2482 CreateServiceFromYamlParameter csfyp = new CreateServiceFromYamlParameter();
2483 List<ArtifactDefinition> createdArtifacts = new ArrayList<>();
2484 Map<String, NodeTypeInfo> nodeTypesInfo = getNodeTypesInfo();
2486 csfyp.setNodeName("org.openecomp.resource.derivedFrom.zxjTestImportServiceAb.test");
2487 csfyp.setTopologyTemplateYaml(getMainTemplateContent("service_import_template.yml"));
2488 csfyp.setCreatedArtifacts(createdArtifacts);
2489 csfyp.setInTransaction(true);
2490 csfyp.setShouldLock(true);
2491 csfyp.setCsarInfo(getCsarInfo());
2492 csfyp.setParsedToscaYamlInfo(getParsedToscaYamlInfo());
2493 csfyp.setNodeTypesInfo(nodeTypesInfo);
2494 csfyp.setYamlName("group.yml");
2498 private ParsedToscaYamlInfo getParsedToscaYamlInfo() {
2499 ParsedToscaYamlInfo parsedToscaYamlInfo = new ParsedToscaYamlInfo();
2500 Map<String, InputDefinition> inputs = new HashMap<>();
2501 Map<String, UploadComponentInstanceInfo> instances = new HashMap<>();
2502 UploadComponentInstanceInfo uploadComponentInstanceInfo = getUploadComponentInstanceInfo();
2503 instances.put("instances", uploadComponentInstanceInfo);
2504 Map<String, GroupDefinition> groups = new HashMap<>();
2505 Map<String, PolicyDefinition> policies = new HashMap<>();
2506 parsedToscaYamlInfo.setGroups(groups);
2507 parsedToscaYamlInfo.setInputs(inputs);
2508 parsedToscaYamlInfo.setInstances(instances);
2509 parsedToscaYamlInfo.setPolicies(policies);
2510 return parsedToscaYamlInfo;
2513 String getMainTemplateContent(String fileName) {
2514 String mainTemplateContent = null;
2516 mainTemplateContent = loadFileNameToJsonString(fileName);
2517 } catch (IOException e) {
2518 e.printStackTrace();
2520 return mainTemplateContent;
2523 protected ServiceCsarInfo getCsarInfo() {
2524 String csarUuid = "0010";
2525 User user = new User("jh0003");
2528 File csarFile = new File(
2529 ServiceImportBusinessLogicTest.class.getClassLoader().getResource("csars/service-Ser09080002-csar.csar").toURI());
2530 Map<String, byte[]> csar = ZipUtils.readZip(csarFile, false);
2532 String vfReousrceName = "resouceName";
2533 String mainTemplateName = "Definitions/service_import_template.yml";
2535 Optional<String> keyOp = csar.keySet().stream().filter(k -> k.endsWith("service-Ser09080002-template.yml")).findAny();
2536 byte[] mainTemplateService = keyOp.map(csar::get).orElse(null);
2537 assertNotNull(mainTemplateService);
2538 final String mainTemplateContent = new String(mainTemplateService);
2540 return new ServiceCsarInfo(user, csarUuid, csar, vfReousrceName, null, mainTemplateName, mainTemplateContent, false,
2541 mock(ModelOperation.class));
2542 } catch (URISyntaxException | ZipException e) {
2548 private ImmutablePair<String, byte[]> getNodeType() {
2550 File resource = new File(
2551 ServiceImportBusinessLogicTest.class.getClassLoader().getResource("node-types/resource-Extcp-template.yml").toURI());
2552 byte[] extcpResource = Files.readAllBytes(resource.toPath());
2554 return new ImmutablePair<>("org.openecomp.resource.cp.extCP", extcpResource);
2555 } catch (URISyntaxException | IOException e) {
2561 protected CsarUtils.NonMetaArtifactInfo getNonMetaArtifactInfo() {
2562 String artifactName = "artifactName", path = "/src/test/resources/valid_vf.csar", artifactType = "AAI_SERVICE_MODEL";
2563 ArtifactGroupTypeEnum artifactGroupType = ArtifactGroupTypeEnum.TOSCA;
2564 String rootPath = System.getProperty("user.dir");
2566 byte[] data = new byte[0];
2567 path2 = Paths.get(rootPath + "/src/test/resources/valid_vf.csar");
2569 data = Files.readAllBytes(path2);
2570 } catch (IOException e) {
2571 e.printStackTrace();
2573 String artifactUniqueId = "artifactUniqueId";
2574 boolean isFromCsar = true;
2575 CsarUtils.NonMetaArtifactInfo nonMetaArtifactInfo = new CsarUtils.NonMetaArtifactInfo(artifactName,
2576 path, artifactType, artifactGroupType, data, artifactUniqueId, isFromCsar);
2577 return nonMetaArtifactInfo;
2581 protected void assertComponentException(ComponentException e, ActionStatus expectedStatus, String... variables) {
2582 ResponseFormat actualResponse = e.getResponseFormat() != null ?
2583 e.getResponseFormat() : componentsUtils.getResponseFormat(e.getActionStatus(), e.getParams());
2584 assertParseResponse(actualResponse, expectedStatus, variables);
2587 private void assertParseResponse(ResponseFormat actualResponse, ActionStatus expectedStatus, String... variables) {
2588 ResponseFormat expectedResponse = responseManager.getResponseFormat(expectedStatus, variables);
2589 assertThat(expectedResponse.getStatus()).isEqualTo(actualResponse.getStatus());
2590 assertThat(expectedResponse.getFormattedMessage()).isEqualTo(actualResponse.getFormattedMessage());