2 * ============LICENSE_START=======================================================
4 * ================================================================================
5 * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
6 * ================================================================================
7 * Licensed under the Apache License, Version 2.0 (the "License");
8 * you may not use this file except in compliance with the License.
9 * You may obtain a copy of the License at
11 * http://www.apache.org/licenses/LICENSE-2.0
13 * Unless required by applicable law or agreed to in writing, software
14 * distributed under the License is distributed on an "AS IS" BASIS,
15 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 * See the License for the specific language governing permissions and
17 * limitations under the License.
18 * ============LICENSE_END=========================================================
21 package org.openecomp.sdc.be.components.impl;
23 import com.fasterxml.jackson.annotation.JsonInclude;
24 import com.fasterxml.jackson.databind.DeserializationFeature;
25 import com.fasterxml.jackson.databind.ObjectMapper;
26 import com.fasterxml.jackson.databind.SerializationFeature;
27 import com.google.gson.Gson;
28 import com.google.gson.GsonBuilder;
29 import com.google.gson.JsonElement;
30 import fj.data.Either;
31 import mockit.Deencapsulation;
32 import org.apache.commons.lang3.tuple.ImmutablePair;
33 import org.junit.Before;
34 import org.junit.Test;
35 import org.mockito.InjectMocks;
36 import org.mockito.Mock;
37 import org.mockito.Mockito;
38 import org.mockito.MockitoAnnotations;
39 import org.openecomp.sdc.be.MockGenerator;
40 import org.openecomp.sdc.be.components.impl.ArtifactsBusinessLogic.ArtifactOperationEnum;
41 import org.openecomp.sdc.be.components.impl.ArtifactsBusinessLogic.ArtifactOperationInfo;
42 import org.openecomp.sdc.be.components.utils.ArtifactBuilder;
43 import org.openecomp.sdc.be.components.utils.ObjectGenerator;
44 import org.openecomp.sdc.be.config.Configuration.ArtifactTypeConfig;
45 import org.openecomp.sdc.be.config.ConfigurationManager;
46 import org.openecomp.sdc.be.dao.api.ActionStatus;
47 import org.openecomp.sdc.be.dao.cassandra.ArtifactCassandraDao;
48 import org.openecomp.sdc.be.dao.cassandra.CassandraOperationStatus;
49 import org.openecomp.sdc.be.dao.jsongraph.TitanDao;
50 import org.openecomp.sdc.be.dao.titan.TitanOperationStatus;
51 import org.openecomp.sdc.be.datatypes.elements.ArtifactDataDefinition;
52 import org.openecomp.sdc.be.datatypes.elements.GroupDataDefinition;
53 import org.openecomp.sdc.be.datatypes.enums.ComponentTypeEnum;
54 import org.openecomp.sdc.be.datatypes.enums.NodeTypeEnum;
55 import org.openecomp.sdc.be.datatypes.enums.ResourceTypeEnum;
56 import org.openecomp.sdc.be.impl.ComponentsUtils;
57 import org.openecomp.sdc.be.info.ArtifactTemplateInfo;
58 import org.openecomp.sdc.be.model.*;
59 import org.openecomp.sdc.be.model.Operation;
60 import org.openecomp.sdc.be.model.cache.ApplicationDataTypeCache;
61 import org.openecomp.sdc.be.model.jsontitan.operations.ArtifactsOperations;
62 import org.openecomp.sdc.be.model.jsontitan.operations.NodeTemplateOperation;
63 import org.openecomp.sdc.be.model.jsontitan.operations.ToscaOperationFacade;
64 import org.openecomp.sdc.be.model.operations.api.*;
65 import org.openecomp.sdc.be.model.operations.impl.ArtifactOperation;
66 import org.openecomp.sdc.be.resources.data.ESArtifactData;
67 import org.openecomp.sdc.be.resources.data.auditing.AuditingActionEnum;
68 import org.openecomp.sdc.be.servlets.RepresentationUtils;
69 import org.openecomp.sdc.be.user.Role;
70 import org.openecomp.sdc.be.user.UserBusinessLogic;
71 import org.openecomp.sdc.common.api.ArtifactGroupTypeEnum;
72 import org.openecomp.sdc.common.api.ArtifactTypeEnum;
73 import org.openecomp.sdc.common.api.ConfigurationSource;
74 import org.openecomp.sdc.common.datastructure.Wrapper;
75 import org.openecomp.sdc.common.datastructure.Wrapper;
76 import org.openecomp.sdc.common.impl.ExternalConfiguration;
77 import org.openecomp.sdc.common.impl.FSConfigurationSource;
78 import org.openecomp.sdc.exception.ResponseFormat;
80 import java.io.IOException;
83 import static org.junit.Assert.assertTrue;
85 import static org.junit.Assert.*;
86 import static org.mockito.ArgumentMatchers.any;
87 import static org.mockito.ArgumentMatchers.anyBoolean;
88 import static org.mockito.ArgumentMatchers.anyString;
89 import static org.mockito.ArgumentMatchers.eq;
90 import static org.mockito.Mockito.*;
91 import static org.openecomp.sdc.be.components.impl.ArtifactsBusinessLogic.HEAT_ENV_NAME;
92 import static org.openecomp.sdc.be.components.impl.ArtifactsBusinessLogic.HEAT_VF_ENV_NAME;
94 public class ArtifactsBusinessLogicTest {
96 public static final User USER = new User("John", "Doh", "jh0003", "jh0003@gmail.com", "ADMIN",
97 System.currentTimeMillis());
98 private final static String RESOURCE_INSTANCE_NAME = "Service-111";
99 private final static String INSTANCE_ID = "S-123-444-ghghghg";
101 private final static String ARTIFACT_NAME = "service-Myservice-template.yml";
102 private final static String ARTIFACT_LABEL = "assettoscatemplate";
103 private final static String ES_ARTIFACT_ID = "123123dfgdfgd0";
104 private final static byte[] PAYLOAD = "some payload".getBytes();
105 public static final String RESOURCE_NAME = "My-Resource_Name with space";
106 public static final String RESOURCE_CATEGORY = "Network Layer 2-3/Router";
107 public static final String RESOURCE_CATEGORY1 = "Network Layer 2-3";
108 public static final String RESOURCE_SUBCATEGORY = "Router";
109 final ApplicationDataTypeCache applicationDataTypeCache = Mockito.mock(ApplicationDataTypeCache.class);
111 TitanDao mockTitanDao = Mockito.mock(TitanDao.class);
113 static ConfigurationSource configurationSource = new FSConfigurationSource(
114 ExternalConfiguration.getChangeListener(), "src/test/resources/config/catalog-be");
115 static ConfigurationManager configurationManager = new ConfigurationManager(configurationSource);
118 private static ArtifactsBusinessLogic artifactBL;
120 private static User user = null;
121 private static Resource resourceResponse = null;
122 private static ResponseFormatManager responseManager = null;
125 private UserBusinessLogic userBusinessLogic;
127 private ArtifactOperation artifactOperation;
129 public ComponentsUtils componentsUtils;
131 private IInterfaceLifecycleOperation lifecycleOperation;
133 private IUserAdminOperation userOperation;
135 private IElementOperation elementOperation;
137 private ArtifactCassandraDao artifactCassandraDao;
139 public ToscaOperationFacade toscaOperationFacade;
141 private NodeTemplateOperation nodeTemplateOperation;
143 private ArtifactsOperations artifactsOperations;
145 private IGraphLockOperation graphLockOperation;
149 public static final Resource resource = Mockito.mock(Resource.class);
150 private Gson gson = new GsonBuilder().setPrettyPrinting().create();
152 private static List<ArtifactType> getAllTypes() {
153 List<ArtifactType> artifactTypes = new ArrayList<>();
154 List<String> artifactTypesList = ConfigurationManager.getConfigurationManager().getConfiguration()
156 for (String artifactType : artifactTypesList) {
157 ArtifactType artifactT = new ArtifactType();
158 artifactT.setName(artifactType);
159 artifactTypes.add(artifactT);
161 return artifactTypes;
165 public void initMocks() {
166 MockitoAnnotations.initMocks(this);
167 Either<ArtifactDefinition, StorageOperationStatus> NotFoundResult = Either
168 .right(StorageOperationStatus.NOT_FOUND);
170 Either<Map<String, ArtifactDefinition>, StorageOperationStatus> NotFoundResult2 = Either
171 .right(StorageOperationStatus.NOT_FOUND);
172 when(artifactOperation.getArtifacts(Mockito.anyString(), eq(NodeTypeEnum.Service), Mockito.anyBoolean()))
173 .thenReturn(NotFoundResult2);
174 when(artifactOperation.getArtifacts(Mockito.anyString(), eq(NodeTypeEnum.Resource), Mockito.anyBoolean()))
175 .thenReturn(NotFoundResult2);
177 Either<Map<String, InterfaceDefinition>, StorageOperationStatus> notFoundInterfaces = Either
178 .right(StorageOperationStatus.NOT_FOUND);
179 when(lifecycleOperation.getAllInterfacesOfResource(Mockito.anyString(), Mockito.anyBoolean()))
180 .thenReturn(notFoundInterfaces);
182 Either<User, ActionStatus> getUserResult = Either.left(USER);
184 when(userOperation.getUserData("jh0003", false)).thenReturn(getUserResult);
186 Either<List<ArtifactType>, ActionStatus> getType = Either.left(getAllTypes());
187 when(elementOperation.getAllArtifactTypes()).thenReturn(getType);
189 when(resource.getResourceType()).thenReturn(ResourceTypeEnum.VFC);
191 // User data and management
193 user.setUserId("jh0003");
194 user.setFirstName("Jimmi");
195 user.setLastName("Hendrix");
196 user.setRole(Role.ADMIN.name());
199 resourceResponse = createResourceObject(true);
200 Either<Resource, StorageOperationStatus> eitherCreate = Either.left(resourceResponse);
201 when(toscaOperationFacade.createToscaComponent(any(Resource.class))).thenReturn(eitherCreate);
202 when(toscaOperationFacade.validateCsarUuidUniqueness(Mockito.anyString())).thenReturn(StorageOperationStatus.OK);
203 Map<String, DataTypeDefinition> emptyDataTypes = new HashMap<>();
204 when(applicationDataTypeCache.getAll()).thenReturn(Either.left(emptyDataTypes));
205 when(mockTitanDao.commit()).thenReturn(TitanOperationStatus.OK);
207 Either<Component, StorageOperationStatus> resourceStorageOperationStatusEither = Either
208 .right(StorageOperationStatus.BAD_REQUEST);
209 when(toscaOperationFacade.getToscaElement(resourceResponse.getUniqueId()))
210 .thenReturn(resourceStorageOperationStatusEither);
214 public void testValidJson() {
215 ArtifactDefinition ad = createArtifactDef();
217 String jsonArtifact = "";
219 ObjectMapper mapper = new ObjectMapper();
220 mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
221 mapper.configure(SerializationFeature.FAIL_ON_EMPTY_BEANS, false);
222 mapper.setSerializationInclusion(JsonInclude.Include.NON_NULL);
225 jsonArtifact = mapper.writeValueAsString(ad);
226 } catch (IOException e) {
227 // TODO Auto-generated catch block
231 ArtifactDefinition afterConvert = RepresentationUtils.convertJsonToArtifactDefinition(jsonArtifact,
232 ArtifactDefinition.class);
233 assertEquals(ad, afterConvert);
236 private ArtifactDefinition createArtifactDef() {
237 ArtifactDefinition ad = new ArtifactDefinition();
238 ad.setArtifactName("artifact1.yaml");
239 ad.setArtifactLabel("label1");
240 ad.setDescription("description");
241 ad.setArtifactType(ArtifactTypeEnum.HEAT.getType());
242 ad.setArtifactGroupType(ArtifactGroupTypeEnum.DEPLOYMENT);
243 ad.setCreationDate(System.currentTimeMillis());
244 ad.setMandatory(false);
249 private Resource createResourceObject(boolean afterCreate) {
250 Resource resource = new Resource();
251 resource.setName(RESOURCE_NAME);
252 resource.addCategory(RESOURCE_CATEGORY1, RESOURCE_SUBCATEGORY);
253 resource.setDescription("My short description");
254 List<String> tgs = new ArrayList<String>();
256 tgs.add(resource.getName());
257 resource.setTags(tgs);
258 List<String> template = new ArrayList<String>();
259 template.add("Root");
260 resource.setDerivedFrom(template);
261 resource.setVendorName("Motorola");
262 resource.setVendorRelease("1.0.0");
263 resource.setContactId("ya5467");
264 resource.setIcon("MyIcon");
267 resource.setName(resource.getName());
268 resource.setVersion("0.1");
269 resource.setUniqueId(resource.getName().toLowerCase() + ":" + resource.getVersion());
270 resource.setCreatorUserId(user.getUserId());
271 resource.setCreatorFullName(user.getFirstName() + " " + user.getLastName());
272 resource.setLifecycleState(LifecycleStateEnum.NOT_CERTIFIED_CHECKOUT);
278 public void testInvalidStringGroupType() {
279 ArtifactDefinition ad = new ArtifactDefinition();
280 ad.setArtifactName("artifact1");
281 ad.setCreationDate(System.currentTimeMillis());
282 ad.setMandatory(false);
285 JsonElement jsonArtifact = gson.toJsonTree(ad);
286 jsonArtifact.getAsJsonObject().addProperty("artifactGroupType", "www");
288 ArtifactDefinition afterConvert = RepresentationUtils.convertJsonToArtifactDefinition(jsonArtifact.toString(),
289 ArtifactDefinition.class);
290 assertNull(afterConvert);
294 public void testInvalidNumberGroupType() {
295 ArtifactDefinition ad = new ArtifactDefinition();
296 ad.setArtifactName("artifact1");
297 ad.setCreationDate(System.currentTimeMillis());
298 ad.setMandatory(false);
301 JsonElement jsonArtifact = gson.toJsonTree(ad);
302 jsonArtifact.getAsJsonObject().addProperty("artifactGroupType", 123);
304 ArtifactDefinition afterConvert = RepresentationUtils.convertJsonToArtifactDefinition(jsonArtifact.toString(),
305 ArtifactDefinition.class);
306 assertNull(afterConvert);
310 public void testInvalidGroupTypeWithSpace() {
311 ArtifactDefinition ad = new ArtifactDefinition();
312 ad.setArtifactName("artifact1");
313 ad.setCreationDate(System.currentTimeMillis());
314 ad.setMandatory(false);
317 JsonElement jsonArtifact = gson.toJsonTree(ad);
318 jsonArtifact.getAsJsonObject().addProperty("artifactGroupType", " DEPLOYMENT");
320 ArtifactDefinition afterConvert = RepresentationUtils.convertJsonToArtifactDefinition(jsonArtifact.toString(),
321 ArtifactDefinition.class);
322 assertNull(afterConvert);
326 public void testInvalidTimeoutWithSpace() {
327 ArtifactDefinition ad = new ArtifactDefinition();
328 ad.setArtifactName("artifact1");
329 ad.setArtifactGroupType(ArtifactGroupTypeEnum.DEPLOYMENT);
330 ad.setCreationDate(System.currentTimeMillis());
331 ad.setMandatory(false);
333 JsonElement jsonArtifact = gson.toJsonTree(ad);
334 jsonArtifact.getAsJsonObject().addProperty("timeout", "dfsdf15");
336 ArtifactDefinition afterConvert = RepresentationUtils.convertJsonToArtifactDefinition(jsonArtifact.toString(),
337 ArtifactDefinition.class);
338 assertNull(afterConvert);
342 public void testValidMibAritactsConfiguration() {
343 Map<String, ArtifactTypeConfig> componentDeploymentArtifacts = ConfigurationManager.getConfigurationManager()
344 .getConfiguration().getResourceDeploymentArtifacts();
345 Map<String, ArtifactTypeConfig> componentInstanceDeploymentArtifacts = ConfigurationManager
346 .getConfigurationManager().getConfiguration().getResourceInstanceDeploymentArtifacts();
347 assertTrue(componentDeploymentArtifacts.containsKey(ArtifactTypeEnum.SNMP_POLL.getType()));
348 assertTrue(componentDeploymentArtifacts.containsKey(ArtifactTypeEnum.SNMP_TRAP.getType()));
349 assertTrue(componentInstanceDeploymentArtifacts.containsKey(ArtifactTypeEnum.SNMP_POLL.getType()));
350 assertTrue(componentInstanceDeploymentArtifacts.containsKey(ArtifactTypeEnum.SNMP_TRAP.getType()));
354 public void testDownloadServiceArtifactByNames() {
355 Service service = new Service();
356 String serviceName = "myService";
357 String serviceVersion = "1.0";
358 String serviceId = "serviceId";
359 service.setName(serviceName);
360 service.setVersion(serviceVersion);
361 service.setUniqueId(serviceId);
363 String artifactName = "service-Myservice-template.yml";
364 String artifactLabel = "assettoscatemplate";
365 String esArtifactId = "123123dfgdfgd0";
366 byte[] payload = "some payload".getBytes();
367 ArtifactDefinition toscaTemplateArtifact = new ArtifactDefinition();
368 toscaTemplateArtifact.setArtifactName(artifactName);
369 toscaTemplateArtifact.setArtifactType(ArtifactTypeEnum.TOSCA_TEMPLATE.getType());
370 toscaTemplateArtifact.setArtifactLabel(artifactLabel);
371 toscaTemplateArtifact.setEsId(esArtifactId);
372 toscaTemplateArtifact.setPayload(payload);
374 Map<String, ArtifactDefinition> toscaArtifacts = new HashMap<>();
375 toscaArtifacts.put(artifactLabel, toscaTemplateArtifact);
376 service.setToscaArtifacts(toscaArtifacts);
378 ESArtifactData esArtifactData = new ESArtifactData(esArtifactId);
379 esArtifactData.setDataAsArray(payload);
380 Either<ESArtifactData, CassandraOperationStatus> artifactfromESres = Either.left(esArtifactData);
381 when(artifactCassandraDao.getArtifact(esArtifactId)).thenReturn(artifactfromESres);
382 List<org.openecomp.sdc.be.model.Component> serviceList = new ArrayList<>();
383 serviceList.add(service);
384 Either<List<org.openecomp.sdc.be.model.Component>, StorageOperationStatus> getServiceRes = Either
386 when(toscaOperationFacade.getBySystemName(ComponentTypeEnum.SERVICE, serviceName)).thenReturn(getServiceRes);
387 Either<byte[], ResponseFormat> downloadServiceArtifactByNamesRes = artifactBL
388 .downloadServiceArtifactByNames(serviceName, serviceVersion, artifactName);
389 assertTrue(downloadServiceArtifactByNamesRes.isLeft());
390 assertTrue(downloadServiceArtifactByNamesRes.left().value() != null
391 && downloadServiceArtifactByNamesRes.left().value().length == payload.length);
395 public void createHeatEnvPlaceHolder_vf_emptyHeatParameters() throws Exception {
396 ArtifactDefinition heatArtifact = new ArtifactBuilder()
397 .addHeatParam(ObjectGenerator.buildHeatParam("defVal1", "val1"))
398 .addHeatParam(ObjectGenerator.buildHeatParam("defVal2", "val2")).build();
400 Resource component = new Resource();
401 component.setComponentType(ComponentTypeEnum.RESOURCE);
402 when(userBusinessLogic.getUser(anyString(), anyBoolean())).thenReturn(Either.left(USER));
403 when(artifactsOperations.addHeatEnvArtifact(any(ArtifactDefinition.class), any(ArtifactDefinition.class),
404 eq(component.getUniqueId()), eq(NodeTypeEnum.Resource), eq(true), eq("parentId")))
405 .thenReturn(Either.left(new ArtifactDefinition()));
406 Either<ArtifactDefinition, ResponseFormat> heatEnvPlaceHolder = artifactBL.createHeatEnvPlaceHolder(
407 heatArtifact, HEAT_VF_ENV_NAME, "parentId", NodeTypeEnum.Resource, "parentName", USER, component,
408 Collections.emptyMap());
409 assertTrue(heatEnvPlaceHolder.isLeft());
410 assertNull(heatEnvPlaceHolder.left().value().getListHeatParameters());
414 public void createHeatEnvPlaceHolder_resourceInstance_copyHeatParamasCurrValuesToHeatEnvDefaultVal()
416 HeatParameterDefinition heatParam1 = ObjectGenerator.buildHeatParam("defVal1", "val1");
417 HeatParameterDefinition heatParam2 = ObjectGenerator.buildHeatParam("defVal2", "val2");
418 HeatParameterDefinition heatParam3 = ObjectGenerator.buildHeatParam("defVal3", "val3");
419 ArtifactDefinition heatArtifact = new ArtifactBuilder().addHeatParam(heatParam1).addHeatParam(heatParam2)
420 .addHeatParam(heatParam3).build();
422 Resource component = new Resource();
424 when(userBusinessLogic.getUser(anyString(), anyBoolean())).thenReturn(Either.left(USER));
425 when(artifactsOperations.addHeatEnvArtifact(any(ArtifactDefinition.class), any(ArtifactDefinition.class),
426 eq(component.getUniqueId()), eq(NodeTypeEnum.Resource), eq(true), eq("parentId")))
427 .thenReturn(Either.left(new ArtifactDefinition()));
429 Either<ArtifactDefinition, ResponseFormat> heatEnvPlaceHolder = artifactBL.createHeatEnvPlaceHolder(
430 heatArtifact, HEAT_ENV_NAME, "parentId", NodeTypeEnum.ResourceInstance, "parentName", USER, component,
431 Collections.emptyMap());
433 assertTrue(heatEnvPlaceHolder.isLeft());
434 ArtifactDefinition heatEnvArtifact = heatEnvPlaceHolder.left().value();
435 List<HeatParameterDefinition> listHeatParameters = heatEnvArtifact.getListHeatParameters();
436 assertEquals(listHeatParameters.size(), 3);
437 verifyHeatParam(listHeatParameters.get(0), heatParam1);
438 verifyHeatParam(listHeatParameters.get(1), heatParam2);
439 verifyHeatParam(listHeatParameters.get(2), heatParam3);
443 public void buildArtifactPayloadWhenShouldLockAndInTransaction() {
444 ArtifactDefinition artifactDefinition = new ArtifactDefinition();
445 artifactDefinition.setArtifactName(ARTIFACT_NAME);
446 artifactDefinition.setArtifactType(ArtifactTypeEnum.TOSCA_TEMPLATE.getType());
447 artifactDefinition.setArtifactLabel(ARTIFACT_LABEL);
448 artifactDefinition.setEsId(ES_ARTIFACT_ID);
449 artifactDefinition.setPayload(PAYLOAD);
450 artifactDefinition.setArtifactGroupType(ArtifactGroupTypeEnum.TOSCA);
452 when(graphLockOperation.lockComponent(any(), any())).thenReturn(StorageOperationStatus.OK);
453 when(artifactsOperations.updateArtifactOnResource(any(ArtifactDefinition.class), any(), any(),
454 any(NodeTypeEnum.class), any(String.class))).thenReturn(Either.left(artifactDefinition));
455 when(artifactCassandraDao.saveArtifact(any())).thenReturn(CassandraOperationStatus.OK);
456 when(componentsUtils.getResponseFormat(any(ActionStatus.class))).thenReturn(new ResponseFormat());
457 artifactBL.generateAndSaveHeatEnvArtifact(artifactDefinition, String.valueOf(PAYLOAD),
458 ComponentTypeEnum.SERVICE, new Service(), RESOURCE_INSTANCE_NAME, USER, INSTANCE_ID, true, true);
462 public void buildArtifactPayloadWhenShouldLockAndNotInTransaction() {
463 ArtifactDefinition artifactDefinition = new ArtifactDefinition();
464 artifactDefinition.setArtifactName(ARTIFACT_NAME);
465 artifactDefinition.setArtifactType(ArtifactTypeEnum.TOSCA_TEMPLATE.getType());
466 artifactDefinition.setArtifactLabel(ARTIFACT_LABEL);
467 artifactDefinition.setEsId(ES_ARTIFACT_ID);
468 artifactDefinition.setPayload(PAYLOAD);
469 artifactDefinition.setArtifactGroupType(ArtifactGroupTypeEnum.TOSCA);
471 when(graphLockOperation.lockComponent(any(), any())).thenReturn(StorageOperationStatus.OK);
472 when(artifactsOperations.updateArtifactOnResource(any(ArtifactDefinition.class), any(), any(),
473 any(NodeTypeEnum.class), any(String.class))).thenReturn(Either.left(artifactDefinition));
474 when(artifactCassandraDao.saveArtifact(any())).thenReturn(CassandraOperationStatus.OK);
475 when(componentsUtils.getResponseFormat(any(ActionStatus.class))).thenReturn(new ResponseFormat());
476 artifactBL.generateAndSaveHeatEnvArtifact(artifactDefinition, String.valueOf(PAYLOAD),
477 ComponentTypeEnum.SERVICE, new Service(), RESOURCE_INSTANCE_NAME, USER, INSTANCE_ID, true, false);
478 verify(titanDao, times(1)).commit();
482 private ArtifactDefinition buildArtifactPayload() {
483 ArtifactDefinition artifactDefinition = new ArtifactDefinition();
484 artifactDefinition.setArtifactName(ARTIFACT_NAME);
485 artifactDefinition.setArtifactType(ArtifactTypeEnum.TOSCA_TEMPLATE.getType());
486 artifactDefinition.setArtifactLabel(ARTIFACT_LABEL);
487 artifactDefinition.setEsId(ES_ARTIFACT_ID);
488 artifactDefinition.setPayload(PAYLOAD);
489 artifactDefinition.setArtifactGroupType(ArtifactGroupTypeEnum.TOSCA);
491 when(graphLockOperation.lockComponent(any(), any())).thenReturn(StorageOperationStatus.OK);
492 when(artifactsOperations.updateArtifactOnResource(any(ArtifactDefinition.class), any(), any(),
493 any(NodeTypeEnum.class), any(String.class))).thenReturn(Either.left(artifactDefinition));
494 when(artifactCassandraDao.saveArtifact(any())).thenReturn(CassandraOperationStatus.OK);
495 when(componentsUtils.getResponseFormat(any(ActionStatus.class))).thenReturn(new ResponseFormat());
496 artifactBL.generateAndSaveHeatEnvArtifact(artifactDefinition, String.valueOf(PAYLOAD),
497 ComponentTypeEnum.SERVICE, new Service(), RESOURCE_INSTANCE_NAME, USER, INSTANCE_ID, true, false);
498 verify(titanDao, times(1)).commit();
499 return artifactDefinition;
502 private void verifyHeatParam(HeatParameterDefinition heatEnvParam, HeatParameterDefinition heatYamlParam) {
503 assertEquals(heatEnvParam.getDefaultValue(), heatYamlParam.getCurrentValue());
504 assertNull(heatEnvParam.getCurrentValue());
507 private ArtifactsBusinessLogic createTestSubject() {
508 return new ArtifactsBusinessLogic();
512 public void testBuildJsonStringForCsarVfcArtifact() throws Exception {
513 ArtifactsBusinessLogic testSubject;
514 ArtifactDefinition artifact = new ArtifactDefinition();
518 testSubject = createTestSubject();
519 result = Deencapsulation.invoke(testSubject, "buildJsonStringForCsarVfcArtifact", new Object[] { artifact });
523 public void testCheckArtifactInComponent() throws Exception {
524 ArtifactsBusinessLogic testSubject;
525 Component component = new Resource();
526 component.setComponentType(ComponentTypeEnum.RESOURCE);
527 String artifactId = "";
531 testSubject = createTestSubject();
532 result = Deencapsulation.invoke(testSubject, "checkArtifactInComponent",
533 new Object[] { component, artifactId });
539 public void testCheckCreateFields() throws Exception {
540 ArtifactsBusinessLogic testSubject;
542 ArtifactDefinition artifactInfo = buildArtifactPayload();
543 ArtifactGroupTypeEnum type = ArtifactGroupTypeEnum.DEPLOYMENT;
546 testSubject = createTestSubject();
547 Deencapsulation.invoke(testSubject, "checkCreateFields", new Object[] { user, artifactInfo, type });
552 public void testComposeArtifactId() throws Exception {
553 ArtifactsBusinessLogic testSubject;
554 String resourceId = "";
555 String artifactId = "";
556 ArtifactDefinition artifactInfo = buildArtifactPayload();
558 String interfaceName = "";
559 String operationName = "";
563 testSubject = createTestSubject();
564 result = Deencapsulation.invoke(testSubject, "composeArtifactId",
565 new Object[] { resourceId, artifactId, artifactInfo, interfaceName, operationName });
569 public void testConvertParentType() throws Exception {
570 ArtifactsBusinessLogic testSubject;
571 ComponentTypeEnum componentType = ComponentTypeEnum.RESOURCE;
575 testSubject = createTestSubject();
576 result = Deencapsulation.invoke(testSubject, "convertParentType", new Object[] { componentType });
580 public void testConvertToOperation() throws Exception {
581 ArtifactsBusinessLogic testSubject;
582 ArtifactDefinition artifactInfo = buildArtifactPayload();
583 String operationName = "";
587 testSubject = createTestSubject();
588 result = Deencapsulation.invoke(testSubject, "convertToOperation",
589 new Object[] { artifactInfo, operationName });
593 public void testCreateInterfaceArtifactNameFromOperation() throws Exception {
594 ArtifactsBusinessLogic testSubject;
595 String operationName = "";
596 String artifactName = "";
600 testSubject = createTestSubject();
601 result = Deencapsulation.invoke(testSubject, "createInterfaceArtifactNameFromOperation",
602 new Object[] { operationName, artifactName });
606 public void testFetchArtifactsFromComponent() throws Exception {
607 ArtifactsBusinessLogic testSubject;
608 String artifactId = "";
609 Component component = createResourceObject(true);
610 Map<String, ArtifactDefinition> artifacts = new HashMap<>();
613 testSubject = createTestSubject();
614 Deencapsulation.invoke(testSubject, "fetchArtifactsFromComponent",
615 new Object[] { artifactId, component, artifacts });
626 public void testValidateArtifact() throws Exception {
627 ArtifactsBusinessLogic testSubject;String componentId = "";
628 ComponentTypeEnum componentType = ComponentTypeEnum.RESOURCE;
629 ArtifactsBusinessLogic arb = new ArtifactsBusinessLogic();
630 ArtifactOperationInfo operation = arb.new ArtifactOperationInfo(false, false, ArtifactOperationEnum.CREATE);
631 String artifactId = "";
632 ArtifactDefinition artifactInfo = buildArtifactPayload();
633 AuditingActionEnum auditingAction = AuditingActionEnum.ADD_CATEGORY;
635 Component component = createResourceObject(true);
636 Wrapper<ResponseFormat> errorWrapper = new Wrapper<>();
637 boolean shouldLock = false;
638 boolean inTransaction = false;
639 ArtifactDefinition result;
642 testSubject=createTestSubject();result=Deencapsulation.invoke(testSubject, "validateArtifact", new Object[]{componentId, componentType, operation, artifactId, artifactInfo, auditingAction, user, component, component, errorWrapper, shouldLock, inTransaction});
647 public void testHandleHeatEnvDownload() throws Exception {
648 ArtifactsBusinessLogic testSubject;String componentId = "";
649 ComponentTypeEnum componentType = ComponentTypeEnum.RESOURCE;
651 Component component = createResourceObject(true);
652 ArtifactDefinition artifactInfo = buildArtifactPayload();
653 Either<ArtifactDefinition,ResponseFormat> validateArtifact = Either.left(artifactInfo);
654 Wrapper<ResponseFormat> errorWrapper = new Wrapper<>();
655 boolean shouldLock = false;
656 boolean inTransaction = false;
660 testSubject=createTestSubject();Deencapsulation.invoke(testSubject, "handleHeatEnvDownload", new Object[]{componentId, componentType, user, component, validateArtifact, errorWrapper, shouldLock, inTransaction});
665 public void testArtifactGenerationRequired() throws Exception {
666 ArtifactsBusinessLogic testSubject;
667 Component component = createResourceObject(true);
668 ArtifactDefinition artifactInfo = buildArtifactPayload();
672 testSubject = createTestSubject();
673 result = Deencapsulation.invoke(testSubject, "artifactGenerationRequired",
674 new Object[] { component, artifactInfo });
679 public void testUpdateGroupForHeat() throws Exception {
680 ArtifactsBusinessLogic testSubject;
681 ArtifactDefinition artifactInfo = buildArtifactPayload();
682 ArtifactDefinition artAfterUpdate = null;
683 Component component = createResourceObject(true);
684 ComponentTypeEnum componentType = ComponentTypeEnum.RESOURCE;
688 testSubject = createTestSubject();
689 result = Deencapsulation.invoke(testSubject, "updateGroupForHeat", new Object[] { artifactInfo,
690 artifactInfo, component,componentType});
695 public void testUpdateGroupForHeat_1() throws Exception {
696 ArtifactsBusinessLogic testSubject;
697 ArtifactDefinition artifactInfo = buildArtifactPayload();;;
698 Component component = createResourceObject(true);
699 ComponentTypeEnum componentType = ComponentTypeEnum.RESOURCE;
703 testSubject = createTestSubject();
704 result = Deencapsulation.invoke(testSubject, "updateGroupForHeat",
705 new Object[] { artifactInfo, artifactInfo, artifactInfo,
706 artifactInfo, component,componentType});
712 public void testHandleAuditing() throws Exception {
713 ArtifactsBusinessLogic testSubject;
714 AuditingActionEnum auditingActionEnum = AuditingActionEnum.ACTIVATE_SERVICE_BY_API;
715 Component component = createResourceObject(true);
716 String componentId = "";
718 ArtifactDefinition artifactDefinition = buildArtifactPayload();;;
719 String prevArtifactUuid = "";
720 String currentArtifactUuid = "";
721 ResponseFormat responseFormat = new ResponseFormat();
722 ComponentTypeEnum componentTypeEnum = ComponentTypeEnum.RESOURCE;
723 String resourceInstanceName = "";
726 testSubject = createTestSubject();
727 testSubject.setComponentsUtils(MockGenerator.mockComponentUtils());
728 testSubject.handleAuditing(auditingActionEnum, component, componentId, user, artifactDefinition,
729 prevArtifactUuid, currentArtifactUuid, responseFormat, componentTypeEnum, resourceInstanceName);
733 public void testIgnoreUnupdateableFieldsInUpdate() throws Exception {
734 ArtifactsBusinessLogic testSubject;
735 ArtifactsBusinessLogic arb = new ArtifactsBusinessLogic();
736 ArtifactOperationInfo operation = arb.new ArtifactOperationInfo(false, false, ArtifactOperationEnum.CREATE);
737 ArtifactDefinition artifactInfo = buildArtifactPayload();
738 ArtifactDefinition currentArtifactInfo = null;
741 testSubject = createTestSubject();
742 Deencapsulation.invoke(testSubject, "ignoreUnupdateableFieldsInUpdate",
743 new Object[] { operation, artifactInfo, artifactInfo });
748 public void testFindArtifactOnParentComponent() throws Exception {
749 ArtifactsBusinessLogic testSubject;
750 Component component = createResourceObject(true);
751 ComponentTypeEnum componentType = ComponentTypeEnum.RESOURCE;
752 String parentId = "";
753 ArtifactsBusinessLogic arb = new ArtifactsBusinessLogic();
754 ArtifactOperationInfo operation = arb.new ArtifactOperationInfo(false, false, ArtifactOperationEnum.CREATE);
755 String artifactId = "";
756 Either<ArtifactDefinition, ResponseFormat> result;
759 testSubject = createTestSubject();
760 result = Deencapsulation.invoke(testSubject, "findArtifactOnParentComponent", new Object[] { component,
761 componentType, parentId, operation, artifactId });
768 public void testValidateInformationalArtifact() throws Exception {
769 ArtifactsBusinessLogic testSubject;
770 ArtifactDefinition artifactInfo = buildArtifactPayload();
771 Component component = createResourceObject(true);
772 Either<Boolean, ResponseFormat> result;
775 testSubject = createTestSubject();
776 result = Deencapsulation.invoke(testSubject, "validateInformationalArtifact",
777 new Object[] { artifactInfo, component });
786 public void testGetUpdatedGroups() throws Exception {
787 ArtifactsBusinessLogic testSubject;String artifactId = "";
788 ArtifactDefinition artifactInfo = buildArtifactPayload();
789 List<GroupDefinition> groups = new ArrayList<>();
790 List<GroupDataDefinition> result;
793 testSubject=createTestSubject();
794 result=Deencapsulation.invoke(testSubject, "getUpdatedGroups", new Object[]{artifactId, artifactInfo, groups});
799 public void testGetUpdatedGroupInstances() throws Exception {
800 ArtifactsBusinessLogic testSubject;String artifactId = "";
801 ArtifactDefinition artifactInfo = buildArtifactPayload();
802 List<GroupDefinition> groups = new ArrayList<>();
803 List<GroupInstance> result;
806 testSubject=createTestSubject();result=Deencapsulation.invoke(testSubject, "getUpdatedGroupInstances", new Object[]{artifactId, artifactInfo, groups});
813 public void testFindArtifact_1() throws Exception {
814 ArtifactsBusinessLogic testSubject;
815 String artifactId = "";
816 Component component = createResourceObject(true);
817 String parentId = "";
818 ComponentTypeEnum componentType = ComponentTypeEnum.RESOURCE;
819 Either<ImmutablePair<ArtifactDefinition, ComponentInstance>, ActionStatus> result;
822 testSubject = createTestSubject();
823 result = Deencapsulation.invoke(testSubject, "findArtifact",
824 new Object[] { artifactId, component, parentId, componentType });
829 public void testFetchArtifactsFromInstance() throws Exception {
830 ArtifactsBusinessLogic testSubject;String artifactId = "";
831 Map<String,ArtifactDefinition> artifacts = new HashMap<>();
832 ComponentInstance instance = new ComponentInstance();
836 testSubject=createTestSubject();Deencapsulation.invoke(testSubject, "fetchArtifactsFromInstance", new Object[]{artifactId, artifacts, instance});
843 public void testGenerateCustomizationUUIDOnInstance() throws Exception {
844 ArtifactsBusinessLogic testSubject;
845 String componentId = "";
846 String instanceId = "";
847 ComponentTypeEnum componentType = ComponentTypeEnum.RESOURCE;
848 StorageOperationStatus result;
851 testSubject = createTestSubject();
852 result = Deencapsulation.invoke(testSubject, "generateCustomizationUUIDOnInstance",
853 new Object[] { componentId, instanceId, componentType });
859 public void testFindComponentInstance() throws Exception {
860 ArtifactsBusinessLogic testSubject;
861 String componentInstanceId = "";
862 Component component = createResourceObject(true);;
863 ComponentInstance result;
866 testSubject = createTestSubject();
867 result = Deencapsulation.invoke(testSubject, "findComponentInstance",
868 new Object[] { componentInstanceId, component });
873 public void testValidateDeploymentArtifactConf() throws Exception {
874 ArtifactsBusinessLogic testSubject;ArtifactDefinition artifactInfo = buildArtifactPayload();
875 Wrapper<ResponseFormat> responseWrapper = new Wrapper<>();
876 ArtifactTypeEnum artifactType = ArtifactTypeEnum.AAI_SERVICE_MODEL;
877 Map<String,ArtifactTypeConfig> resourceDeploymentArtifacts = new HashMap<>();
881 testSubject=createTestSubject();
882 Deencapsulation.invoke(testSubject, "validateDeploymentArtifactConf", new Object[]{artifactInfo, responseWrapper, artifactType, resourceDeploymentArtifacts});
887 public void testFillDeploymentArtifactTypeConf() throws Exception {
888 ArtifactsBusinessLogic testSubject;
889 NodeTypeEnum parentType = NodeTypeEnum.AdditionalInfoParameters;
890 Map<String, ArtifactTypeConfig> result;
893 testSubject = createTestSubject();
894 result = Deencapsulation.invoke(testSubject, "fillDeploymentArtifactTypeConf",
895 new Object[] { parentType });
900 public void testValidateArtifactTypeExists() throws Exception {
901 ArtifactsBusinessLogic testSubject;
902 Wrapper<ResponseFormat> responseWrapper = null;
903 ArtifactDefinition artifactInfo = buildArtifactPayload();
906 testSubject = createTestSubject();
907 testSubject.validateArtifactTypeExists(responseWrapper, artifactInfo);
912 public void testGetDeploymentArtifactTypeConfig() throws Exception {
913 ArtifactsBusinessLogic testSubject;
914 NodeTypeEnum parentType = NodeTypeEnum.AdditionalInfoParameters;
915 ArtifactTypeEnum artifactType = ArtifactTypeEnum.AAI_SERVICE_MODEL;
916 ArtifactTypeConfig result;
919 testSubject = createTestSubject();
920 result = Deencapsulation.invoke(testSubject, "getDeploymentArtifactTypeConfig",
921 new Object[] { parentType,artifactType });
928 public void testValidateHeatEnvDeploymentArtifact() throws Exception {
929 ArtifactsBusinessLogic testSubject;
930 Component component = createResourceObject(true);
931 String parentId = "";
932 ArtifactDefinition artifactInfo = buildArtifactPayload();
933 NodeTypeEnum parentType = NodeTypeEnum.AdditionalInfoParameters;
934 Either<Boolean, ResponseFormat> result;
937 testSubject = createTestSubject();
938 result = Deencapsulation.invoke(testSubject, "validateHeatEnvDeploymentArtifact",
939 new Object[] { component, parentId, artifactInfo, parentType });
944 public void testFillArtifactPayloadValidation() throws Exception {
945 ArtifactsBusinessLogic testSubject;
946 Wrapper<ResponseFormat> errorWrapper = new Wrapper<>();
947 Wrapper<byte[]> payloadWrapper = new Wrapper<>();;
948 ArtifactDefinition artifactDefinition = buildArtifactPayload();
951 testSubject = createTestSubject();
952 testSubject.fillArtifactPayloadValidation(errorWrapper, payloadWrapper, artifactDefinition);
962 public void testValidateValidYaml() throws Exception {
963 ArtifactsBusinessLogic testSubject;Wrapper<ResponseFormat> errorWrapper = new Wrapper<>();
964 ArtifactDefinition artifactInfo = buildArtifactPayload();
968 testSubject=createTestSubject();Deencapsulation.invoke(testSubject, "validateValidYaml", new Object[]{errorWrapper, artifactInfo});
973 public void testIsValidXml() throws Exception {
974 ArtifactsBusinessLogic testSubject;
975 byte[] xmlToParse = new byte[] { ' ' };
979 testSubject = createTestSubject();
980 result = Deencapsulation.invoke(testSubject, "isValidXml", new Object[] { xmlToParse });
988 public void testIsValidJson() throws Exception {
989 ArtifactsBusinessLogic testSubject;
990 byte[] jsonToParse = new byte[] { ' ' };
994 testSubject = createTestSubject();
995 result = Deencapsulation.invoke(testSubject, "isValidJson", new Object[] { jsonToParse });
1000 public void testValidateSingleDeploymentArtifactName() throws Exception {
1001 ArtifactsBusinessLogic testSubject;Wrapper<ResponseFormat> errorWrapper = new Wrapper<>();
1002 String artifactName = "";
1003 Component component = createResourceObject(true);
1004 NodeTypeEnum parentType = null;
1008 testSubject=createTestSubject();Deencapsulation.invoke(testSubject, "validateSingleDeploymentArtifactName", new Object[]{errorWrapper, artifactName, component, NodeTypeEnum.class});
1014 public void testValidateHeatDeploymentArtifact() throws Exception {
1015 ArtifactsBusinessLogic testSubject;
1016 boolean isCreate = false;
1017 ArtifactDefinition artifactInfo = buildArtifactPayload();
1018 ArtifactDefinition currentArtifact = null;
1019 Either<Boolean, ResponseFormat> result;
1022 testSubject = createTestSubject();
1023 result = Deencapsulation.invoke(testSubject, "validateHeatDeploymentArtifact",
1024 new Object[] { isCreate, artifactInfo, artifactInfo });
1029 public void testValidateResourceType() throws Exception {
1030 ArtifactsBusinessLogic testSubject;
1031 ResourceTypeEnum resourceType = ResourceTypeEnum.VF;
1032 ArtifactDefinition artifactInfo = buildArtifactPayload();
1033 List<String> typeList = new ArrayList<>();
1034 Either<Boolean,ResponseFormat> result;
1037 testSubject=createTestSubject();
1038 result=Deencapsulation.invoke(testSubject, "validateResourceType", new Object[]{resourceType, artifactInfo, typeList});
1043 public void testValidateAndConvertHeatParamers() throws Exception {
1044 ArtifactsBusinessLogic testSubject;
1045 ArtifactDefinition artifactInfo = buildArtifactPayload();
1046 String artifactType = "";
1047 Either<ArtifactDefinition, ResponseFormat> result;
1050 testSubject = createTestSubject();
1051 result = Deencapsulation.invoke(testSubject, "validateAndConvertHeatParamers",
1052 new Object[] { artifactInfo, artifactType });
1057 public void testGetDeploymentArtifacts() throws Exception {
1058 ArtifactsBusinessLogic testSubject;
1059 Component component = createResourceObject(true);
1060 NodeTypeEnum parentType = null;
1062 List<ArtifactDefinition> result;
1065 testSubject = createTestSubject();
1066 result = testSubject.getDeploymentArtifacts(component, parentType, ciId);
1072 public void testValidateFirstUpdateHasPayload() throws Exception {
1073 ArtifactsBusinessLogic testSubject;
1074 ArtifactDefinition artifactInfo = buildArtifactPayload();
1075 ArtifactDefinition currentArtifact = null;
1076 Either<Boolean, ResponseFormat> result;
1079 testSubject = createTestSubject();
1080 result = Deencapsulation.invoke(testSubject, "validateFirstUpdateHasPayload",
1081 new Object[] { artifactInfo, artifactInfo });
1085 public void testValidateAndSetArtifactname() throws Exception {
1086 ArtifactsBusinessLogic testSubject;
1087 ArtifactDefinition artifactInfo = buildArtifactPayload();
1088 Either<Boolean, ResponseFormat> result;
1091 testSubject = createTestSubject();
1092 result = Deencapsulation.invoke(testSubject, "validateAndSetArtifactname",
1093 new Object[] { artifactInfo });
1097 public void testValidateArtifactTypeNotChanged() throws Exception {
1098 ArtifactsBusinessLogic testSubject;
1099 ArtifactDefinition artifactInfo = buildArtifactPayload();
1100 ArtifactDefinition currentArtifact = null;
1101 Either<Boolean, ResponseFormat> result;
1104 testSubject = createTestSubject();
1105 result = Deencapsulation.invoke(testSubject, "validateArtifactTypeNotChanged",
1106 new Object[] { artifactInfo, artifactInfo });
1111 public void testValidateOrSetArtifactGroupType() throws Exception {
1112 ArtifactsBusinessLogic testSubject;
1113 ArtifactDefinition artifactInfo = buildArtifactPayload();
1114 ArtifactDefinition currentArtifact = null;
1115 Either<ArtifactDefinition, ResponseFormat> result;
1118 testSubject = createTestSubject();
1119 result = Deencapsulation.invoke(testSubject, "validateOrSetArtifactGroupType",
1120 new Object[] { artifactInfo, artifactInfo });
1125 public void testCheckAndSetUnUpdatableFields() throws Exception {
1126 ArtifactsBusinessLogic testSubject;
1128 ArtifactDefinition artifactInfo = buildArtifactPayload();
1129 ArtifactDefinition currentArtifact = null;
1130 ArtifactGroupTypeEnum type = null;
1133 testSubject = createTestSubject();
1135 Deencapsulation.invoke(testSubject, "checkAndSetUnUpdatableFields", new Object[] { user,
1136 artifactInfo, artifactInfo, ArtifactGroupTypeEnum.class });
1141 public void testCheckAndSetUnupdatableHeatParams() throws Exception {
1142 ArtifactsBusinessLogic testSubject;
1143 List<HeatParameterDefinition> heatParameters = new ArrayList<>();
1144 List<HeatParameterDefinition> currentParameters = new ArrayList<>();
1148 testSubject=createTestSubject();Deencapsulation.invoke(testSubject, "checkAndSetUnupdatableHeatParams", new Object[]{heatParameters, currentParameters});
1153 public void testGetMapOfParameters() throws Exception {
1154 ArtifactsBusinessLogic testSubject;
1155 List<HeatParameterDefinition> currentParameters = new ArrayList<>();
1156 Map<String,HeatParameterDefinition> result;
1159 testSubject=createTestSubject();result=Deencapsulation.invoke(testSubject, "getMapOfParameters", new Object[]{currentParameters});
1168 public void testHandlePayload() throws Exception {
1169 ArtifactsBusinessLogic testSubject;
1170 ArtifactDefinition artifactInfo = buildArtifactPayload();
1171 boolean isArtifactMetadataUpdate = false;
1172 Either<byte[], ResponseFormat> result;
1175 testSubject = createTestSubject();
1176 result = Deencapsulation.invoke(testSubject, "handlePayload",
1177 new Object[] { artifactInfo, isArtifactMetadataUpdate });
1185 public void testValidateYmlPayload() throws Exception {
1186 ArtifactsBusinessLogic testSubject;
1187 byte[] decodedPayload = new byte[] { ' ' };
1188 String artifactType = "";
1189 Either<Boolean, ResponseFormat> result;
1192 testSubject = createTestSubject();
1193 result = Deencapsulation.invoke(testSubject, "validateYmlPayload",
1194 new Object[] { decodedPayload, artifactType });
1199 public void testValidateXmlPayload() throws Exception {
1200 ArtifactsBusinessLogic testSubject;
1201 byte[] payload = new byte[] { ' ' };
1202 String artifactType = "";
1203 Either<Boolean, ResponseFormat> result;
1206 testSubject = createTestSubject();
1207 result = Deencapsulation.invoke(testSubject, "validateXmlPayload", new Object[] { payload, artifactType });
1212 public void testValidateJsonPayload() throws Exception {
1213 ArtifactsBusinessLogic testSubject;
1214 byte[] payload = new byte[] { ' ' };
1216 Either<Boolean, ResponseFormat> result;
1219 testSubject = createTestSubject();
1220 result = Deencapsulation.invoke(testSubject, "validateJsonPayload", new Object[] { payload, type });
1229 public void testValidateUserRole() throws Exception {
1230 ArtifactsBusinessLogic testSubject;
1232 AuditingActionEnum auditingAction = AuditingActionEnum.ADD_CATEGORY;
1233 String componentId = "";
1234 String artifactId = "";
1235 ComponentTypeEnum componentType = ComponentTypeEnum.RESOURCE;
1236 ArtifactsBusinessLogic arb = new ArtifactsBusinessLogic();
1237 ArtifactOperationInfo operation = arb.new ArtifactOperationInfo(false, false, ArtifactOperationEnum.CREATE);
1238 Either<Boolean, ResponseFormat> result;
1241 testSubject = createTestSubject();
1242 result = Deencapsulation.invoke(testSubject, "validateUserRole",
1243 new Object[] { user, auditingAction, componentId, artifactId, componentType,
1248 public void testDetectAuditingType() throws Exception {
1249 ArtifactsBusinessLogic testSubject;
1250 ArtifactsBusinessLogic arb = new ArtifactsBusinessLogic();
1251 ArtifactOperationInfo operation = arb.new ArtifactOperationInfo(false, false, ArtifactOperationEnum.CREATE);
1252 String origMd5 = "";
1253 AuditingActionEnum result;
1256 testSubject = createTestSubject();
1257 result = Deencapsulation.invoke(testSubject, "detectAuditingType",
1258 new Object[] { operation, origMd5 });
1265 public void testCreateEsArtifactData() throws Exception {
1266 ArtifactsBusinessLogic testSubject;
1267 ArtifactDataDefinition artifactInfo = buildArtifactPayload();;;
1268 byte[] artifactPayload = new byte[] { ' ' };
1269 ESArtifactData result;
1272 testSubject = createTestSubject();
1273 result = testSubject.createEsArtifactData(artifactInfo, artifactPayload);
1281 public void testIsArtifactMetadataUpdate() throws Exception {
1282 ArtifactsBusinessLogic testSubject;
1283 AuditingActionEnum auditingActionEnum = AuditingActionEnum.ACTIVATE_SERVICE_BY_API;
1287 testSubject = createTestSubject();
1288 result = Deencapsulation.invoke(testSubject, "isArtifactMetadataUpdate",
1289 new Object[] { auditingActionEnum });
1294 public void testIsDeploymentArtifact() throws Exception {
1295 ArtifactsBusinessLogic testSubject;
1296 ArtifactDefinition artifactInfo = buildArtifactPayload();
1300 testSubject = createTestSubject();
1301 result = Deencapsulation.invoke(testSubject, "isDeploymentArtifact", new Object[] { artifactInfo });
1309 public void testSetArtifactPlaceholderCommonFields() throws Exception {
1310 ArtifactsBusinessLogic testSubject;
1311 String resourceId = "";
1313 ArtifactDefinition artifactInfo = buildArtifactPayload();
1316 testSubject = createTestSubject();
1317 Deencapsulation.invoke(testSubject, "setArtifactPlaceholderCommonFields",
1318 new Object[] { resourceId, user, artifactInfo });
1324 public void testCreateEsHeatEnvArtifactDataFromString() throws Exception {
1325 ArtifactsBusinessLogic testSubject;
1326 ArtifactDefinition artifactDefinition = buildArtifactPayload();;;
1327 String payloadStr = "";
1328 Either<ESArtifactData, ResponseFormat> result;
1331 testSubject = createTestSubject();
1332 result = Deencapsulation.invoke(testSubject, "createEsHeatEnvArtifactDataFromString",
1333 new Object[] { artifactDefinition, payloadStr });
1344 public void testUpdateArtifactOnGroupInstance() throws Exception {
1345 ArtifactsBusinessLogic testSubject;
1346 ComponentTypeEnum componentType = ComponentTypeEnum.RESOURCE;
1347 Component component = createResourceObject(true);
1348 String instanceId = "";
1349 String prevUUID = "";
1350 ArtifactDefinition artifactInfo = buildArtifactPayload();;;
1351 Either<ArtifactDefinition, ResponseFormat> result;
1354 testSubject = createTestSubject();
1356 result = Deencapsulation.invoke(testSubject, "updateArtifactOnGroupInstance",
1357 new Object[] {componentType, component, instanceId, prevUUID, artifactInfo,
1364 public void testGenerateHeatEnvPayload() throws Exception {
1365 ArtifactsBusinessLogic testSubject;
1366 ArtifactDefinition artifactDefinition = buildArtifactPayload();;;
1370 testSubject = createTestSubject();
1371 result = Deencapsulation.invoke(testSubject, "generateHeatEnvPayload",
1372 new Object[] { artifactDefinition });
1381 public void testBuildJsonForUpdateArtifact() throws Exception {
1382 ArtifactsBusinessLogic testSubject;
1383 ArtifactDefinition artifactInfo = buildArtifactPayload();;;
1384 ArtifactGroupTypeEnum artifactGroupType = ArtifactGroupTypeEnum.DEPLOYMENT;
1385 List<ArtifactTemplateInfo> updatedRequiredArtifacts = new ArrayList<>();
1386 Map<String, Object> result;
1389 testSubject = createTestSubject();
1390 result = testSubject.buildJsonForUpdateArtifact(artifactInfo, artifactGroupType, updatedRequiredArtifacts);
1395 public void testBuildJsonForUpdateArtifact_1() throws Exception {
1396 ArtifactsBusinessLogic testSubject;
1397 String artifactId = "";
1398 String artifactName = "";
1399 String artifactType = "";
1400 ArtifactGroupTypeEnum artifactGroupType = ArtifactGroupTypeEnum.DEPLOYMENT;
1402 String displayName = "";
1403 String description = "";
1404 byte[] artifactContent = new byte[] { ' ' };
1405 List<ArtifactTemplateInfo> updatedRequiredArtifacts = new ArrayList<>();
1406 List<HeatParameterDefinition> heatParameters = new ArrayList<>();
1407 Map<String, Object> result;
1410 testSubject = createTestSubject();
1412 result = testSubject.buildJsonForUpdateArtifact(artifactId, artifactName, artifactType, artifactGroupType,
1413 label, displayName, description, artifactContent, updatedRequiredArtifacts, heatParameters);
1422 public void testReplaceCurrHeatValueWithUpdatedValue() throws Exception {
1423 ArtifactsBusinessLogic testSubject;
1424 List<HeatParameterDefinition> currentHeatEnvParams = new ArrayList<>();
1425 List<HeatParameterDefinition> updatedHeatEnvParams = new ArrayList<>();
1429 testSubject=createTestSubject();Deencapsulation.invoke(testSubject, "replaceCurrHeatValueWithUpdatedValue", new Object[]{currentHeatEnvParams, updatedHeatEnvParams});
1435 public void testExtractArtifactDefinition() throws Exception {
1436 ArtifactsBusinessLogic testSubject;
1437 ArtifactDefinition artifactDefinition = buildArtifactPayload();;
1438 Either<ArtifactDefinition, Operation> eitherArtifact = Either.left(artifactDefinition);
1439 ArtifactDefinition result;
1442 testSubject = createTestSubject();
1443 result = testSubject.extractArtifactDefinition(eitherArtifact);
1450 public void testSetHeatCurrentValuesOnHeatEnvDefaultValues() throws Exception {
1451 ArtifactsBusinessLogic testSubject;
1452 ArtifactDefinition artifact = null;
1453 ArtifactDefinition artifactInfo = buildArtifactPayload();;;
1456 testSubject = createTestSubject();
1457 Deencapsulation.invoke(testSubject, "setHeatCurrentValuesOnHeatEnvDefaultValues",
1458 new Object[] { artifactInfo, artifactInfo });
1463 public void testBuildHeatEnvFileName() throws Exception {
1464 ArtifactsBusinessLogic testSubject;
1465 ArtifactDefinition heatArtifact = null;
1466 ArtifactDefinition artifactInfo = buildArtifactPayload();;;
1467 Map<String,Object> placeHolderData = new HashMap<>();
1471 testSubject=createTestSubject();Deencapsulation.invoke(testSubject, "buildHeatEnvFileName", new Object[]{artifactInfo, artifactInfo, placeHolderData});
1476 public void testHandleEnvArtifactVersion() throws Exception {
1477 ArtifactsBusinessLogic testSubject;
1478 ArtifactDefinition artifactInfo = buildArtifactPayload();;;
1479 Map<String,String> existingEnvVersions = new HashMap<>();
1483 testSubject=createTestSubject();
1484 Deencapsulation.invoke(testSubject, "handleEnvArtifactVersion", new Object[]{artifactInfo, existingEnvVersions});
1489 public void testHandleArtifactsRequestForInnerVfcComponent() throws Exception {
1490 ArtifactsBusinessLogic testSubject;
1491 List<ArtifactDefinition> artifactsToHandle = new ArrayList<>();;
1492 Resource component = createResourceObject(true);;
1494 List<ArtifactDefinition> vfcsNewCreatedArtifacts = new ArrayList<>();;
1495 ArtifactsBusinessLogic arb = new ArtifactsBusinessLogic();
1496 ArtifactOperationInfo operation = arb.new ArtifactOperationInfo(false, false, ArtifactOperationEnum.CREATE);
1497 boolean shouldLock = false;
1498 boolean inTransaction = false;
1499 Either<List<ArtifactDefinition>, ResponseFormat> result;
1502 testSubject = createTestSubject();
1503 result = testSubject.handleArtifactsRequestForInnerVfcComponent(artifactsToHandle, component, user,
1504 vfcsNewCreatedArtifacts, operation, shouldLock, inTransaction);
1509 public void testSetNodeTemplateOperation() throws Exception {
1510 ArtifactsBusinessLogic testSubject;
1511 NodeTemplateOperation nodeTemplateOperation = null;
1514 testSubject = createTestSubject();
1515 Deencapsulation.invoke(testSubject, "setNodeTemplateOperation", new Object[] { NodeTemplateOperation.class });