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