re base code
[sdc.git] / test-apis-ci / src / main / java / org / openecomp / sdc / ci / tests / execute / lifecycle / LCSbaseTest.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.lifecycle;
22
23 import org.apache.log4j.lf5.util.ResourceUtils;
24 import org.junit.rules.TestName;
25 import org.openecomp.sdc.be.datatypes.enums.ComponentTypeEnum;
26 import org.openecomp.sdc.be.model.LifecycleStateEnum;
27 import org.openecomp.sdc.be.model.Resource;
28 import org.openecomp.sdc.be.model.User;
29 import org.openecomp.sdc.ci.tests.api.ComponentBaseTest;
30 import org.openecomp.sdc.ci.tests.datatypes.ArtifactReqDetails;
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.*;
35 import org.openecomp.sdc.ci.tests.datatypes.http.RestResponse;
36 import org.openecomp.sdc.ci.tests.utils.ArtifactUtils;
37 import org.openecomp.sdc.ci.tests.utils.DbUtils;
38 import org.openecomp.sdc.ci.tests.utils.general.ElementFactory;
39 import org.openecomp.sdc.ci.tests.utils.rest.*;
40 import org.testng.annotations.BeforeMethod;
41
42 import java.io.IOException;
43
44 import static org.testng.AssertJUnit.*;
45
46 /**
47  * @author al714h
48  * <p>
49  * resourceDetails - create, Add Heat, certify resourceDetails1 - create
50  * resource, LCS - CheckOut serviceDetails - create, add RI from
51  * resourceDetails serviceDetails2 - create, add RI from resourceDetails
52  * serviceDetailsEmpty - create, LCS - CheckOut serviceDetailsEmpty2 -
53  * create, LCS - CheckOut
54  */
55 public abstract class LCSbaseTest extends ComponentBaseTest {
56
57     protected ResourceReqDetails resourceDetails;
58     protected ResourceReqDetails resourceDetails1;
59     protected ServiceReqDetails serviceDetails;
60     protected ServiceReqDetails serviceDetails2;
61     protected ServiceReqDetails serviceDetailsEmpty;
62     protected ServiceReqDetails serviceDetailsEmpty2;
63     protected ComponentInstanceReqDetails componentInstanceReqDetails;
64     protected ComponentInstanceReqDetails resourceInstanceReqDetails2;
65     protected User sdncDesignerDetails1;
66     protected User sdncDesignerDetails2;
67     protected static User sdncTesterDeatails1;
68     protected User sdncAdminDetails1;
69     protected ArtifactReqDetails heatArtifactDetails;
70     protected ArtifactReqDetails heatVolArtifactDetails;
71     protected ArtifactReqDetails heatNetArtifactDetails;
72
73     protected ArtifactReqDetails defaultArtifactDetails;
74     protected ResourceUtils resourceUtils;
75     protected ArtifactUtils artifactUtils;
76
77     // protected static ServiceUtils serviceUtils = new ServiceUtils();
78     public LCSbaseTest(TestName testName, String className) {
79         super(testName, className);
80     }
81
82     @BeforeMethod
83     public void before() throws Exception {
84
85         initializeMembers();
86
87         createComponents();
88
89     }
90
91     public void initializeMembers() throws IOException, Exception {
92         resourceDetails = ElementFactory.getDefaultResource();
93         // resourceDetails =
94         // ElementFactory.getDefaultResource("myNewResource1234567890",
95         // NormativeTypesEnum.ROOT, ResourceServiceCategoriesEnum.ROUTERS,
96         // UserRoleEnum.DESIGNER.getUserId());
97         resourceDetails1 = ElementFactory.getDefaultResource("secondResource", NormativeTypesEnum.ROOT);
98         serviceDetails = ElementFactory.getDefaultService();
99                 serviceDetails2 = ElementFactory.getDefaultService("newTestService2", ServiceCategoriesEnum.MOBILITY, "al1976", ServiceInstantiationType.A_LA_CARTE.getValue());
100         serviceDetailsEmpty = ElementFactory.getDefaultService("newEmptyService", ServiceCategoriesEnum.MOBILITY,
101                                 "al1976", ServiceInstantiationType.A_LA_CARTE.getValue());
102         serviceDetailsEmpty2 = ElementFactory.getDefaultService("newEmptyService2", ServiceCategoriesEnum.MOBILITY,
103                                 "al1976", ServiceInstantiationType.A_LA_CARTE.getValue());
104         sdncDesignerDetails1 = ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER);
105         sdncDesignerDetails2 = ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER2);
106         sdncTesterDeatails1 = ElementFactory.getDefaultUser(UserRoleEnum.TESTER);
107         sdncAdminDetails1 = ElementFactory.getDefaultUser(UserRoleEnum.ADMIN);
108         heatArtifactDetails = ElementFactory.getDefaultDeploymentArtifactForType(ArtifactTypeEnum.HEAT.getType());
109         heatNetArtifactDetails = ElementFactory
110                 .getDefaultDeploymentArtifactForType(ArtifactTypeEnum.HEAT_NET.getType());
111         heatVolArtifactDetails = ElementFactory
112                 .getDefaultDeploymentArtifactForType(ArtifactTypeEnum.HEAT_VOL.getType());
113         componentInstanceReqDetails = ElementFactory.getDefaultComponentInstance();
114         resourceInstanceReqDetails2 = ElementFactory.getDefaultComponentInstance();
115
116     }
117
118     protected void createComponents() throws Exception {
119
120         RestResponse response = ResourceRestUtils.createResource(resourceDetails1, sdncDesignerDetails1);
121         assertTrue("create request returned status:" + response.getErrorCode(), response.getErrorCode() == 201);
122         assertNotNull("resource uniqueId is null:", resourceDetails1.getUniqueId());
123
124         response = ResourceRestUtils.createResource(resourceDetails, sdncDesignerDetails1);
125         assertTrue("create request returned status:" + response.getErrorCode(), response.getErrorCode() == 201);
126         assertNotNull("resource uniqueId is null:", resourceDetails.getUniqueId());
127
128         response = ServiceRestUtils.createService(serviceDetails, sdncDesignerDetails1);
129         assertTrue("create request returned status:" + response.getErrorCode(), response.getErrorCode() == 201);
130         assertNotNull("service uniqueId is null:", serviceDetails.getUniqueId());
131
132         ArtifactReqDetails heatArtifactDetails = ElementFactory
133                 .getDefaultDeploymentArtifactForType(ArtifactTypeEnum.HEAT.getType());
134         response = ArtifactRestUtils.addInformationalArtifactToResource(heatArtifactDetails, sdncDesignerDetails1,
135                 resourceDetails.getUniqueId());
136         assertTrue("add HEAT artifact to resource request returned status:" + response.getErrorCode(),
137                 response.getErrorCode() == 200);
138
139         // certified resource
140         response = LCSbaseTest.certifyResource(resourceDetails, sdncDesignerDetails1);
141         assertTrue("certify resource request returned status:" + response.getErrorCode(),
142                 response.getErrorCode() == 200);
143
144         // add resource instance with HEAT deployment artifact to the service
145         componentInstanceReqDetails.setComponentUid(resourceDetails.getUniqueId());
146         response = ComponentInstanceRestUtils.createComponentInstance(componentInstanceReqDetails, sdncDesignerDetails1,
147                 serviceDetails.getUniqueId(), ComponentTypeEnum.SERVICE);
148         assertTrue("response code is not 201, returned: " + response.getErrorCode(), response.getErrorCode() == 201);
149
150         response = ServiceRestUtils.createService(serviceDetails2, sdncDesignerDetails1);
151         assertTrue("create request returned status:" + response.getErrorCode(), response.getErrorCode() == 201);
152         assertNotNull("service uniqueId is null:", serviceDetails2.getUniqueId());
153
154         componentInstanceReqDetails.setComponentUid(resourceDetails.getUniqueId());
155         response = ComponentInstanceRestUtils.createComponentInstance(componentInstanceReqDetails, sdncDesignerDetails1,
156                 serviceDetails2.getUniqueId(), ComponentTypeEnum.SERVICE);
157         assertTrue("response code is not 201, returned: " + response.getErrorCode(), response.getErrorCode() == 201);
158
159         response = ServiceRestUtils.createService(serviceDetailsEmpty, sdncDesignerDetails1);
160         assertTrue("create request returned status:" + response.getErrorCode(), response.getErrorCode() == 201);
161         assertNotNull("service uniqueId is null:", serviceDetailsEmpty.getUniqueId());
162
163         response = ServiceRestUtils.createService(serviceDetailsEmpty2, sdncDesignerDetails1);
164         assertTrue("create request returned status:" + response.getErrorCode(), response.getErrorCode() == 201);
165         assertNotNull("service uniqueId is null:", serviceDetailsEmpty2.getUniqueId());
166
167         DbUtils.cleanAllAudits();
168
169     }
170
171     public static RestResponse certifyResource(ResourceReqDetails resourceDetails, User user) throws Exception {
172 /*              RestResponse restResponseResource = LifecycleRestUtils.changeResourceState(resourceDetails, user.getUserId(),
173                 LifeCycleStatesEnum.CHECKIN);
174                 // if (restResponseResource.getErrorCode() == 200){
175                 restResponseResource = LifecycleRestUtils.changeResourceState(resourceDetails, user.getUserId(),
176                                 LifeCycleStatesEnum.CERTIFICATIONREQUEST);
177                 // }else
178                 // return restResponseResource;
179                 sdncTesterDeatails1 = ElementFactory.getDefaultUser(UserRoleEnum.TESTER);
180                 if (restResponseResource.getErrorCode() == 200) {
181                         restResponseResource = LifecycleRestUtils.changeResourceState(resourceDetails,
182                                         sdncTesterDeatails1.getUserId(), LifeCycleStatesEnum.STARTCERTIFICATION);
183                 } else
184                         return restResponseResource;
185                 if (restResponseResource.getErrorCode() == 200) {
186                         restResponseResource = LifecycleRestUtils.changeResourceState(resourceDetails,
187                                         sdncTesterDeatails1.getUserId(), LifeCycleStatesEnum.CERTIFY);
188                 }
189                 return restResponseResource;*/
190         return LifecycleRestUtils.changeResourceState(resourceDetails,
191                 sdncTesterDeatails1.getUserId(), LifeCycleStatesEnum.CERTIFY);
192     }
193
194     public static RestResponse certifyService(ServiceReqDetails serviceDetails, User user) throws Exception {
195         RestResponse restResponseService = LifecycleRestUtils.changeServiceState(serviceDetails, user,
196                 LifeCycleStatesEnum.CHECKIN);
197         // if (restResponseService.getErrorCode() == 200){
198         restResponseService = LifecycleRestUtils.changeServiceState(serviceDetails, user,
199                 LifeCycleStatesEnum.CERTIFICATIONREQUEST);
200         // }else
201         // return restResponseService;
202
203         sdncTesterDeatails1 = ElementFactory.getDefaultUser(UserRoleEnum.TESTER);
204         if (restResponseService.getErrorCode() == 200) {
205             restResponseService = LifecycleRestUtils.changeServiceState(serviceDetails, sdncTesterDeatails1,
206                     LifeCycleStatesEnum.STARTCERTIFICATION);
207         } else
208             return restResponseService;
209         if (restResponseService.getErrorCode() == 200) {
210             restResponseService = LifecycleRestUtils.changeServiceState(serviceDetails, sdncTesterDeatails1,
211                     LifeCycleStatesEnum.CERTIFY);
212         }
213         return restResponseService;
214     }
215
216     protected static RestResponse raiseResourceToTargetVersion(ResourceReqDetails resourceDetails, String targetVersion,
217                                                                User user) throws Exception {
218         return raiseResourceToTargetVersion(resourceDetails, targetVersion, null, user);
219     }
220
221     protected static RestResponse raiseResourceToTargetVersion(ResourceReqDetails resourceDetails, String targetVersion,
222                                                                RestResponse prevResponse, User user) throws Exception {
223
224         String[] splitParts = targetVersion.split("\\.");
225
226         int version = Integer.parseInt(splitParts[1]);
227         String checkinComment = "good checkin";
228         String checkinComentJson = "{\"userRemarks\": \"" + checkinComment + "\"}";
229
230         if (prevResponse != null) {
231             Resource resourceRespJavaObject = ResponseParser
232                     .convertResourceResponseToJavaObject(prevResponse.getResponse());
233             if (resourceRespJavaObject.getLifecycleState().equals(LifecycleStateEnum.CERTIFIED)) {
234                 RestResponse restResponseResource = LifecycleRestUtils.changeResourceState(resourceDetails,
235                         user.getUserId(), LifeCycleStatesEnum.CHECKOUT);
236             }
237         }
238
239         RestResponse restResponseResource = null;
240         for (int i = 0; i < (version - 1); i++) {
241
242             restResponseResource = LifecycleRestUtils.changeResourceState(resourceDetails, user, null,
243                     LifeCycleStatesEnum.CHECKIN, checkinComentJson);
244             if (restResponseResource.getErrorCode() == 200) {
245                 restResponseResource = LifecycleRestUtils.changeResourceState(resourceDetails, user.getUserId(),
246                         LifeCycleStatesEnum.CHECKOUT);
247                 if (restResponseResource.getErrorCode() == 200) {
248
249                 } else
250                     break;
251
252             } else
253                 break;
254
255         }
256
257         restResponseResource = LifecycleRestUtils.changeResourceState(resourceDetails, user, null,
258                 LifeCycleStatesEnum.CHECKIN, checkinComentJson);
259         assertEquals("Check response code ", 200, restResponseResource.getErrorCode().intValue());
260         return restResponseResource;
261     }
262
263 }