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