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 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;
45 public class ImportCsarUpdate extends ComponentBaseTest {
48 public static TestName name = new TestName();
50 public ImportCsarUpdate() {
51 super(name, ImportCsarUpdate.class.getName());
54 @DataProvider(name = "happyArts")
55 public Object[][] getHappyArtifacts() {
57 return new Object[][] {
58 { "happy_VF_RI2_G2_two_different_artifacts_under_heatBaseheatVolheatNet2" },
59 { "happy_VF_RI2_G2_two_different_artifacts_under_heatBaseheatVolheatNet" },
60 { "happy_VF_RI2_G2_two_identical_artifacts_under_heatBaseheatVolheatNet" },
61 { "happy_VF_RI2_G2_two_different_artifacts_under_nested" },
62 { "happy_VF_RI2_G2_two_indentical_nested_under_different_groups" },
63 { "happy_VF_RI2_G2_two_different_nested_under_different_groups" },
64 { "happy_VF_RI2_G2_two_different_nested_under_same_group" }
68 @DataProvider(name = "negativeArts")
69 public Object[][] getNegativeArtifacts() {
71 return new Object[][] {
72 { "negative_VF_RI2_G2_same_heatVol_different_groups" },
73 { "negative_VF_RI2_G2_same_heatBase_different_envs" },
74 { "negative_VF_RI2_G2_heatBaseHeatVolHeatNet_under_nested" },
75 { "negative_VF_RI2_G2_two_indentical_artifacts_under_nested" },
76 { "negative_VF_RI2_G2_nested_under_nested" },
77 { "negative_VF_RI2_G2_same_heatVol_different_groups" }
82 public void resumeOrigCsarBefore() throws Exception {
84 User sdncModifierDetails = ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER);
85 ImportCsarResourceTest.copyCsarRest(sdncModifierDetails, "orig.csar", "importCsar_2Gartifacts.csar");
90 public void resumeOrigCsarAfter() throws Exception {
92 User sdncModifierDetails = ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER);
93 ImportCsarResourceTest.copyCsarRest(sdncModifierDetails, "orig.csar", "importCsar_2Gartifacts.csar");
98 public void updateVFsearchByCsarIdCheckInState() throws Exception {
100 ResourceReqDetails resourceDetails = ElementFactory.getDefaultResource();
101 resourceDetails.setName("hardcodedName");
102 resourceDetails.setCsarUUID("importCsar_2Gartifacts");
103 resourceDetails.setResourceType(ResourceTypeEnum.VF.name());
104 RestResponse createResource = ResourceRestUtils.createResource(resourceDetails, ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER));
105 BaseRestUtils.checkCreateResponse(createResource);
106 Resource resourceFirstImport = ResponseParser.parseToObjectUsingMapper(createResource.getResponse(), Resource.class);
107 Component resourceObject = AtomicOperationUtils.changeComponentState(resourceFirstImport, UserRoleEnum.DESIGNER, LifeCycleStatesEnum.CHECKIN, true).getLeft();
109 User sdncModifierDetails = ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER);
110 RestResponse copyRes = ImportCsarResourceTest.copyCsarRest(sdncModifierDetails, "updateImportCsar_2Gartifacts_topologyChanged.csar", "importCsar_2Gartifacts.csar");
112 resourceDetails.setCsarUUID("importCsar_2Gartifacts");
113 createResource = ResourceRestUtils.createResource(resourceDetails, ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER));
114 BaseRestUtils.checkCreateResponse(createResource);
115 Resource resourceSecondImport = ResponseParser.parseToObjectUsingMapper(createResource.getResponse(), Resource.class);
119 resourceFirstImport.getGroups().equals(resourceSecondImport.getGroups());
124 public void updateVFsearchByCsarIdCheckInState_checkSum() throws Exception {
126 ResourceReqDetails resourceDetails = ElementFactory.getDefaultResource();
127 resourceDetails.setName("hardcodedName");
128 resourceDetails.setCsarUUID("importCsar_2Gartifacts");
129 resourceDetails.setResourceType(ResourceTypeEnum.VF.name());
130 RestResponse createResource = ResourceRestUtils.createResource(resourceDetails, ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER));
131 BaseRestUtils.checkCreateResponse(createResource);
132 Resource resourceFirstImport = ResponseParser.parseToObjectUsingMapper(createResource.getResponse(), Resource.class);
133 Component resourceObject = AtomicOperationUtils.changeComponentState(resourceFirstImport, UserRoleEnum.DESIGNER, LifeCycleStatesEnum.CHECKIN, true).getLeft();
135 // User sdncModifierDetails =
136 // ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER);
137 // RestResponse copyRes =
138 // ImportCsarResourceTest.copyCsarRest(sdncModifierDetails,"updateImportCsar_2Gartifacts_topologyChanged.csar","importCsar_2Gartifacts.csar");
140 resourceDetails.setCsarUUID("importCsar_2Gartifacts");
141 createResource = ResourceRestUtils.createResource(resourceDetails, ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER));
142 BaseRestUtils.checkCreateResponse(createResource);
143 Resource resourceSecondImport = ResponseParser.parseToObjectUsingMapper(createResource.getResponse(), Resource.class);
147 resourceFirstImport.getGroups().equals(resourceSecondImport.getGroups());
152 public void updateVFsearchByCsarIdCheckOutState() throws Exception {
154 ResourceReqDetails resourceDetails = ElementFactory.getDefaultResource();
155 resourceDetails.setName("hardcodedName");
156 resourceDetails.setCsarUUID("importCsar_2Gartifacts");
157 resourceDetails.setResourceType(ResourceTypeEnum.VF.name());
158 RestResponse createResource = ResourceRestUtils.createResource(resourceDetails, ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER));
159 BaseRestUtils.checkCreateResponse(createResource);
160 Resource resourceFirstImport = ResponseParser.parseToObjectUsingMapper(createResource.getResponse(), Resource.class);
161 // Component resourceObject =
162 // AtomicOperationUtils.changeComponentState(resourceFirstImport,
163 // UserRoleEnum.DESIGNER, LifeCycleStatesEnum.CHECKOUT, true).getLeft();
165 User sdncModifierDetails = ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER);
166 RestResponse copyRes = ImportCsarResourceTest.copyCsarRest(sdncModifierDetails, "updateImportCsar_2Gartifacts_topologyChanged.csar", "importCsar_2Gartifacts.csar");
168 resourceDetails.setCsarUUID("importCsar_2Gartifacts");
169 createResource = ResourceRestUtils.createResource(resourceDetails, ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER));
170 BaseRestUtils.checkCreateResponse(createResource);
171 Resource resourceSecondImport = ResponseParser.parseToObjectUsingMapper(createResource.getResponse(), Resource.class);
175 resourceFirstImport.getGroups().equals(resourceSecondImport.getGroups());
180 public void updateVFsearchByCsarIdCertifyStat() throws Exception {
182 ResourceReqDetails resourceDetails = ElementFactory.getDefaultResource();
183 resourceDetails.setName("hardcodedName");
184 resourceDetails.setCsarUUID("importCsar_2Gartifacts");
185 resourceDetails.setResourceType(ResourceTypeEnum.VF.name());
186 RestResponse createResource = ResourceRestUtils.createResource(resourceDetails, ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER));
187 BaseRestUtils.checkCreateResponse(createResource);
188 Resource resourceFirstImport = ResponseParser.parseToObjectUsingMapper(createResource.getResponse(), Resource.class);
189 Component resourceObject = AtomicOperationUtils.changeComponentState(resourceFirstImport, UserRoleEnum.DESIGNER, LifeCycleStatesEnum.CERTIFY, true).getLeft();
191 User sdncModifierDetails = ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER);
192 RestResponse copyRes = ImportCsarResourceTest.copyCsarRest(sdncModifierDetails, "updateImportCsar_2Gartifacts_topologyChanged.csar", "importCsar_2Gartifacts.csar");
194 resourceDetails.setCsarUUID("importCsar_2Gartifacts");
195 createResource = ResourceRestUtils.createResource(resourceDetails, ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER));
196 BaseRestUtils.checkCreateResponse(createResource);
197 Resource resourceSecondImport = ResponseParser.parseToObjectUsingMapper(createResource.getResponse(), Resource.class);
201 resourceFirstImport.getGroups().equals(resourceSecondImport.getGroups());
206 public void updateVFsearchByCsarStartCertificationState() throws Exception {
208 ResourceReqDetails resourceDetails = ElementFactory.getDefaultResource();
209 resourceDetails.setName("hardcodedName");
210 resourceDetails.setCsarUUID("importCsar_2Gartifacts");
211 resourceDetails.setResourceType(ResourceTypeEnum.VF.name());
212 RestResponse createResource = ResourceRestUtils.createResource(resourceDetails, ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER));
213 BaseRestUtils.checkCreateResponse(createResource);
214 Resource resourceFirstImport = ResponseParser.parseToObjectUsingMapper(createResource.getResponse(), Resource.class);
215 Component resourceObject = AtomicOperationUtils.changeComponentState(resourceFirstImport, UserRoleEnum.DESIGNER, LifeCycleStatesEnum.CERTIFICATIONREQUEST, true).getLeft();
217 User sdncModifierDetails = ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER);
218 RestResponse copyRes = ImportCsarResourceTest.copyCsarRest(sdncModifierDetails, "updateImportCsar_2Gartifacts_topologyChanged.csar", "importCsar_2Gartifacts.csar");
220 resourceDetails.setCsarUUID("importCsar_2Gartifacts");
221 createResource = ResourceRestUtils.createResource(resourceDetails, ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER));
222 BaseRestUtils.checkCreateResponse(createResource);
223 Resource resourceSecondImport = ResponseParser.parseToObjectUsingMapper(createResource.getResponse(), Resource.class);
227 resourceFirstImport.getGroups().equals(resourceSecondImport.getGroups());
232 public void updateVFsearchBySystemNameCheckInState() throws Exception {
234 ResourceReqDetails resourceDetails = ElementFactory.getDefaultResource();
235 resourceDetails.setName("hardcodedName");
236 resourceDetails.setCsarUUID("importCsar_2Gartifacts");
237 resourceDetails.setResourceType(ResourceTypeEnum.VF.name());
238 RestResponse createResource = ResourceRestUtils.createResource(resourceDetails, ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER));
239 BaseRestUtils.checkCreateResponse(createResource);
240 Resource resourceFirstImport = ResponseParser.parseToObjectUsingMapper(createResource.getResponse(), Resource.class);
241 Component resourceObject = AtomicOperationUtils.changeComponentState(resourceFirstImport, UserRoleEnum.DESIGNER, LifeCycleStatesEnum.CHECKIN, true).getLeft();
243 User sdncModifierDetails = ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER);
244 RestResponse copyRes = ImportCsarResourceTest.copyCsarRest(sdncModifierDetails, "updateImportCsar_2Gartifacts_topologyChanged.csar", "importCsar_2Gartifacts.csar");
246 resourceDetails.setName("hardcodedNameChanged");
247 resourceDetails.setCsarUUID("importCsar_2Gartifacts");
248 createResource = ResourceRestUtils.createResource(resourceDetails, ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER));
249 BaseRestUtils.checkCreateResponse(createResource);
250 Resource resourceSecondImport = ResponseParser.parseToObjectUsingMapper(createResource.getResponse(), Resource.class);
254 resourceFirstImport.getGroups().equals(resourceSecondImport.getGroups());
259 public void updateVFsearchBySystemNameCertifyState() throws Exception {
261 ResourceReqDetails resourceDetails = ElementFactory.getDefaultResource();
262 resourceDetails.setName("hardcodedName");
263 resourceDetails.setCsarUUID("importCsar_2Gartifacts");
264 resourceDetails.setResourceType(ResourceTypeEnum.VF.name());
265 RestResponse createResource = ResourceRestUtils.createResource(resourceDetails, ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER));
266 BaseRestUtils.checkCreateResponse(createResource);
267 Resource resourceFirstImport = ResponseParser.parseToObjectUsingMapper(createResource.getResponse(), Resource.class);
268 Component resourceObject = AtomicOperationUtils.changeComponentState(resourceFirstImport, UserRoleEnum.DESIGNER, LifeCycleStatesEnum.CERTIFY, true).getLeft();
270 User sdncModifierDetails = ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER);
271 RestResponse copyRes = ImportCsarResourceTest.copyCsarRest(sdncModifierDetails, "updateImportCsar_2Gartifacts_topologyChanged.csar", "importCsar_2Gartifacts.csar");
273 resourceDetails.setName("hardcodedNameChanged");
274 resourceDetails.setCsarUUID("importCsar_2Gartifacts");
275 createResource = ResourceRestUtils.createResource(resourceDetails, ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER));
280 public void updateVFsearchBySystemNameCsarIdNotExist() throws Exception {
282 ResourceReqDetails resourceDetails = ElementFactory.getDefaultResource();
283 resourceDetails.setName("hardcodedName");
284 resourceDetails.setResourceType(ResourceTypeEnum.VF.name());
285 RestResponse createResource = ResourceRestUtils.createResource(resourceDetails, ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER));
286 BaseRestUtils.checkCreateResponse(createResource);
287 Resource resourceFirstImport = ResponseParser.parseToObjectUsingMapper(createResource.getResponse(), Resource.class);
288 Component resourceObject = AtomicOperationUtils.changeComponentState(resourceFirstImport, UserRoleEnum.DESIGNER, LifeCycleStatesEnum.CHECKIN, true).getLeft();
289 // User sdncModifierDetails =
290 // ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER);
291 // RestResponse copyRes =
292 // ImportCsarResourceTest.copyCsarRest(sdncModifierDetails,"updateImportCsar_2Gartifacts_topologyChanged.csar","importCsar_2Gartifacts.csar");
293 ResourceReqDetails resourceDetails2 = ElementFactory.getDefaultResource();
294 resourceDetails2.setName("hardcodedName");
295 resourceDetails2.setCsarUUID("importCsar_2Gartifacts");
296 resourceDetails2.setResourceType(ResourceTypeEnum.VF.name());
297 createResource = ResourceRestUtils.createResource(resourceDetails2, ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER));
298 BaseRestUtils.checkCreateResponse(createResource);
299 Resource resourceSecondImport = ResponseParser.parseToObjectUsingMapper(createResource.getResponse(), Resource.class);
303 resourceFirstImport.getGroups().equals(resourceSecondImport.getGroups());