2 * Copyright (C) 2020 CMCC, Inc. and others. All rights reserved.
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
8 * http://www.apache.org/licenses/LICENSE-2.0
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.
16 package org.openecomp.sdc.be.components.impl;
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;
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;
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;
115 public class ServiceImportBussinessLogicBaseTestSetup extends BaseBusinessLogicMock {
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";
131 private final ArtifactDefinition artifactDefinition = mock(ArtifactDefinition.class);
132 private final ResourceImportManager resourceImportManager = mock(ResourceImportManager.class);
133 private final ServletUtils servletUtils = mock(ServletUtils.class);
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;
166 protected ServiceBusinessLogic serviceBusinessLogic;
167 IElementOperation mockElementDao = new ElementOperationMock();
168 protected ServiceCategoryValidator serviceCategoryValidator = new ServiceCategoryValidator(componentsUtils, mockElementDao);
169 protected ServiceValidator serviceValidator = createServiceValidator();
171 public ServiceImportBussinessLogicBaseTestSetup() {
175 protected ServiceValidator createServiceValidator() {
176 List<ComponentFieldValidator> componentFieldValidators = Arrays.asList(componentContactIdValidator,
177 componentDescriptionValidator,
178 componentIconValidator, componentNameValidator,
179 new ComponentProjectCodeValidator(componentsUtils),
180 componentTagsValidator);
182 List<ServiceFieldValidator> serviceFieldValidators = Arrays.asList(serviceCategoryValidator, new ServiceEnvironmentContextValidator(),
183 serviceInstantiationTypeValidator, new ServiceNamingPolicyValidator(componentsUtils),
184 serviceRoleValidator, serviceTypeValidator);
185 return new ServiceValidator(componentsUtils, componentFieldValidators, serviceFieldValidators);
189 public void setup() throws IOException {
192 IElementOperation mockElementDao = new ElementOperationMock();
194 // User data and management
196 user.setUserId("jh0003");
197 user.setFirstName("Jimmi");
198 user.setLastName("Hendrix");
199 user.setRole(Role.ADMIN.name());
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);
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);
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);
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);
240 genericService = setupGenericServiceMock();
241 Either<Resource, StorageOperationStatus> findLatestGeneric = Either.left(genericService);
242 when(toscaOperationFacade.getLatestCertifiedNodeTypeByToscaResourceName(GENERIC_SERVICE_NAME)).thenReturn(findLatestGeneric);
244 when(serviceImportParseLogic.isArtifactDeletionRequired(anyString(), any(), anyBoolean())).thenReturn(true);
248 responseManager = ResponseFormatManager.getInstance();
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);
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);
274 service.setVersion("0.1");
275 service.setUniqueId(service.getName() + ":" + service.getVersion());
276 service.setCreatorUserId(user.getUserId());
277 service.setCreatorFullName(user.getFirstName() + " " + user.getLastName());
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);
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");
302 resource.setVersion("0.1");
303 resource.setUniqueId(resource.getName() + ":" + resource.getVersion());
304 resource.setCreatorUserId(user.getUserId());
305 resource.setCreatorFullName(user.getFirstName() + " " + user.getLastName());
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<>();
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);
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);
345 protected Resource setupGenericServiceMock() {
346 Resource genericService = new Resource();
347 genericService.setVersion("1.0");
348 genericService.setToscaResourceName(GENERIC_SERVICE_NAME);
349 return genericService;
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);
361 protected UploadComponentInstanceInfo getUploadComponentInstanceInfo() {
362 UploadComponentInstanceInfo uploadComponentInstanceInfo = new UploadComponentInstanceInfo();
363 uploadComponentInstanceInfo.setType("My-Resource_Tosca_Name");
364 Collection<String> directives = new Collection<String>() {
371 public boolean isEmpty() {
376 public boolean contains(Object o) {
381 public Iterator<String> iterator() {
386 public Object[] toArray() {
387 return new Object[0];
391 public <T> T[] toArray(T[] ts) {
396 public boolean add(String s) {
401 public boolean remove(Object o) {
406 public boolean containsAll(Collection<?> collection) {
411 public boolean addAll(Collection<? extends String> collection) {
416 public boolean removeAll(Collection<?> collection) {
421 public boolean retainAll(Collection<?> collection) {
426 public void clear() {
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;
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));
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;
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);
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;
494 protected UploadComponentInstanceInfo createUploadComponentInstanceInfo() {
495 UploadComponentInstanceInfo uploadComponentInstanceInfo = new UploadComponentInstanceInfo();
496 uploadComponentInstanceInfo.setName("UploadComponentInstanceInfo");
497 return uploadComponentInstanceInfo;
500 private void mockAbstract() throws IOException {
501 checkCreateAbstract();
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");
514 AbstractResourceInfo getAbstractResourceInfo = new AbstractResourceInfo();
515 getAbstractResourceInfo.getAbstractResourceName();
516 getAbstractResourceInfo.getAbstractResourceUniqueId();
517 getAbstractResourceInfo.getAbstractResourceUUid();
518 getAbstractResourceInfo.getComponentInstancesRelations();
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");
528 AbstractTemplateInfo getAbstractTemplateInfo = new AbstractTemplateInfo();
529 getAbstractTemplateInfo.getAbstractResourceInfoList();
530 getAbstractTemplateInfo.getIsAbstractTemplate();
531 getAbstractTemplateInfo.getServiceUniqueId();
532 getAbstractTemplateInfo.getServiceUUid();
534 CopyServiceInfo copyServiceInfo = new CopyServiceInfo();
535 copyServiceInfo.setNewServiceName("newServiceName");
536 copyServiceInfo.setNewServiceUUid("serviceUUid");
537 copyServiceInfo.setOldServiceUUid("oldServiceUUid");
539 CopyServiceInfo getCopyServiceInfo = new CopyServiceInfo();
540 getCopyServiceInfo.getNewServiceName();
541 getCopyServiceInfo.getNewServiceUUid();
542 getCopyServiceInfo.getOldServiceUUid();
544 ReplaceVNFInfo replaceVNFInfo = new ReplaceVNFInfo();
545 ComponentInstance realVNFComponentInstance = new ComponentInstance();
546 replaceVNFInfo.setAbstractResourceUniqueId("abstractResourceUniqueId");
547 replaceVNFInfo.setRealVNFComponentInstance(realVNFComponentInstance);
548 replaceVNFInfo.setServiceUniqueId("serviceUniqueId");
550 ReplaceVNFInfo getReplaceVNFInfo = new ReplaceVNFInfo();
551 getReplaceVNFInfo.getServiceUniqueId();
552 getReplaceVNFInfo.getAbstractResourceUniqueId();
553 getReplaceVNFInfo.getRealVNFComponentInstance();
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");
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();
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");
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();
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");
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();
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);
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);
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);
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);
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);
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);
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);
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());