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.externalapi;
23 import static org.testng.AssertJUnit.assertFalse;
24 import static org.testng.AssertJUnit.assertTrue;
26 import java.io.IOException;
27 import java.lang.reflect.Type;
28 import java.math.BigInteger;
29 import java.util.ArrayList;
30 import java.util.HashSet;
31 import java.util.List;
32 import java.util.Random;
35 import org.junit.Rule;
36 import org.junit.rules.TestName;
37 import org.openecomp.portalsdk.core.restful.domain.EcompRole;
38 import org.openecomp.portalsdk.core.restful.domain.EcompUser;
39 import org.openecomp.sdc.be.datatypes.enums.ResourceTypeEnum;
40 import org.openecomp.sdc.be.model.Resource;
41 import org.openecomp.sdc.be.model.User;
42 import org.openecomp.sdc.ci.tests.api.ComponentBaseTest;
43 import org.openecomp.sdc.ci.tests.datatypes.enums.LifeCycleStatesEnum;
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.BaseRestUtils;
49 import org.openecomp.sdc.ci.tests.utils.rest.EcompUserRestUtils;
50 import org.openecomp.sdc.ci.tests.utils.rest.ResourceRestUtils;
51 import org.openecomp.sdc.ci.tests.utils.rest.UserRestUtils;
52 import org.testng.annotations.Test;
54 import com.google.gson.Gson;
55 import com.google.gson.reflect.TypeToken;
57 public class UserAPIs extends ComponentBaseTest {
60 public static TestName name = new TestName();
63 super(name, UserAPIs.class.getName());
66 public User adminUser = ElementFactory.getDefaultUser(UserRoleEnum.ADMIN);
70 public void createUserAllPosibleRoles() throws Exception {
72 EcompUser ecompUser = new EcompUser();
73 EcompRole ecompRole = new EcompRole();
75 List<EcompRole> allRoles = getAllRoles();
77 for (EcompRole ecompRole2 : allRoles) {
81 List<EcompUser> allusersList = getAllusersList();
82 int sizeBeforeChange = allusersList.size();
85 ecompUser.setLoginId(getUser());
86 ecompRole.setId((long) ecompRole2.getId());
87 ecompRole.setName(ecompRole2.getName());
88 System.out.println(ecompRole2.getName());
89 Set<EcompRole> setRoles = new HashSet<EcompRole>();
90 setRoles.add(ecompRole);
91 ecompUser.setRoles(setRoles);
92 RestResponse pushUser = EcompUserRestUtils.pushUser(ecompUser);
93 BaseRestUtils.checkSuccess(pushUser);
95 ///get list of users verify list size changed
96 allusersList = getAllusersList();
97 int sizeAfterChange = allusersList.size();
99 assertTrue("List is Equel" , sizeBeforeChange != sizeAfterChange );
100 pushUser = EcompUserRestUtils.pushUser(ecompUser);
103 deleteUser(ecompUser.getLoginId());
111 public void createSameUserTwiceTest() throws Exception {
113 EcompUser ecompUser = new EcompUser();
114 EcompRole ecompRole = new EcompRole();
118 List<EcompUser> allusersList = getAllusersList();
119 int sizeBeforeChange = allusersList.size();
122 ecompUser.setLoginId(getUser());
123 ecompRole.setId((long) 1);
124 ecompRole.setName("TESTER");
125 Set<EcompRole> setRoles = new HashSet<EcompRole>();
126 setRoles.add(ecompRole);
127 ecompUser.setRoles(setRoles);
128 RestResponse pushUser = EcompUserRestUtils.pushUser(ecompUser);
129 BaseRestUtils.checkSuccess(pushUser);
131 ///get list of users verify list size changed
132 allusersList = getAllusersList();
133 int sizeAfterChange = allusersList.size();
135 assertTrue("List is Equel" , sizeBeforeChange != sizeAfterChange );
136 pushUser = EcompUserRestUtils.pushUser(ecompUser);
139 deleteUser(ecompUser.getLoginId());
145 public void createSameUserTwiceDiffrentDataTest() throws Exception {
147 EcompUser ecompUser = new EcompUser();
148 EcompRole ecompRole = new EcompRole();
151 List<EcompUser> allusersList = getAllusersList();
152 int sizeBeforeChange = allusersList.size();
155 ecompUser.setLoginId(getUser());
156 ecompRole.setId((long) 1);
157 ecompRole.setName("TESTER");
158 Set<EcompRole> setRoles = new HashSet<EcompRole>();
159 setRoles.add(ecompRole);
160 ecompUser.setRoles(setRoles);
161 RestResponse pushUser = EcompUserRestUtils.pushUser(ecompUser);
162 BaseRestUtils.checkSuccess(pushUser);
164 ///get list of users verify list size changed
165 allusersList = getAllusersList();
166 int sizeAfterChange = allusersList.size();
168 assertTrue("List is Equel" , sizeBeforeChange != sizeAfterChange );
171 ecompRole.setId((long) 2);
172 ecompRole.setName("DESIGNER");
173 setRoles = new HashSet<EcompRole>();
174 setRoles.add(ecompRole);
175 ecompUser.setRoles(setRoles);
177 pushUser = EcompUserRestUtils.pushUser(ecompUser);
180 deleteUser(ecompUser.getLoginId());
186 public void updateUserRoleTest() throws Exception {
188 EcompUser ecompUser = new EcompUser();
189 EcompRole ecompRole = new EcompRole();
192 ecompUser.setLoginId(getUser());
193 ecompRole.setId((long) 1);
194 ecompRole.setName("TESTER");
195 Set<EcompRole> setRoles = new HashSet<EcompRole>();
196 setRoles.add(ecompRole);
197 ecompUser.setRoles(setRoles);
198 RestResponse pushUser = EcompUserRestUtils.pushUser(ecompUser);
199 BaseRestUtils.checkSuccess(pushUser);
201 List<EcompRole> userRolesBefore = getUserRoles(ecompUser);
204 ecompRole = new EcompRole();
205 ecompRole.setId((long) 2);
206 ecompRole.setName("DESIGNER");
207 List<EcompRole> list= new ArrayList<EcompRole>();
210 EcompUserRestUtils.pushUserRoles(ecompUser.getLoginId(), list);
212 List<EcompRole> userRolesAfter = getUserRoles(ecompUser);
214 assertFalse("role wasn't changed", userRolesBefore.equals(userRolesAfter));
216 deleteUser(ecompUser.getLoginId());
222 public void addUserCreateResource() throws Exception {
224 EcompUser ecompUser = new EcompUser();
225 EcompRole ecompRole = new EcompRole();
226 Resource resource = new Resource();
230 ecompUser.setLoginId(getUser());
231 ecompRole.setId((long) 2);
232 ecompRole.setName("DESIGNER");
233 Set<EcompRole> setRoles = new HashSet<EcompRole>();
234 setRoles.add(ecompRole);
235 ecompUser.setRoles(setRoles);
236 RestResponse pushUser = EcompUserRestUtils.pushUser(ecompUser);
237 BaseRestUtils.checkSuccess(pushUser);
239 UserRoleEnum.DESIGNER.setUserId(ecompUser.getLoginId());
240 resource = AtomicOperationUtils.createResourceByType(ResourceTypeEnum.VF, UserRoleEnum.DESIGNER, true).left().value();
243 ResourceRestUtils.deleteResource(resource.getUniqueId(), adminUser.getUserId());
244 deleteUser(ecompUser.getLoginId());
250 public void changeUserRoleWithCheckOutResource() throws Exception {
251 EcompUser ecompUser = new EcompUser();
252 EcompRole ecompRole = new EcompRole();
253 Resource resource = new Resource();
257 ecompUser.setLoginId(getUser());
258 ecompRole.setId((long) 2);
259 ecompRole.setName("DESIGNER");
260 Set<EcompRole> setRoles = new HashSet<EcompRole>();
261 setRoles.add(ecompRole);
262 ecompUser.setRoles(setRoles);
263 RestResponse pushUser = EcompUserRestUtils.pushUser(ecompUser);
264 BaseRestUtils.checkSuccess(pushUser);
266 UserRoleEnum.DESIGNER.setUserId(ecompUser.getLoginId());
267 resource = AtomicOperationUtils.createResourceByType(ResourceTypeEnum.VF, UserRoleEnum.DESIGNER, true).left().value();
270 ecompRole = new EcompRole();
271 ecompRole.setId((long) 1);
272 ecompRole.setName("TESTER");
273 List<EcompRole> list= new ArrayList<EcompRole>();
276 RestResponse pushUserRoles = EcompUserRestUtils.pushUserRoles(ecompUser.getLoginId(), list);
277 // assertTrue("wrong response code :" , pushUserRoles.getErrorCode() == BaseRestUtils.STATUS_CODE_ALREADY_EXISTS);
280 ResourceRestUtils.deleteResource(resource.getUniqueId(), adminUser.getUserId());
281 deleteUser(ecompUser.getLoginId());
286 public void changeUserRoleWithStartTestingResource() throws Exception {
288 EcompUser ecompUser = new EcompUser();
289 EcompRole ecompRole = new EcompRole();
290 Resource resource= new Resource();
294 ecompUser.setLoginId(getUser());
295 ecompRole.setId((long) 2);
296 ecompRole.setName("DESIGNER");
297 Set<EcompRole> setRoles = new HashSet<EcompRole>();
298 setRoles.add(ecompRole);
299 ecompUser.setRoles(setRoles);
300 RestResponse pushUser = EcompUserRestUtils.pushUser(ecompUser);
301 BaseRestUtils.checkSuccess(pushUser);
303 UserRoleEnum.DESIGNER.setUserId(ecompUser.getLoginId());
305 resource = AtomicOperationUtils.createResourceByType(ResourceTypeEnum.VF, UserRoleEnum.DESIGNER, true).left().value();
306 AtomicOperationUtils.changeComponentState(resource, UserRoleEnum.DESIGNER, LifeCycleStatesEnum.STARTCERTIFICATION, true);
310 ecompRole = new EcompRole();
311 ecompRole.setId((long) 1);
312 ecompRole.setName("TESTER");
313 List<EcompRole> list= new ArrayList<EcompRole>();
316 RestResponse pushUserRoles = EcompUserRestUtils.pushUserRoles(ecompUser.getLoginId(), list);
317 BaseRestUtils.checkSuccess(pushUserRoles);
320 ResourceRestUtils.deleteResource(resource.getUniqueId(), adminUser.getUserId());
321 deleteUser(ecompUser.getLoginId());
326 public void fillAllEcompFields() throws Exception {
327 EcompUser ecompUser = new EcompUser();
328 EcompRole ecompRole = new EcompRole();
332 List<EcompUser> allusersList = getAllusersList();
333 int sizeBeforeChange = allusersList.size();
336 ecompUser.setLoginId(getUser());
337 ecompUser.setOrgId((long) 123);
338 ecompUser.setManagerId("ci4321");
339 ecompUser.setFirstName("firstName");
340 ecompUser.setMiddleInitial("middleInitial");
341 ecompUser.setLastName("lastName");
342 ecompUser.setPhone("phone");
343 ecompUser.setEmail("email@email.com");
344 ecompUser.setHrid("hrid");
345 ecompUser.setOrgUserId("orgUserId");
346 ecompUser.setOrgCode("orgCode");
347 ecompUser.setOrgManagerUserId("ci1234");
348 ecompUser.setJobTitle("jobTitle");
349 ecompUser.setActive(true);
350 ecompRole.setId((long) 1);
351 ecompRole.setName("TESTER");
352 Set<EcompRole> setRoles = new HashSet<EcompRole>();
353 setRoles.add(ecompRole);
354 ecompUser.setRoles(setRoles);
355 RestResponse pushUser = EcompUserRestUtils.pushUser(ecompUser);
356 BaseRestUtils.checkSuccess(pushUser);
358 ///get list of users verify list size changed
359 allusersList = getAllusersList();
360 int sizeAfterChange = allusersList.size();
362 assertTrue("List is Equel" , sizeBeforeChange != sizeAfterChange );
366 deleteUser(ecompUser.getLoginId());
371 public void missingMandatoryFieldRole() throws Exception {
373 EcompUser ecompUser = new EcompUser();
376 List<EcompUser> allusersList = getAllusersList();
377 int sizeBeforeChange = allusersList.size();
380 ecompUser.setLoginId(getUser());
381 RestResponse pushUser = EcompUserRestUtils.pushUser(ecompUser);
382 BaseRestUtils.checkSuccess(pushUser);
384 ///get list of users verify list size changed
385 allusersList = getAllusersList();
386 int sizeAfterChange = allusersList.size();
388 assertTrue("List is Equel" , sizeBeforeChange != sizeAfterChange );
391 deleteUser(ecompUser.getLoginId());
396 public void missingMandatoryFieldATTid() throws Exception {
398 EcompUser ecompUser = new EcompUser();
399 EcompRole ecompRole = new EcompRole();
403 ecompUser.setLoginId("");
404 ecompRole.setId((long) 1);
405 ecompRole.setName("TESTER");
406 Set<EcompRole> setRoles = new HashSet<EcompRole>();
407 setRoles.add(ecompRole);
408 ecompUser.setRoles(setRoles);
409 RestResponse pushUser = EcompUserRestUtils.pushUser(ecompUser);
410 assertTrue("wrong response code :" , pushUser.getErrorCode() == BaseRestUtils.STATUS_CODE_INVALID_CONTENT);
413 deleteUser(ecompUser.getLoginId());
419 private List<EcompRole> getUserRoles(EcompUser ecompUser) throws IOException {
420 RestResponse userRoles = EcompUserRestUtils.getUserRoles(ecompUser.getLoginId());
421 Type listType = new TypeToken<List<EcompRole>>() {}.getType();
422 List<EcompRole> roleList = new Gson().fromJson(userRoles.getResponse(), listType);
426 private void deleteUser(String userId) throws IOException {
427 User defaultUser = ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER);
428 defaultUser.setUserId(userId);
430 UserRestUtils.deleteUser(defaultUser, adminUser, true);
433 private List<EcompUser> getAllusersList() throws IOException {
434 RestResponse allUsers = EcompUserRestUtils.getAllUsers();
436 Type listType = new TypeToken<List<EcompUser>>() {}.getType();
437 List<EcompUser> usersList = new Gson().fromJson(allUsers.getResponse(), listType);
442 private List<EcompRole> getAllRoles() throws IOException {
443 RestResponse allRoles = EcompUserRestUtils.getAllAvailableRoles();
445 Type listType = new TypeToken<List<EcompRole>>() {}.getType();
446 List<EcompRole> availableRoles = new Gson().fromJson(allRoles.getResponse(), listType);
448 return availableRoles;
451 private String getUser() {
453 String returnMe = "ci"+ new BigInteger(getRandomNumber(4));
454 System.out.println(returnMe);
460 private static Random rnd = new Random();
462 public static String getRandomNumber(int digCount) {
463 StringBuilder sb = new StringBuilder(digCount);
464 for(int i=0; i < digCount; i++)
465 sb.append((char)('0' + rnd.nextInt(10)));
466 return sb.toString();