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.io.IOException;
27 import java.util.List;
29 import org.json.simple.JSONArray;
30 import org.json.simple.JSONObject;
31 import org.json.simple.JSONValue;
32 import org.junit.Rule;
33 import org.junit.rules.TestName;
34 import org.openecomp.sdc.be.datatypes.enums.ResourceTypeEnum;
35 import org.openecomp.sdc.be.model.ArtifactDefinition;
36 import org.openecomp.sdc.be.model.Component;
37 import org.openecomp.sdc.be.model.ComponentInstance;
38 import org.openecomp.sdc.be.model.Resource;
39 import org.openecomp.sdc.be.model.User;
40 import org.openecomp.sdc.ci.tests.api.ComponentBaseTest;
41 import org.openecomp.sdc.ci.tests.datatypes.ResourceReqDetails;
42 import org.openecomp.sdc.ci.tests.datatypes.enums.ArtifactTypeEnum;
43 import org.openecomp.sdc.ci.tests.datatypes.enums.AssocType;
44 import org.openecomp.sdc.ci.tests.datatypes.enums.LifeCycleStatesEnum;
45 import org.openecomp.sdc.ci.tests.datatypes.enums.NormativeTypesEnum;
46 import org.openecomp.sdc.ci.tests.datatypes.enums.ResourceCategoryEnum;
47 import org.openecomp.sdc.ci.tests.datatypes.enums.UserRoleEnum;
48 import org.openecomp.sdc.ci.tests.datatypes.http.RestResponse;
49 import org.openecomp.sdc.ci.tests.execute.lifecycle.LCSbaseTest;
50 import org.openecomp.sdc.ci.tests.utils.general.AtomicOperationUtils;
51 import org.openecomp.sdc.ci.tests.utils.general.ElementFactory;
52 import org.openecomp.sdc.ci.tests.utils.rest.LifecycleRestUtils;
53 import org.openecomp.sdc.ci.tests.utils.rest.ResourceRestUtils;
54 import org.openecomp.sdc.ci.tests.utils.rest.ResponseParser;
55 import org.testng.annotations.BeforeMethod;
56 import org.testng.annotations.Test;
58 import fj.data.Either;
60 public class ValidateExtendedVfData extends ComponentBaseTest {
62 protected Resource resourceDetailsVF;
63 protected Resource resourceDetailsCP_01;
64 protected Resource resourceDetailsVL_01;
65 protected Resource resourceDetailsVFCcomp;
67 protected User sdncUserDetails;
70 public static TestName name = new TestName();
72 public ValidateExtendedVfData() {
73 super(name, ValidateExtendedVfData.class.getName());
77 public void create() throws Exception {
79 sdncUserDetails = ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER);
81 Either<Resource, RestResponse> resourceDetailsVFe = AtomicOperationUtils
82 .createResourceByType(ResourceTypeEnum.VF, UserRoleEnum.DESIGNER, true);
83 resourceDetailsVF = resourceDetailsVFe.left().value();
84 Either<Resource, RestResponse> resourceDetailsCP_01e = AtomicOperationUtils
85 .createResourcesByTypeNormTypeAndCatregory(ResourceTypeEnum.CP, NormativeTypesEnum.PORT,
86 ResourceCategoryEnum.GENERIC_DATABASE, UserRoleEnum.DESIGNER, true);
87 resourceDetailsCP_01 = resourceDetailsCP_01e.left().value();
88 AtomicOperationUtils.uploadArtifactByType(ArtifactTypeEnum.HEAT, resourceDetailsCP_01, UserRoleEnum.DESIGNER,
90 AtomicOperationUtils.uploadArtifactByType(ArtifactTypeEnum.HEAT_VOL, resourceDetailsCP_01,
91 UserRoleEnum.DESIGNER, true, true);
92 AtomicOperationUtils.uploadArtifactByType(ArtifactTypeEnum.HEAT_VOL, resourceDetailsCP_01,
93 UserRoleEnum.DESIGNER, true, true);
94 AtomicOperationUtils.uploadArtifactByType(ArtifactTypeEnum.HEAT_NET, resourceDetailsCP_01,
95 UserRoleEnum.DESIGNER, true, true);
96 AtomicOperationUtils.uploadArtifactByType(ArtifactTypeEnum.OTHER, resourceDetailsCP_01, UserRoleEnum.DESIGNER,
98 AtomicOperationUtils.changeComponentState(resourceDetailsCP_01, UserRoleEnum.DESIGNER,
99 LifeCycleStatesEnum.CERTIFY, true);
100 Either<Resource, RestResponse> resourceDetailsVL_01e = AtomicOperationUtils
101 .createResourcesByTypeNormTypeAndCatregory(ResourceTypeEnum.VL, NormativeTypesEnum.NETWORK,
102 ResourceCategoryEnum.GENERIC_NETWORK_ELEMENTS, UserRoleEnum.DESIGNER, true);
103 resourceDetailsVL_01 = resourceDetailsVL_01e.left().value();
104 AtomicOperationUtils.uploadArtifactByType(ArtifactTypeEnum.HEAT, resourceDetailsVL_01, UserRoleEnum.DESIGNER,
106 AtomicOperationUtils.uploadArtifactByType(ArtifactTypeEnum.HEAT_VOL, resourceDetailsVL_01,
107 UserRoleEnum.DESIGNER, true, true);
108 AtomicOperationUtils.uploadArtifactByType(ArtifactTypeEnum.HEAT_VOL, resourceDetailsVL_01,
109 UserRoleEnum.DESIGNER, true, true);
110 AtomicOperationUtils.uploadArtifactByType(ArtifactTypeEnum.HEAT_NET, resourceDetailsVL_01,
111 UserRoleEnum.DESIGNER, true, true);
112 AtomicOperationUtils.uploadArtifactByType(ArtifactTypeEnum.OTHER, resourceDetailsVL_01, UserRoleEnum.DESIGNER,
114 AtomicOperationUtils.changeComponentState(resourceDetailsVL_01, UserRoleEnum.DESIGNER,
115 LifeCycleStatesEnum.CERTIFY, true);
117 Either<Resource, RestResponse> resourceDetailsVFCcompE = AtomicOperationUtils
118 .createResourcesByTypeNormTypeAndCatregory(ResourceTypeEnum.VFC, NormativeTypesEnum.COMPUTE,
119 ResourceCategoryEnum.GENERIC_INFRASTRUCTURE, UserRoleEnum.DESIGNER, true);
120 resourceDetailsVFCcomp = resourceDetailsVFCcompE.left().value();
121 AtomicOperationUtils.changeComponentState(resourceDetailsVFCcomp, UserRoleEnum.DESIGNER,
122 LifeCycleStatesEnum.CERTIFY, true);
124 ComponentInstance resourceDetailsCP_01ins = AtomicOperationUtils
125 .addComponentInstanceToComponentContainer(resourceDetailsCP_01, resourceDetailsVF,
126 UserRoleEnum.DESIGNER, true)
128 ComponentInstance resourceDetailsVL_01ins = AtomicOperationUtils
129 .addComponentInstanceToComponentContainer(resourceDetailsVL_01, resourceDetailsVF,
130 UserRoleEnum.DESIGNER, true)
132 ComponentInstance resourceDetailsVFCcomp_ins = AtomicOperationUtils
133 .addComponentInstanceToComponentContainer(resourceDetailsVFCcomp, resourceDetailsVF,
134 UserRoleEnum.DESIGNER, true)
137 resourceDetailsVF = AtomicOperationUtils.getResourceObject(resourceDetailsVF, UserRoleEnum.DESIGNER);
138 AtomicOperationUtils.associate2ResourceInstances(resourceDetailsVF, resourceDetailsCP_01ins,
139 resourceDetailsVL_01ins, AssocType.LINKABLE.getAssocType(), UserRoleEnum.DESIGNER, true);
140 AtomicOperationUtils.associate2ResourceInstances(resourceDetailsVF, resourceDetailsCP_01ins,
141 resourceDetailsVFCcomp_ins, AssocType.BINDABLE.getAssocType(), UserRoleEnum.DESIGNER, true);
146 public void getResourceLatestVersion() throws Exception {
148 RestResponse response = LifecycleRestUtils.changeComponentState(resourceDetailsVF, sdncUserDetails,
149 LifeCycleStatesEnum.CHECKIN);
150 assertTrue("change LC state to CHECKIN, returned status:" + response.getErrorCode(),
151 response.getErrorCode() == 200);
152 // resourceDetailsVF =
153 // AtomicOperationUtils.getResourceObject(resourceDetailsVF,
154 // UserRoleEnum.DESIGNER);
155 RestResponse getResourceLatestVersionResponse = ResourceRestUtils.getResourceLatestVersionList(sdncUserDetails);
156 assertTrue("response code is not 200, returned :" + getResourceLatestVersionResponse.getErrorCode(),
157 getResourceLatestVersionResponse.getErrorCode() == 200);
159 List<Resource> resourceList = ResourceRestUtils
160 .restResponseToResourceObjectList(getResourceLatestVersionResponse.getResponse());
161 Resource resource = ResourceRestUtils.getResourceObjectFromResourceListByUid(resourceList,
162 resourceDetailsVF.getUniqueId());
164 callAllCheckMethods(resource);
168 public void getFollowedResources() throws Exception {
170 RestResponse response = LifecycleRestUtils.changeComponentState(resourceDetailsVF, sdncUserDetails,
171 LifeCycleStatesEnum.CHECKIN);
172 assertTrue("change LC state to CHECKIN, returned status:" + response.getErrorCode(),
173 response.getErrorCode() == 200);
174 // resourceDetailsVF =
175 // AtomicOperationUtils.getResourceObject(resourceDetailsVF,
176 // UserRoleEnum.DESIGNER);
177 resourceDetailsVF = AtomicOperationUtils.getResourceObject(resourceDetailsVF, UserRoleEnum.DESIGNER);
179 RestResponse getFollowedResourcesResponse = ResourceRestUtils.getFollowedList(sdncUserDetails);
180 String json = getFollowedResourcesResponse.getResponse();
181 JSONObject jsonResp = (JSONObject) JSONValue.parse(json);
182 JSONArray resources = (JSONArray) jsonResp.get("resources");
184 List<Resource> resourceList = ResourceRestUtils.restResponseToResourceObjectList(resources.toString());
185 Resource resource = ResourceRestUtils.getResourceObjectFromResourceListByUid(resourceList,
186 resourceDetailsVF.getUniqueId());
187 // TODO if get followed list Api should return full object data?
188 // callAllCheckMethods(resource);
192 public void lifeCycleChekInRequest() throws Exception {
194 RestResponse response = LifecycleRestUtils.changeComponentState(resourceDetailsVF, sdncUserDetails,
195 LifeCycleStatesEnum.CHECKIN);
196 assertTrue("change LC state to CHECKIN, returned status:" + response.getErrorCode(),
197 response.getErrorCode() == 200);
198 // resourceDetailsVF =
199 // AtomicOperationUtils.getResourceObject(resourceDetailsVF,
200 // UserRoleEnum.DESIGNER);
201 resourceDetailsVF = AtomicOperationUtils.getResourceObject(resourceDetailsVF, UserRoleEnum.DESIGNER);
203 Resource resource = ResponseParser.convertResourceResponseToJavaObject(response.getResponse());
204 callAllCheckMethods(resource);
208 public void lifeCycleChekOutRequest() throws Exception {
210 RestResponse response = LifecycleRestUtils.changeComponentState(resourceDetailsVF, sdncUserDetails,
211 LifeCycleStatesEnum.CHECKIN);
212 assertTrue("change LC state to CHECKIN, returned status:" + response.getErrorCode(),
213 response.getErrorCode() == 200);
214 response = LifecycleRestUtils.changeComponentState(resourceDetailsVF, sdncUserDetails,
215 LifeCycleStatesEnum.CHECKOUT);
216 assertTrue("change LC state to CHECKOUT, returned status:" + response.getErrorCode(),
217 response.getErrorCode() == 200);
218 resourceDetailsVF = AtomicOperationUtils.getResourceObject(resourceDetailsVF, UserRoleEnum.DESIGNER);
220 Resource resource = ResponseParser.convertResourceResponseToJavaObject(response.getResponse());
221 callAllCheckMethods(resource);
225 public void lifeCycleRequestForCertification() throws Exception {
227 RestResponse response = LifecycleRestUtils.changeComponentState(resourceDetailsVF, sdncUserDetails,
228 LifeCycleStatesEnum.CHECKIN);
229 assertTrue("change LC state to CHECKIN, returned status:" + response.getErrorCode(),
230 response.getErrorCode() == 200);
231 response = LifecycleRestUtils.changeComponentState(resourceDetailsVF, sdncUserDetails,
232 LifeCycleStatesEnum.CERTIFICATIONREQUEST);
233 assertTrue("change LC state to CERTIFICATIONREQUEST, returned status:" + response.getErrorCode(),
234 response.getErrorCode() == 200);
235 resourceDetailsVF = AtomicOperationUtils.getResourceObject(resourceDetailsVF, UserRoleEnum.DESIGNER);
237 Resource resource = ResponseParser.convertResourceResponseToJavaObject(response.getResponse());
238 callAllCheckMethods(resource);
242 public void lifeCycleCertificationRequest() throws Exception {
244 RestResponse response = AtomicOperationUtils
245 .changeComponentState(resourceDetailsVF, UserRoleEnum.DESIGNER, LifeCycleStatesEnum.CERTIFY, false)
247 assertTrue("change LC state to CERTIFY, returned status:" + response.getErrorCode(),
248 response.getErrorCode() == 200);
249 resourceDetailsVF = AtomicOperationUtils.getResourceObject(resourceDetailsVF, UserRoleEnum.DESIGNER);
251 Resource resource = ResponseParser.convertResourceResponseToJavaObject(response.getResponse());
252 callAllCheckMethods(resource);
256 public void checkGetResourceAfterCertificationRequest() throws Exception {
258 RestResponse response = AtomicOperationUtils
259 .changeComponentState(resourceDetailsVF, UserRoleEnum.DESIGNER, LifeCycleStatesEnum.CERTIFY, false)
261 assertTrue("change LC state to CERTIFY, returned status:" + response.getErrorCode(),
262 response.getErrorCode() == 200);
263 resourceDetailsVF = AtomicOperationUtils.getResourceObject(resourceDetailsVF, UserRoleEnum.DESIGNER);
265 callAllCheckMethods(resourceDetailsVF);
269 public void updateResourceMetadata() throws Exception {
271 resourceDetailsVF.setDescription("stamStam");
272 ResourceReqDetails resourceDetailsVFreqD = new ResourceReqDetails(resourceDetailsVF);
273 RestResponse updateResourceResponse = ResourceRestUtils.updateResourceMetadata(resourceDetailsVFreqD,
274 sdncUserDetails, resourceDetailsVF.getUniqueId());
275 assertTrue("response code is not 200, returned :" + updateResourceResponse.getErrorCode(),
276 updateResourceResponse.getErrorCode() == 200);
278 Resource resource = ResponseParser.convertResourceResponseToJavaObject(updateResourceResponse.getResponse());
280 callAllCheckMethods(resource);
283 private void checkResourceInstances(Resource resource) {
284 assertNotNull("resource component Instances list is null ", resource.getComponentInstances());
285 assertTrue("resource component Instances list is empty ", !resource.getComponentInstances().equals(""));
288 private void checkResourceInstancesProperties(Resource resource) {
289 assertNotNull("component Instances properies list is null ", resource.getComponentInstancesProperties());
290 assertTrue("component Instances properies list is empty ",
291 !resource.getComponentInstancesProperties().equals(""));
294 private void checkResourceInstancesRelations(Resource resource) {
295 assertNotNull("component Instances Relations list is null ", resource.getComponentInstancesRelations());
296 assertTrue("component Instances Relations list is empty ",
297 !resource.getComponentInstancesRelations().equals(""));
300 private void checkResourceCapabilities(Resource resource) {
301 assertNotNull("component Instances Capabilities list is null ", resource.getCapabilities());
302 assertTrue("component Instances Capabilities list is empty ", !resource.getCapabilities().equals(""));
305 private void checkResourceRequirements(Resource resource) {
306 assertNotNull("component Instances Requirements list is null ", resource.getRequirements());
307 assertTrue("component Instances Requirements list is empty ", !resource.getRequirements().equals(""));
310 private void callAllCheckMethods(Resource resource) {
312 checkResourceInstances(resource);
313 checkResourceInstancesProperties(resource);
314 checkResourceInstancesRelations(resource);
315 checkResourceCapabilities(resource);
316 checkResourceRequirements(resource);