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