2 * ============LICENSE_START=======================================================
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
11 * http://www.apache.org/licenses/LICENSE-2.0
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=========================================================
21 package org.openecomp.sdc.ci.tests.execute.devCI;
23 import static org.testng.AssertJUnit.assertTrue;
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;
51 public class ImportCsarUpdate extends ComponentBaseTest {
54 public static TestName name = new TestName();
56 public ImportCsarUpdate() {
57 super(name, ImportCsarUpdate.class.getName());
60 @DataProvider(name = "happyArts")
61 public Object[][] getHappyArtifacts() {
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" },
74 @DataProvider(name = "negativeArts")
75 public Object[][] getNegativeArtifacts() {
77 return new Object[][] {
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" }, };
87 public void resumeOrigCsarBefore() throws Exception {
89 User sdncModifierDetails = ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER);
90 ImportCsarResourceTest.copyCsarRest(sdncModifierDetails, "orig.csar", "importCsar_2Gartifacts.csar");
95 public void resumeOrigCsarAfter() throws Exception {
97 User sdncModifierDetails = ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER);
98 ImportCsarResourceTest.copyCsarRest(sdncModifierDetails, "orig.csar", "importCsar_2Gartifacts.csar");
103 public void updateVFsearchByCsarIdCheckInState() throws Exception {
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(),
114 Component resourceObject = AtomicOperationUtils
115 .changeComponentState(resourceFirstImport, UserRoleEnum.DESIGNER, LifeCycleStatesEnum.CHECKIN, true)
118 User sdncModifierDetails = ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER);
119 RestResponse copyRes = ImportCsarResourceTest.copyCsarRest(sdncModifierDetails,
120 "updateImportCsar_2Gartifacts_topologyChanged.csar", "importCsar_2Gartifacts.csar");
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(),
131 resourceFirstImport.getGroups().equals(resourceSecondImport.getGroups());
136 public void updateVFsearchByCsarIdCheckInState_checkSum() throws Exception {
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(),
147 Component resourceObject = AtomicOperationUtils
148 .changeComponentState(resourceFirstImport, UserRoleEnum.DESIGNER, LifeCycleStatesEnum.CHECKIN, true)
151 // User sdncModifierDetails =
152 // ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER);
153 // RestResponse copyRes =
154 // ImportCsarResourceTest.copyCsarRest(sdncModifierDetails,"updateImportCsar_2Gartifacts_topologyChanged.csar","importCsar_2Gartifacts.csar");
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(),
165 resourceFirstImport.getGroups().equals(resourceSecondImport.getGroups());
170 public void updateVFsearchByCsarIdCheckOutState() throws Exception {
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(),
181 // Component resourceObject =
182 // AtomicOperationUtils.changeComponentState(resourceFirstImport,
183 // UserRoleEnum.DESIGNER, LifeCycleStatesEnum.CHECKOUT, true).getLeft();
185 User sdncModifierDetails = ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER);
186 RestResponse copyRes = ImportCsarResourceTest.copyCsarRest(sdncModifierDetails,
187 "updateImportCsar_2Gartifacts_topologyChanged.csar", "importCsar_2Gartifacts.csar");
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(),
198 resourceFirstImport.getGroups().equals(resourceSecondImport.getGroups());
203 public void updateVFsearchByCsarIdCertifyStat() throws Exception {
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(),
214 Component resourceObject = AtomicOperationUtils
215 .changeComponentState(resourceFirstImport, UserRoleEnum.DESIGNER, LifeCycleStatesEnum.CERTIFY, true)
218 User sdncModifierDetails = ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER);
219 RestResponse copyRes = ImportCsarResourceTest.copyCsarRest(sdncModifierDetails,
220 "updateImportCsar_2Gartifacts_topologyChanged.csar", "importCsar_2Gartifacts.csar");
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(),
231 resourceFirstImport.getGroups().equals(resourceSecondImport.getGroups());
236 public void updateVFsearchByCsarStartCertifaicationState() throws Exception {
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(),
247 Component resourceObject = AtomicOperationUtils.changeComponentState(resourceFirstImport, UserRoleEnum.DESIGNER,
248 LifeCycleStatesEnum.CERTIFICATIONREQUEST, true).getLeft();
250 User sdncModifierDetails = ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER);
251 RestResponse copyRes = ImportCsarResourceTest.copyCsarRest(sdncModifierDetails,
252 "updateImportCsar_2Gartifacts_topologyChanged.csar", "importCsar_2Gartifacts.csar");
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(),
263 resourceFirstImport.getGroups().equals(resourceSecondImport.getGroups());
268 public void updateVFsearchBySystemNameCheckInState() throws Exception {
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(),
279 Component resourceObject = AtomicOperationUtils
280 .changeComponentState(resourceFirstImport, UserRoleEnum.DESIGNER, LifeCycleStatesEnum.CHECKIN, true)
283 User sdncModifierDetails = ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER);
284 RestResponse copyRes = ImportCsarResourceTest.copyCsarRest(sdncModifierDetails,
285 "updateImportCsar_2Gartifacts_topologyChanged.csar", "importCsar_2Gartifacts.csar");
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(),
297 resourceFirstImport.getGroups().equals(resourceSecondImport.getGroups());
302 public void updateVFsearchBySystemNameCertifyState() throws Exception {
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(),
313 Component resourceObject = AtomicOperationUtils
314 .changeComponentState(resourceFirstImport, UserRoleEnum.DESIGNER, LifeCycleStatesEnum.CERTIFY, true)
317 User sdncModifierDetails = ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER);
318 RestResponse copyRes = ImportCsarResourceTest.copyCsarRest(sdncModifierDetails,
319 "updateImportCsar_2Gartifacts_topologyChanged.csar", "importCsar_2Gartifacts.csar");
321 resourceDetails.setName("hardcodedNameChanged");
322 resourceDetails.setCsarUUID("importCsar_2Gartifacts");
323 createResource = ResourceRestUtils.createResource(resourceDetails,
324 ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER));
329 public void updateVFsearchBySystemNameCsarIdNotExist() throws Exception {
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(),
339 Component resourceObject = AtomicOperationUtils
340 .changeComponentState(resourceFirstImport, UserRoleEnum.DESIGNER, LifeCycleStatesEnum.CHECKIN, true)
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(),
358 resourceFirstImport.getGroups().equals(resourceSecondImport.getGroups());