[SDC-29] rebase continue work to align source
[sdc.git] / test-apis-ci / src / main / java / org / openecomp / sdc / ci / tests / execute / devCI / ImportCsarUpdate.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.devCI;
22
23 import static org.testng.AssertJUnit.assertTrue;
24
25 import org.junit.Rule;
26 import org.junit.rules.TestName;
27 import org.openecomp.sdc.be.datatypes.enums.ResourceTypeEnum;
28 import org.openecomp.sdc.be.model.Component;
29 import org.openecomp.sdc.be.model.Resource;
30 import org.openecomp.sdc.be.model.Service;
31 import org.openecomp.sdc.be.model.User;
32 import org.openecomp.sdc.ci.tests.api.ComponentBaseTest;
33 import org.openecomp.sdc.ci.tests.datatypes.ResourceReqDetails;
34 import org.openecomp.sdc.ci.tests.datatypes.enums.ArtifactTypeEnum;
35 import org.openecomp.sdc.ci.tests.datatypes.enums.LifeCycleStatesEnum;
36 import org.openecomp.sdc.ci.tests.datatypes.enums.NormativeTypesEnum;
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.imports.ImportCsarResourceTest;
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.BaseRestUtils;
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.CsarValidationUtils;
46 import org.testng.annotations.AfterTest;
47 import org.testng.annotations.BeforeTest;
48 import org.testng.annotations.DataProvider;
49 import org.testng.annotations.Test;
50
51 public class ImportCsarUpdate extends ComponentBaseTest {
52
53         @Rule
54         public static TestName name = new TestName();
55
56         public ImportCsarUpdate() {
57                 super(name, ImportCsarUpdate.class.getName());
58         }
59
60         @DataProvider(name = "happyArts")
61         public Object[][] getHappyArtifacts() {
62
63                 return new Object[][] { { "happy_VF_RI2_G2_two_different_artifacts_under_heatBaseheatVolheatNet2" },
64                                 { "happy_VF_RI2_G2_two_different_artifacts_under_heatBaseheatVolheatNet" },
65                                 { "happy_VF_RI2_G2_two_identical_artifacts_under_heatBaseheatVolheatNet" },
66                                 { "happy_VF_RI2_G2_two_different_artifacts_under_nested" },
67                                 { "happy_VF_RI2_G2_two_indentical_nested_under_different_groups" },
68                                 { "happy_VF_RI2_G2_two_different_nested_under_different_groups" },
69                                 { "happy_VF_RI2_G2_two_different_nested_under_same_group" },
70
71                 };
72         }
73
74         @DataProvider(name = "negativeArts")
75         public Object[][] getNegativeArtifacts() {
76
77                 return new Object[][] {
78
79                                 { "negative_VF_RI2_G2_same_heatVol_different_groups" },
80                                 { "negative_VF_RI2_G2_same_heatBase_different_envs" },
81                                 { "negative_VF_RI2_G2_heatBaseHeatVolHeatNet_under_nested" },
82                                 { "negative_VF_RI2_G2_two_indentical_artifacts_under_nested" },
83                                 { "negative_VF_RI2_G2_nested_under_nested" }, { "negative_VF_RI2_G2_same_heatVol_different_groups" }, };
84         }
85
86         @BeforeTest
87         public void resumeOrigCsarBefore() throws Exception {
88
89                 User sdncModifierDetails = ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER);
90                 ImportCsarResourceTest.copyCsarRest(sdncModifierDetails, "orig.csar", "importCsar_2Gartifacts.csar");
91
92         }
93
94         @AfterTest
95         public void resumeOrigCsarAfter() throws Exception {
96
97                 User sdncModifierDetails = ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER);
98                 ImportCsarResourceTest.copyCsarRest(sdncModifierDetails, "orig.csar", "importCsar_2Gartifacts.csar");
99
100         }
101
102         @Test
103         public void updateVFsearchByCsarIdCheckInState() throws Exception {
104
105                 ResourceReqDetails resourceDetails = ElementFactory.getDefaultResource();
106                 resourceDetails.setName("hardcodedName");
107                 resourceDetails.setCsarUUID("importCsar_2Gartifacts");
108                 resourceDetails.setResourceType(ResourceTypeEnum.VF.name());
109                 RestResponse createResource = ResourceRestUtils.createResource(resourceDetails,
110                                 ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER));
111                 BaseRestUtils.checkCreateResponse(createResource);
112                 Resource resourceFirstImport = ResponseParser.parseToObjectUsingMapper(createResource.getResponse(),
113                                 Resource.class);
114                 Component resourceObject = AtomicOperationUtils
115                                 .changeComponentState(resourceFirstImport, UserRoleEnum.DESIGNER, LifeCycleStatesEnum.CHECKIN, true)
116                                 .getLeft();
117
118                 User sdncModifierDetails = ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER);
119                 RestResponse copyRes = ImportCsarResourceTest.copyCsarRest(sdncModifierDetails,
120                                 "updateImportCsar_2Gartifacts_topologyChanged.csar", "importCsar_2Gartifacts.csar");
121
122                 resourceDetails.setCsarUUID("importCsar_2Gartifacts");
123                 createResource = ResourceRestUtils.createResource(resourceDetails,
124                                 ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER));
125                 BaseRestUtils.checkCreateResponse(createResource);
126                 Resource resourceSecondImport = ResponseParser.parseToObjectUsingMapper(createResource.getResponse(),
127                                 Resource.class);
128
129                 // Validation Part
130
131                 resourceFirstImport.getGroups().equals(resourceSecondImport.getGroups());
132
133         }
134
135         @Test
136         public void updateVFsearchByCsarIdCheckInState_checkSum() throws Exception {
137
138                 ResourceReqDetails resourceDetails = ElementFactory.getDefaultResource();
139                 resourceDetails.setName("hardcodedName");
140                 resourceDetails.setCsarUUID("importCsar_2Gartifacts");
141                 resourceDetails.setResourceType(ResourceTypeEnum.VF.name());
142                 RestResponse createResource = ResourceRestUtils.createResource(resourceDetails,
143                                 ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER));
144                 BaseRestUtils.checkCreateResponse(createResource);
145                 Resource resourceFirstImport = ResponseParser.parseToObjectUsingMapper(createResource.getResponse(),
146                                 Resource.class);
147                 Component resourceObject = AtomicOperationUtils
148                                 .changeComponentState(resourceFirstImport, UserRoleEnum.DESIGNER, LifeCycleStatesEnum.CHECKIN, true)
149                                 .getLeft();
150
151                 // User sdncModifierDetails =
152                 // ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER);
153                 // RestResponse copyRes =
154                 // ImportCsarResourceTest.copyCsarRest(sdncModifierDetails,"updateImportCsar_2Gartifacts_topologyChanged.csar","importCsar_2Gartifacts.csar");
155
156                 resourceDetails.setCsarUUID("importCsar_2Gartifacts");
157                 createResource = ResourceRestUtils.createResource(resourceDetails,
158                                 ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER));
159                 BaseRestUtils.checkCreateResponse(createResource);
160                 Resource resourceSecondImport = ResponseParser.parseToObjectUsingMapper(createResource.getResponse(),
161                                 Resource.class);
162
163                 // Validation Part
164
165                 resourceFirstImport.getGroups().equals(resourceSecondImport.getGroups());
166
167         }
168
169         @Test
170         public void updateVFsearchByCsarIdCheckOutState() throws Exception {
171
172                 ResourceReqDetails resourceDetails = ElementFactory.getDefaultResource();
173                 resourceDetails.setName("hardcodedName");
174                 resourceDetails.setCsarUUID("importCsar_2Gartifacts");
175                 resourceDetails.setResourceType(ResourceTypeEnum.VF.name());
176                 RestResponse createResource = ResourceRestUtils.createResource(resourceDetails,
177                                 ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER));
178                 BaseRestUtils.checkCreateResponse(createResource);
179                 Resource resourceFirstImport = ResponseParser.parseToObjectUsingMapper(createResource.getResponse(),
180                                 Resource.class);
181                 // Component resourceObject =
182                 // AtomicOperationUtils.changeComponentState(resourceFirstImport,
183                 // UserRoleEnum.DESIGNER, LifeCycleStatesEnum.CHECKOUT, true).getLeft();
184
185                 User sdncModifierDetails = ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER);
186                 RestResponse copyRes = ImportCsarResourceTest.copyCsarRest(sdncModifierDetails,
187                                 "updateImportCsar_2Gartifacts_topologyChanged.csar", "importCsar_2Gartifacts.csar");
188
189                 resourceDetails.setCsarUUID("importCsar_2Gartifacts");
190                 createResource = ResourceRestUtils.createResource(resourceDetails,
191                                 ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER));
192                 BaseRestUtils.checkCreateResponse(createResource);
193                 Resource resourceSecondImport = ResponseParser.parseToObjectUsingMapper(createResource.getResponse(),
194                                 Resource.class);
195
196                 // Validation Part
197
198                 resourceFirstImport.getGroups().equals(resourceSecondImport.getGroups());
199
200         }
201
202         @Test
203         public void updateVFsearchByCsarIdCertifyStat() throws Exception {
204
205                 ResourceReqDetails resourceDetails = ElementFactory.getDefaultResource();
206                 resourceDetails.setName("hardcodedName");
207                 resourceDetails.setCsarUUID("importCsar_2Gartifacts");
208                 resourceDetails.setResourceType(ResourceTypeEnum.VF.name());
209                 RestResponse createResource = ResourceRestUtils.createResource(resourceDetails,
210                                 ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER));
211                 BaseRestUtils.checkCreateResponse(createResource);
212                 Resource resourceFirstImport = ResponseParser.parseToObjectUsingMapper(createResource.getResponse(),
213                                 Resource.class);
214                 Component resourceObject = AtomicOperationUtils
215                                 .changeComponentState(resourceFirstImport, UserRoleEnum.DESIGNER, LifeCycleStatesEnum.CERTIFY, true)
216                                 .getLeft();
217
218                 User sdncModifierDetails = ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER);
219                 RestResponse copyRes = ImportCsarResourceTest.copyCsarRest(sdncModifierDetails,
220                                 "updateImportCsar_2Gartifacts_topologyChanged.csar", "importCsar_2Gartifacts.csar");
221
222                 resourceDetails.setCsarUUID("importCsar_2Gartifacts");
223                 createResource = ResourceRestUtils.createResource(resourceDetails,
224                                 ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER));
225                 BaseRestUtils.checkCreateResponse(createResource);
226                 Resource resourceSecondImport = ResponseParser.parseToObjectUsingMapper(createResource.getResponse(),
227                                 Resource.class);
228
229                 // Validation Part
230
231                 resourceFirstImport.getGroups().equals(resourceSecondImport.getGroups());
232
233         }
234
235         @Test
236         public void updateVFsearchByCsarStartCertifaicationState() throws Exception {
237
238                 ResourceReqDetails resourceDetails = ElementFactory.getDefaultResource();
239                 resourceDetails.setName("hardcodedName");
240                 resourceDetails.setCsarUUID("importCsar_2Gartifacts");
241                 resourceDetails.setResourceType(ResourceTypeEnum.VF.name());
242                 RestResponse createResource = ResourceRestUtils.createResource(resourceDetails,
243                                 ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER));
244                 BaseRestUtils.checkCreateResponse(createResource);
245                 Resource resourceFirstImport = ResponseParser.parseToObjectUsingMapper(createResource.getResponse(),
246                                 Resource.class);
247                 Component resourceObject = AtomicOperationUtils.changeComponentState(resourceFirstImport, UserRoleEnum.DESIGNER,
248                                 LifeCycleStatesEnum.CERTIFICATIONREQUEST, true).getLeft();
249
250                 User sdncModifierDetails = ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER);
251                 RestResponse copyRes = ImportCsarResourceTest.copyCsarRest(sdncModifierDetails,
252                                 "updateImportCsar_2Gartifacts_topologyChanged.csar", "importCsar_2Gartifacts.csar");
253
254                 resourceDetails.setCsarUUID("importCsar_2Gartifacts");
255                 createResource = ResourceRestUtils.createResource(resourceDetails,
256                                 ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER));
257                 BaseRestUtils.checkCreateResponse(createResource);
258                 Resource resourceSecondImport = ResponseParser.parseToObjectUsingMapper(createResource.getResponse(),
259                                 Resource.class);
260
261                 // Validation Part
262
263                 resourceFirstImport.getGroups().equals(resourceSecondImport.getGroups());
264
265         }
266
267         @Test
268         public void updateVFsearchBySystemNameCheckInState() throws Exception {
269
270                 ResourceReqDetails resourceDetails = ElementFactory.getDefaultResource();
271                 resourceDetails.setName("hardcodedName");
272                 resourceDetails.setCsarUUID("importCsar_2Gartifacts");
273                 resourceDetails.setResourceType(ResourceTypeEnum.VF.name());
274                 RestResponse createResource = ResourceRestUtils.createResource(resourceDetails,
275                                 ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER));
276                 BaseRestUtils.checkCreateResponse(createResource);
277                 Resource resourceFirstImport = ResponseParser.parseToObjectUsingMapper(createResource.getResponse(),
278                                 Resource.class);
279                 Component resourceObject = AtomicOperationUtils
280                                 .changeComponentState(resourceFirstImport, UserRoleEnum.DESIGNER, LifeCycleStatesEnum.CHECKIN, true)
281                                 .getLeft();
282
283                 User sdncModifierDetails = ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER);
284                 RestResponse copyRes = ImportCsarResourceTest.copyCsarRest(sdncModifierDetails,
285                                 "updateImportCsar_2Gartifacts_topologyChanged.csar", "importCsar_2Gartifacts.csar");
286
287                 resourceDetails.setName("hardcodedNameChanged");
288                 resourceDetails.setCsarUUID("importCsar_2Gartifacts");
289                 createResource = ResourceRestUtils.createResource(resourceDetails,
290                                 ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER));
291                 BaseRestUtils.checkCreateResponse(createResource);
292                 Resource resourceSecondImport = ResponseParser.parseToObjectUsingMapper(createResource.getResponse(),
293                                 Resource.class);
294
295                 // Validation Part
296
297                 resourceFirstImport.getGroups().equals(resourceSecondImport.getGroups());
298
299         }
300
301         @Test
302         public void updateVFsearchBySystemNameCertifyState() throws Exception {
303
304                 ResourceReqDetails resourceDetails = ElementFactory.getDefaultResource();
305                 resourceDetails.setName("hardcodedName");
306                 resourceDetails.setCsarUUID("importCsar_2Gartifacts");
307                 resourceDetails.setResourceType(ResourceTypeEnum.VF.name());
308                 RestResponse createResource = ResourceRestUtils.createResource(resourceDetails,
309                                 ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER));
310                 BaseRestUtils.checkCreateResponse(createResource);
311                 Resource resourceFirstImport = ResponseParser.parseToObjectUsingMapper(createResource.getResponse(),
312                                 Resource.class);
313                 Component resourceObject = AtomicOperationUtils
314                                 .changeComponentState(resourceFirstImport, UserRoleEnum.DESIGNER, LifeCycleStatesEnum.CERTIFY, true)
315                                 .getLeft();
316
317                 User sdncModifierDetails = ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER);
318                 RestResponse copyRes = ImportCsarResourceTest.copyCsarRest(sdncModifierDetails,
319                                 "updateImportCsar_2Gartifacts_topologyChanged.csar", "importCsar_2Gartifacts.csar");
320
321                 resourceDetails.setName("hardcodedNameChanged");
322                 resourceDetails.setCsarUUID("importCsar_2Gartifacts");
323                 createResource = ResourceRestUtils.createResource(resourceDetails,
324                                 ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER));
325
326         }
327
328         @Test
329         public void updateVFsearchBySystemNameCsarIdNotExist() throws Exception {
330
331                 ResourceReqDetails resourceDetails = ElementFactory.getDefaultResource();
332                 resourceDetails.setName("hardcodedName");
333                 resourceDetails.setResourceType(ResourceTypeEnum.VF.name());
334                 RestResponse createResource = ResourceRestUtils.createResource(resourceDetails,
335                                 ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER));
336                 BaseRestUtils.checkCreateResponse(createResource);
337                 Resource resourceFirstImport = ResponseParser.parseToObjectUsingMapper(createResource.getResponse(),
338                                 Resource.class);
339                 Component resourceObject = AtomicOperationUtils
340                                 .changeComponentState(resourceFirstImport, UserRoleEnum.DESIGNER, LifeCycleStatesEnum.CHECKIN, true)
341                                 .getLeft();
342                 // User sdncModifierDetails =
343                 // ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER);
344                 // RestResponse copyRes =
345                 // ImportCsarResourceTest.copyCsarRest(sdncModifierDetails,"updateImportCsar_2Gartifacts_topologyChanged.csar","importCsar_2Gartifacts.csar");
346                 ResourceReqDetails resourceDetails2 = ElementFactory.getDefaultResource();
347                 resourceDetails2.setName("hardcodedName");
348                 resourceDetails2.setCsarUUID("importCsar_2Gartifacts");
349                 resourceDetails2.setResourceType(ResourceTypeEnum.VF.name());
350                 createResource = ResourceRestUtils.createResource(resourceDetails2,
351                                 ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER));
352                 BaseRestUtils.checkCreateResponse(createResource);
353                 Resource resourceSecondImport = ResponseParser.parseToObjectUsingMapper(createResource.getResponse(),
354                                 Resource.class);
355
356                 // Validation Part
357
358                 resourceFirstImport.getGroups().equals(resourceSecondImport.getGroups());
359
360         }
361
362 }