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