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.Collections;
34 import java.util.HashMap;
35 import java.util.List;
37 import javax.servlet.ServletContext;
38 import org.junit.jupiter.api.BeforeEach;
39 import org.mockito.Mock;
40 import org.mockito.Mockito;
41 import org.openecomp.sdc.ElementOperationMock;
42 import org.openecomp.sdc.be.components.csar.CsarArtifactsAndGroupsBusinessLogic;
43 import org.openecomp.sdc.be.components.csar.CsarBusinessLogic;
44 import org.openecomp.sdc.be.components.csar.CsarInfo;
45 import org.openecomp.sdc.be.components.csar.OnboardedCsarInfo;
46 import org.openecomp.sdc.be.components.impl.exceptions.ComponentException;
47 import org.openecomp.sdc.be.components.impl.utils.CreateServiceFromYamlParameter;
48 import org.openecomp.sdc.be.components.validation.UserValidations;
49 import org.openecomp.sdc.be.components.validation.component.ComponentContactIdValidator;
50 import org.openecomp.sdc.be.components.validation.component.ComponentDescriptionValidator;
51 import org.openecomp.sdc.be.components.validation.component.ComponentFieldValidator;
52 import org.openecomp.sdc.be.components.validation.component.ComponentIconValidator;
53 import org.openecomp.sdc.be.components.validation.component.ComponentNameValidator;
54 import org.openecomp.sdc.be.components.validation.component.ComponentProjectCodeValidator;
55 import org.openecomp.sdc.be.components.validation.component.ComponentTagsValidator;
56 import org.openecomp.sdc.be.components.validation.component.ComponentValidator;
57 import org.openecomp.sdc.be.components.validation.service.ServiceCategoryValidator;
58 import org.openecomp.sdc.be.components.validation.service.ServiceEnvironmentContextValidator;
59 import org.openecomp.sdc.be.components.validation.service.ServiceFieldValidator;
60 import org.openecomp.sdc.be.components.validation.service.ServiceFunctionValidator;
61 import org.openecomp.sdc.be.components.validation.service.ServiceInstantiationTypeValidator;
62 import org.openecomp.sdc.be.components.validation.service.ServiceNamingPolicyValidator;
63 import org.openecomp.sdc.be.components.validation.service.ServiceRoleValidator;
64 import org.openecomp.sdc.be.components.validation.service.ServiceTypeValidator;
65 import org.openecomp.sdc.be.components.validation.service.ServiceValidator;
66 import org.openecomp.sdc.be.dao.api.ActionStatus;
67 import org.openecomp.sdc.be.dao.janusgraph.JanusGraphDao;
68 import org.openecomp.sdc.be.datatypes.enums.ComponentTypeEnum;
69 import org.openecomp.sdc.be.datatypes.enums.NodeTypeEnum;
70 import org.openecomp.sdc.be.externalapi.servlet.representation.AbstractResourceInfo;
71 import org.openecomp.sdc.be.externalapi.servlet.representation.AbstractTemplateInfo;
72 import org.openecomp.sdc.be.externalapi.servlet.representation.ArtifactMetadata;
73 import org.openecomp.sdc.be.externalapi.servlet.representation.CopyServiceInfo;
74 import org.openecomp.sdc.be.externalapi.servlet.representation.ReplaceVNFInfo;
75 import org.openecomp.sdc.be.externalapi.servlet.representation.ResourceInstanceMetadata;
76 import org.openecomp.sdc.be.facade.operations.CatalogOperation;
77 import org.openecomp.sdc.be.impl.ComponentsUtils;
78 import org.openecomp.sdc.be.impl.ServletUtils;
79 import org.openecomp.sdc.be.impl.WebAppContextWrapper;
80 import org.openecomp.sdc.be.model.ArtifactDefinition;
81 import org.openecomp.sdc.be.model.CapabilityDefinition;
82 import org.openecomp.sdc.be.model.Component;
83 import org.openecomp.sdc.be.model.ComponentInstance;
84 import org.openecomp.sdc.be.model.GroupDefinition;
85 import org.openecomp.sdc.be.model.InputDefinition;
86 import org.openecomp.sdc.be.model.LifecycleStateEnum;
87 import org.openecomp.sdc.be.model.NodeTypeInfo;
88 import org.openecomp.sdc.be.model.ParsedToscaYamlInfo;
89 import org.openecomp.sdc.be.model.PropertyDefinition;
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;
114 public class ServiceImportBussinessLogicBaseTestSetup extends BaseBusinessLogicMock {
116 protected static final String SERVICE_CATEGORY = "Mobility";
117 protected static final String INSTANTIATION_TYPE = "A-la-carte";
118 protected static final String COMPONENT_ID = "myUniqueId";
119 protected static final String GENERIC_SERVICE_NAME = "org.openecomp.resource.abstract.nodes.service";
120 private static final String RESOURCE_NAME = "My-Resource_Name with space";
121 protected static final String RESOURCE_TOSCA_NAME = "org.openecomp.resource.cp.extCP";
122 private static final String RESOURCE_CATEGORY1 = "Network Layer 2-3";
123 private static final String RESOURCE_SUBCATEGORY = "Router";
125 private final ArtifactDefinition artifactDefinition = mock(ArtifactDefinition.class);
126 private final ServletUtils servletUtils = mock(ServletUtils.class);
128 protected final ServletContext servletContext = mock(ServletContext.class);
129 protected final ComponentValidator componentValidator = mock(ComponentValidator.class);
130 final ComponentInstanceBusinessLogic componentInstanceBusinessLogic = mock(ComponentInstanceBusinessLogic.class);
131 final CsarBusinessLogic csarBusinessLogic = mock(CsarBusinessLogic.class);
132 final CompositionBusinessLogic compositionBusinessLogic = mock(CompositionBusinessLogic.class);
133 protected UserBusinessLogic userBusinessLogic = mock(UserBusinessLogic.class);
134 protected WebAppContextWrapper webAppContextWrapper = mock(WebAppContextWrapper.class);
135 protected WebApplicationContext webAppContext = mock(WebApplicationContext.class);
136 protected ResponseFormatManager responseManager = null;
137 protected ComponentsUtils componentsUtils = mock(ComponentsUtils.class);
138 protected ArtifactsBusinessLogic artifactsBusinessLogic = mock(ArtifactsBusinessLogic.class);
139 protected GraphLockOperation graphLockOperation = mock(GraphLockOperation.class);
140 protected JanusGraphDao mockJanusGraphDao = mock(JanusGraphDao.class);
141 protected ToscaOperationFacade toscaOperationFacade = mock(ToscaOperationFacade.class);
142 protected CsarArtifactsAndGroupsBusinessLogic csarArtifactsAndGroupsBusinessLogic = mock(CsarArtifactsAndGroupsBusinessLogic.class);
143 protected UserValidations userValidations = mock(UserValidations.class);
144 protected CatalogOperation catalogOperation = mock(CatalogOperation.class);
145 protected ServiceImportParseLogic serviceImportParseLogic = mock(ServiceImportParseLogic.class);
146 protected ServiceTypeValidator serviceTypeValidator = new ServiceTypeValidator();
147 protected ServiceRoleValidator serviceRoleValidator = new ServiceRoleValidator(componentsUtils);
148 protected ServiceFunctionValidator serviceFunctionValidator = new ServiceFunctionValidator(componentsUtils);
149 protected ServiceInstantiationTypeValidator serviceInstantiationTypeValidator = new ServiceInstantiationTypeValidator(componentsUtils);
150 protected ComponentDescriptionValidator componentDescriptionValidator = new ComponentDescriptionValidator(componentsUtils);
151 protected ComponentProjectCodeValidator componentProjectCodeValidator = new ComponentProjectCodeValidator(componentsUtils);
152 protected ComponentIconValidator componentIconValidator = new ComponentIconValidator(componentsUtils);
153 protected ComponentContactIdValidator componentContactIdValidator = new ComponentContactIdValidator(componentsUtils);
154 protected ComponentTagsValidator componentTagsValidator = new ComponentTagsValidator(componentsUtils);
155 protected ComponentNameValidator componentNameValidator = new ComponentNameValidator(componentsUtils, toscaOperationFacade);
156 protected User user = null;
157 protected Resource genericService = null;
159 protected ServiceBusinessLogic serviceBusinessLogic;
160 IElementOperation mockElementDao = new ElementOperationMock();
161 protected ServiceCategoryValidator serviceCategoryValidator = new ServiceCategoryValidator(componentsUtils, mockElementDao);
162 protected ServiceValidator serviceValidator = createServiceValidator();
164 public ServiceImportBussinessLogicBaseTestSetup() {
168 protected ServiceValidator createServiceValidator() {
169 List<ComponentFieldValidator> componentFieldValidators = Arrays.asList(componentContactIdValidator,
170 componentDescriptionValidator,
171 componentIconValidator, componentNameValidator,
172 new ComponentProjectCodeValidator(componentsUtils),
173 componentTagsValidator);
175 List<ServiceFieldValidator> serviceFieldValidators = Arrays.asList(serviceCategoryValidator, new ServiceEnvironmentContextValidator(),
176 serviceInstantiationTypeValidator, new ServiceNamingPolicyValidator(componentsUtils),
177 serviceRoleValidator, serviceTypeValidator);
178 return new ServiceValidator(componentsUtils, componentFieldValidators, serviceFieldValidators);
182 public void setup() throws IOException {
185 IElementOperation mockElementDao = new ElementOperationMock();
187 // User data and management
189 user.setUserId("jh0003");
190 user.setFirstName("Jimmi");
191 user.setLastName("Hendrix");
192 user.setRole(Role.ADMIN.name());
194 when(userBusinessLogic.getUser("jh0003", false)).thenReturn(user);
195 when(userValidations.validateUserExists("jh0003")).thenReturn(user);
196 when(userValidations.validateUserNotEmpty(eq(user), anyString())).thenReturn(user);
197 // Servlet Context attributes
198 when(servletContext.getAttribute(Constants.CONFIGURATION_MANAGER_ATTR)).thenReturn(configurationManager);
199 when(servletContext.getAttribute(Constants.WEB_APPLICATION_CONTEXT_WRAPPER_ATTR)).thenReturn(webAppContextWrapper);
200 when(webAppContextWrapper.getWebAppContext(servletContext)).thenReturn(webAppContext);
201 when(webAppContext.getBean(IElementOperation.class)).thenReturn(mockElementDao);
202 when(graphLockOperation.lockComponent(Mockito.anyString(), Mockito.eq(NodeTypeEnum.Service))).thenReturn(StorageOperationStatus.OK);
203 when(graphLockOperation.lockComponentByName(Mockito.anyString(), Mockito.eq(NodeTypeEnum.Service))).thenReturn(StorageOperationStatus.OK);
204 when(catalogOperation.updateCatalog(Mockito.any(), Mockito.any())).thenReturn(ActionStatus.OK);
205 // artifact bussinesslogic
206 ArtifactDefinition artifactDef = new ArtifactDefinition();
207 when(artifactsBusinessLogic.createArtifactPlaceHolderInfo(Mockito.any(), Mockito.anyString(), Mockito.anyMap(), Mockito.any(User.class),
208 Mockito.any(ArtifactGroupTypeEnum.class))).thenReturn(artifactDef);
211 Service serviceResponse = createServiceObject(true);
212 Either<Component, StorageOperationStatus> eitherCreate = Either.left(serviceResponse);
213 when(toscaOperationFacade.createToscaComponent(Mockito.any(Component.class))).thenReturn(eitherCreate);
214 when(toscaOperationFacade.getToscaElement(Mockito.anyString())).thenReturn(eitherCreate);
215 Either<Boolean, StorageOperationStatus> eitherCount = Either.left(false);
216 when(toscaOperationFacade.validateComponentNameExists("Service", null, ComponentTypeEnum.SERVICE)).thenReturn(eitherCount);
217 Either<Boolean, StorageOperationStatus> eitherCountExist = Either.left(true);
218 when(toscaOperationFacade.validateComponentNameExists("alreadyExist", null, ComponentTypeEnum.SERVICE)).thenReturn(eitherCountExist);
219 when(userValidations.validateUserExists(user)).thenReturn(user);
222 Resource resourceRsponse = createParseResourceObject(true);
223 Either<Component, StorageOperationStatus> eitherResourceCreate = Either.left(resourceRsponse);
224 when(toscaOperationFacade.createToscaComponent(Mockito.any(Component.class))).thenReturn(eitherResourceCreate);
225 Either<Component, StorageOperationStatus> eitherResourceRes = Either.left(resourceRsponse);
226 when(toscaOperationFacade.getToscaFullElement(Mockito.anyString())).thenReturn(eitherResourceRes);
228 Either<Boolean, StorageOperationStatus> eitherResourceCount = Either.left(false);
229 when(toscaOperationFacade.validateComponentNameExists("Resource", null, ComponentTypeEnum.RESOURCE)).thenReturn(eitherResourceCount);
230 Either<Boolean, StorageOperationStatus> eitherResourceCountExist = Either.left(true);
231 when(toscaOperationFacade.validateComponentNameExists("alreadyExist", null, ComponentTypeEnum.RESOURCE)).thenReturn(eitherResourceCountExist);
233 genericService = setupGenericServiceMock();
234 Either<Resource, StorageOperationStatus> findLatestGeneric = Either.left(genericService);
235 when(toscaOperationFacade.getLatestCertifiedNodeTypeByToscaResourceName(GENERIC_SERVICE_NAME)).thenReturn(findLatestGeneric);
237 when(serviceImportParseLogic.isArtifactDeletionRequired(anyString(), any(), anyBoolean())).thenReturn(true);
241 responseManager = ResponseFormatManager.getInstance();
244 protected Service createServiceObject(boolean afterCreate) {
245 Service service = new Service();
246 service.setUniqueId("sid");
247 service.setName("Service");
248 service.setSystemName("SystemName");
249 CategoryDefinition category = new CategoryDefinition();
250 category.setName(SERVICE_CATEGORY);
251 category.setIcons(Collections.singletonList("defaulticon"));
252 List<CategoryDefinition> categories = new ArrayList<>();
253 categories.add(category);
254 service.setCategories(categories);
255 service.setInstantiationType(INSTANTIATION_TYPE);
257 service.setDescription("description");
258 List<String> tgs = new ArrayList<>();
259 tgs.add(service.getName());
260 service.setTags(tgs);
261 service.setIcon("defaulticon");
262 service.setContactId("aa1234");
263 service.setProjectCode("12345");
264 service.setEcompGeneratedNaming(true);
266 List<InputDefinition> inputs = new ArrayList<>();
267 InputDefinition input_1 = new InputDefinition();
268 input_1.setName("propertiesName");
269 input_1.setUniqueId("uniqueId");
270 input_1.setType("inputDefinitionType");
272 InputDefinition input_2 = new InputDefinition();
273 input_2.setName("zxjTestImportServiceAb_propertiesName");
274 input_2.setUniqueId("uniqueId");
275 input_2.setType("inputDefinitionType");
277 service.setInputs(inputs);
280 service.setVersion("0.1");
281 service.setUniqueId(service.getName() + ":" + service.getVersion());
282 service.setCreatorUserId(user.getUserId());
283 service.setCreatorFullName(user.getFirstName() + " " + user.getLastName());
288 protected Resource createResourceObject(boolean afterCreate) {
289 Resource resource = new Resource();
290 resource.setUniqueId("sid");
291 resource.setName("Service");
292 CategoryDefinition category = new CategoryDefinition();
293 category.setName(SERVICE_CATEGORY);
294 category.setIcons(Collections.singletonList("defaulticon"));
295 List<CategoryDefinition> categories = new ArrayList<>();
296 categories.add(category);
297 resource.setCategories(categories);
299 resource.setDescription("description");
300 List<String> tgs = new ArrayList<>();
301 tgs.add(resource.getName());
302 resource.setTags(tgs);
303 resource.setIcon("defaulticon");
304 resource.setContactId("aa1234");
305 resource.setProjectCode("12345");
308 resource.setVersion("0.1");
309 resource.setUniqueId(resource.getName() + ":" + resource.getVersion());
310 resource.setCreatorUserId(user.getUserId());
311 resource.setCreatorFullName(user.getFirstName() + " " + user.getLastName());
316 protected Resource createParseResourceObject(boolean afterCreate) {
317 Resource resource = new Resource();
318 resource.setUniqueId(COMPONENT_ID);
319 resource.setName(RESOURCE_NAME);
320 resource.setToscaResourceName(RESOURCE_TOSCA_NAME);
321 resource.addCategory(RESOURCE_CATEGORY1, RESOURCE_SUBCATEGORY);
322 resource.setDescription("My short description");
323 List<String> tgs = new ArrayList<>();
325 tgs.add(resource.getName());
326 resource.setTags(tgs);
327 List<String> template = new ArrayList<>();
328 template.add("tosca.nodes.Root");
329 resource.setDerivedFrom(template);
330 resource.setVendorName("Motorola");
331 resource.setVendorRelease("1.0.0");
332 resource.setContactId("ya5467");
333 resource.setIcon("defaulticon");
334 Map<String, List<RequirementDefinition>> requirements = new HashMap<>();
335 List<RequirementDefinition> requirementDefinitionList = new ArrayList<>();
336 requirements.put("test", requirementDefinitionList);
337 resource.setRequirements(requirements);
340 resource.setName(resource.getName());
341 resource.setVersion("0.1");
342 resource.setUniqueId(resource.getName()
343 .toLowerCase() + ":" + resource.getVersion());
344 resource.setCreatorUserId(user.getUserId());
345 resource.setCreatorFullName(user.getFirstName() + " " + user.getLastName());
346 resource.setLifecycleState(LifecycleStateEnum.NOT_CERTIFIED_CHECKOUT);
351 protected Resource setupGenericServiceMock() {
352 Resource genericService = new Resource();
353 genericService.setVersion("1.0");
354 genericService.setToscaResourceName(GENERIC_SERVICE_NAME);
355 return genericService;
359 protected Map<String, GroupDefinition> getGroups() {
360 Map<String, GroupDefinition> groups = new HashMap<>();
361 GroupDefinition groupDefinition = new GroupDefinition();
362 groupDefinition.setName("groupDefinitionName");
363 groups.put("groupsMap", groupDefinition);
367 protected UploadComponentInstanceInfo getUploadComponentInstanceInfo() {
368 UploadComponentInstanceInfo uploadComponentInstanceInfo = new UploadComponentInstanceInfo();
369 uploadComponentInstanceInfo.setType(RESOURCE_TOSCA_NAME);
370 uploadComponentInstanceInfo.setDirectives(new ArrayList<>());
371 UploadNodeFilterInfo uploadNodeFilterInfo = new UploadNodeFilterInfo();
372 Map<String, List<UploadReqInfo>> requirements = new HashMap<>();
373 List<UploadReqInfo> uploadReqInfoList = new ArrayList<>();
374 UploadReqInfo uploadReqInfo = new UploadReqInfo();
375 uploadReqInfo.setName("uploadReqInfo");
376 uploadReqInfo.setNode("zxjTestImportServiceAb");
377 uploadReqInfo.setCapabilityName("tosca.capabilities.Node");
378 uploadReqInfo.setRelationshipTemplate("ExtCP 0.dependency.1");
379 uploadReqInfoList.add(uploadReqInfo);
380 requirements.put("requirements", uploadReqInfoList);
381 uploadNodeFilterInfo.setName("mme_ipu_vdu.virtualbinding");
382 uploadComponentInstanceInfo.setCapabilities(getCapabilities());
383 uploadComponentInstanceInfo.setRequirements(requirements);
384 uploadComponentInstanceInfo.setName("zxjTestImportServiceAb");
385 uploadComponentInstanceInfo.setOperations(getOperations());
386 return uploadComponentInstanceInfo;
389 protected Map<String, List<OperationUi>> getOperations() {
390 String relationshipTemplate = "ExtCP 0.dependency.1";
391 OperationUi operationUi = new OperationUi();
392 operationUi.setOperationType("change_external_connectivity_start");
393 operationUi.setInterfaceType("tosca.interfaces.nfv.Vnflcm");
394 operationUi.setImplementation("impl");
395 return Map.of(relationshipTemplate, List.of(operationUi));
398 protected Map<String, List<UploadCapInfo>> getCapabilities() {
399 List<UploadCapInfo> uploadCapInfoList = new ArrayList<>();
400 UploadCapInfo uploadCapInfo = new UploadCapInfo();
401 uploadCapInfo.setNode("tosca.nodes.Root");
402 uploadCapInfo.setName("mme_ipu_vdu.dependency");
403 uploadCapInfoList.add(uploadCapInfo);
404 Map<String, List<UploadCapInfo>> uploadCapInfoMap = new HashMap<>();
405 uploadCapInfoMap.put("tosca.capabilities.Node", uploadCapInfoList);
406 return uploadCapInfoMap;
409 protected List<ComponentInstance> creatComponentInstances() {
410 List<ComponentInstance> componentInstances = new ArrayList<>();
411 ComponentInstance componentInstance = new ComponentInstance();
412 Map<String, List<CapabilityDefinition>> capabilities = new HashMap<>();
413 List<CapabilityDefinition> capabilityDefinitionList = new ArrayList<>();
414 CapabilityDefinition capabilityDefinition = new CapabilityDefinition();
415 capabilityDefinition.setName("mme_ipu_vdu.feature");
416 capabilityDefinitionList.add(capabilityDefinition);
417 capabilities.put("tosca.capabilities.Node", capabilityDefinitionList);
419 Map<String, List<RequirementDefinition>> requirements = new HashMap<>();
420 List<RequirementDefinition> requirementDefinitionList = new ArrayList<>();
421 RequirementDefinition requirementDefinition = new RequirementDefinition();
422 requirementDefinition.setName("zxjtestimportserviceab0.mme_ipu_vdu.dependency.test");
423 requirementDefinitionList.add(requirementDefinition);
424 requirements.put("tosca.capabilities.Node", requirementDefinitionList);
425 componentInstance.setRequirements(requirements);
426 componentInstance.setCapabilities(capabilities);
427 componentInstance.setUniqueId("uniqueId");
428 componentInstance.setComponentUid("componentUid");
429 componentInstance.setName("zxjTestImportServiceAb");
430 componentInstance.setProperties(Collections.singletonList(new PropertyDefinition()));
431 componentInstances.add(componentInstance);
432 return componentInstances;
435 protected UploadComponentInstanceInfo createUploadComponentInstanceInfo() {
436 UploadComponentInstanceInfo uploadComponentInstanceInfo = new UploadComponentInstanceInfo();
437 uploadComponentInstanceInfo.setName("UploadComponentInstanceInfo");
438 return uploadComponentInstanceInfo;
441 private void mockAbstract() throws IOException {
442 checkCreateAbstract();
447 private void checkCreateAbstract() {
448 AbstractResourceInfo abstractResourceInfo = new AbstractResourceInfo();
449 List<RequirementCapabilityRelDef> componentInstancesRelations = new ArrayList<>();
450 abstractResourceInfo.setComponentInstancesRelations(componentInstancesRelations);
451 abstractResourceInfo.setAbstractResourceUniqueId("abstractResourceUniqueId");
452 abstractResourceInfo.setAbstractResourceName("abstractResourceName");
453 abstractResourceInfo.setAbstractResourceUUid("abstractResourceUUid");
455 AbstractResourceInfo getAbstractResourceInfo = new AbstractResourceInfo();
456 getAbstractResourceInfo.getAbstractResourceName();
457 getAbstractResourceInfo.getAbstractResourceUniqueId();
458 getAbstractResourceInfo.getAbstractResourceUUid();
459 getAbstractResourceInfo.getComponentInstancesRelations();
461 AbstractTemplateInfo createAbstractTemplateInfo = new AbstractTemplateInfo();
462 List<AbstractResourceInfo> abstractResourceInfoList = new ArrayList<>();
463 abstractResourceInfoList.add(abstractResourceInfo);
464 createAbstractTemplateInfo.setAbstractResourceInfoList(abstractResourceInfoList);
465 createAbstractTemplateInfo.setServiceUniqueId("serviceUniqueId");
466 createAbstractTemplateInfo.setIsAbstractTemplate(true);
467 createAbstractTemplateInfo.setServiceUUid("serviceUUid");
469 AbstractTemplateInfo getAbstractTemplateInfo = new AbstractTemplateInfo();
470 getAbstractTemplateInfo.getAbstractResourceInfoList();
471 getAbstractTemplateInfo.getIsAbstractTemplate();
472 getAbstractTemplateInfo.getServiceUniqueId();
473 getAbstractTemplateInfo.getServiceUUid();
475 CopyServiceInfo copyServiceInfo = new CopyServiceInfo();
476 copyServiceInfo.setNewServiceName("newServiceName");
477 copyServiceInfo.setNewServiceUUid("serviceUUid");
478 copyServiceInfo.setOldServiceUUid("oldServiceUUid");
480 CopyServiceInfo getCopyServiceInfo = new CopyServiceInfo();
481 getCopyServiceInfo.getNewServiceName();
482 getCopyServiceInfo.getNewServiceUUid();
483 getCopyServiceInfo.getOldServiceUUid();
485 ReplaceVNFInfo replaceVNFInfo = new ReplaceVNFInfo();
486 ComponentInstance realVNFComponentInstance = new ComponentInstance();
487 replaceVNFInfo.setAbstractResourceUniqueId("abstractResourceUniqueId");
488 replaceVNFInfo.setRealVNFComponentInstance(realVNFComponentInstance);
489 replaceVNFInfo.setServiceUniqueId("serviceUniqueId");
491 ReplaceVNFInfo getReplaceVNFInfo = new ReplaceVNFInfo();
492 getReplaceVNFInfo.getServiceUniqueId();
493 getReplaceVNFInfo.getAbstractResourceUniqueId();
494 getReplaceVNFInfo.getRealVNFComponentInstance();
497 private void checkCreateOther() {
498 ResourceInstanceMetadata resourceInstanceMetadata = new ResourceInstanceMetadata();
499 List<ArtifactMetadata> artifacts = new ArrayList<>();
500 resourceInstanceMetadata.setArtifacts(artifacts);
501 resourceInstanceMetadata.setResoucreType("resoucreType");
502 resourceInstanceMetadata.setResourceInstanceName("resourceInstanceName");
503 resourceInstanceMetadata.setResourceInvariantUUID("resourceInvariantUUID");
504 resourceInstanceMetadata.setResourceName("resourceName");
505 resourceInstanceMetadata.setResourceUUID("resourceUUID");
506 resourceInstanceMetadata.setResourceVersion("resourceVersion");
508 ResourceInstanceMetadata getResourceInstanceMetadata = new ResourceInstanceMetadata();
509 getResourceInstanceMetadata.getArtifacts();
510 getResourceInstanceMetadata.getResoucreType();
511 getResourceInstanceMetadata.getResourceInstanceName();
512 getResourceInstanceMetadata.getResourceInvariantUUID();
513 getResourceInstanceMetadata.getResourceName();
514 getResourceInstanceMetadata.getResourceUUID();
515 getResourceInstanceMetadata.getResourceVersion();
517 UploadServiceInfo uploadServiceInfo = new UploadServiceInfo();
518 List<String> tags = new ArrayList<>();
519 List<CategoryDefinition> categories = new ArrayList<>();
520 List<UploadArtifactInfo> artifactList = new ArrayList<>();
521 uploadServiceInfo.setProjectCode("projectCode");
522 uploadServiceInfo.setCategories(categories);
523 uploadServiceInfo.setServiceType("");
524 uploadServiceInfo.setServiceVendorModelNumber("serviceVendorModelNumber");
525 uploadServiceInfo.setVendorRelease("vendorRelease");
526 uploadServiceInfo.setVendorName("vendorName");
527 uploadServiceInfo.setServiceIconPath("serviceIconPath");
528 uploadServiceInfo.setName("uploadServiceInfo");
529 uploadServiceInfo.setContactId("contactId");
530 uploadServiceInfo.setIcon("icon");
531 uploadServiceInfo.setNamingPolicy("namingPolicy");
532 uploadServiceInfo.setEcompGeneratedNaming("ecompGeneratedNaming");
533 uploadServiceInfo.setServiceEcompNaming("serviceEcompNaming");
534 uploadServiceInfo.setServiceRole("serviceRole");
535 uploadServiceInfo.setSubcategory("subcategory");
536 uploadServiceInfo.setCategory("category");
537 uploadServiceInfo.setType("type");
538 uploadServiceInfo.setUUID("UUID");
539 uploadServiceInfo.setInvariantUUID("invariantUUID");
540 uploadServiceInfo.setResourceVendorRelease("resourceVendorRelease");
541 uploadServiceInfo.setResourceVendor("resourceVendor");
542 uploadServiceInfo.setDescription("description");
543 uploadServiceInfo.setTags(tags);
544 uploadServiceInfo.setArtifactList(artifactList);
545 uploadServiceInfo.setPayloadName("payloadName");
546 uploadServiceInfo.setPayloadData("payloadData");
549 protected void checkGetUploadServiceInfo() {
550 UploadServiceInfo uploadServiceInfo = new UploadServiceInfo();
551 List<String> tags = new ArrayList<>();
552 List<CategoryDefinition> categories = new ArrayList<>();
553 List<UploadArtifactInfo> artifactList = new ArrayList<>();
554 uploadServiceInfo.getProjectCode();
555 uploadServiceInfo.getCategories();
556 uploadServiceInfo.getServiceType();
557 uploadServiceInfo.getServiceVendorModelNumber();
558 uploadServiceInfo.getVendorRelease();
559 uploadServiceInfo.getVendorName();
560 uploadServiceInfo.getServiceIconPath();
561 uploadServiceInfo.getName();
562 uploadServiceInfo.getContactId();
563 uploadServiceInfo.getIcon();
564 uploadServiceInfo.getNamingPolicy();
565 uploadServiceInfo.getEcompGeneratedNaming();
566 uploadServiceInfo.getServiceEcompNaming();
567 uploadServiceInfo.getServiceRole();
568 uploadServiceInfo.getSubcategory();
569 uploadServiceInfo.getCategory();
570 uploadServiceInfo.getType();
571 uploadServiceInfo.getUUID();
572 uploadServiceInfo.getInvariantUUID();
573 uploadServiceInfo.getResourceVendorRelease();
574 uploadServiceInfo.getResourceVendor();
575 uploadServiceInfo.getDescription();
576 uploadServiceInfo.getTags();
577 uploadServiceInfo.getArtifactList();
578 uploadServiceInfo.getPayloadName();
579 uploadServiceInfo.getPayloadData();
582 private void checkCreateFile() throws IOException {
583 CreateServiceFromYamlParameter csfp = new CreateServiceFromYamlParameter();
584 Map<String, NodeTypeInfo> nodeTypesInfo = new HashMap<>();
585 ParsedToscaYamlInfo parsedToscaYamlInfo = new ParsedToscaYamlInfo();
586 List<ArtifactDefinition> createdArtifacts = new ArrayList<>();
587 CsarInfo csarInfo = getCsarInfo();
588 csfp.setYamlName("yamlName");
589 csfp.setNodeTypesInfo(nodeTypesInfo);
590 csfp.setParsedToscaYamlInfo(parsedToscaYamlInfo);
591 csfp.setCsarInfo(csarInfo);
592 csfp.setCreatedArtifacts(createdArtifacts);
593 csfp.setYamlName("yamlName");
594 csfp.setShouldLock(true);
595 csfp.setInTransaction(true);
596 csfp.setNodeName("nodeName");
598 CreateServiceFromYamlParameter getCsfy = new CreateServiceFromYamlParameter();
599 getCsfy.getYamlName();
600 getCsfy.getNodeTypesInfo();
601 getCsfy.getParsedToscaYamlInfo();
602 getCsfy.getCsarInfo();
603 getCsfy.getCreatedArtifacts();
604 getCsfy.getYamlName();
605 getCsfy.isShouldLock();
606 getCsfy.isInTransaction();
607 getCsfy.getNodeName();
610 protected CsarInfo getCsarInfo() throws IOException {
611 String csarUuid = "0010";
612 User user = new User();
613 Map<String, byte[]> csar = crateCsarFromPayload();
614 String vfReousrceName = "resouceName";
615 String mainTemplateName = "mainTemplateName";
616 String mainTemplateContent = getMainTemplateContent();
617 final Service service = createServiceObject(false);
618 CsarInfo csarInfo = new OnboardedCsarInfo(user, csarUuid, csar, vfReousrceName, mainTemplateName, mainTemplateContent, false);
622 protected Map<String, byte[]> crateCsarFromPayload() {
623 String payloadName = "valid_vf.csar";
624 byte[] data = new byte[1024];
625 Map<String, byte[]> returnValue = new HashMap<>();
626 returnValue.put(payloadName, data);
631 protected String getGroupsYaml() throws IOException {
632 Path filePath = Paths.get("src/test/resources/types/groups.yml");
633 byte[] fileContent = Files.readAllBytes(filePath);
634 return new String(fileContent);
637 protected String getYamlFileContent() throws IOException {
638 Path filePath = Paths.get("src/test/resources/types/fileContent.yml");
639 byte[] fileContent = Files.readAllBytes(filePath);
640 return new String(fileContent);
643 public String getMainTemplateContent() throws IOException {
644 Path filePath = Paths.get("src/test/resources/types/mainTemplateContent.yml");
645 byte[] fileContent = Files.readAllBytes(filePath);
646 return new String(fileContent);
649 protected String getArtifactsYml() throws IOException {
650 Path filePath = Paths.get("src/test/resources/types/artifacts.yml");
651 byte[] fileContent = Files.readAllBytes(filePath);
652 return new String(fileContent);
655 protected void assertComponentException(ComponentException e, ActionStatus expectedStatus, String... variables) {
656 ResponseFormat actualResponse = e.getResponseFormat() != null ?
657 e.getResponseFormat() : componentsUtils.getResponseFormat(e.getActionStatus(), e.getParams());
658 assertResponse(actualResponse, expectedStatus, variables);
661 protected void assertResponse(ResponseFormat actualResponse, ActionStatus expectedStatus, String... variables) {
662 ResponseFormat expectedResponse = responseManager.getResponseFormat(expectedStatus, variables);
663 assertEquals(expectedResponse.getStatus(), actualResponse.getStatus());
664 assertEquals("assert error description", expectedResponse.getFormattedMessage(), actualResponse.getFormattedMessage());