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