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.junit.jupiter.api.Assertions.assertEquals;
20 import static org.mockito.ArgumentMatchers.any;
21 import static org.mockito.ArgumentMatchers.anyBoolean;
22 import static org.mockito.ArgumentMatchers.anyString;
23 import static org.mockito.ArgumentMatchers.eq;
24 import static org.mockito.Mockito.mock;
25 import static org.mockito.Mockito.when;
27 import fj.data.Either;
28 import java.io.IOException;
29 import java.nio.file.Files;
30 import java.nio.file.Path;
31 import java.nio.file.Paths;
32 import java.util.ArrayList;
33 import java.util.Arrays;
34 import java.util.Collections;
35 import java.util.HashMap;
36 import java.util.List;
38 import javax.servlet.ServletContext;
39 import org.junit.jupiter.api.BeforeEach;
40 import org.mockito.Mock;
41 import org.mockito.Mockito;
42 import org.openecomp.sdc.ElementOperationMock;
43 import org.openecomp.sdc.be.components.csar.CsarArtifactsAndGroupsBusinessLogic;
44 import org.openecomp.sdc.be.components.csar.CsarBusinessLogic;
45 import org.openecomp.sdc.be.components.csar.CsarInfo;
46 import org.openecomp.sdc.be.components.csar.OnboardedCsarInfo;
47 import org.openecomp.sdc.be.components.impl.exceptions.ComponentException;
48 import org.openecomp.sdc.be.components.impl.utils.CreateServiceFromYamlParameter;
49 import org.openecomp.sdc.be.components.validation.UserValidations;
50 import org.openecomp.sdc.be.components.validation.component.ComponentContactIdValidator;
51 import org.openecomp.sdc.be.components.validation.component.ComponentDescriptionValidator;
52 import org.openecomp.sdc.be.components.validation.component.ComponentFieldValidator;
53 import org.openecomp.sdc.be.components.validation.component.ComponentIconValidator;
54 import org.openecomp.sdc.be.components.validation.component.ComponentNameValidator;
55 import org.openecomp.sdc.be.components.validation.component.ComponentProjectCodeValidator;
56 import org.openecomp.sdc.be.components.validation.component.ComponentTagsValidator;
57 import org.openecomp.sdc.be.components.validation.component.ComponentValidator;
58 import org.openecomp.sdc.be.components.validation.service.ServiceCategoryValidator;
59 import org.openecomp.sdc.be.components.validation.service.ServiceEnvironmentContextValidator;
60 import org.openecomp.sdc.be.components.validation.service.ServiceFieldValidator;
61 import org.openecomp.sdc.be.components.validation.service.ServiceFunctionValidator;
62 import org.openecomp.sdc.be.components.validation.service.ServiceInstantiationTypeValidator;
63 import org.openecomp.sdc.be.components.validation.service.ServiceNamingPolicyValidator;
64 import org.openecomp.sdc.be.components.validation.service.ServiceRoleValidator;
65 import org.openecomp.sdc.be.components.validation.service.ServiceTypeValidator;
66 import org.openecomp.sdc.be.components.validation.service.ServiceValidator;
67 import org.openecomp.sdc.be.dao.api.ActionStatus;
68 import org.openecomp.sdc.be.dao.janusgraph.JanusGraphDao;
69 import org.openecomp.sdc.be.datatypes.elements.ArtifactDataDefinition;
70 import org.openecomp.sdc.be.datatypes.elements.OperationDataDefinition;
71 import org.openecomp.sdc.be.datatypes.enums.ComponentTypeEnum;
72 import org.openecomp.sdc.be.datatypes.enums.NodeTypeEnum;
73 import org.openecomp.sdc.be.externalapi.servlet.representation.AbstractResourceInfo;
74 import org.openecomp.sdc.be.externalapi.servlet.representation.AbstractTemplateInfo;
75 import org.openecomp.sdc.be.externalapi.servlet.representation.ArtifactMetadata;
76 import org.openecomp.sdc.be.externalapi.servlet.representation.CopyServiceInfo;
77 import org.openecomp.sdc.be.externalapi.servlet.representation.ReplaceVNFInfo;
78 import org.openecomp.sdc.be.externalapi.servlet.representation.ResourceInstanceMetadata;
79 import org.openecomp.sdc.be.facade.operations.CatalogOperation;
80 import org.openecomp.sdc.be.impl.ComponentsUtils;
81 import org.openecomp.sdc.be.impl.ServletUtils;
82 import org.openecomp.sdc.be.impl.WebAppContextWrapper;
83 import org.openecomp.sdc.be.model.ArtifactDefinition;
84 import org.openecomp.sdc.be.model.CapabilityDefinition;
85 import org.openecomp.sdc.be.model.Component;
86 import org.openecomp.sdc.be.model.ComponentInstance;
87 import org.openecomp.sdc.be.model.GroupDefinition;
88 import org.openecomp.sdc.be.model.InputDefinition;
89 import org.openecomp.sdc.be.model.LifecycleStateEnum;
90 import org.openecomp.sdc.be.model.NodeTypeInfo;
91 import org.openecomp.sdc.be.model.ParsedToscaYamlInfo;
92 import org.openecomp.sdc.be.model.PropertyDefinition;
93 import org.openecomp.sdc.be.model.RequirementCapabilityRelDef;
94 import org.openecomp.sdc.be.model.RequirementDefinition;
95 import org.openecomp.sdc.be.model.Resource;
96 import org.openecomp.sdc.be.model.Service;
97 import org.openecomp.sdc.be.model.UploadCapInfo;
98 import org.openecomp.sdc.be.model.UploadComponentInstanceInfo;
99 import org.openecomp.sdc.be.model.UploadInterfaceInfo;
100 import org.openecomp.sdc.be.model.UploadNodeFilterInfo;
101 import org.openecomp.sdc.be.model.UploadReqInfo;
102 import org.openecomp.sdc.be.model.UploadServiceInfo;
103 import org.openecomp.sdc.be.model.User;
104 import org.openecomp.sdc.be.model.category.CategoryDefinition;
105 import org.openecomp.sdc.be.model.jsonjanusgraph.operations.ToscaOperationFacade;
106 import org.openecomp.sdc.be.model.operations.api.IElementOperation;
107 import org.openecomp.sdc.be.model.operations.api.StorageOperationStatus;
108 import org.openecomp.sdc.be.model.operations.impl.GraphLockOperation;
109 import org.openecomp.sdc.be.ui.model.OperationUi;
110 import org.openecomp.sdc.be.user.Role;
111 import org.openecomp.sdc.be.user.UserBusinessLogic;
112 import org.openecomp.sdc.common.api.ArtifactGroupTypeEnum;
113 import org.openecomp.sdc.common.api.Constants;
114 import org.openecomp.sdc.common.api.UploadArtifactInfo;
115 import org.openecomp.sdc.exception.ResponseFormat;
116 import org.springframework.web.context.WebApplicationContext;
118 public class ServiceImportBussinessLogicBaseTestSetup extends BaseBusinessLogicMock {
120 protected static final String SERVICE_CATEGORY = "Mobility";
121 protected static final String INSTANTIATION_TYPE = "A-la-carte";
122 protected static final String COMPONENT_ID = "myUniqueId";
123 protected static final String GENERIC_SERVICE_NAME = "org.openecomp.resource.abstract.nodes.service";
124 protected static final String RESOURCE_TOSCA_NAME = "org.openecomp.resource.cp.extCP";
125 private static final String RESOURCE_NAME = "My-Resource_Name with space";
126 private static final String RESOURCE_CATEGORY1 = "Network Layer 2-3";
127 private static final String RESOURCE_SUBCATEGORY = "Router";
128 protected final ServletContext servletContext = mock(ServletContext.class);
129 protected final ComponentValidator componentValidator = mock(ComponentValidator.class);
130 final ComponentInstanceBusinessLogic componentInstanceBusinessLogic = mock(ComponentInstanceBusinessLogic.class);
131 final CsarBusinessLogic csarBusinessLogic = mock(CsarBusinessLogic.class);
132 final CompositionBusinessLogic compositionBusinessLogic = mock(CompositionBusinessLogic.class);
133 private final ArtifactDefinition artifactDefinition = mock(ArtifactDefinition.class);
134 private final ServletUtils servletUtils = mock(ServletUtils.class);
135 protected UserBusinessLogic userBusinessLogic = mock(UserBusinessLogic.class);
136 protected WebAppContextWrapper webAppContextWrapper = mock(WebAppContextWrapper.class);
137 protected WebApplicationContext webAppContext = mock(WebApplicationContext.class);
138 protected ResponseFormatManager responseManager = null;
139 protected ComponentsUtils componentsUtils = mock(ComponentsUtils.class);
140 protected ArtifactsBusinessLogic artifactsBusinessLogic = mock(ArtifactsBusinessLogic.class);
141 protected GraphLockOperation graphLockOperation = mock(GraphLockOperation.class);
142 protected JanusGraphDao mockJanusGraphDao = mock(JanusGraphDao.class);
143 protected ToscaOperationFacade toscaOperationFacade = mock(ToscaOperationFacade.class);
144 protected CsarArtifactsAndGroupsBusinessLogic csarArtifactsAndGroupsBusinessLogic = mock(CsarArtifactsAndGroupsBusinessLogic.class);
145 protected UserValidations userValidations = mock(UserValidations.class);
146 protected CatalogOperation catalogOperation = mock(CatalogOperation.class);
147 protected ServiceImportParseLogic serviceImportParseLogic = mock(ServiceImportParseLogic.class);
148 protected ServiceTypeValidator serviceTypeValidator = new ServiceTypeValidator();
149 protected ServiceRoleValidator serviceRoleValidator = new ServiceRoleValidator(componentsUtils);
150 protected ServiceFunctionValidator serviceFunctionValidator = new ServiceFunctionValidator(componentsUtils);
151 protected ServiceInstantiationTypeValidator serviceInstantiationTypeValidator = new ServiceInstantiationTypeValidator(componentsUtils);
152 protected ComponentDescriptionValidator componentDescriptionValidator = new ComponentDescriptionValidator(componentsUtils);
153 protected ComponentProjectCodeValidator componentProjectCodeValidator = new ComponentProjectCodeValidator(componentsUtils);
154 protected ComponentIconValidator componentIconValidator = new ComponentIconValidator(componentsUtils);
155 protected ComponentContactIdValidator componentContactIdValidator = new ComponentContactIdValidator(componentsUtils);
156 protected ComponentTagsValidator componentTagsValidator = new ComponentTagsValidator(componentsUtils);
157 protected ComponentNameValidator componentNameValidator = new ComponentNameValidator(componentsUtils, toscaOperationFacade);
158 protected User user = null;
159 protected Resource genericService = null;
161 protected ServiceBusinessLogic serviceBusinessLogic;
162 IElementOperation mockElementDao = new ElementOperationMock();
163 protected ServiceCategoryValidator serviceCategoryValidator = new ServiceCategoryValidator(componentsUtils, mockElementDao);
164 protected ServiceValidator serviceValidator = createServiceValidator();
166 public ServiceImportBussinessLogicBaseTestSetup() {
170 protected ServiceValidator createServiceValidator() {
171 List<ComponentFieldValidator> componentFieldValidators = Arrays.asList(componentContactIdValidator,
172 componentDescriptionValidator,
173 componentIconValidator, componentNameValidator,
174 new ComponentProjectCodeValidator(componentsUtils),
175 componentTagsValidator);
177 List<ServiceFieldValidator> serviceFieldValidators = Arrays.asList(serviceCategoryValidator, new ServiceEnvironmentContextValidator(),
178 serviceInstantiationTypeValidator, new ServiceNamingPolicyValidator(componentsUtils),
179 serviceRoleValidator, serviceTypeValidator);
180 return new ServiceValidator(componentsUtils, componentFieldValidators, serviceFieldValidators);
184 public void setup() throws IOException {
187 IElementOperation mockElementDao = new ElementOperationMock();
189 // User data and management
191 user.setUserId("jh0003");
192 user.setFirstName("Jimmi");
193 user.setLastName("Hendrix");
194 user.setRole(Role.ADMIN.name());
196 when(userBusinessLogic.getUser("jh0003", false)).thenReturn(user);
197 when(userValidations.validateUserExists("jh0003")).thenReturn(user);
198 when(userValidations.validateUserNotEmpty(eq(user), anyString())).thenReturn(user);
199 // Servlet Context attributes
200 when(servletContext.getAttribute(Constants.CONFIGURATION_MANAGER_ATTR)).thenReturn(configurationManager);
201 when(servletContext.getAttribute(Constants.WEB_APPLICATION_CONTEXT_WRAPPER_ATTR)).thenReturn(webAppContextWrapper);
202 when(webAppContextWrapper.getWebAppContext(servletContext)).thenReturn(webAppContext);
203 when(webAppContext.getBean(IElementOperation.class)).thenReturn(mockElementDao);
204 when(graphLockOperation.lockComponent(Mockito.anyString(), Mockito.eq(NodeTypeEnum.Service))).thenReturn(StorageOperationStatus.OK);
205 when(graphLockOperation.lockComponentByName(Mockito.anyString(), Mockito.eq(NodeTypeEnum.Service))).thenReturn(StorageOperationStatus.OK);
206 when(catalogOperation.updateCatalog(Mockito.any(), Mockito.any())).thenReturn(ActionStatus.OK);
207 // artifact bussinesslogic
208 ArtifactDefinition artifactDef = new ArtifactDefinition();
209 when(artifactsBusinessLogic.createArtifactPlaceHolderInfo(Mockito.any(), Mockito.anyString(), Mockito.anyMap(), Mockito.any(User.class),
210 Mockito.any(ArtifactGroupTypeEnum.class))).thenReturn(artifactDef);
213 Service serviceResponse = createServiceObject(true);
214 Either<Component, StorageOperationStatus> eitherCreate = Either.left(serviceResponse);
215 when(toscaOperationFacade.createToscaComponent(Mockito.any(Component.class))).thenReturn(eitherCreate);
216 when(toscaOperationFacade.getToscaElement(Mockito.anyString())).thenReturn(eitherCreate);
217 Either<Boolean, StorageOperationStatus> eitherCount = Either.left(false);
218 when(toscaOperationFacade.validateComponentNameExists("Service", null, ComponentTypeEnum.SERVICE)).thenReturn(eitherCount);
219 Either<Boolean, StorageOperationStatus> eitherCountExist = Either.left(true);
220 when(toscaOperationFacade.validateComponentNameExists("alreadyExist", null, ComponentTypeEnum.SERVICE)).thenReturn(eitherCountExist);
221 when(userValidations.validateUserExists(user)).thenReturn(user);
224 Resource resourceRsponse = createParseResourceObject(true);
225 Either<Component, StorageOperationStatus> eitherResourceCreate = Either.left(resourceRsponse);
226 when(toscaOperationFacade.createToscaComponent(Mockito.any(Component.class))).thenReturn(eitherResourceCreate);
227 Either<Component, StorageOperationStatus> eitherResourceRes = Either.left(resourceRsponse);
228 when(toscaOperationFacade.getToscaFullElement(Mockito.anyString())).thenReturn(eitherResourceRes);
230 Either<Boolean, StorageOperationStatus> eitherResourceCount = Either.left(false);
231 when(toscaOperationFacade.validateComponentNameExists("Resource", null, ComponentTypeEnum.RESOURCE)).thenReturn(eitherResourceCount);
232 Either<Boolean, StorageOperationStatus> eitherResourceCountExist = Either.left(true);
233 when(toscaOperationFacade.validateComponentNameExists("alreadyExist", null, ComponentTypeEnum.RESOURCE)).thenReturn(eitherResourceCountExist);
235 genericService = setupGenericServiceMock();
236 Either<Resource, StorageOperationStatus> findLatestGeneric = Either.left(genericService);
237 when(toscaOperationFacade.getLatestCertifiedNodeTypeByToscaResourceName(GENERIC_SERVICE_NAME)).thenReturn(findLatestGeneric);
239 when(serviceImportParseLogic.isArtifactDeletionRequired(anyString(), any(), anyBoolean())).thenReturn(true);
243 responseManager = ResponseFormatManager.getInstance();
246 protected Service createServiceObject(boolean afterCreate) {
247 Service service = new Service();
248 service.setUniqueId("sid");
249 service.setName("Service");
250 service.setSystemName("SystemName");
251 CategoryDefinition category = new CategoryDefinition();
252 category.setName(SERVICE_CATEGORY);
253 category.setIcons(Collections.singletonList("defaulticon"));
254 List<CategoryDefinition> categories = new ArrayList<>();
255 categories.add(category);
256 service.setCategories(categories);
257 service.setInstantiationType(INSTANTIATION_TYPE);
259 service.setDescription("description");
260 List<String> tgs = new ArrayList<>();
261 tgs.add(service.getName());
262 service.setTags(tgs);
263 service.setIcon("defaulticon");
264 service.setContactId("aa1234");
265 service.setProjectCode("12345");
266 service.setEcompGeneratedNaming(true);
268 List<InputDefinition> inputs = new ArrayList<>();
269 InputDefinition input_1 = new InputDefinition();
270 input_1.setName("propertiesName");
271 input_1.setUniqueId("uniqueId");
272 input_1.setType("inputDefinitionType");
274 InputDefinition input_2 = new InputDefinition();
275 input_2.setName("zxjTestImportServiceAb_propertiesName");
276 input_2.setUniqueId("uniqueId");
277 input_2.setType("inputDefinitionType");
279 service.setInputs(inputs);
282 service.setVersion("0.1");
283 service.setUniqueId(service.getName() + ":" + service.getVersion());
284 service.setCreatorUserId(user.getUserId());
285 service.setCreatorFullName(user.getFirstName() + " " + user.getLastName());
290 protected Resource createResourceObject(boolean afterCreate) {
291 Resource resource = new Resource();
292 resource.setUniqueId("sid");
293 resource.setName("Service");
294 CategoryDefinition category = new CategoryDefinition();
295 category.setName(SERVICE_CATEGORY);
296 category.setIcons(Collections.singletonList("defaulticon"));
297 List<CategoryDefinition> categories = new ArrayList<>();
298 categories.add(category);
299 resource.setCategories(categories);
301 resource.setDescription("description");
302 List<String> tgs = new ArrayList<>();
303 tgs.add(resource.getName());
304 resource.setTags(tgs);
305 resource.setIcon("defaulticon");
306 resource.setContactId("aa1234");
307 resource.setProjectCode("12345");
310 resource.setVersion("0.1");
311 resource.setUniqueId(resource.getName() + ":" + resource.getVersion());
312 resource.setCreatorUserId(user.getUserId());
313 resource.setCreatorFullName(user.getFirstName() + " " + user.getLastName());
318 protected Resource createParseResourceObject(boolean afterCreate) {
319 Resource resource = new Resource();
320 resource.setUniqueId(COMPONENT_ID);
321 resource.setName(RESOURCE_NAME);
322 resource.setToscaResourceName(RESOURCE_TOSCA_NAME);
323 resource.addCategory(RESOURCE_CATEGORY1, RESOURCE_SUBCATEGORY);
324 resource.setDescription("My short description");
325 List<String> tgs = new ArrayList<>();
327 tgs.add(resource.getName());
328 resource.setTags(tgs);
329 List<String> template = new ArrayList<>();
330 template.add("tosca.nodes.Root");
331 resource.setDerivedFrom(template);
332 resource.setVendorName("Motorola");
333 resource.setVendorRelease("1.0.0");
334 resource.setContactId("ya5467");
335 resource.setIcon("defaulticon");
336 Map<String, List<RequirementDefinition>> requirements = new HashMap<>();
337 List<RequirementDefinition> requirementDefinitionList = new ArrayList<>();
338 requirements.put("test", requirementDefinitionList);
339 resource.setRequirements(requirements);
342 resource.setName(resource.getName());
343 resource.setVersion("0.1");
344 resource.setUniqueId(resource.getName()
345 .toLowerCase() + ":" + resource.getVersion());
346 resource.setCreatorUserId(user.getUserId());
347 resource.setCreatorFullName(user.getFirstName() + " " + user.getLastName());
348 resource.setLifecycleState(LifecycleStateEnum.NOT_CERTIFIED_CHECKOUT);
353 protected Resource setupGenericServiceMock() {
354 Resource genericService = new Resource();
355 genericService.setVersion("1.0");
356 genericService.setToscaResourceName(GENERIC_SERVICE_NAME);
357 return genericService;
361 protected Map<String, GroupDefinition> getGroups() {
362 Map<String, GroupDefinition> groups = new HashMap<>();
363 GroupDefinition groupDefinition = new GroupDefinition();
364 groupDefinition.setName("groupDefinitionName");
365 groups.put("groupsMap", groupDefinition);
369 protected UploadComponentInstanceInfo getUploadComponentInstanceInfo() {
370 UploadComponentInstanceInfo uploadComponentInstanceInfo = new UploadComponentInstanceInfo();
371 uploadComponentInstanceInfo.setType(RESOURCE_TOSCA_NAME);
372 uploadComponentInstanceInfo.setDirectives(new ArrayList<>());
373 UploadNodeFilterInfo uploadNodeFilterInfo = new UploadNodeFilterInfo();
374 Map<String, List<UploadReqInfo>> requirements = new HashMap<>();
375 List<UploadReqInfo> uploadReqInfoList = new ArrayList<>();
376 UploadReqInfo uploadReqInfo = new UploadReqInfo();
377 uploadReqInfo.setName("uploadReqInfo");
378 uploadReqInfo.setNode("zxjTestImportServiceAb");
379 uploadReqInfo.setCapabilityName("tosca.capabilities.Node");
380 uploadReqInfo.setRelationshipTemplate("ExtCP 0.dependency.1");
381 uploadReqInfoList.add(uploadReqInfo);
382 requirements.put("requirements", uploadReqInfoList);
383 uploadNodeFilterInfo.setName("mme_ipu_vdu.virtualbinding");
384 uploadComponentInstanceInfo.setCapabilities(getCapabilities());
385 uploadComponentInstanceInfo.setRequirements(requirements);
386 uploadComponentInstanceInfo.setName("zxjTestImportServiceAb");
387 uploadComponentInstanceInfo.setOperations(getOperations());
388 return uploadComponentInstanceInfo;
391 protected Map<String, List<OperationUi>> getOperations() {
392 String relationshipTemplate = "ExtCP 0.dependency.1";
393 OperationUi operationUi = new OperationUi();
394 operationUi.setOperationType("change_external_connectivity_start");
395 operationUi.setInterfaceType("tosca.interfaces.nfv.Vnflcm");
396 operationUi.setImplementation("impl");
397 return Map.of(relationshipTemplate, List.of(operationUi));
400 protected Map<String, List<UploadCapInfo>> getCapabilities() {
401 List<UploadCapInfo> uploadCapInfoList = new ArrayList<>();
402 UploadCapInfo uploadCapInfo = new UploadCapInfo();
403 uploadCapInfo.setNode("tosca.nodes.Root");
404 uploadCapInfo.setName("mme_ipu_vdu.dependency");
405 uploadCapInfoList.add(uploadCapInfo);
406 Map<String, List<UploadCapInfo>> uploadCapInfoMap = new HashMap<>();
407 uploadCapInfoMap.put("tosca.capabilities.Node", uploadCapInfoList);
408 return uploadCapInfoMap;
411 protected Map<String, UploadInterfaceInfo> getInterfaces() {
412 UploadInterfaceInfo uploadInterfaceInfo = new UploadInterfaceInfo();
413 uploadInterfaceInfo.setName("TestInterface");
414 uploadInterfaceInfo.setDescription("Description used for testing interfaces");
415 OperationDataDefinition operation = new OperationDataDefinition();
416 operation.setDescription("Description used for testing operations");
417 ArtifactDataDefinition implementation = new ArtifactDataDefinition();
418 implementation.setArtifactName("desc");
419 operation.setImplementation(implementation);
420 Map<String, OperationDataDefinition> operations = new HashMap<>();
421 operations.put("TestInterface", operation);
422 uploadInterfaceInfo.setOperations(operations);
423 Map<String, UploadInterfaceInfo> uploadInterfaceInfoMap = new HashMap<>();
424 uploadInterfaceInfoMap.put("tosca.capabilities.Node", uploadInterfaceInfo);
425 return uploadInterfaceInfoMap;
428 protected List<ComponentInstance> creatComponentInstances() {
429 List<ComponentInstance> componentInstances = new ArrayList<>();
430 ComponentInstance componentInstance = new ComponentInstance();
431 Map<String, List<CapabilityDefinition>> capabilities = new HashMap<>();
432 List<CapabilityDefinition> capabilityDefinitionList = new ArrayList<>();
433 CapabilityDefinition capabilityDefinition = new CapabilityDefinition();
434 capabilityDefinition.setName("mme_ipu_vdu.feature");
435 capabilityDefinitionList.add(capabilityDefinition);
436 capabilities.put("tosca.capabilities.Node", capabilityDefinitionList);
438 Map<String, List<RequirementDefinition>> requirements = new HashMap<>();
439 List<RequirementDefinition> requirementDefinitionList = new ArrayList<>();
440 RequirementDefinition requirementDefinition = new RequirementDefinition();
441 requirementDefinition.setName("zxjtestimportserviceab0.mme_ipu_vdu.dependency.test");
442 requirementDefinitionList.add(requirementDefinition);
443 requirements.put("tosca.capabilities.Node", requirementDefinitionList);
444 componentInstance.setRequirements(requirements);
445 componentInstance.setCapabilities(capabilities);
446 componentInstance.setUniqueId("uniqueId");
447 componentInstance.setComponentUid("componentUid");
448 componentInstance.setName("zxjTestImportServiceAb");
449 componentInstance.setProperties(Collections.singletonList(new PropertyDefinition()));
450 componentInstances.add(componentInstance);
451 return componentInstances;
454 protected UploadComponentInstanceInfo createUploadComponentInstanceInfo() {
455 UploadComponentInstanceInfo uploadComponentInstanceInfo = new UploadComponentInstanceInfo();
456 uploadComponentInstanceInfo.setName("UploadComponentInstanceInfo");
457 return uploadComponentInstanceInfo;
460 private void mockAbstract() throws IOException {
461 checkCreateAbstract();
466 private void checkCreateAbstract() {
467 AbstractResourceInfo abstractResourceInfo = new AbstractResourceInfo();
468 List<RequirementCapabilityRelDef> componentInstancesRelations = new ArrayList<>();
469 abstractResourceInfo.setComponentInstancesRelations(componentInstancesRelations);
470 abstractResourceInfo.setAbstractResourceUniqueId("abstractResourceUniqueId");
471 abstractResourceInfo.setAbstractResourceName("abstractResourceName");
472 abstractResourceInfo.setAbstractResourceUUid("abstractResourceUUid");
474 AbstractResourceInfo getAbstractResourceInfo = new AbstractResourceInfo();
475 getAbstractResourceInfo.getAbstractResourceName();
476 getAbstractResourceInfo.getAbstractResourceUniqueId();
477 getAbstractResourceInfo.getAbstractResourceUUid();
478 getAbstractResourceInfo.getComponentInstancesRelations();
480 AbstractTemplateInfo createAbstractTemplateInfo = new AbstractTemplateInfo();
481 List<AbstractResourceInfo> abstractResourceInfoList = new ArrayList<>();
482 abstractResourceInfoList.add(abstractResourceInfo);
483 createAbstractTemplateInfo.setAbstractResourceInfoList(abstractResourceInfoList);
484 createAbstractTemplateInfo.setServiceUniqueId("serviceUniqueId");
485 createAbstractTemplateInfo.setIsAbstractTemplate(true);
486 createAbstractTemplateInfo.setServiceUUid("serviceUUid");
488 AbstractTemplateInfo getAbstractTemplateInfo = new AbstractTemplateInfo();
489 getAbstractTemplateInfo.getAbstractResourceInfoList();
490 getAbstractTemplateInfo.getIsAbstractTemplate();
491 getAbstractTemplateInfo.getServiceUniqueId();
492 getAbstractTemplateInfo.getServiceUUid();
494 CopyServiceInfo copyServiceInfo = new CopyServiceInfo();
495 copyServiceInfo.setNewServiceName("newServiceName");
496 copyServiceInfo.setNewServiceUUid("serviceUUid");
497 copyServiceInfo.setOldServiceUUid("oldServiceUUid");
499 CopyServiceInfo getCopyServiceInfo = new CopyServiceInfo();
500 getCopyServiceInfo.getNewServiceName();
501 getCopyServiceInfo.getNewServiceUUid();
502 getCopyServiceInfo.getOldServiceUUid();
504 ReplaceVNFInfo replaceVNFInfo = new ReplaceVNFInfo();
505 ComponentInstance realVNFComponentInstance = new ComponentInstance();
506 replaceVNFInfo.setAbstractResourceUniqueId("abstractResourceUniqueId");
507 replaceVNFInfo.setRealVNFComponentInstance(realVNFComponentInstance);
508 replaceVNFInfo.setServiceUniqueId("serviceUniqueId");
510 ReplaceVNFInfo getReplaceVNFInfo = new ReplaceVNFInfo();
511 getReplaceVNFInfo.getServiceUniqueId();
512 getReplaceVNFInfo.getAbstractResourceUniqueId();
513 getReplaceVNFInfo.getRealVNFComponentInstance();
516 private void checkCreateOther() {
517 ResourceInstanceMetadata resourceInstanceMetadata = new ResourceInstanceMetadata();
518 List<ArtifactMetadata> artifacts = new ArrayList<>();
519 resourceInstanceMetadata.setArtifacts(artifacts);
520 resourceInstanceMetadata.setResoucreType("resoucreType");
521 resourceInstanceMetadata.setResourceInstanceName("resourceInstanceName");
522 resourceInstanceMetadata.setResourceInvariantUUID("resourceInvariantUUID");
523 resourceInstanceMetadata.setResourceName("resourceName");
524 resourceInstanceMetadata.setResourceUUID("resourceUUID");
525 resourceInstanceMetadata.setResourceVersion("resourceVersion");
527 ResourceInstanceMetadata getResourceInstanceMetadata = new ResourceInstanceMetadata();
528 getResourceInstanceMetadata.getArtifacts();
529 getResourceInstanceMetadata.getResoucreType();
530 getResourceInstanceMetadata.getResourceInstanceName();
531 getResourceInstanceMetadata.getResourceInvariantUUID();
532 getResourceInstanceMetadata.getResourceName();
533 getResourceInstanceMetadata.getResourceUUID();
534 getResourceInstanceMetadata.getResourceVersion();
536 UploadServiceInfo uploadServiceInfo = new UploadServiceInfo();
537 List<String> tags = new ArrayList<>();
538 List<CategoryDefinition> categories = new ArrayList<>();
539 List<UploadArtifactInfo> artifactList = new ArrayList<>();
540 uploadServiceInfo.setProjectCode("projectCode");
541 uploadServiceInfo.setCategories(categories);
542 uploadServiceInfo.setServiceType("");
543 uploadServiceInfo.setServiceVendorModelNumber("serviceVendorModelNumber");
544 uploadServiceInfo.setVendorRelease("vendorRelease");
545 uploadServiceInfo.setVendorName("vendorName");
546 uploadServiceInfo.setServiceIconPath("serviceIconPath");
547 uploadServiceInfo.setName("uploadServiceInfo");
548 uploadServiceInfo.setContactId("contactId");
549 uploadServiceInfo.setIcon("icon");
550 uploadServiceInfo.setNamingPolicy("namingPolicy");
551 uploadServiceInfo.setEcompGeneratedNaming("ecompGeneratedNaming");
552 uploadServiceInfo.setServiceEcompNaming("serviceEcompNaming");
553 uploadServiceInfo.setServiceRole("serviceRole");
554 uploadServiceInfo.setSubcategory("subcategory");
555 uploadServiceInfo.setCategory("category");
556 uploadServiceInfo.setType("type");
557 uploadServiceInfo.setUUID("UUID");
558 uploadServiceInfo.setInvariantUUID("invariantUUID");
559 uploadServiceInfo.setResourceVendorRelease("resourceVendorRelease");
560 uploadServiceInfo.setResourceVendor("resourceVendor");
561 uploadServiceInfo.setDescription("description");
562 uploadServiceInfo.setTags(tags);
563 uploadServiceInfo.setArtifactList(artifactList);
564 uploadServiceInfo.setPayloadName("payloadName");
565 uploadServiceInfo.setPayloadData("payloadData");
568 protected void checkGetUploadServiceInfo() {
569 UploadServiceInfo uploadServiceInfo = new UploadServiceInfo();
570 List<String> tags = new ArrayList<>();
571 List<CategoryDefinition> categories = new ArrayList<>();
572 List<UploadArtifactInfo> artifactList = new ArrayList<>();
573 uploadServiceInfo.getProjectCode();
574 uploadServiceInfo.getCategories();
575 uploadServiceInfo.getServiceType();
576 uploadServiceInfo.getServiceVendorModelNumber();
577 uploadServiceInfo.getVendorRelease();
578 uploadServiceInfo.getVendorName();
579 uploadServiceInfo.getServiceIconPath();
580 uploadServiceInfo.getName();
581 uploadServiceInfo.getContactId();
582 uploadServiceInfo.getIcon();
583 uploadServiceInfo.getNamingPolicy();
584 uploadServiceInfo.getEcompGeneratedNaming();
585 uploadServiceInfo.getServiceEcompNaming();
586 uploadServiceInfo.getServiceRole();
587 uploadServiceInfo.getSubcategory();
588 uploadServiceInfo.getCategory();
589 uploadServiceInfo.getType();
590 uploadServiceInfo.getUUID();
591 uploadServiceInfo.getInvariantUUID();
592 uploadServiceInfo.getResourceVendorRelease();
593 uploadServiceInfo.getResourceVendor();
594 uploadServiceInfo.getDescription();
595 uploadServiceInfo.getTags();
596 uploadServiceInfo.getArtifactList();
597 uploadServiceInfo.getPayloadName();
598 uploadServiceInfo.getPayloadData();
601 private void checkCreateFile() throws IOException {
602 CreateServiceFromYamlParameter csfp = new CreateServiceFromYamlParameter();
603 Map<String, NodeTypeInfo> nodeTypesInfo = new HashMap<>();
604 ParsedToscaYamlInfo parsedToscaYamlInfo = new ParsedToscaYamlInfo();
605 List<ArtifactDefinition> createdArtifacts = new ArrayList<>();
606 CsarInfo csarInfo = getCsarInfo();
607 csfp.setYamlName("yamlName");
608 csfp.setNodeTypesInfo(nodeTypesInfo);
609 csfp.setParsedToscaYamlInfo(parsedToscaYamlInfo);
610 csfp.setCsarInfo(csarInfo);
611 csfp.setCreatedArtifacts(createdArtifacts);
612 csfp.setYamlName("yamlName");
613 csfp.setShouldLock(true);
614 csfp.setInTransaction(true);
615 csfp.setNodeName("nodeName");
617 CreateServiceFromYamlParameter getCsfy = new CreateServiceFromYamlParameter();
618 getCsfy.getYamlName();
619 getCsfy.getNodeTypesInfo();
620 getCsfy.getParsedToscaYamlInfo();
621 getCsfy.getCsarInfo();
622 getCsfy.getCreatedArtifacts();
623 getCsfy.getYamlName();
624 getCsfy.isShouldLock();
625 getCsfy.isInTransaction();
626 getCsfy.getNodeName();
629 protected CsarInfo getCsarInfo() throws IOException {
630 String csarUuid = "0010";
631 User user = new User();
632 Map<String, byte[]> csar = crateCsarFromPayload();
633 String vfReousrceName = "resouceName";
634 String mainTemplateName = "mainTemplateName";
635 String mainTemplateContent = getMainTemplateContent();
636 final Service service = createServiceObject(false);
637 CsarInfo csarInfo = new OnboardedCsarInfo(user, csarUuid, csar, vfReousrceName, mainTemplateName, mainTemplateContent, false);
641 protected Map<String, byte[]> crateCsarFromPayload() {
642 String payloadName = "valid_vf.csar";
643 byte[] data = new byte[1024];
644 Map<String, byte[]> returnValue = new HashMap<>();
645 returnValue.put(payloadName, data);
650 protected String getGroupsYaml() throws IOException {
651 Path filePath = Paths.get("src/test/resources/types/groups.yml");
652 byte[] fileContent = Files.readAllBytes(filePath);
653 return new String(fileContent);
656 protected String getYamlFileContent() throws IOException {
657 Path filePath = Paths.get("src/test/resources/types/fileContent.yml");
658 byte[] fileContent = Files.readAllBytes(filePath);
659 return new String(fileContent);
662 public String getMainTemplateContent() throws IOException {
663 Path filePath = Paths.get("src/test/resources/types/mainTemplateContent.yml");
664 byte[] fileContent = Files.readAllBytes(filePath);
665 return new String(fileContent);
668 protected String getArtifactsYml() throws IOException {
669 Path filePath = Paths.get("src/test/resources/types/artifacts.yml");
670 byte[] fileContent = Files.readAllBytes(filePath);
671 return new String(fileContent);
674 protected void assertComponentException(ComponentException e, ActionStatus expectedStatus, String... variables) {
675 ResponseFormat actualResponse = e.getResponseFormat() != null ?
676 e.getResponseFormat() : componentsUtils.getResponseFormat(e.getActionStatus(), e.getParams());
677 assertResponse(actualResponse, expectedStatus, variables);
680 protected void assertResponse(ResponseFormat actualResponse, ActionStatus expectedStatus, String... variables) {
681 ResponseFormat expectedResponse = responseManager.getResponseFormat(expectedStatus, variables);
682 assertEquals(expectedResponse.getStatus(), actualResponse.getStatus());
683 assertEquals("assert error description", expectedResponse.getFormattedMessage(), actualResponse.getFormattedMessage());