Fix for radio buttons
[sdc.git] / asdc-tests / src / main / java / org / openecomp / sdc / ci / tests / execute / resource / ValidateExtendedVfData.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.resource;
22
23 import static org.testng.AssertJUnit.assertNotNull;
24 import static org.testng.AssertJUnit.assertTrue;
25
26 import java.util.List;
27
28 import org.json.simple.JSONArray;
29 import org.json.simple.JSONObject;
30 import org.json.simple.JSONValue;
31 import org.junit.Rule;
32 import org.junit.rules.TestName;
33 import org.openecomp.sdc.be.datatypes.enums.ResourceTypeEnum;
34 import org.openecomp.sdc.be.model.ComponentInstance;
35 import org.openecomp.sdc.be.model.Resource;
36 import org.openecomp.sdc.be.model.User;
37 import org.openecomp.sdc.ci.tests.api.ComponentBaseTest;
38 import org.openecomp.sdc.ci.tests.datatypes.ResourceReqDetails;
39 import org.openecomp.sdc.ci.tests.datatypes.enums.ArtifactTypeEnum;
40 import org.openecomp.sdc.ci.tests.datatypes.enums.AssocType;
41 import org.openecomp.sdc.ci.tests.datatypes.enums.LifeCycleStatesEnum;
42 import org.openecomp.sdc.ci.tests.datatypes.enums.NormativeTypesEnum;
43 import org.openecomp.sdc.ci.tests.datatypes.enums.ResourceCategoryEnum;
44 import org.openecomp.sdc.ci.tests.datatypes.enums.UserRoleEnum;
45 import org.openecomp.sdc.ci.tests.datatypes.http.RestResponse;
46 import org.openecomp.sdc.ci.tests.utils.general.AtomicOperationUtils;
47 import org.openecomp.sdc.ci.tests.utils.general.ElementFactory;
48 import org.openecomp.sdc.ci.tests.utils.rest.LifecycleRestUtils;
49 import org.openecomp.sdc.ci.tests.utils.rest.ResourceRestUtils;
50 import org.openecomp.sdc.ci.tests.utils.rest.ResponseParser;
51 import org.testng.annotations.BeforeMethod;
52 import org.testng.annotations.Test;
53
54 import fj.data.Either;
55
56 public class ValidateExtendedVfData extends ComponentBaseTest {
57
58         protected Resource resourceDetailsVF;
59         protected Resource resourceDetailsCP_01;
60         protected Resource resourceDetailsVL_01;
61         protected Resource resourceDetailsVFCcomp;
62
63         protected User sdncUserDetails;
64
65         @Rule
66         public static TestName name = new TestName();
67
68         public ValidateExtendedVfData() {
69                 super(name, ValidateExtendedVfData.class.getName());
70         }
71
72         @BeforeMethod
73         public void create() throws Exception {
74
75                 sdncUserDetails = ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER);
76
77                 Either<Resource, RestResponse> resourceDetailsVFe = AtomicOperationUtils
78                                 .createResourceByType(ResourceTypeEnum.VF, UserRoleEnum.DESIGNER, true);
79                 resourceDetailsVF = resourceDetailsVFe.left().value();
80                 Either<Resource, RestResponse> resourceDetailsCP_01e = AtomicOperationUtils
81                                 .createResourcesByTypeNormTypeAndCatregory(ResourceTypeEnum.CP, NormativeTypesEnum.PORT,
82                                                 ResourceCategoryEnum.GENERIC_DATABASE, UserRoleEnum.DESIGNER, true);
83                 resourceDetailsCP_01 = resourceDetailsCP_01e.left().value();
84                 AtomicOperationUtils.uploadArtifactByType(ArtifactTypeEnum.HEAT, resourceDetailsCP_01, UserRoleEnum.DESIGNER,
85                                 true, true);
86                 AtomicOperationUtils.uploadArtifactByType(ArtifactTypeEnum.HEAT_VOL, resourceDetailsCP_01,
87                                 UserRoleEnum.DESIGNER, true, true);
88                 AtomicOperationUtils.uploadArtifactByType(ArtifactTypeEnum.HEAT_VOL, resourceDetailsCP_01,
89                                 UserRoleEnum.DESIGNER, true, true);
90                 AtomicOperationUtils.uploadArtifactByType(ArtifactTypeEnum.HEAT_NET, resourceDetailsCP_01,
91                                 UserRoleEnum.DESIGNER, true, true);
92                 AtomicOperationUtils.uploadArtifactByType(ArtifactTypeEnum.OTHER, resourceDetailsCP_01, UserRoleEnum.DESIGNER,
93                                 true, true);
94                 AtomicOperationUtils.changeComponentState(resourceDetailsCP_01, UserRoleEnum.DESIGNER,
95                                 LifeCycleStatesEnum.CERTIFY, true);
96                 Either<Resource, RestResponse> resourceDetailsVL_01e = AtomicOperationUtils
97                                 .createResourcesByTypeNormTypeAndCatregory(ResourceTypeEnum.VL, NormativeTypesEnum.NETWORK,
98                                                 ResourceCategoryEnum.GENERIC_NETWORK_ELEMENTS, UserRoleEnum.DESIGNER, true);
99                 resourceDetailsVL_01 = resourceDetailsVL_01e.left().value();
100                 AtomicOperationUtils.uploadArtifactByType(ArtifactTypeEnum.HEAT, resourceDetailsVL_01, UserRoleEnum.DESIGNER,
101                                 true, true);
102                 AtomicOperationUtils.uploadArtifactByType(ArtifactTypeEnum.HEAT_VOL, resourceDetailsVL_01,
103                                 UserRoleEnum.DESIGNER, true, true);
104                 AtomicOperationUtils.uploadArtifactByType(ArtifactTypeEnum.HEAT_VOL, resourceDetailsVL_01,
105                                 UserRoleEnum.DESIGNER, true, true);
106                 AtomicOperationUtils.uploadArtifactByType(ArtifactTypeEnum.HEAT_NET, resourceDetailsVL_01,
107                                 UserRoleEnum.DESIGNER, true, true);
108                 AtomicOperationUtils.uploadArtifactByType(ArtifactTypeEnum.OTHER, resourceDetailsVL_01, UserRoleEnum.DESIGNER,
109                                 true, true);
110                 AtomicOperationUtils.changeComponentState(resourceDetailsVL_01, UserRoleEnum.DESIGNER,
111                                 LifeCycleStatesEnum.CERTIFY, true);
112
113                 Either<Resource, RestResponse> resourceDetailsVFCcompE = AtomicOperationUtils
114                                 .createResourcesByTypeNormTypeAndCatregory(ResourceTypeEnum.VFC, NormativeTypesEnum.COMPUTE,
115                                                 ResourceCategoryEnum.GENERIC_INFRASTRUCTURE, UserRoleEnum.DESIGNER, true);
116                 resourceDetailsVFCcomp = resourceDetailsVFCcompE.left().value();
117                 AtomicOperationUtils.changeComponentState(resourceDetailsVFCcomp, UserRoleEnum.DESIGNER,
118                                 LifeCycleStatesEnum.CERTIFY, true);
119
120                 ComponentInstance resourceDetailsCP_01ins = AtomicOperationUtils
121                                 .addComponentInstanceToComponentContainer(resourceDetailsCP_01, resourceDetailsVF,
122                                                 UserRoleEnum.DESIGNER, true)
123                                 .left().value();
124                 ComponentInstance resourceDetailsVL_01ins = AtomicOperationUtils
125                                 .addComponentInstanceToComponentContainer(resourceDetailsVL_01, resourceDetailsVF,
126                                                 UserRoleEnum.DESIGNER, true)
127                                 .left().value();
128                 ComponentInstance resourceDetailsVFCcomp_ins = AtomicOperationUtils
129                                 .addComponentInstanceToComponentContainer(resourceDetailsVFCcomp, resourceDetailsVF,
130                                                 UserRoleEnum.DESIGNER, true)
131                                 .left().value();
132
133                 resourceDetailsVF = AtomicOperationUtils.getResourceObject(resourceDetailsVF, UserRoleEnum.DESIGNER);
134                 AtomicOperationUtils.associate2ResourceInstances(resourceDetailsVF, resourceDetailsCP_01ins,
135                                 resourceDetailsVL_01ins, AssocType.LINKABLE.getAssocType(), UserRoleEnum.DESIGNER, true);
136                 AtomicOperationUtils.associate2ResourceInstances(resourceDetailsVF, resourceDetailsCP_01ins,
137                                 resourceDetailsVFCcomp_ins, AssocType.BINDABLE.getAssocType(), UserRoleEnum.DESIGNER, true);
138
139         }
140
141         @Test
142         public void getResourceLatestVersion() throws Exception {
143
144                 RestResponse response = LifecycleRestUtils.changeComponentState(resourceDetailsVF, sdncUserDetails,
145                                 LifeCycleStatesEnum.CHECKIN);
146                 assertTrue("change LC state to CHECKIN, returned status:" + response.getErrorCode(),
147                                 response.getErrorCode() == 200);
148                 // resourceDetailsVF =
149                 // AtomicOperationUtils.getResourceObject(resourceDetailsVF,
150                 // UserRoleEnum.DESIGNER);
151                 RestResponse getResourceLatestVersionResponse = ResourceRestUtils.getResourceLatestVersionList(sdncUserDetails);
152                 assertTrue("response code is not 200, returned :" + getResourceLatestVersionResponse.getErrorCode(),
153                                 getResourceLatestVersionResponse.getErrorCode() == 200);
154
155                 List<Resource> resourceList = ResourceRestUtils
156                                 .restResponseToResourceObjectList(getResourceLatestVersionResponse.getResponse());
157                 Resource resource = ResourceRestUtils.getResourceObjectFromResourceListByUid(resourceList,
158                                 resourceDetailsVF.getUniqueId());
159
160                 callAllCheckMethods(resource);
161         }
162
163         @Test
164         public void getFollowedResources() throws Exception {
165
166                 RestResponse response = LifecycleRestUtils.changeComponentState(resourceDetailsVF, sdncUserDetails,
167                                 LifeCycleStatesEnum.CHECKIN);
168                 assertTrue("change LC state to CHECKIN, returned status:" + response.getErrorCode(),
169                                 response.getErrorCode() == 200);
170                 // resourceDetailsVF =
171                 // AtomicOperationUtils.getResourceObject(resourceDetailsVF,
172                 // UserRoleEnum.DESIGNER);
173                 resourceDetailsVF = AtomicOperationUtils.getResourceObject(resourceDetailsVF, UserRoleEnum.DESIGNER);
174
175                 RestResponse getFollowedResourcesResponse = ResourceRestUtils.getFollowedList(sdncUserDetails);
176                 String json = getFollowedResourcesResponse.getResponse();
177                 JSONObject jsonResp = (JSONObject) JSONValue.parse(json);
178                 JSONArray resources = (JSONArray) jsonResp.get("resources");
179
180                 List<Resource> resourceList = ResourceRestUtils.restResponseToResourceObjectList(resources.toString());
181                 Resource resource = ResourceRestUtils.getResourceObjectFromResourceListByUid(resourceList,
182                                 resourceDetailsVF.getUniqueId());
183                 // TODO if get followed list Api should return full object data?
184                 // callAllCheckMethods(resource);
185         }
186
187         @Test
188         public void lifeCycleChekInRequest() throws Exception {
189
190                 RestResponse response = LifecycleRestUtils.changeComponentState(resourceDetailsVF, sdncUserDetails,
191                                 LifeCycleStatesEnum.CHECKIN);
192                 assertTrue("change LC state to CHECKIN, returned status:" + response.getErrorCode(),
193                                 response.getErrorCode() == 200);
194                 // resourceDetailsVF =
195                 // AtomicOperationUtils.getResourceObject(resourceDetailsVF,
196                 // UserRoleEnum.DESIGNER);
197                 resourceDetailsVF = AtomicOperationUtils.getResourceObject(resourceDetailsVF, UserRoleEnum.DESIGNER);
198
199                 Resource resource = ResponseParser.convertResourceResponseToJavaObject(response.getResponse());
200                 callAllCheckMethods(resource);
201         }
202
203         @Test
204         public void lifeCycleChekOutRequest() throws Exception {
205
206                 RestResponse response = LifecycleRestUtils.changeComponentState(resourceDetailsVF, sdncUserDetails,
207                                 LifeCycleStatesEnum.CHECKIN);
208                 assertTrue("change LC state to CHECKIN, returned status:" + response.getErrorCode(),
209                                 response.getErrorCode() == 200);
210                 response = LifecycleRestUtils.changeComponentState(resourceDetailsVF, sdncUserDetails,
211                                 LifeCycleStatesEnum.CHECKOUT);
212                 assertTrue("change LC state to CHECKOUT, returned status:" + response.getErrorCode(),
213                                 response.getErrorCode() == 200);
214                 resourceDetailsVF = AtomicOperationUtils.getResourceObject(resourceDetailsVF, UserRoleEnum.DESIGNER);
215
216                 Resource resource = ResponseParser.convertResourceResponseToJavaObject(response.getResponse());
217                 callAllCheckMethods(resource);
218         }
219
220         @Test
221         public void lifeCycleRequestForCertification() throws Exception {
222
223                 RestResponse response = LifecycleRestUtils.changeComponentState(resourceDetailsVF, sdncUserDetails,
224                                 LifeCycleStatesEnum.CHECKIN);
225                 assertTrue("change LC state to CHECKIN, returned status:" + response.getErrorCode(),
226                                 response.getErrorCode() == 200);
227                 response = LifecycleRestUtils.changeComponentState(resourceDetailsVF, sdncUserDetails,
228                                 LifeCycleStatesEnum.CERTIFICATIONREQUEST);
229                 assertTrue("change LC state to CERTIFICATIONREQUEST, returned status:" + response.getErrorCode(),
230                                 response.getErrorCode() == 200);
231                 resourceDetailsVF = AtomicOperationUtils.getResourceObject(resourceDetailsVF, UserRoleEnum.DESIGNER);
232
233                 Resource resource = ResponseParser.convertResourceResponseToJavaObject(response.getResponse());
234                 callAllCheckMethods(resource);
235         }
236
237         @Test
238         public void lifeCycleCertificationRequest() throws Exception {
239
240                 RestResponse response = AtomicOperationUtils
241                                 .changeComponentState(resourceDetailsVF, UserRoleEnum.DESIGNER, LifeCycleStatesEnum.CERTIFY, false)
242                                 .getRight();
243                 assertTrue("change LC state to CERTIFY, returned status:" + response.getErrorCode(),
244                                 response.getErrorCode() == 200);
245                 resourceDetailsVF = AtomicOperationUtils.getResourceObject(resourceDetailsVF, UserRoleEnum.DESIGNER);
246
247                 Resource resource = ResponseParser.convertResourceResponseToJavaObject(response.getResponse());
248                 callAllCheckMethods(resource);
249         }
250
251         @Test
252         public void checkGetResourceAfterCertificationRequest() throws Exception {
253
254                 RestResponse response = AtomicOperationUtils
255                                 .changeComponentState(resourceDetailsVF, UserRoleEnum.DESIGNER, LifeCycleStatesEnum.CERTIFY, false)
256                                 .getRight();
257                 assertTrue("change LC state to CERTIFY, returned status:" + response.getErrorCode(),
258                                 response.getErrorCode() == 200);
259                 resourceDetailsVF = AtomicOperationUtils.getResourceObject(resourceDetailsVF, UserRoleEnum.DESIGNER);
260
261                 callAllCheckMethods(resourceDetailsVF);
262         }
263
264         @Test
265         public void updateResourceMetadata() throws Exception {
266
267                 resourceDetailsVF.setDescription("stamStam");
268                 ResourceReqDetails resourceDetailsVFreqD = new ResourceReqDetails(resourceDetailsVF);
269                 RestResponse updateResourceResponse = ResourceRestUtils.updateResourceMetadata(resourceDetailsVFreqD,
270                                 sdncUserDetails, resourceDetailsVF.getUniqueId());
271                 assertTrue("response code is not 200, returned :" + updateResourceResponse.getErrorCode(),
272                                 updateResourceResponse.getErrorCode() == 200);
273
274                 Resource resource = ResponseParser.convertResourceResponseToJavaObject(updateResourceResponse.getResponse());
275
276                 callAllCheckMethods(resource);
277         }
278
279         private void checkResourceInstances(Resource resource) {
280                 assertNotNull("resource component Instances list is null ", resource.getComponentInstances());
281                 assertTrue("resource component Instances list is empty ", !resource.getComponentInstances().equals(""));
282         }
283
284         private void checkResourceInstancesProperties(Resource resource) {
285                 assertNotNull("component Instances properies list is null ", resource.getComponentInstancesProperties());
286                 assertTrue("component Instances properies list is empty ",
287                                 !resource.getComponentInstancesProperties().equals(""));
288         }
289
290         private void checkResourceInstancesRelations(Resource resource) {
291                 assertNotNull("component Instances Relations list is null ", resource.getComponentInstancesRelations());
292                 assertTrue("component Instances Relations list is empty ",
293                                 !resource.getComponentInstancesRelations().equals(""));
294         }
295
296         private void checkResourceCapabilities(Resource resource) {
297                 assertNotNull("component Instances Capabilities list is null ", resource.getCapabilities());
298                 assertTrue("component Instances Capabilities list is empty ", !resource.getCapabilities().equals(""));
299         }
300
301         private void checkResourceRequirements(Resource resource) {
302                 assertNotNull("component Instances Requirements list is null ", resource.getRequirements());
303                 assertTrue("component Instances Requirements list is empty ", !resource.getRequirements().equals(""));
304         }
305
306         private void callAllCheckMethods(Resource resource) {
307
308                 checkResourceInstances(resource);
309                 checkResourceInstancesProperties(resource);
310                 checkResourceInstancesRelations(resource);
311                 checkResourceCapabilities(resource);
312                 checkResourceRequirements(resource);
313         }
314
315 }