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 java.util.Arrays;
24 import java.util.List;
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.elements.HeatParameterDataDefinition;
30 import org.openecomp.sdc.be.model.ArtifactDefinition;
31 import org.openecomp.sdc.be.model.HeatParameterDefinition;
32 import org.openecomp.sdc.be.model.User;
33 import org.openecomp.sdc.ci.tests.api.ComponentBaseTest;
34 import org.openecomp.sdc.ci.tests.datatypes.ArtifactReqDetails;
35 import org.openecomp.sdc.ci.tests.datatypes.ResourceReqDetails;
36 import org.openecomp.sdc.ci.tests.datatypes.ServiceReqDetails;
37 import org.openecomp.sdc.ci.tests.datatypes.enums.ArtifactTypeEnum;
38 import org.openecomp.sdc.ci.tests.datatypes.enums.RespJsonKeysEnum;
39 import org.openecomp.sdc.ci.tests.datatypes.enums.UserRoleEnum;
40 import org.openecomp.sdc.ci.tests.datatypes.http.RestResponse;
41 import org.openecomp.sdc.ci.tests.utils.general.ElementFactory;
42 import org.openecomp.sdc.ci.tests.utils.rest.ArtifactRestUtils;
43 import org.openecomp.sdc.ci.tests.utils.rest.ResourceRestUtils;
44 import org.openecomp.sdc.ci.tests.utils.rest.ResponseParser;
45 import org.openecomp.sdc.ci.tests.utils.validation.ArtifactValidationUtils;
46 import org.openecomp.sdc.ci.tests.utils.validation.ErrorValidationUtils;
47 import org.testng.AssertJUnit;
48 import org.testng.annotations.Test;
50 public class ValidateHeatArtFieldsTypes extends ComponentBaseTest {
52 protected User sdncDesignerDetails;
53 protected ResourceReqDetails resourceDetails;
54 protected ServiceReqDetails serviceDetails;
56 private static final String heatExtension = "yaml";
57 private static final String yangXmlExtension = "xml";
58 private static final String muranoPkgExtension = "zip";
59 private final String folderName = "yamlFieldsValidation";
61 private final String uuidString = RespJsonKeysEnum.UUID.getRespJsonKeyName().toString();
63 public ValidateHeatArtFieldsTypes() {
64 super(name, ValidateHeatArtFieldsTypes.class.getName());
68 public static TestName name = new TestName();
71 public void validateHeatArtFiledTypes() throws Exception {
73 // get relevant resource and service
75 sdncDesignerDetails = ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER);
76 resourceDetails = ElementFactory.getDefaultResource();
78 RestResponse response = ResourceRestUtils.createResource(resourceDetails, sdncDesignerDetails);
79 AssertJUnit.assertTrue("create request returned status:" + response.getErrorCode(),
80 response.getErrorCode() == 201);
82 // add artifact to resource1
84 ArtifactReqDetails heatArtifactDetails = ElementFactory
85 .getDefaultDeploymentArtifactForType(ArtifactTypeEnum.HEAT.getType());
86 List<String> listOfArtifactFromFolder = ArtifactValidationUtils.getListOfArtifactFromFolder(folderName);
87 for (int i = 0; i < listOfArtifactFromFolder.size(); i++) {
88 heatArtifactDetails = ArtifactValidationUtils.replaceDefaultArtWithArtFromList(heatArtifactDetails,
89 heatExtension, folderName, i);
90 response = ArtifactRestUtils.addInformationalArtifactToResource(heatArtifactDetails, sdncDesignerDetails,
91 resourceDetails.getUniqueId());
93 if (heatArtifactDetails.getArtifactName().contains("bool")) {
94 if (heatArtifactDetails.getArtifactName().contains("negative")) {
95 // validate negative response
96 List<String> variables = Arrays.asList("HEAT", "boolean", "city_name");
97 ErrorValidationUtils.checkBodyResponseOnError(ActionStatus.INVALID_HEAT_PARAMETER_VALUE.name(),
98 variables, response.getResponse());
100 if (heatArtifactDetails.getArtifactName().contains("positive")) {
101 AssertJUnit.assertTrue(
102 "add HEAT artifact to resource request returned status:" + response.getErrorCode()
103 + " fileName: " + heatArtifactDetails.getArtifactName(),
104 response.getErrorCode() == 200);
105 ArtifactDefinition artifactDefinitionJavaObject = ResponseParser
106 .convertArtifactDefinitionResponseToJavaObject(response.getResponse());
107 List<HeatParameterDataDefinition> heatParameters = artifactDefinitionJavaObject.getHeatParameters();
108 String currentValue = null;
109 for (HeatParameterDataDefinition heatParameterDefinition : heatParameters) {
110 if (heatParameterDefinition.getName().equals("city_name")) {
111 currentValue = heatParameterDefinition.getCurrentValue();
114 if (heatArtifactDetails.getArtifactName().contains("true")) {
115 AssertJUnit.assertTrue(currentValue.equals("true"));
117 if (heatArtifactDetails.getArtifactName().contains("false")) {
118 AssertJUnit.assertTrue(currentValue.equals("false"));
120 RestResponse deleteInformationalArtifactFromResource = ArtifactRestUtils
121 .deleteInformationalArtifactFromResource(resourceDetails.getUniqueId(), heatArtifactDetails,
122 sdncDesignerDetails);
123 AssertJUnit.assertTrue(
124 "delete HEAT artifact from resource request returned status:"
125 + deleteInformationalArtifactFromResource.getErrorCode(),
126 deleteInformationalArtifactFromResource.getErrorCode() == 200);
129 } else if (heatArtifactDetails.getArtifactName().contains("number")) {
130 if (heatArtifactDetails.getArtifactName().contains("negative")) {
131 // validate negative response
132 List<String> variables = Arrays.asList("HEAT", "number", "city_name");
133 ErrorValidationUtils.checkBodyResponseOnError(ActionStatus.INVALID_HEAT_PARAMETER_VALUE.name(),
134 variables, response.getResponse());
136 if (heatArtifactDetails.getArtifactName().contains("positive")) {
137 AssertJUnit.assertTrue(
138 "add HEAT artifact to resource request returned status:" + response.getErrorCode()
139 + " fileName: " + heatArtifactDetails.getArtifactName(),
140 response.getErrorCode() == 200);
143 } else if (heatArtifactDetails.getArtifactName().contains("string")) {
144 if (heatArtifactDetails.getArtifactName().contains("negative")) {
145 // validate negative response
146 List<String> variables = Arrays.asList("HEAT", "string", "city_name");
147 ErrorValidationUtils.checkBodyResponseOnError(ActionStatus.INVALID_HEAT_PARAMETER_VALUE.name(),
148 variables, response.getResponse());
150 if (heatArtifactDetails.getArtifactName().contains("positive")) {
151 AssertJUnit.assertTrue(
152 "add HEAT artifact to resource request returned status:" + response.getErrorCode()
153 + " fileName: " + heatArtifactDetails.getArtifactName(),
154 response.getErrorCode() == 200);
159 else if (heatArtifactDetails.getArtifactName().contains("unsupported")) {
161 // validate negative response
162 List<String> variables = Arrays.asList("HEAT", "number123");
163 ErrorValidationUtils.checkBodyResponseOnError(ActionStatus.INVALID_HEAT_PARAMETER_TYPE.name(),
164 variables, response.getResponse());
169 AssertJUnit.assertTrue(
170 "add HEAT artifact to resource request returned status:" + response.getErrorCode(),
171 response.getErrorCode() == 200);