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.resource;
23 import static org.testng.AssertJUnit.assertNotNull;
24 import static org.testng.AssertJUnit.assertTrue;
26 import java.util.List;
28 import org.json.simple.JSONArray;
29 import org.json.simple.JSONObject;
30 import org.json.simple.JSONValue;
31 import org.junit.Rule;
32 import org.junit.rules.TestName;
33 import org.openecomp.sdc.be.datatypes.enums.ResourceTypeEnum;
34 import org.openecomp.sdc.be.model.ComponentInstance;
35 import org.openecomp.sdc.be.model.Resource;
36 import org.openecomp.sdc.be.model.User;
37 import org.openecomp.sdc.ci.tests.api.ComponentBaseTest;
38 import org.openecomp.sdc.ci.tests.datatypes.ResourceReqDetails;
39 import org.openecomp.sdc.ci.tests.datatypes.enums.ArtifactTypeEnum;
40 import org.openecomp.sdc.ci.tests.datatypes.enums.AssocType;
41 import org.openecomp.sdc.ci.tests.datatypes.enums.LifeCycleStatesEnum;
42 import org.openecomp.sdc.ci.tests.datatypes.enums.NormativeTypesEnum;
43 import org.openecomp.sdc.ci.tests.datatypes.enums.ResourceCategoryEnum;
44 import org.openecomp.sdc.ci.tests.datatypes.enums.UserRoleEnum;
45 import org.openecomp.sdc.ci.tests.datatypes.http.RestResponse;
46 import org.openecomp.sdc.ci.tests.utils.general.AtomicOperationUtils;
47 import org.openecomp.sdc.ci.tests.utils.general.ElementFactory;
48 import org.openecomp.sdc.ci.tests.utils.rest.LifecycleRestUtils;
49 import org.openecomp.sdc.ci.tests.utils.rest.ResourceRestUtils;
50 import org.openecomp.sdc.ci.tests.utils.rest.ResponseParser;
51 import org.testng.annotations.BeforeMethod;
52 import org.testng.annotations.Test;
54 import fj.data.Either;
56 public class ValidateExtendedVfData extends ComponentBaseTest {
58 protected Resource resourceDetailsVF;
59 protected Resource resourceDetailsCP_01;
60 protected Resource resourceDetailsVL_01;
61 protected Resource resourceDetailsVFCcomp;
63 protected User sdncUserDetails;
66 public static TestName name = new TestName();
68 public ValidateExtendedVfData() {
69 super(name, ValidateExtendedVfData.class.getName());
73 public void create() throws Exception {
75 sdncUserDetails = ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER);
77 Either<Resource, RestResponse> resourceDetailsVFe = AtomicOperationUtils
78 .createResourceByType(ResourceTypeEnum.VF, UserRoleEnum.DESIGNER, true);
79 resourceDetailsVF = resourceDetailsVFe.left().value();
80 Either<Resource, RestResponse> resourceDetailsCP_01e = AtomicOperationUtils
81 .createResourcesByTypeNormTypeAndCatregory(ResourceTypeEnum.CP, NormativeTypesEnum.PORT,
82 ResourceCategoryEnum.GENERIC_DATABASE, UserRoleEnum.DESIGNER, true);
83 resourceDetailsCP_01 = resourceDetailsCP_01e.left().value();
84 AtomicOperationUtils.uploadArtifactByType(ArtifactTypeEnum.HEAT, resourceDetailsCP_01, UserRoleEnum.DESIGNER,
86 AtomicOperationUtils.uploadArtifactByType(ArtifactTypeEnum.HEAT_VOL, resourceDetailsCP_01,
87 UserRoleEnum.DESIGNER, true, true);
88 AtomicOperationUtils.uploadArtifactByType(ArtifactTypeEnum.HEAT_VOL, resourceDetailsCP_01,
89 UserRoleEnum.DESIGNER, true, true);
90 AtomicOperationUtils.uploadArtifactByType(ArtifactTypeEnum.HEAT_NET, resourceDetailsCP_01,
91 UserRoleEnum.DESIGNER, true, true);
92 AtomicOperationUtils.uploadArtifactByType(ArtifactTypeEnum.OTHER, resourceDetailsCP_01, UserRoleEnum.DESIGNER,
94 AtomicOperationUtils.changeComponentState(resourceDetailsCP_01, UserRoleEnum.DESIGNER,
95 LifeCycleStatesEnum.CERTIFY, true);
96 Either<Resource, RestResponse> resourceDetailsVL_01e = AtomicOperationUtils
97 .createResourcesByTypeNormTypeAndCatregory(ResourceTypeEnum.VL, NormativeTypesEnum.NETWORK,
98 ResourceCategoryEnum.GENERIC_NETWORK_ELEMENTS, UserRoleEnum.DESIGNER, true);
99 resourceDetailsVL_01 = resourceDetailsVL_01e.left().value();
100 AtomicOperationUtils.uploadArtifactByType(ArtifactTypeEnum.HEAT, resourceDetailsVL_01, UserRoleEnum.DESIGNER,
102 AtomicOperationUtils.uploadArtifactByType(ArtifactTypeEnum.HEAT_VOL, resourceDetailsVL_01,
103 UserRoleEnum.DESIGNER, true, true);
104 AtomicOperationUtils.uploadArtifactByType(ArtifactTypeEnum.HEAT_VOL, resourceDetailsVL_01,
105 UserRoleEnum.DESIGNER, true, true);
106 AtomicOperationUtils.uploadArtifactByType(ArtifactTypeEnum.HEAT_NET, resourceDetailsVL_01,
107 UserRoleEnum.DESIGNER, true, true);
108 AtomicOperationUtils.uploadArtifactByType(ArtifactTypeEnum.OTHER, resourceDetailsVL_01, UserRoleEnum.DESIGNER,
110 AtomicOperationUtils.changeComponentState(resourceDetailsVL_01, UserRoleEnum.DESIGNER,
111 LifeCycleStatesEnum.CERTIFY, true);
113 Either<Resource, RestResponse> resourceDetailsVFCcompE = AtomicOperationUtils
114 .createResourcesByTypeNormTypeAndCatregory(ResourceTypeEnum.VFC, NormativeTypesEnum.COMPUTE,
115 ResourceCategoryEnum.GENERIC_INFRASTRUCTURE, UserRoleEnum.DESIGNER, true);
116 resourceDetailsVFCcomp = resourceDetailsVFCcompE.left().value();
117 AtomicOperationUtils.changeComponentState(resourceDetailsVFCcomp, UserRoleEnum.DESIGNER,
118 LifeCycleStatesEnum.CERTIFY, true);
120 ComponentInstance resourceDetailsCP_01ins = AtomicOperationUtils
121 .addComponentInstanceToComponentContainer(resourceDetailsCP_01, resourceDetailsVF,
122 UserRoleEnum.DESIGNER, true)
124 ComponentInstance resourceDetailsVL_01ins = AtomicOperationUtils
125 .addComponentInstanceToComponentContainer(resourceDetailsVL_01, resourceDetailsVF,
126 UserRoleEnum.DESIGNER, true)
128 ComponentInstance resourceDetailsVFCcomp_ins = AtomicOperationUtils
129 .addComponentInstanceToComponentContainer(resourceDetailsVFCcomp, resourceDetailsVF,
130 UserRoleEnum.DESIGNER, true)
133 resourceDetailsVF = AtomicOperationUtils.getResourceObject(resourceDetailsVF, UserRoleEnum.DESIGNER);
134 AtomicOperationUtils.associate2ResourceInstances(resourceDetailsVF, resourceDetailsCP_01ins,
135 resourceDetailsVL_01ins, AssocType.LINKABLE.getAssocType(), UserRoleEnum.DESIGNER, true);
136 AtomicOperationUtils.associate2ResourceInstances(resourceDetailsVF, resourceDetailsCP_01ins,
137 resourceDetailsVFCcomp_ins, AssocType.BINDABLE.getAssocType(), UserRoleEnum.DESIGNER, true);
142 public void getResourceLatestVersion() throws Exception {
144 RestResponse response = LifecycleRestUtils.changeComponentState(resourceDetailsVF, sdncUserDetails,
145 LifeCycleStatesEnum.CHECKIN);
146 assertTrue("change LC state to CHECKIN, returned status:" + response.getErrorCode(),
147 response.getErrorCode() == 200);
148 // resourceDetailsVF =
149 // AtomicOperationUtils.getResourceObject(resourceDetailsVF,
150 // UserRoleEnum.DESIGNER);
151 RestResponse getResourceLatestVersionResponse = ResourceRestUtils.getResourceLatestVersionList(sdncUserDetails);
152 assertTrue("response code is not 200, returned :" + getResourceLatestVersionResponse.getErrorCode(),
153 getResourceLatestVersionResponse.getErrorCode() == 200);
155 List<Resource> resourceList = ResourceRestUtils
156 .restResponseToResourceObjectList(getResourceLatestVersionResponse.getResponse());
157 Resource resource = ResourceRestUtils.getResourceObjectFromResourceListByUid(resourceList,
158 resourceDetailsVF.getUniqueId());
160 callAllCheckMethods(resource);
164 public void getFollowedResources() throws Exception {
166 RestResponse response = LifecycleRestUtils.changeComponentState(resourceDetailsVF, sdncUserDetails,
167 LifeCycleStatesEnum.CHECKIN);
168 assertTrue("change LC state to CHECKIN, returned status:" + response.getErrorCode(),
169 response.getErrorCode() == 200);
170 // resourceDetailsVF =
171 // AtomicOperationUtils.getResourceObject(resourceDetailsVF,
172 // UserRoleEnum.DESIGNER);
173 resourceDetailsVF = AtomicOperationUtils.getResourceObject(resourceDetailsVF, UserRoleEnum.DESIGNER);
175 RestResponse getFollowedResourcesResponse = ResourceRestUtils.getFollowedList(sdncUserDetails);
176 String json = getFollowedResourcesResponse.getResponse();
177 JSONObject jsonResp = (JSONObject) JSONValue.parse(json);
178 JSONArray resources = (JSONArray) jsonResp.get("resources");
180 List<Resource> resourceList = ResourceRestUtils.restResponseToResourceObjectList(resources.toString());
181 Resource resource = ResourceRestUtils.getResourceObjectFromResourceListByUid(resourceList,
182 resourceDetailsVF.getUniqueId());
183 // TODO if get followed list Api should return full object data?
184 // callAllCheckMethods(resource);
188 public void lifeCycleChekInRequest() throws Exception {
190 RestResponse response = LifecycleRestUtils.changeComponentState(resourceDetailsVF, sdncUserDetails,
191 LifeCycleStatesEnum.CHECKIN);
192 assertTrue("change LC state to CHECKIN, returned status:" + response.getErrorCode(),
193 response.getErrorCode() == 200);
194 // resourceDetailsVF =
195 // AtomicOperationUtils.getResourceObject(resourceDetailsVF,
196 // UserRoleEnum.DESIGNER);
197 resourceDetailsVF = AtomicOperationUtils.getResourceObject(resourceDetailsVF, UserRoleEnum.DESIGNER);
199 Resource resource = ResponseParser.convertResourceResponseToJavaObject(response.getResponse());
200 callAllCheckMethods(resource);
204 public void lifeCycleChekOutRequest() throws Exception {
206 RestResponse response = LifecycleRestUtils.changeComponentState(resourceDetailsVF, sdncUserDetails,
207 LifeCycleStatesEnum.CHECKIN);
208 assertTrue("change LC state to CHECKIN, returned status:" + response.getErrorCode(),
209 response.getErrorCode() == 200);
210 response = LifecycleRestUtils.changeComponentState(resourceDetailsVF, sdncUserDetails,
211 LifeCycleStatesEnum.CHECKOUT);
212 assertTrue("change LC state to CHECKOUT, returned status:" + response.getErrorCode(),
213 response.getErrorCode() == 200);
214 resourceDetailsVF = AtomicOperationUtils.getResourceObject(resourceDetailsVF, UserRoleEnum.DESIGNER);
216 Resource resource = ResponseParser.convertResourceResponseToJavaObject(response.getResponse());
217 callAllCheckMethods(resource);
221 public void lifeCycleRequestForCertification() throws Exception {
223 RestResponse response = LifecycleRestUtils.changeComponentState(resourceDetailsVF, sdncUserDetails,
224 LifeCycleStatesEnum.CHECKIN);
225 assertTrue("change LC state to CHECKIN, returned status:" + response.getErrorCode(),
226 response.getErrorCode() == 200);
227 response = LifecycleRestUtils.changeComponentState(resourceDetailsVF, sdncUserDetails,
228 LifeCycleStatesEnum.CERTIFICATIONREQUEST);
229 assertTrue("change LC state to CERTIFICATIONREQUEST, returned status:" + response.getErrorCode(),
230 response.getErrorCode() == 200);
231 resourceDetailsVF = AtomicOperationUtils.getResourceObject(resourceDetailsVF, UserRoleEnum.DESIGNER);
233 Resource resource = ResponseParser.convertResourceResponseToJavaObject(response.getResponse());
234 callAllCheckMethods(resource);
238 public void lifeCycleCertificationRequest() throws Exception {
240 RestResponse response = AtomicOperationUtils
241 .changeComponentState(resourceDetailsVF, UserRoleEnum.DESIGNER, LifeCycleStatesEnum.CERTIFY, false)
243 assertTrue("change LC state to CERTIFY, returned status:" + response.getErrorCode(),
244 response.getErrorCode() == 200);
245 resourceDetailsVF = AtomicOperationUtils.getResourceObject(resourceDetailsVF, UserRoleEnum.DESIGNER);
247 Resource resource = ResponseParser.convertResourceResponseToJavaObject(response.getResponse());
248 callAllCheckMethods(resource);
252 public void checkGetResourceAfterCertificationRequest() throws Exception {
254 RestResponse response = AtomicOperationUtils
255 .changeComponentState(resourceDetailsVF, UserRoleEnum.DESIGNER, LifeCycleStatesEnum.CERTIFY, false)
257 assertTrue("change LC state to CERTIFY, returned status:" + response.getErrorCode(),
258 response.getErrorCode() == 200);
259 resourceDetailsVF = AtomicOperationUtils.getResourceObject(resourceDetailsVF, UserRoleEnum.DESIGNER);
261 callAllCheckMethods(resourceDetailsVF);
265 public void updateResourceMetadata() throws Exception {
267 resourceDetailsVF.setDescription("stamStam");
268 ResourceReqDetails resourceDetailsVFreqD = new ResourceReqDetails(resourceDetailsVF);
269 RestResponse updateResourceResponse = ResourceRestUtils.updateResourceMetadata(resourceDetailsVFreqD,
270 sdncUserDetails, resourceDetailsVF.getUniqueId());
271 assertTrue("response code is not 200, returned :" + updateResourceResponse.getErrorCode(),
272 updateResourceResponse.getErrorCode() == 200);
274 Resource resource = ResponseParser.convertResourceResponseToJavaObject(updateResourceResponse.getResponse());
276 callAllCheckMethods(resource);
279 private void checkResourceInstances(Resource resource) {
280 assertNotNull("resource component Instances list is null ", resource.getComponentInstances());
281 assertTrue("resource component Instances list is empty ", !resource.getComponentInstances().equals(""));
284 private void checkResourceInstancesProperties(Resource resource) {
285 assertNotNull("component Instances properies list is null ", resource.getComponentInstancesProperties());
286 assertTrue("component Instances properies list is empty ",
287 !resource.getComponentInstancesProperties().equals(""));
290 private void checkResourceInstancesRelations(Resource resource) {
291 assertNotNull("component Instances Relations list is null ", resource.getComponentInstancesRelations());
292 assertTrue("component Instances Relations list is empty ",
293 !resource.getComponentInstancesRelations().equals(""));
296 private void checkResourceCapabilities(Resource resource) {
297 assertNotNull("component Instances Capabilities list is null ", resource.getCapabilities());
298 assertTrue("component Instances Capabilities list is empty ", !resource.getCapabilities().equals(""));
301 private void checkResourceRequirements(Resource resource) {
302 assertNotNull("component Instances Requirements list is null ", resource.getRequirements());
303 assertTrue("component Instances Requirements list is empty ", !resource.getRequirements().equals(""));
306 private void callAllCheckMethods(Resource resource) {
308 checkResourceInstances(resource);
309 checkResourceInstancesProperties(resource);
310 checkResourceInstancesRelations(resource);
311 checkResourceCapabilities(resource);
312 checkResourceRequirements(resource);