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