[SDC-29] rebase continue work to align source
[sdc.git] / test-apis-ci / src / main / java / org / openecomp / sdc / ci / tests / execute / artifacts / ValidateHeatArtFieldsTypes.java
1 /*-
2  * ============LICENSE_START=======================================================
3  * SDC
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
10  * 
11  *      http://www.apache.org/licenses/LICENSE-2.0
12  * 
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=========================================================
19  */
20
21 package org.openecomp.sdc.ci.tests.execute.artifacts;
22
23 import java.util.Arrays;
24 import java.util.List;
25
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;
49
50 public class ValidateHeatArtFieldsTypes extends ComponentBaseTest {
51
52         protected User sdncDesignerDetails;
53         protected ResourceReqDetails resourceDetails;
54         protected ServiceReqDetails serviceDetails;
55
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";
60
61         private final String uuidString = RespJsonKeysEnum.UUID.getRespJsonKeyName().toString();
62
63         public ValidateHeatArtFieldsTypes() {
64                 super(name, ValidateHeatArtFieldsTypes.class.getName());
65         }
66
67         @Rule
68         public static TestName name = new TestName();
69
70         @Test
71         public void validateHeatArtFiledTypes() throws Exception {
72
73                 // get relevant resource and service
74
75                 sdncDesignerDetails = ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER);
76                 resourceDetails = ElementFactory.getDefaultResource();
77
78                 RestResponse response = ResourceRestUtils.createResource(resourceDetails, sdncDesignerDetails);
79                 AssertJUnit.assertTrue("create request returned status:" + response.getErrorCode(),
80                                 response.getErrorCode() == 201);
81
82                 // add artifact to resource1
83
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());
92
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());
99                                 }
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();
112                                                 }
113                                         }
114                                         if (heatArtifactDetails.getArtifactName().contains("true")) {
115                                                 AssertJUnit.assertTrue(currentValue.equals("true"));
116                                         }
117                                         if (heatArtifactDetails.getArtifactName().contains("false")) {
118                                                 AssertJUnit.assertTrue(currentValue.equals("false"));
119                                         }
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);
127                                 }
128
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());
135                                 }
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);
141                                 }
142
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());
149                                 }
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);
155                                 }
156
157                         }
158
159                         else if (heatArtifactDetails.getArtifactName().contains("unsupported")) {
160
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());
165
166                         }
167
168                         else {
169                                 AssertJUnit.assertTrue(
170                                                 "add HEAT artifact to resource request returned status:" + response.getErrorCode(),
171                                                 response.getErrorCode() == 200);
172                         }
173                 }
174
175         }
176
177 }