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 fj.data.Either;
24 import org.json.simple.JSONArray;
25 import org.json.simple.JSONObject;
26 import org.json.simple.JSONValue;
27 import org.junit.Rule;
28 import org.junit.rules.TestName;
29 import org.openecomp.sdc.be.datatypes.enums.ResourceTypeEnum;
30 import org.openecomp.sdc.be.model.ComponentInstance;
31 import org.openecomp.sdc.be.model.Resource;
32 import org.openecomp.sdc.be.model.User;
33 import org.openecomp.sdc.ci.tests.api.ComponentBaseTest;
34 import org.openecomp.sdc.ci.tests.datatypes.ResourceReqDetails;
35 import org.openecomp.sdc.ci.tests.datatypes.enums.*;
36 import org.openecomp.sdc.ci.tests.datatypes.http.RestResponse;
37 import org.openecomp.sdc.ci.tests.utils.general.AtomicOperationUtils;
38 import org.openecomp.sdc.ci.tests.utils.general.ElementFactory;
39 import org.openecomp.sdc.ci.tests.utils.rest.LifecycleRestUtils;
40 import org.openecomp.sdc.ci.tests.utils.rest.ResourceRestUtils;
41 import org.openecomp.sdc.ci.tests.utils.rest.ResponseParser;
42 import org.testng.annotations.BeforeMethod;
43 import org.testng.annotations.Test;
45 import java.util.List;
47 import static org.testng.AssertJUnit.assertNotNull;
48 import static org.testng.AssertJUnit.assertTrue;
50 public class ValidateExtendedVfData extends ComponentBaseTest {
52 protected Resource resourceDetailsVF;
53 protected Resource resourceDetailsCP_01;
54 protected Resource resourceDetailsVL_01;
55 protected Resource resourceDetailsVFCcomp;
57 protected User sdncUserDetails;
60 public static TestName name = new TestName();
62 public ValidateExtendedVfData() {
63 super(name, ValidateExtendedVfData.class.getName());
67 public void create() throws Exception {
69 sdncUserDetails = ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER);
71 Either<Resource, RestResponse> resourceDetailsVFe = AtomicOperationUtils
72 .createResourceByType(ResourceTypeEnum.VF, UserRoleEnum.DESIGNER, true);
73 resourceDetailsVF = resourceDetailsVFe.left().value();
74 Either<Resource, RestResponse> resourceDetailsCP_01e = AtomicOperationUtils
75 .createResourcesByTypeNormTypeAndCatregory(ResourceTypeEnum.CP, NormativeTypesEnum.PORT,
76 ResourceCategoryEnum.GENERIC_DATABASE, UserRoleEnum.DESIGNER, true);
77 resourceDetailsCP_01 = resourceDetailsCP_01e.left().value();
78 AtomicOperationUtils.uploadArtifactByType(ArtifactTypeEnum.HEAT, resourceDetailsCP_01, UserRoleEnum.DESIGNER,
80 AtomicOperationUtils.uploadArtifactByType(ArtifactTypeEnum.HEAT_VOL, resourceDetailsCP_01,
81 UserRoleEnum.DESIGNER, true, true);
82 AtomicOperationUtils.uploadArtifactByType(ArtifactTypeEnum.HEAT_VOL, resourceDetailsCP_01,
83 UserRoleEnum.DESIGNER, true, true);
84 AtomicOperationUtils.uploadArtifactByType(ArtifactTypeEnum.HEAT_NET, resourceDetailsCP_01,
85 UserRoleEnum.DESIGNER, true, true);
86 AtomicOperationUtils.uploadArtifactByType(ArtifactTypeEnum.OTHER, resourceDetailsCP_01, UserRoleEnum.DESIGNER,
88 AtomicOperationUtils.changeComponentState(resourceDetailsCP_01, UserRoleEnum.DESIGNER,
89 LifeCycleStatesEnum.CERTIFY, true);
90 Either<Resource, RestResponse> resourceDetailsVL_01e = AtomicOperationUtils
91 .createResourcesByTypeNormTypeAndCatregory(ResourceTypeEnum.VL, NormativeTypesEnum.NETWORK,
92 ResourceCategoryEnum.GENERIC_NETWORK_ELEMENTS, UserRoleEnum.DESIGNER, true);
93 resourceDetailsVL_01 = resourceDetailsVL_01e.left().value();
94 AtomicOperationUtils.uploadArtifactByType(ArtifactTypeEnum.HEAT, resourceDetailsVL_01, UserRoleEnum.DESIGNER,
96 AtomicOperationUtils.uploadArtifactByType(ArtifactTypeEnum.HEAT_VOL, resourceDetailsVL_01,
97 UserRoleEnum.DESIGNER, true, true);
98 AtomicOperationUtils.uploadArtifactByType(ArtifactTypeEnum.HEAT_VOL, resourceDetailsVL_01,
99 UserRoleEnum.DESIGNER, true, true);
100 AtomicOperationUtils.uploadArtifactByType(ArtifactTypeEnum.HEAT_NET, resourceDetailsVL_01,
101 UserRoleEnum.DESIGNER, true, true);
102 AtomicOperationUtils.uploadArtifactByType(ArtifactTypeEnum.OTHER, resourceDetailsVL_01, UserRoleEnum.DESIGNER,
104 AtomicOperationUtils.changeComponentState(resourceDetailsVL_01, UserRoleEnum.DESIGNER,
105 LifeCycleStatesEnum.CERTIFY, true);
107 Either<Resource, RestResponse> resourceDetailsVFCcompE = AtomicOperationUtils
108 .createResourcesByTypeNormTypeAndCatregory(ResourceTypeEnum.VFC, NormativeTypesEnum.COMPUTE,
109 ResourceCategoryEnum.GENERIC_INFRASTRUCTURE, UserRoleEnum.DESIGNER, true);
110 resourceDetailsVFCcomp = resourceDetailsVFCcompE.left().value();
111 AtomicOperationUtils.changeComponentState(resourceDetailsVFCcomp, UserRoleEnum.DESIGNER,
112 LifeCycleStatesEnum.CERTIFY, true);
114 ComponentInstance resourceDetailsCP_01ins = AtomicOperationUtils
115 .addComponentInstanceToComponentContainer(resourceDetailsCP_01, resourceDetailsVF,
116 UserRoleEnum.DESIGNER, true)
118 ComponentInstance resourceDetailsVL_01ins = AtomicOperationUtils
119 .addComponentInstanceToComponentContainer(resourceDetailsVL_01, resourceDetailsVF,
120 UserRoleEnum.DESIGNER, true)
122 ComponentInstance resourceDetailsVFCcomp_ins = AtomicOperationUtils
123 .addComponentInstanceToComponentContainer(resourceDetailsVFCcomp, resourceDetailsVF,
124 UserRoleEnum.DESIGNER, true)
127 resourceDetailsVF = AtomicOperationUtils.getResourceObject(resourceDetailsVF, UserRoleEnum.DESIGNER);
128 AtomicOperationUtils.associate2ResourceInstances(resourceDetailsVF, resourceDetailsCP_01ins,
129 resourceDetailsVL_01ins, AssocType.LINKABLE.getAssocType(), UserRoleEnum.DESIGNER, true);
130 AtomicOperationUtils.associate2ResourceInstances(resourceDetailsVF, resourceDetailsCP_01ins,
131 resourceDetailsVFCcomp_ins, AssocType.BINDABLE.getAssocType(), UserRoleEnum.DESIGNER, true);
136 public void getResourceLatestVersion() throws Exception {
138 RestResponse response = LifecycleRestUtils.changeComponentState(resourceDetailsVF, sdncUserDetails,
139 LifeCycleStatesEnum.CHECKIN);
140 assertTrue("change LC state to CHECKIN, returned status:" + response.getErrorCode(),
141 response.getErrorCode() == 200);
142 // resourceDetailsVF =
143 // AtomicOperationUtils.getResourceObject(resourceDetailsVF,
144 // UserRoleEnum.DESIGNER);
145 RestResponse getResourceLatestVersionResponse = ResourceRestUtils.getResourceLatestVersionList(sdncUserDetails);
146 assertTrue("response code is not 200, returned :" + getResourceLatestVersionResponse.getErrorCode(),
147 getResourceLatestVersionResponse.getErrorCode() == 200);
149 List<Resource> resourceList = ResourceRestUtils
150 .restResponseToResourceObjectList(getResourceLatestVersionResponse.getResponse());
151 Resource resource = ResourceRestUtils.getResourceObjectFromResourceListByUid(resourceList,
152 resourceDetailsVF.getUniqueId());
154 callAllCheckMethods(resource);
158 public void getFollowedResources() throws Exception {
160 RestResponse response = LifecycleRestUtils.changeComponentState(resourceDetailsVF, sdncUserDetails,
161 LifeCycleStatesEnum.CHECKIN);
162 assertTrue("change LC state to CHECKIN, returned status:" + response.getErrorCode(),
163 response.getErrorCode() == 200);
164 // resourceDetailsVF =
165 // AtomicOperationUtils.getResourceObject(resourceDetailsVF,
166 // UserRoleEnum.DESIGNER);
167 resourceDetailsVF = AtomicOperationUtils.getResourceObject(resourceDetailsVF, UserRoleEnum.DESIGNER);
169 RestResponse getFollowedResourcesResponse = ResourceRestUtils.getFollowedList(sdncUserDetails);
170 String json = getFollowedResourcesResponse.getResponse();
171 JSONObject jsonResp = (JSONObject) JSONValue.parse(json);
172 JSONArray resources = (JSONArray) jsonResp.get("resources");
174 List<Resource> resourceList = ResourceRestUtils.restResponseToResourceObjectList(resources.toString());
175 Resource resource = ResourceRestUtils.getResourceObjectFromResourceListByUid(resourceList,
176 resourceDetailsVF.getUniqueId());
177 // TODO if get followed list Api should return full object data?
178 // callAllCheckMethods(resource);
182 public void lifeCycleChekInRequest() throws Exception {
184 RestResponse response = LifecycleRestUtils.changeComponentState(resourceDetailsVF, sdncUserDetails,
185 LifeCycleStatesEnum.CHECKIN);
186 assertTrue("change LC state to CHECKIN, returned status:" + response.getErrorCode(),
187 response.getErrorCode() == 200);
188 // resourceDetailsVF =
189 // AtomicOperationUtils.getResourceObject(resourceDetailsVF,
190 // UserRoleEnum.DESIGNER);
191 resourceDetailsVF = AtomicOperationUtils.getResourceObject(resourceDetailsVF, UserRoleEnum.DESIGNER);
193 Resource resource = ResponseParser.convertResourceResponseToJavaObject(response.getResponse());
194 callAllCheckMethods(resource);
198 public void lifeCycleChekOutRequest() throws Exception {
200 RestResponse response = LifecycleRestUtils.changeComponentState(resourceDetailsVF, sdncUserDetails,
201 LifeCycleStatesEnum.CHECKIN);
202 assertTrue("change LC state to CHECKIN, returned status:" + response.getErrorCode(),
203 response.getErrorCode() == 200);
204 response = LifecycleRestUtils.changeComponentState(resourceDetailsVF, sdncUserDetails,
205 LifeCycleStatesEnum.CHECKOUT);
206 assertTrue("change LC state to CHECKOUT, returned status:" + response.getErrorCode(),
207 response.getErrorCode() == 200);
208 resourceDetailsVF = AtomicOperationUtils.getResourceObject(resourceDetailsVF, UserRoleEnum.DESIGNER);
210 Resource resource = ResponseParser.convertResourceResponseToJavaObject(response.getResponse());
211 callAllCheckMethods(resource);
215 public void lifeCycleRequestForCertification() throws Exception {
217 RestResponse response = LifecycleRestUtils.changeComponentState(resourceDetailsVF, sdncUserDetails,
218 LifeCycleStatesEnum.CHECKIN);
219 assertTrue("change LC state to CHECKIN, returned status:" + response.getErrorCode(),
220 response.getErrorCode() == 200);
221 response = LifecycleRestUtils.changeComponentState(resourceDetailsVF, sdncUserDetails,
222 LifeCycleStatesEnum.CERTIFICATIONREQUEST);
223 assertTrue("change LC state to CERTIFICATIONREQUEST, returned status:" + response.getErrorCode(),
224 response.getErrorCode() == 200);
225 resourceDetailsVF = AtomicOperationUtils.getResourceObject(resourceDetailsVF, UserRoleEnum.DESIGNER);
227 Resource resource = ResponseParser.convertResourceResponseToJavaObject(response.getResponse());
228 callAllCheckMethods(resource);
232 public void lifeCycleCertificationRequest() throws Exception {
234 RestResponse response = AtomicOperationUtils
235 .changeComponentState(resourceDetailsVF, UserRoleEnum.DESIGNER, LifeCycleStatesEnum.CERTIFY, false)
237 assertTrue("change LC state to CERTIFY, returned status:" + response.getErrorCode(),
238 response.getErrorCode() == 200);
239 resourceDetailsVF = AtomicOperationUtils.getResourceObject(resourceDetailsVF, UserRoleEnum.DESIGNER);
241 Resource resource = ResponseParser.convertResourceResponseToJavaObject(response.getResponse());
242 callAllCheckMethods(resource);
246 public void checkGetResourceAfterCertificationRequest() throws Exception {
248 RestResponse response = AtomicOperationUtils
249 .changeComponentState(resourceDetailsVF, UserRoleEnum.DESIGNER, LifeCycleStatesEnum.CERTIFY, false)
251 assertTrue("change LC state to CERTIFY, returned status:" + response.getErrorCode(),
252 response.getErrorCode() == 200);
253 resourceDetailsVF = AtomicOperationUtils.getResourceObject(resourceDetailsVF, UserRoleEnum.DESIGNER);
255 callAllCheckMethods(resourceDetailsVF);
259 public void updateResourceMetadata() throws Exception {
261 resourceDetailsVF.setDescription("stamStam");
262 ResourceReqDetails resourceDetailsVFreqD = new ResourceReqDetails(resourceDetailsVF);
263 RestResponse updateResourceResponse = ResourceRestUtils.updateResourceMetadata(resourceDetailsVFreqD,
264 sdncUserDetails, resourceDetailsVF.getUniqueId());
265 assertTrue("response code is not 200, returned :" + updateResourceResponse.getErrorCode(),
266 updateResourceResponse.getErrorCode() == 200);
268 Resource resource = ResponseParser.convertResourceResponseToJavaObject(updateResourceResponse.getResponse());
270 callAllCheckMethods(resource);
273 private void checkResourceInstances(Resource resource) {
274 assertNotNull("resource component Instances list is null ", resource.getComponentInstances());
275 assertTrue("resource component Instances list is empty ", !resource.getComponentInstances().equals(""));
278 private void checkResourceInstancesProperties(Resource resource) {
279 assertNotNull("component Instances properies list is null ", resource.getComponentInstancesProperties());
280 assertTrue("component Instances properies list is empty ",
281 !resource.getComponentInstancesProperties().equals(""));
284 private void checkResourceInstancesRelations(Resource resource) {
285 assertNotNull("component Instances Relations list is null ", resource.getComponentInstancesRelations());
286 assertTrue("component Instances Relations list is empty ",
287 !resource.getComponentInstancesRelations().equals(""));
290 private void checkResourceCapabilities(Resource resource) {
291 assertNotNull("component Instances Capabilities list is null ", resource.getCapabilities());
292 assertTrue("component Instances Capabilities list is empty ", !resource.getCapabilities().equals(""));
295 private void checkResourceRequirements(Resource resource) {
296 assertNotNull("component Instances Requirements list is null ", resource.getRequirements());
297 assertTrue("component Instances Requirements list is empty ", !resource.getRequirements().equals(""));
300 private void callAllCheckMethods(Resource resource) {
302 checkResourceInstances(resource);
303 checkResourceInstancesProperties(resource);
304 checkResourceInstancesRelations(resource);
305 checkResourceCapabilities(resource);
306 checkResourceRequirements(resource);