re base code
[sdc.git] / test-apis-ci / src / main / java / org / openecomp / sdc / ci / tests / execute / service / GetAllServiceVersions.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.service;
22
23 import org.junit.Rule;
24 import org.junit.rules.TestName;
25 import org.openecomp.sdc.be.dao.api.ActionStatus;
26 import org.openecomp.sdc.be.datatypes.enums.ResourceTypeEnum;
27 import org.openecomp.sdc.be.model.Component;
28 import org.openecomp.sdc.be.model.Service;
29 import org.openecomp.sdc.be.model.User;
30 import org.openecomp.sdc.ci.tests.api.ComponentBaseTest;
31 import org.openecomp.sdc.ci.tests.datatypes.ComponentInstanceReqDetails;
32 import org.openecomp.sdc.ci.tests.datatypes.ResourceReqDetails;
33 import org.openecomp.sdc.ci.tests.datatypes.ServiceReqDetails;
34 import org.openecomp.sdc.ci.tests.datatypes.enums.ArtifactTypeEnum;
35 import org.openecomp.sdc.ci.tests.datatypes.enums.ErrorInfo;
36 import org.openecomp.sdc.ci.tests.datatypes.enums.LifeCycleStatesEnum;
37 import org.openecomp.sdc.ci.tests.datatypes.enums.UserRoleEnum;
38 import org.openecomp.sdc.ci.tests.datatypes.http.RestResponse;
39 import org.openecomp.sdc.ci.tests.execute.lifecycle.LCSbaseTest;
40 import org.openecomp.sdc.ci.tests.utils.general.AtomicOperationUtils;
41 import org.openecomp.sdc.ci.tests.utils.general.ElementFactory;
42 import org.openecomp.sdc.ci.tests.utils.rest.LifecycleRestUtils;
43 import org.openecomp.sdc.ci.tests.utils.rest.ResponseParser;
44 import org.openecomp.sdc.ci.tests.utils.rest.ServiceRestUtils;
45 import org.openecomp.sdc.ci.tests.utils.validation.ErrorValidationUtils;
46 import org.testng.annotations.BeforeMethod;
47 import org.testng.annotations.Test;
48
49 import java.util.Arrays;
50 import java.util.HashMap;
51 import java.util.List;
52 import java.util.Map;
53
54 import static org.testng.AssertJUnit.assertEquals;
55 import static org.testng.AssertJUnit.assertTrue;
56
57 public class GetAllServiceVersions extends ComponentBaseTest {
58         protected ResourceReqDetails resourceDetails;
59         protected ServiceReqDetails serviceDetails;
60         protected User sdncDesignerDetails;
61         protected User sdncDesignerDetails2;
62         protected User sdncAdminDetails;
63         protected User sdncGovernorDeatails;
64         protected User sdncTesterDetails;
65         protected User sdncOpsDetails;
66         protected ComponentInstanceReqDetails resourceInstanceReqDetails;
67         protected Component resourceDetailsVFCcomp;
68         protected Service serviceServ;
69
70         @Rule
71         public static TestName name = new TestName();
72
73         public GetAllServiceVersions() {
74                 super(name, GetAllServiceVersions.class.getName());
75                 ;
76         }
77
78         @BeforeMethod
79         public void setUp() throws Exception {
80
81                 sdncDesignerDetails = ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER);
82                 sdncDesignerDetails2 = ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER2);
83                 sdncAdminDetails = ElementFactory.getDefaultUser(UserRoleEnum.ADMIN);
84                 sdncGovernorDeatails = ElementFactory.getDefaultUser(UserRoleEnum.GOVERNOR);
85                 sdncTesterDetails = ElementFactory.getDefaultUser(UserRoleEnum.TESTER);
86                 sdncOpsDetails = ElementFactory.getDefaultUser(UserRoleEnum.OPS);
87                 resourceDetailsVFCcomp = AtomicOperationUtils
88                                 .createResourceByType(ResourceTypeEnum.VFC, UserRoleEnum.DESIGNER, true).left().value();
89                 AtomicOperationUtils.uploadArtifactByType(ArtifactTypeEnum.HEAT, resourceDetailsVFCcomp, UserRoleEnum.DESIGNER,
90                                 true, true);
91
92                 AtomicOperationUtils.changeComponentState(resourceDetailsVFCcomp, UserRoleEnum.DESIGNER,
93                                 LifeCycleStatesEnum.CERTIFY, true);
94                 serviceServ = AtomicOperationUtils.createDefaultService(UserRoleEnum.DESIGNER, true).left().value();
95                 AtomicOperationUtils.addComponentInstanceToComponentContainer(resourceDetailsVFCcomp, serviceServ,
96                                 UserRoleEnum.DESIGNER, true);
97
98                 serviceDetails = new ServiceReqDetails(serviceServ);
99
100         }
101
102         @Test
103         public void GetAllServiceVersions_Version05() throws Exception {
104
105                 Map<String, String> origVersionsMap = new HashMap<String, String>();
106                 origVersionsMap.put(serviceDetails.getVersion(), serviceDetails.getUniqueId());
107                 for (int x = 0; x < 4; x++) {
108                         LifecycleRestUtils.changeServiceState(serviceDetails, sdncDesignerDetails, serviceDetails.getVersion(),
109                                         LifeCycleStatesEnum.CHECKIN);
110                         LifecycleRestUtils.changeServiceState(serviceDetails, sdncDesignerDetails, serviceDetails.getVersion(),
111                                         LifeCycleStatesEnum.CHECKOUT);
112                         origVersionsMap.put(serviceDetails.getVersion(), serviceDetails.getUniqueId());
113
114                 }
115                 // validate get response
116                 RestResponse serviceGetResponse = ServiceRestUtils.getService(serviceDetails, sdncDesignerDetails);
117                 Service res = ResponseParser.convertServiceResponseToJavaObject(serviceGetResponse.getResponse());
118                 Map<String, String> getVersionsMap = res.getAllVersions();
119                 assertTrue(origVersionsMap.equals(getVersionsMap));
120
121         }
122
123         @Test
124         public void GetAllServiceVersions_Version01() throws Exception {
125
126                 Map<String, String> origVersionsMap = new HashMap<String, String>();
127                 origVersionsMap.put(serviceDetails.getVersion(), serviceDetails.getUniqueId());
128
129                 RestResponse serviceGetResponse = ServiceRestUtils.getService(serviceDetails, sdncDesignerDetails);
130                 Service res = ResponseParser.convertServiceResponseToJavaObject(serviceGetResponse.getResponse());
131                 Map<String, String> getVersionsMap = res.getAllVersions();
132                 assertTrue(origVersionsMap.equals(getVersionsMap));
133         }
134
135         @Test
136         public void GetAllServiceVersions_Version15() throws Exception {
137                 // addMandatoryArtifactsToService();
138                 Map<String, String> origVersionsMap = new HashMap<String, String>();
139                 for (int x = 0; x < 4; x++) {
140                         LifecycleRestUtils.changeServiceState(serviceDetails, sdncDesignerDetails, serviceDetails.getVersion(),
141                                         LifeCycleStatesEnum.CHECKIN);
142                         LifecycleRestUtils.changeServiceState(serviceDetails, sdncDesignerDetails, serviceDetails.getVersion(),
143                                         LifeCycleStatesEnum.CHECKOUT);
144                 }
145
146                 RestResponse changeServiceState = LCSbaseTest.certifyService(serviceDetails, sdncDesignerDetails);
147                 // serviceServ.setUniqueId(serviceDetails.getUniqueId());
148                 // RestResponse changeServiceState =
149                 // AtomicOperationUtils.changeComponentState(serviceServ,
150                 // UserRoleEnum.ADMIN, LifeCycleStatesEnum.CERTIFY, false).getRight();
151
152                 assertTrue("certify service request returned status:" + changeServiceState.getErrorCode(),
153                                 changeServiceState.getErrorCode() == 200);
154                 origVersionsMap.put(serviceDetails.getVersion(), serviceDetails.getUniqueId());
155
156                 for (int x = 0; x < 5; x++) {
157                         LifecycleRestUtils.changeServiceState(serviceDetails, sdncAdminDetails, serviceDetails.getVersion(),
158                                         LifeCycleStatesEnum.CHECKOUT);
159                         LifecycleRestUtils.changeServiceState(serviceDetails, sdncAdminDetails, serviceDetails.getVersion(),
160                                         LifeCycleStatesEnum.CHECKIN);
161                         origVersionsMap.put(serviceDetails.getVersion(), serviceDetails.getUniqueId());
162
163                 }
164
165                 // validate get response
166                 RestResponse serviceGetResponse = ServiceRestUtils.getService(serviceDetails, sdncAdminDetails);
167                 Service res = ResponseParser.convertServiceResponseToJavaObject(serviceGetResponse.getResponse());
168                 Map<String, String> getVersionsMap = res.getAllVersions();
169                 assertTrue(origVersionsMap.equals(getVersionsMap));
170         }
171
172         @Test
173         public void GetAllServiceVersions_Version25() throws Exception {
174                 // addMandatoryArtifactsToService();
175                 Map<String, String> origVersionsMap = new HashMap<String, String>();
176                 for (int x = 0; x < 4; x++) {
177                         LifecycleRestUtils.changeServiceState(serviceDetails, sdncDesignerDetails, serviceDetails.getVersion(),
178                                         LifeCycleStatesEnum.CHECKIN);
179                         LifecycleRestUtils.changeServiceState(serviceDetails, sdncDesignerDetails, serviceDetails.getVersion(),
180                                         LifeCycleStatesEnum.CHECKOUT);
181                 }
182
183                 // getting to version 1.0
184                 RestResponse changeServiceState = LCSbaseTest.certifyService(serviceDetails, sdncDesignerDetails);
185                 assertTrue("certify service request returned status:" + changeServiceState.getErrorCode(),
186                                 changeServiceState.getErrorCode() == 200);
187                 origVersionsMap.put(serviceDetails.getVersion(), serviceDetails.getUniqueId());
188
189                 // getting to version 1.5
190                 for (int x = 0; x < 5; x++) {
191                         LifecycleRestUtils.changeServiceState(serviceDetails, sdncDesignerDetails, serviceDetails.getVersion(),
192                                         LifeCycleStatesEnum.CHECKIN);
193                         LifecycleRestUtils.changeServiceState(serviceDetails, sdncDesignerDetails, serviceDetails.getVersion(),
194                                         LifeCycleStatesEnum.CHECKOUT);
195                 }
196
197                 // getting to version 2.0
198                 changeServiceState = LCSbaseTest.certifyService(serviceDetails, sdncDesignerDetails);
199                 assertTrue("certify service request returned status:" + changeServiceState.getErrorCode(),
200                                 changeServiceState.getErrorCode() == 200);
201                 origVersionsMap.put(serviceDetails.getVersion(), serviceDetails.getUniqueId());
202
203                 // getting to version 2.5
204                 for (int x = 0; x < 5; x++) {
205                         LifecycleRestUtils.changeServiceState(serviceDetails, sdncAdminDetails, serviceDetails.getVersion(),
206                                         LifeCycleStatesEnum.CHECKIN);
207                         LifecycleRestUtils.changeServiceState(serviceDetails, sdncAdminDetails, serviceDetails.getVersion(),
208                                         LifeCycleStatesEnum.CHECKOUT);
209                         origVersionsMap.put(serviceDetails.getVersion(), serviceDetails.getUniqueId());
210                 }
211
212                 // validate get response
213                 RestResponse serviceGetResponse = ServiceRestUtils.getService(serviceDetails, sdncAdminDetails);
214                 Service res = ResponseParser.convertServiceResponseToJavaObject(serviceGetResponse.getResponse());
215                 Map<String, String> getVersionsMap = res.getAllVersions();
216                 assertTrue(origVersionsMap.equals(getVersionsMap));
217         }
218
219         @Test
220         public void GetAllServiceVersions_ReadyForCertification_version05() throws Exception {
221                 // addMandatoryArtifactsToService();
222                 Map<String, String> origVersionsMap = new HashMap<String, String>();
223                 origVersionsMap.put(serviceDetails.getVersion(), serviceDetails.getUniqueId());
224                 for (int x = 0; x < 4; x++) {
225                         LifecycleRestUtils.changeServiceState(serviceDetails, sdncDesignerDetails, serviceDetails.getVersion(),
226                                         LifeCycleStatesEnum.CHECKIN);
227                         LifecycleRestUtils.changeServiceState(serviceDetails, sdncDesignerDetails, serviceDetails.getVersion(),
228                                         LifeCycleStatesEnum.CHECKOUT);
229                         origVersionsMap.put(serviceDetails.getVersion(), serviceDetails.getUniqueId());
230                 }
231
232                 LifecycleRestUtils.changeServiceState(serviceDetails, sdncDesignerDetails, serviceDetails.getVersion(),
233                                 LifeCycleStatesEnum.CHECKIN);
234                 LifecycleRestUtils.changeServiceState(serviceDetails, sdncAdminDetails, serviceDetails.getVersion(),
235                                 LifeCycleStatesEnum.CERTIFICATIONREQUEST);
236
237                 // validate get response
238                 RestResponse serviceGetResponse = ServiceRestUtils.getService(serviceDetails, sdncAdminDetails);
239                 Service res = ResponseParser.convertServiceResponseToJavaObject(serviceGetResponse.getResponse());
240                 Map<String, String> getVersionsMap = res.getAllVersions();
241                 assertTrue(origVersionsMap.equals(getVersionsMap));
242         }
243
244         @Test
245         public void GetAllServiceVersions_CertifactionInProgress_version05() throws Exception {
246                 // addMandatoryArtifactsToService();
247                 Map<String, String> origVersionsMap = new HashMap<String, String>();
248                 origVersionsMap.put(serviceDetails.getVersion(), serviceDetails.getUniqueId());
249                 for (int x = 0; x < 4; x++) {
250                         LifecycleRestUtils.changeServiceState(serviceDetails, sdncDesignerDetails, serviceDetails.getVersion(),
251                                         LifeCycleStatesEnum.CHECKIN);
252                         LifecycleRestUtils.changeServiceState(serviceDetails, sdncDesignerDetails, serviceDetails.getVersion(),
253                                         LifeCycleStatesEnum.CHECKOUT);
254                         origVersionsMap.put(serviceDetails.getVersion(), serviceDetails.getUniqueId());
255                 }
256
257                 LifecycleRestUtils.changeServiceState(serviceDetails, sdncDesignerDetails, serviceDetails.getVersion(),
258                                 LifeCycleStatesEnum.CHECKIN);
259                 LifecycleRestUtils.changeServiceState(serviceDetails, sdncAdminDetails, serviceDetails.getVersion(),
260                                 LifeCycleStatesEnum.CERTIFICATIONREQUEST);
261                 LifecycleRestUtils.changeServiceState(serviceDetails, sdncAdminDetails, serviceDetails.getVersion(),
262                                 LifeCycleStatesEnum.STARTCERTIFICATION);
263
264                 // validate get response
265                 RestResponse serviceGetResponse = ServiceRestUtils.getService(serviceDetails, sdncAdminDetails);
266                 Service res = ResponseParser.convertServiceResponseToJavaObject(serviceGetResponse.getResponse());
267                 Map<String, String> getVersionsMap = res.getAllVersions();
268                 assertTrue(origVersionsMap.equals(getVersionsMap));
269         }
270
271         @Test
272         public void GetAllServiceVersions_Certified_version10() throws Exception {
273                 // addMandatoryArtifactsToService();
274                 Map<String, String> origVersionsMap = new HashMap<String, String>();
275                 // get to version 0.5
276                 for (int x = 0; x < 4; x++) {
277                         LifecycleRestUtils.changeServiceState(serviceDetails, sdncDesignerDetails, serviceDetails.getVersion(),
278                                         LifeCycleStatesEnum.CHECKIN);
279                         LifecycleRestUtils.changeServiceState(serviceDetails, sdncDesignerDetails, serviceDetails.getVersion(),
280                                         LifeCycleStatesEnum.CHECKOUT);
281
282                 }
283
284                 // get version 1.0
285                 RestResponse changeServiceState = LCSbaseTest.certifyService(serviceDetails, sdncDesignerDetails);
286                 assertTrue("certify service request returned status:" + changeServiceState.getErrorCode(),
287                                 changeServiceState.getErrorCode() == 200);
288                 origVersionsMap.put(serviceDetails.getVersion(), serviceDetails.getUniqueId());
289
290                 // validate get response
291                 RestResponse serviceGetResponse = ServiceRestUtils.getService(serviceDetails, sdncAdminDetails);
292                 Service res = ResponseParser.convertServiceResponseToJavaObject(serviceGetResponse.getResponse());
293                 Map<String, String> getVersionsMap = res.getAllVersions();
294                 assertTrue(origVersionsMap.equals(getVersionsMap));
295         }
296
297         @Test
298         public void GetAllServiceVersions_Certified_version20() throws Exception {
299                 // addMandatoryArtifactsToService();
300                 Map<String, String> origVersionsMap = new HashMap<String, String>();
301                 // get to version 0.5
302                 for (int x = 0; x < 4; x++) {
303                         LifecycleRestUtils.changeServiceState(serviceDetails, sdncDesignerDetails, serviceDetails.getVersion(),
304                                         LifeCycleStatesEnum.CHECKIN);
305                         LifecycleRestUtils.changeServiceState(serviceDetails, sdncDesignerDetails, serviceDetails.getVersion(),
306                                         LifeCycleStatesEnum.CHECKOUT);
307                 }
308
309                 // get version 1.0
310                 RestResponse changeServiceState = LCSbaseTest.certifyService(serviceDetails, sdncDesignerDetails);
311                 assertTrue("certify service request returned status:" + changeServiceState.getErrorCode(),
312                                 changeServiceState.getErrorCode() == 200);
313                 origVersionsMap.put(serviceDetails.getVersion(), serviceDetails.getUniqueId());
314
315                 // get version 1.5
316                 for (int x = 0; x < 4; x++) {
317                         LifecycleRestUtils.changeServiceState(serviceDetails, sdncDesignerDetails, serviceDetails.getVersion(),
318                                         LifeCycleStatesEnum.CHECKIN);
319                         LifecycleRestUtils.changeServiceState(serviceDetails, sdncDesignerDetails, serviceDetails.getVersion(),
320                                         LifeCycleStatesEnum.CHECKOUT);
321                 }
322
323                 // get version 2.0
324                 changeServiceState = LCSbaseTest.certifyService(serviceDetails, sdncDesignerDetails);
325                 assertTrue("certify service request returned status:" + changeServiceState.getErrorCode(),
326                                 changeServiceState.getErrorCode() == 200);
327                 origVersionsMap.put(serviceDetails.getVersion(), serviceDetails.getUniqueId());
328
329                 // validate get response
330                 RestResponse serviceGetResponse = ServiceRestUtils.getService(serviceDetails, sdncAdminDetails);
331                 Service res = ResponseParser.convertServiceResponseToJavaObject(serviceGetResponse.getResponse());
332                 Map<String, String> getVersionsMap = res.getAllVersions();
333                 assertTrue(origVersionsMap.equals(getVersionsMap));
334         }
335
336         @Test
337         public void GetAllServiceVersions_ServiceNotFound() throws Exception {
338
339                 RestResponse serviceGetResponse = ServiceRestUtils.getService("123456789", sdncAdminDetails);
340                 ErrorInfo errorInfo = ErrorValidationUtils.parseErrorConfigYaml(ActionStatus.SERVICE_NOT_FOUND.name());
341                 assertEquals("Check response code after get service without cache", errorInfo.getCode(),
342                                 serviceGetResponse.getErrorCode());
343
344                 List<String> variables = Arrays.asList("123456789");
345                 ErrorValidationUtils.checkBodyResponseOnError(ActionStatus.SERVICE_NOT_FOUND.name(), variables,
346                                 serviceGetResponse.getResponse());
347
348         }
349
350 }