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.ci.tests.execute.artifacts;
23 //import static org.junit.Assert.assertTrue;
25 import fj.data.Either;
26 import org.junit.Rule;
27 import org.junit.rules.TestName;
28 import org.openecomp.sdc.be.dao.api.ActionStatus;
29 import org.openecomp.sdc.be.datatypes.enums.ResourceTypeEnum;
30 import org.openecomp.sdc.be.model.*;
31 import org.openecomp.sdc.ci.tests.api.ComponentBaseTest;
32 import org.openecomp.sdc.ci.tests.datatypes.ArtifactReqDetails;
33 import org.openecomp.sdc.ci.tests.datatypes.ResourceReqDetails;
34 import org.openecomp.sdc.ci.tests.datatypes.enums.*;
35 import org.openecomp.sdc.ci.tests.datatypes.http.RestResponse;
36 import org.openecomp.sdc.ci.tests.utils.Utils;
37 import org.openecomp.sdc.ci.tests.utils.general.AtomicOperationUtils;
38 import org.openecomp.sdc.ci.tests.utils.general.ElementFactory;
39 import org.openecomp.sdc.ci.tests.utils.general.FileUtils;
40 import org.openecomp.sdc.ci.tests.utils.rest.*;
41 import org.openecomp.sdc.ci.tests.utils.validation.ErrorValidationUtils;
42 import org.slf4j.Logger;
43 import org.slf4j.LoggerFactory;
44 import org.testng.annotations.BeforeMethod;
45 import org.testng.annotations.Test;
48 import java.io.FileNotFoundException;
49 import java.io.IOException;
50 import java.util.ArrayList;
51 import java.util.Arrays;
52 import java.util.List;
55 import static org.testng.AssertJUnit.*;
57 public class PlaceHolderValidations extends ComponentBaseTest {
58 private static Logger logger = LoggerFactory.getLogger(PlaceHolderValidations.class.getName());
59 private static final String heatExtension = "yaml";
60 // private static final String yangXmlExtension = "xml";
61 // private static final String muranoPkgExtension = "zip";
62 private final String folderName = "addHeatArtifactToServiceAndSertify";
63 private Resource resource;
64 private final int timeOut = 60;
65 private ArtifactReqDetails updateArtifactReqDetails = null;
66 protected User sdncDesignerDetails1 = ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER);
67 protected User sdncDesignerDetails2 = ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER2);
68 protected ResourceReqDetails resourceDetails1;
69 protected ResourceReqDetails resourceVF;
70 protected ResourceReqDetails resourceCP;
71 protected ResourceReqDetails resourceVL;
73 protected ArtifactReqDetails heatArtifactDetails;
74 protected ArtifactReqDetails heatVolArtifactDetails;
75 protected ArtifactReqDetails heatNetArtifactDetails;
77 public PlaceHolderValidations() {
78 super(name, PlaceHolderValidations.class.getName());
82 public static TestName name = new TestName();
85 public void init() throws IOException, Exception {
87 heatArtifactDetails = ElementFactory.getDefaultDeploymentArtifactForType(ArtifactTypeEnum.HEAT.getType());
88 heatNetArtifactDetails = ElementFactory
89 .getDefaultDeploymentArtifactForType(ArtifactTypeEnum.HEAT_NET.getType());
90 heatVolArtifactDetails = ElementFactory
91 .getDefaultDeploymentArtifactForType(ArtifactTypeEnum.HEAT_VOL.getType());
92 Resource resourceObject = AtomicOperationUtils
93 .createResourceByType(ResourceTypeEnum.VFC, UserRoleEnum.DESIGNER, true).left().value();
94 resourceDetails1 = new ResourceReqDetails(resourceObject);
95 resourceObject = AtomicOperationUtils.createResourceByType(ResourceTypeEnum.VF, UserRoleEnum.DESIGNER, true)
97 resourceVF = new ResourceReqDetails(resourceObject);
98 resourceObject = AtomicOperationUtils.createResourceByType(ResourceTypeEnum.CP, UserRoleEnum.DESIGNER, true)
100 resourceCP = new ResourceReqDetails(resourceObject);
101 resourceObject = AtomicOperationUtils.createResourceByType(ResourceTypeEnum.VL, UserRoleEnum.DESIGNER, true)
103 resourceVL = new ResourceReqDetails(resourceObject);
107 public void validateDeploymentPlaceHoldersByConfig() throws IOException {
108 RestResponse resourceGetResponse = ResourceRestUtils.getResource(resourceDetails1, sdncDesignerDetails1);
109 Resource resourceObject = ResponseParser.convertResourceResponseToJavaObject(resourceGetResponse.getResponse());
110 Map<String, ArtifactDefinition> deploymentArtifacts = resourceObject.getDeploymentArtifacts();
111 assertNotNull("deploymentArtifacts list is null", deploymentArtifacts);
112 List<String> listOfResDepArtTypesFromConfig = Utils.getListOfDepResArtLabels(true);
113 assertNotNull("deployment artifact types list is null", listOfResDepArtTypesFromConfig);
114 for (String resDepArtType : listOfResDepArtTypesFromConfig) {
115 assertNotNull("placeholder of " + resDepArtType + " type doesn't exist",
116 deploymentArtifacts.get(resDepArtType));
120 /*private void validateToscaArtifactsBeforeAndAfterSFT(ResourceReqDetails resourceDetails)
121 throws IOException, Exception {
122 RestResponse componentResponse = ResourceRestUtils.getResource(resourceDetails, sdncDesignerDetails1);
123 Component component = ResponseParser.convertResourceResponseToJavaObject(componentResponse.getResponse());
124 Map<String, ArtifactDefinition> toscaArtifacts = component.getToscaArtifacts();
125 for (ArtifactDefinition artifact : toscaArtifacts.values()) {
126 assertNull(artifact.getEsId());
129 componentResponse = LifecycleRestUtils.changeResourceState(resourceDetails, sdncDesignerDetails1,
130 LifeCycleStatesEnum.CERTIFICATIONREQUEST);
131 component = ResponseParser.convertResourceResponseToJavaObject(componentResponse.getResponse());
132 toscaArtifacts = component.getToscaArtifacts();
134 for (ArtifactDefinition artifact : toscaArtifacts.values()) {
135 assertEquals(artifact.getEsId(), artifact.getUniqueId());
136 List<Pair<String, String>> fields = new ArrayList();
137 fields.add(new Pair<String, String>("id", artifact.getEsId()));
138 List<Row> fetchFromTable = CassandraUtils.fetchFromTableQuery("sdcartifact", "resources", fields);
139 assertTrue(1 == fetchFromTable.size());
144 public void validateToscaArtifactsBeforeAndAfterSFT() throws IOException, Exception {
145 // TODO ADD VF and Service
146 validateToscaArtifactsBeforeAndAfterSFT(resourceDetails1);
147 validateToscaArtifactsBeforeAndAfterSFT(resourceCP);
148 validateToscaArtifactsBeforeAndAfterSFT(resourceVL);
152 public void validateToscaPlaceHoldersByConfig() throws IOException, Exception {
153 List<Component> components = new ArrayList<>();
154 RestResponse componentGetResponse = ResourceRestUtils.getResource(resourceDetails1, sdncDesignerDetails1);
155 components.add(ResponseParser.convertResourceResponseToJavaObject(componentGetResponse.getResponse()));
157 componentGetResponse = ResourceRestUtils.getResource(resourceCP, sdncDesignerDetails1);
158 components.add(ResponseParser.convertResourceResponseToJavaObject(componentGetResponse.getResponse()));
160 componentGetResponse = ResourceRestUtils.getResource(resourceVF, sdncDesignerDetails1);
161 components.add(ResponseParser.convertResourceResponseToJavaObject(componentGetResponse.getResponse()));
163 componentGetResponse = ResourceRestUtils.getResource(resourceVL, sdncDesignerDetails1);
164 components.add(ResponseParser.convertResourceResponseToJavaObject(componentGetResponse.getResponse()));
166 Service service = AtomicOperationUtils
167 .createServiceByCategory(ServiceCategoriesEnum.MOBILITY, UserRoleEnum.DESIGNER, true).left().value();
168 componentGetResponse = ServiceRestUtils.getService(service.getUniqueId(),
169 ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER));
170 components.add(ResponseParser.parseToObjectUsingMapper(componentGetResponse.getResponse(), Service.class));
172 for (Component component : components) {
173 Map<String, ArtifactDefinition> toscaArtifacts = component.getToscaArtifacts();
174 assertNotNull("toscaArtifacts list is null", toscaArtifacts);
175 List<String> listOfToscaArtTypesFromConfig = Utils.getListOfToscaArtLabels(true);
176 assertNotNull("tosca artifact types list is null", listOfToscaArtTypesFromConfig);
177 for (String toscaArtType : listOfToscaArtTypesFromConfig) {
178 assertNotNull("placeholder of " + toscaArtType + " type doesn't exist",
179 toscaArtifacts.get(toscaArtType));
185 // test check configuration of "displayName" field for "heat" type
186 // deployment artifact
188 public void validateDeploymentPlaceHoldersDescriptionOfHeatByConfig() throws IOException {
190 Map<String, Object> mapOfDepResArtTypesObjects = getMapOfDepResArtTypesObjects();
191 assertNotNull("deployment artifact types list is null", mapOfDepResArtTypesObjects);
192 Object object = mapOfDepResArtTypesObjects.get("heat");
193 if (object instanceof Map<?, ?>) {
194 Map<String, Object> map = (Map<String, Object>) object;
195 assertTrue(map.get("displayName").equals("Base HEAT Template"));
197 assertTrue("return object does not instance of map", false);
202 public void addDepResArtEachType() throws Exception {
206 addDeploymentArtifactByTypeToResource(resourceDetails1, heatArtifactDetails);
207 addDeploymentArtifactByTypeToResource(resourceDetails1, heatVolArtifactDetails);
208 addDeploymentArtifactByTypeToResource(resourceDetails1, heatNetArtifactDetails);
209 RestResponse response = ResourceRestUtils.getResource(resourceDetails1.getUniqueId());
210 resource = ResponseParser.convertResourceResponseToJavaObject(response.getResponse());
211 List<String> listOfResDepArtTypesFromConfig = Utils.getListOfDepResArtLabels(true);
212 assertNotNull("deployment artifact types list is null", listOfResDepArtTypesFromConfig);
213 for (String iter : listOfResDepArtTypesFromConfig) {
215 verifyDepArtPlaceHoldersByType(artType);
220 public void checkHeatParametersExistingForEachType() throws Exception {
224 addDeploymentArtifactByTypeToResource(resourceDetails1, heatArtifactDetails);
225 addDeploymentArtifactByTypeToResource(resourceDetails1, heatVolArtifactDetails);
226 addDeploymentArtifactByTypeToResource(resourceDetails1, heatNetArtifactDetails);
227 RestResponse response = ResourceRestUtils.getResource(resourceDetails1.getUniqueId());
228 resource = ResponseParser.convertResourceResponseToJavaObject(response.getResponse());
229 List<String> listOfResDepArtTypesFromConfig = Utils.getListOfDepResArtLabels(true);
230 assertNotNull("deployment artifact types list is null", listOfResDepArtTypesFromConfig);
231 for (String iter : listOfResDepArtTypesFromConfig) {
233 verifyDepArtPlaceHoldersByType(artType);
234 verifyHeatParametersExistance(artType, false);
239 public void checkHeatParametersExistingForSpecificType() throws Exception {
243 addDeploymentArtifactByTypeToResource(resourceDetails1, heatVolArtifactDetails);
244 addDeploymentArtifactByTypeToResource(resourceDetails1, heatNetArtifactDetails);
245 RestResponse response = ResourceRestUtils.getResource(resourceDetails1.getUniqueId());
246 resource = ResponseParser.convertResourceResponseToJavaObject(response.getResponse());
247 List<String> listOfResDepArtTypesFromConfig = Utils.getListOfDepResArtLabels(true);
248 assertNotNull("deployment artifact types list is null", listOfResDepArtTypesFromConfig);
249 for (String iter : listOfResDepArtTypesFromConfig) {
251 if (heatArtifactDetails.getArtifactLabel().equals(iter)) {
252 verifyHeatParametersExistance(artType, true);
254 verifyHeatParametersExistance(artType, false);
260 public void addAndDeleteDepResArtEachType() throws Exception {
264 addDeploymentArtifactByTypeToResource(resourceDetails1, heatArtifactDetails);
265 addDeploymentArtifactByTypeToResource(resourceDetails1, heatVolArtifactDetails);
266 addDeploymentArtifactByTypeToResource(resourceDetails1, heatNetArtifactDetails);
267 RestResponse response = ResourceRestUtils.getResource(resourceDetails1.getUniqueId());
268 resource = ResponseParser.convertResourceResponseToJavaObject(response.getResponse());
269 List<String> listOfResDepArtTypesFromConfig = Utils.getListOfDepResArtLabels(true);
270 assertNotNull("deployment artifact types list is null", listOfResDepArtTypesFromConfig);
271 for (String iter : listOfResDepArtTypesFromConfig) {
273 verifyDepArtPlaceHoldersByType(artType);
275 RestResponse restResponseResource = LifecycleRestUtils.changeResourceState(resourceDetails1,
276 sdncDesignerDetails1, LifeCycleStatesEnum.CHECKIN);
277 assertTrue("expected response code in CHECKIN 200", restResponseResource.getErrorCode() == 200);
278 restResponseResource = LifecycleRestUtils.changeResourceState(resourceDetails1, sdncDesignerDetails1,
279 LifeCycleStatesEnum.CHECKOUT);
280 assertTrue("expected response code in CHECKOUT 200", restResponseResource.getErrorCode() == 200);
282 // delete all deployment artifacts
283 deleteDeploymentArtifactByTypeToResource(resourceDetails1, heatArtifactDetails);
284 deleteDeploymentArtifactByTypeToResource(resourceDetails1, heatVolArtifactDetails);
285 deleteDeploymentArtifactByTypeToResource(resourceDetails1, heatNetArtifactDetails);
286 response = ResourceRestUtils.getResource(resourceDetails1.getUniqueId());
287 resource = ResponseParser.convertResourceResponseToJavaObject(response.getResponse());
288 listOfResDepArtTypesFromConfig = Utils.getListOfDepResArtLabels(true);
289 assertNotNull("deployment artifact types list is null", listOfResDepArtTypesFromConfig);
290 for (String iter : listOfResDepArtTypesFromConfig) {
292 verifyDepArtPlaceHoldersByType(artType);
297 public void addRemoveAddAgainArtifact() throws Exception {
299 // get MAP before upload artifact
300 RestResponse resourceGetResponse = ResourceRestUtils.getResource(resourceDetails1, sdncDesignerDetails1);
301 Resource resourceRespJavaObject = ResponseParser
302 .convertResourceResponseToJavaObject(resourceGetResponse.getResponse());
303 Map<String, ArtifactDefinition> deploymentArtifacts = resourceRespJavaObject.getDeploymentArtifacts();
305 ArtifactDefinition artifactDefinition = deploymentArtifacts.get("heat");
307 // validate place holder exist
308 assertNotNull(artifactDefinition);
311 updateArtifactReqDetails = getUpdateArtifactDetails(ArtifactTypeEnum.HEAT.getType());
313 RestResponse addInformationalArtifactToResource = ArtifactRestUtils.updateInformationalArtifactToResource(
314 updateArtifactReqDetails, sdncDesignerDetails1, resourceDetails1.getUniqueId());
315 logger.debug("addInformationalArtifactToResource response: "
316 + addInformationalArtifactToResource.getResponseMessage());
317 assertTrue("response code is not 200, returned :" + addInformationalArtifactToResource.getErrorCode(),
318 addInformationalArtifactToResource.getErrorCode() == 200);
320 ArtifactDefinition artifactDefinitionResponseJavaObject = ResponseParser
321 .convertArtifactDefinitionResponseToJavaObject(addInformationalArtifactToResource.getResponse());
322 ArtifactDefinition artDef1 = fillArtDefFromResponse(artifactDefinitionResponseJavaObject);
325 RestResponse deleteArtifactFromResource = ArtifactRestUtils.deleteInformationalArtifactFromResource(
326 resourceDetails1.getUniqueId(), updateArtifactReqDetails, sdncDesignerDetails1);
328 "addInformationalArtifactToResource response: " + deleteArtifactFromResource.getResponseMessage());
329 assertTrue("response code is not 200, returned :" + deleteArtifactFromResource.getErrorCode(),
330 deleteArtifactFromResource.getErrorCode() == 200);
332 RestResponse getResourceResp = ResourceRestUtils.getResource(resourceDetails1, sdncDesignerDetails1);
334 artifactDefinitionResponseJavaObject = ResponseParser
335 .convertArtifactDefinitionResponseToJavaObject(deleteArtifactFromResource.getResponse());
336 assertTrue(artifactDefinitionResponseJavaObject.getArtifactName().isEmpty());
337 assertTrue(artifactDefinitionResponseJavaObject.getDescription().isEmpty());
338 assertTrue(artifactDefinitionResponseJavaObject.getArtifactChecksum().isEmpty());
339 assertTrue(artifactDefinitionResponseJavaObject.getEsId().isEmpty());
340 assertTrue(artifactDefinitionResponseJavaObject.getArtifactUUID().isEmpty());
341 assertNull(artifactDefinitionResponseJavaObject.getHeatParameters());
343 // add artifact again with different user
344 addInformationalArtifactToResource = ArtifactRestUtils.updateInformationalArtifactToResource(
345 heatArtifactDetails, sdncDesignerDetails1, resourceDetails1.getUniqueId());
346 logger.debug("addInformationalArtifactToResource response: "
347 + addInformationalArtifactToResource.getResponseMessage());
348 assertTrue("response code is not 200, returned :" + addInformationalArtifactToResource.getErrorCode(),
349 addInformationalArtifactToResource.getErrorCode() == 200);
351 artifactDefinitionResponseJavaObject = ResponseParser
352 .convertArtifactDefinitionResponseToJavaObject(addInformationalArtifactToResource.getResponse());
353 ArtifactDefinition artDef2 = fillArtDefFromResponse(artifactDefinitionResponseJavaObject);
355 assertFalse("check artifact checksum", artDef1.getArtifactChecksum().equals(artDef2.getArtifactChecksum()));
356 assertTrue("check artifact EsId", artDef1.getEsId().equals(artDef2.getEsId()));
357 assertFalse("check artifact UUID", artDef1.getArtifactUUID().equals(artDef2.getArtifactUUID()));
358 assertTrue("check UserIdCreator", artDef1.getUserIdCreator().equals(artDef2.getUserIdCreator()));
359 assertTrue("check UserIdLastUpdater", artDef1.getUserIdLastUpdater().equals(artDef2.getUserIdLastUpdater()));
363 public void addUpdateArtifactByType() throws Exception {
365 // get MAP before upload artifact
366 RestResponse resourceGetResponse = ResourceRestUtils.getResource(resourceDetails1, sdncDesignerDetails1);
367 Resource resourceRespJavaObject = ResponseParser
368 .convertResourceResponseToJavaObject(resourceGetResponse.getResponse());
369 Map<String, ArtifactDefinition> deploymentArtifacts = resourceRespJavaObject.getDeploymentArtifacts();
371 ArtifactDefinition artifactDefinition = deploymentArtifacts.get("heat");
373 // validate place holder exist
374 assertNotNull(artifactDefinition);
377 updateArtifactReqDetails = getUpdateArtifactDetails(ArtifactTypeEnum.HEAT.getType());
379 RestResponse addInformationalArtifactToResource = ArtifactRestUtils.updateInformationalArtifactToResource(
380 updateArtifactReqDetails, sdncDesignerDetails1, resourceDetails1.getUniqueId());
381 logger.debug("addInformationalArtifactToResource response: "
382 + addInformationalArtifactToResource.getResponseMessage());
383 assertTrue("response code is not 200, returned :" + addInformationalArtifactToResource.getErrorCode(),
384 addInformationalArtifactToResource.getErrorCode() == 200);
386 ArtifactDefinition artifactDefinitionResponseJavaObject = ResponseParser
387 .convertArtifactDefinitionResponseToJavaObject(addInformationalArtifactToResource.getResponse());
388 ArtifactDefinition artDef1 = fillArtDefFromResponse(artifactDefinitionResponseJavaObject);
390 RestResponse restResponseResource = LifecycleRestUtils.changeResourceState(resourceDetails1,
391 sdncDesignerDetails1, LifeCycleStatesEnum.CHECKIN);
392 restResponseResource = LifecycleRestUtils.changeResourceState(resourceDetails1, sdncDesignerDetails2,
393 LifeCycleStatesEnum.CHECKOUT);
395 // update with different user artifact
396 heatArtifactDetails = ElementFactory.getDefaultDeploymentArtifactForType(ArtifactTypeEnum.HEAT.getType());
397 heatArtifactDetails.setUniqueId(artifactDefinition.getUniqueId());
398 heatArtifactDetails.setArtifactName("2.yaml");
399 heatArtifactDetails.setArtifactLabel(artifactDefinition.getArtifactLabel());
401 addInformationalArtifactToResource = ArtifactRestUtils.updateInformationalArtifactToResource(
402 heatArtifactDetails, sdncDesignerDetails2, resourceDetails1.getUniqueId(), "heat");
403 logger.debug("addInformationalArtifactToResource response: "
404 + addInformationalArtifactToResource.getResponseMessage());
405 assertTrue("response code is not 200, returned :" + addInformationalArtifactToResource.getErrorCode(),
406 addInformationalArtifactToResource.getErrorCode() == 200);
408 artifactDefinitionResponseJavaObject = ResponseParser
409 .convertArtifactDefinitionResponseToJavaObject(addInformationalArtifactToResource.getResponse());
410 ArtifactDefinition artDef2 = fillArtDefFromResponse(artifactDefinitionResponseJavaObject);
411 verifyArtDefFields(artDef1, artDef2);
416 public void addUpdateDeleteArtifact() throws Exception {
418 // get MAP before upload artifact
419 RestResponse resourceGetResponse = ResourceRestUtils.getResource(resourceDetails1, sdncDesignerDetails1);
420 Resource resourceRespJavaObject = ResponseParser
421 .convertResourceResponseToJavaObject(resourceGetResponse.getResponse());
422 Map<String, ArtifactDefinition> deploymentArtifacts = resourceRespJavaObject.getDeploymentArtifacts();
424 ArtifactDefinition artifactDefinition = deploymentArtifacts.get("heat");
426 // validate place holder exist
427 assertNotNull(artifactDefinition);
429 updateArtifactReqDetails = getUpdateArtifactDetails(ArtifactTypeEnum.HEAT.getType());
431 RestResponse addInformationalArtifactToResource = ArtifactRestUtils.updateInformationalArtifactToResource(
432 updateArtifactReqDetails, sdncDesignerDetails1, resourceDetails1.getUniqueId());
433 logger.debug("addInformationalArtifactToResource response: "
434 + addInformationalArtifactToResource.getResponseMessage());
435 assertTrue("response code is not 200, returned :" + addInformationalArtifactToResource.getErrorCode(),
436 addInformationalArtifactToResource.getErrorCode() == 200);
438 ArtifactDefinition artifactDefinitionResponseJavaObject = ResponseParser
439 .convertArtifactDefinitionResponseToJavaObject(addInformationalArtifactToResource.getResponse());
440 ArtifactDefinition artDef1 = fillArtDefFromResponse(artifactDefinitionResponseJavaObject);
442 RestResponse restResponseResource = LifecycleRestUtils.changeResourceState(resourceDetails1,
443 sdncDesignerDetails1, LifeCycleStatesEnum.CHECKIN);
444 restResponseResource = LifecycleRestUtils.changeResourceState(resourceDetails1, sdncDesignerDetails2,
445 LifeCycleStatesEnum.CHECKOUT);
447 // update with different user artifact
448 heatArtifactDetails = ElementFactory.getDefaultDeploymentArtifactForType(ArtifactTypeEnum.HEAT.getType());
449 heatArtifactDetails.setArtifactName("2.yaml");
451 addInformationalArtifactToResource = ArtifactRestUtils.updateInformationalArtifactToResource(
452 heatArtifactDetails, sdncDesignerDetails2, resourceDetails1.getUniqueId(), "heat");
453 logger.debug("addInformationalArtifactToResource response: "
454 + addInformationalArtifactToResource.getResponseMessage());
455 assertTrue("response code is not 200, returned :" + addInformationalArtifactToResource.getErrorCode(),
456 addInformationalArtifactToResource.getErrorCode() == 200);
458 artifactDefinitionResponseJavaObject = ResponseParser
459 .convertArtifactDefinitionResponseToJavaObject(addInformationalArtifactToResource.getResponse());
460 ArtifactDefinition artDef2 = fillArtDefFromResponse(artifactDefinitionResponseJavaObject);
462 verifyArtDefFields(artDef1, artDef2);
464 RestResponse delteArtifactFromResource = ArtifactRestUtils.deleteInformationalArtifactFromResource(
465 resourceDetails1.getUniqueId(), heatArtifactDetails, sdncDesignerDetails2);
466 logger.debug("addInformationalArtifactToResource response: {}", delteArtifactFromResource.getResponseMessage());
467 assertTrue("response code is not 200, returned :" + delteArtifactFromResource.getErrorCode(),
468 delteArtifactFromResource.getErrorCode() == 200);
473 public void addHeatVolArtInvalidExtension() throws Exception {
475 heatVolArtifactDetails.setArtifactName("heatVol.txt");
476 RestResponse response = getResponseOnAddDeploymentArtifactByTypeToResource(resourceDetails1,
477 heatVolArtifactDetails);
478 ErrorInfo errorInfo = ErrorValidationUtils
479 .parseErrorConfigYaml(ActionStatus.WRONG_ARTIFACT_FILE_EXTENSION.name());
480 assertEquals("Check response code after upload artifact", errorInfo.getCode(), response.getErrorCode());
481 List<String> variables = Arrays.asList(ArtifactTypeEnum.HEAT_VOL.getType());
482 ErrorValidationUtils.checkBodyResponseOnError(ActionStatus.WRONG_ARTIFACT_FILE_EXTENSION.name(), variables,
483 response.getResponse());
487 public void addHeatNetArtInvalidExtension() throws Exception {
489 heatNetArtifactDetails.setArtifactName("yaml");
490 RestResponse response = getResponseOnAddDeploymentArtifactByTypeToResource(resourceDetails1,
491 heatNetArtifactDetails);
492 ErrorInfo errorInfo = ErrorValidationUtils
493 .parseErrorConfigYaml(ActionStatus.WRONG_ARTIFACT_FILE_EXTENSION.name());
494 assertEquals("Check response code after upload artifact", errorInfo.getCode(), response.getErrorCode());
495 List<String> variables = Arrays.asList(ArtifactTypeEnum.HEAT_NET.getType());
496 ErrorValidationUtils.checkBodyResponseOnError(ActionStatus.WRONG_ARTIFACT_FILE_EXTENSION.name(), variables,
497 response.getResponse());
501 public void checkServiceSecurityTemplateInformationalArtifactsCreation() throws IOException, Exception {
503 Either<Service, RestResponse> createServiceResponse = AtomicOperationUtils
504 .createServiceByCategory(ServiceCategoriesEnum.MOBILITY, UserRoleEnum.DESIGNER, true);
505 Map<String, ArtifactDefinition> artifacts = null;
506 ArtifactDefinition securitytemplate = null;
507 if (createServiceResponse.isLeft()) {
508 Component component = createServiceResponse.left().value();
509 artifacts = component.getArtifacts();
510 securitytemplate = artifacts.get("servicesecuritytemplate");
511 assertNotNull(securitytemplate);
512 assertEquals("Service Security Template", securitytemplate.getArtifactDisplayName());
514 logger.debug("checkSecurityTemplateInformationalArtifactsCreation service creation response: "
515 + createServiceResponse.right().value().getResponseMessage());
520 public void checkResourceSecurityTemplateInformationalArtifactsCreation() throws IOException, Exception {
522 Resource resource = AtomicOperationUtils.createResourcesByTypeNormTypeAndCatregory(ResourceTypeEnum.VFC,
523 NormativeTypesEnum.CONTAINER_APPLICATION, ResourceCategoryEnum.APPLICATION_L4_BORDER,
524 UserRoleEnum.DESIGNER, true).left().value();
525 Map<String, ArtifactDefinition> artifacts = resource.getArtifacts();
526 ArtifactDefinition securitytemplate = artifacts.get("resourcesecuritytemplate");
527 assertNotNull(securitytemplate);
528 assertEquals("Resource Security Template", securitytemplate.getArtifactDisplayName());
533 public void serviceSecurityTemplateInformationalArtifact() throws IOException, Exception {
534 String artifactPlaceHolder = "servicesecuritytemplate";
535 Service service = AtomicOperationUtils
536 .createServiceByCategory(ServiceCategoriesEnum.MOBILITY, UserRoleEnum.DESIGNER, true).left().value();
537 Map<String, ArtifactDefinition> artifacts = service.getArtifacts();
538 ArtifactDefinition securitytemplate = artifacts.get(artifactPlaceHolder);
539 assertNotNull(securitytemplate);
540 assertEquals("Service Security Template", securitytemplate.getArtifactDisplayName());
541 assertEquals("OTHER", securitytemplate.getArtifactType());
542 assertEquals(artifactPlaceHolder, securitytemplate.getArtifactLabel());
544 RestResponse getService = ServiceRestUtils.getService(service.getUniqueId(),
545 ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER));
546 assertEquals(BaseRestUtils.STATUS_CODE_SUCCESS, getService.getErrorCode().intValue());
547 service = ResponseParser.parseToObjectUsingMapper(getService.getResponse(), Service.class);
548 artifacts = service.getArtifacts();
549 securitytemplate = artifacts.get(artifactPlaceHolder);
550 assertNotNull(securitytemplate);
551 assertEquals("Service Security Template", securitytemplate.getArtifactDisplayName());
552 assertEquals("OTHER", securitytemplate.getArtifactType());
553 assertEquals(artifactPlaceHolder, securitytemplate.getArtifactLabel());
557 public void resourceSecurityTemplateInformationalArtifacts() throws IOException, Exception {
558 String artifactPlaceHolder = "resourcesecuritytemplate";
559 Resource resource = AtomicOperationUtils.createResourcesByTypeNormTypeAndCatregory(ResourceTypeEnum.VFC,
560 NormativeTypesEnum.CONTAINER_APPLICATION, ResourceCategoryEnum.APPLICATION_L4_BORDER,
561 UserRoleEnum.DESIGNER, true).left().value();
562 Map<String, ArtifactDefinition> artifacts = resource.getArtifacts();
563 ArtifactDefinition securitytemplate = artifacts.get("resourcesecuritytemplate");
564 assertNotNull(securitytemplate);
565 assertEquals("Resource Security Template", securitytemplate.getArtifactDisplayName());
566 assertEquals("OTHER", securitytemplate.getArtifactType());
567 assertEquals(artifactPlaceHolder, securitytemplate.getArtifactLabel());
569 RestResponse getresource = ResourceRestUtils.getResource(ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER),
570 resource.getUniqueId());
571 assertEquals(BaseRestUtils.STATUS_CODE_SUCCESS, getresource.getErrorCode().intValue());
572 resource = ResponseParser.parseToObjectUsingMapper(getresource.getResponse(), Resource.class);
573 artifacts = resource.getArtifacts();
574 securitytemplate = artifacts.get(artifactPlaceHolder);
575 assertNotNull(securitytemplate);
576 assertEquals("Resource Security Template", securitytemplate.getArtifactDisplayName());
577 assertEquals("OTHER", securitytemplate.getArtifactType());
578 assertEquals(artifactPlaceHolder, securitytemplate.getArtifactLabel());
581 // ================================================
583 @SuppressWarnings("unchecked")
584 private Map<String, Object> getMapOfDepResArtTypesObjects() throws FileNotFoundException {
586 return (Map<String, Object>) Utils.parseYamlConfig("deploymentResourceArtifacts");
590 private void addDeploymentArtifactByTypeToResource(ResourceReqDetails resourceReqDetails,
591 ArtifactReqDetails artReqDetails) throws IOException, Exception {
593 RestResponse response = ArtifactRestUtils.addInformationalArtifactToResource(artReqDetails,
594 sdncDesignerDetails1, resourceReqDetails.getUniqueId());
595 assertTrue("add" + artReqDetails.getArtifactLabel() + " artifact to resource request returned status:"
596 + response.getErrorCode(), response.getErrorCode() == 200);
599 private RestResponse getResponseOnAddDeploymentArtifactByTypeToResource(ResourceReqDetails resourceReqDetails,
600 ArtifactReqDetails artReqDetails) throws IOException, Exception {
602 return ArtifactRestUtils.addInformationalArtifactToResource(artReqDetails, sdncDesignerDetails1,
603 resourceReqDetails.getUniqueId());
606 private void deleteDeploymentArtifactByTypeToResource(ResourceReqDetails resourceReqDetails,
607 ArtifactReqDetails artReqDetails) throws IOException, Exception {
609 RestResponse response = ArtifactRestUtils.deleteInformationalArtifactFromResource(
610 resourceReqDetails.getUniqueId(), artReqDetails, sdncDesignerDetails1);
611 assertTrue("delete" + artReqDetails.getArtifactLabel() + " artifact to resource request returned status:"
612 + response.getErrorCode(), response.getErrorCode() == 200);
615 private void verifyDepArtPlaceHoldersByType(String artType) {
617 Map<String, ArtifactDefinition> deploymentArtifacts = resource.getDeploymentArtifacts();
618 assertNotNull("deployment artifact data is null", deploymentArtifacts.get(artType));
619 assertNotNull("deployment artifact data is null", deploymentArtifacts.get(artType).getEsId());
620 assertNotNull("deployment artifact data is null", deploymentArtifacts.get(artType).getDescription());
622 "deployment artifact timeout does not equal to default value " + timeOut + " expected " + timeOut
623 + ", actual - " + deploymentArtifacts.get(artType).getTimeout(),
624 deploymentArtifacts.get(artType).getTimeout() == timeOut);
625 assertTrue("deployment artifact label value ",
626 deploymentArtifacts.get(artType).getArtifactLabel().equals(artType));
629 private void verifyHeatParametersExistance(String artType, Boolean isNull) {
630 Map<String, ArtifactDefinition> deploymentArtifacts = resource.getDeploymentArtifacts();
632 assertNull("heatParameters list for type " + artType + " is not null",
633 deploymentArtifacts.get(artType).getHeatParameters());
635 assertNotNull("heatParameters list for type " + artType + " is null",
636 deploymentArtifacts.get(artType).getHeatParameters());
640 private void verifyArtDefFields(ArtifactDefinition artDef1, ArtifactDefinition artDef2) {
642 assertFalse("check artifact checksum", artDef1.getArtifactChecksum().equals(artDef2.getArtifactChecksum()));
643 assertFalse("check artifact EsId", artDef1.getEsId().equals(artDef2.getEsId()));
644 assertFalse("check artifact UUID", artDef1.getArtifactUUID().equals(artDef2.getArtifactUUID()));
645 assertTrue("check UserIdCreator", artDef1.getUserIdCreator().equals(artDef2.getUserIdCreator()));
646 assertFalse("check UserIdLastUpdater", artDef1.getUserIdLastUpdater().equals(artDef2.getUserIdLastUpdater()));
650 private ArtifactDefinition fillArtDefFromResponse(ArtifactDefinition artifactDefinitionResponseJavaObject) {
651 ArtifactDefinition artDef = new ArtifactDefinition();
652 artDef.setArtifactChecksum(artifactDefinitionResponseJavaObject.getArtifactChecksum());
653 artDef.setEsId(artifactDefinitionResponseJavaObject.getEsId());
654 artDef.setArtifactUUID(artifactDefinitionResponseJavaObject.getArtifactUUID());
655 artDef.setUserIdCreator(artifactDefinitionResponseJavaObject.getUserIdCreator());
656 artDef.setUserIdLastUpdater(artifactDefinitionResponseJavaObject.getUserIdLastUpdater());
660 private ArtifactReqDetails getUpdateArtifactDetails(String artType) throws IOException, Exception {
661 String ext = heatExtension;
662 String sourceDir = config.getResourceConfigDir();
663 String testResourcesPath = sourceDir + File.separator + folderName;
664 List<String> listFileName = FileUtils.getFileListFromBaseDirectoryByTestName(testResourcesPath);
665 logger.debug("listFileName: {}", listFileName.toString());
667 String payload = FileUtils.loadPayloadFile(listFileName, ext, true);
668 ArtifactReqDetails updateArtifactReqDetails = ElementFactory.getDefaultDeploymentArtifactForType(artType);
669 updateArtifactReqDetails.setPayload(payload);
670 updateArtifactReqDetails.setArtifactName("1.yaml");
671 return updateArtifactReqDetails;