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