Fix for radio buttons
[sdc.git] / asdc-tests / src / main / java / org / openecomp / sdc / ci / tests / execute / externalapi / UserAPIs.java
1 /*-
2  * ============LICENSE_START=======================================================
3  * SDC
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
10  * 
11  *      http://www.apache.org/licenses/LICENSE-2.0
12  * 
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=========================================================
19  */
20
21 package org.openecomp.sdc.ci.tests.execute.externalapi;
22
23 import static org.testng.AssertJUnit.assertFalse;
24 import static org.testng.AssertJUnit.assertTrue;
25
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;
33 import java.util.Set;
34
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;
53
54 import com.google.gson.Gson;
55 import com.google.gson.reflect.TypeToken;
56
57 public class UserAPIs extends ComponentBaseTest {
58         
59         @Rule
60         public static TestName name = new TestName();
61
62         public UserAPIs() {
63                 super(name, UserAPIs.class.getName());
64         }
65
66         public User adminUser = ElementFactory.getDefaultUser(UserRoleEnum.ADMIN);
67
68         
69         @Test
70         public void createUserAllPosibleRoles() throws Exception {
71                 
72                 EcompUser ecompUser = new EcompUser();
73                 EcompRole ecompRole = new EcompRole();
74                 
75                 List<EcompRole> allRoles = getAllRoles();
76         
77                 for (EcompRole ecompRole2 : allRoles) {
78                         try {
79                                 
80                                 ///get list of users
81                                 List<EcompUser> allusersList = getAllusersList();
82                                 int sizeBeforeChange = allusersList.size();
83         
84                                 //create user
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);
94                                 
95                                 ///get list of users verify list size changed
96                                 allusersList = getAllusersList();
97                                 int sizeAfterChange = allusersList.size();
98                                                 
99                                 assertTrue("List is Equel" , sizeBeforeChange != sizeAfterChange );
100                                 pushUser = EcompUserRestUtils.pushUser(ecompUser);      
101                                 
102                         } finally {
103                                 deleteUser(ecompUser.getLoginId());
104                         }
105                                                         
106                         }
107                                         
108         }
109         
110         @Test
111         public void createSameUserTwiceTest() throws Exception {
112                 
113                 EcompUser ecompUser = new EcompUser();
114                 EcompRole ecompRole = new EcompRole();
115                 try {
116                         
117                         ///get list of users
118                         List<EcompUser> allusersList = getAllusersList();
119                         int sizeBeforeChange = allusersList.size();
120
121                         //create user
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);
130                         
131                         ///get list of users verify list size changed
132                         allusersList = getAllusersList();
133                         int sizeAfterChange = allusersList.size();
134                                         
135                         assertTrue("List is Equel" , sizeBeforeChange != sizeAfterChange );
136                         pushUser = EcompUserRestUtils.pushUser(ecompUser);      
137                         
138                 } finally {
139                         deleteUser(ecompUser.getLoginId());
140                 }
141                 
142         }
143         
144         @Test
145         public void createSameUserTwiceDiffrentDataTest() throws Exception {
146                 
147                 EcompUser ecompUser = new EcompUser();
148                 EcompRole ecompRole = new EcompRole();
149                 try {
150                         ///get list of users
151                         List<EcompUser> allusersList = getAllusersList();
152                         int sizeBeforeChange = allusersList.size();
153
154                         //create user
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);
163                         
164                         ///get list of users verify list size changed
165                         allusersList = getAllusersList();
166                         int sizeAfterChange = allusersList.size();
167                                         
168                         assertTrue("List is Equel" , sizeBeforeChange != sizeAfterChange );
169                         
170                         //update role
171                         ecompRole.setId((long) 2);
172                         ecompRole.setName("DESIGNER");
173                         setRoles = new HashSet<EcompRole>();
174                         setRoles.add(ecompRole);
175                         ecompUser.setRoles(setRoles);
176                         
177                         pushUser = EcompUserRestUtils.pushUser(ecompUser);      
178                         
179                 } finally {
180                         deleteUser(ecompUser.getLoginId());
181                 }
182                 
183         }
184         
185         @Test
186         public void updateUserRoleTest() throws Exception {
187                 
188                 EcompUser ecompUser = new EcompUser();
189                 EcompRole ecompRole = new EcompRole();
190                 try {
191                         //create user
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);
200                         
201                         List<EcompRole> userRolesBefore = getUserRoles(ecompUser);
202                         
203                         //update role
204                         ecompRole = new EcompRole();
205                         ecompRole.setId((long) 2);
206                         ecompRole.setName("DESIGNER");
207                         List<EcompRole> list= new ArrayList<EcompRole>();
208                         list.add(ecompRole);
209                         
210                         EcompUserRestUtils.pushUserRoles(ecompUser.getLoginId(), list);
211                         
212                         List<EcompRole> userRolesAfter = getUserRoles(ecompUser); 
213                         
214                         assertFalse("role wasn't changed", userRolesBefore.equals(userRolesAfter));
215                 } finally {
216                         deleteUser(ecompUser.getLoginId());
217                 }
218                 
219         }
220
221         @Test
222         public void addUserCreateResource() throws Exception {
223                 
224                 EcompUser ecompUser = new EcompUser();
225                 EcompRole ecompRole = new EcompRole();
226                 Resource resource = new Resource();
227                 
228                 try {
229                         //create user
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);
238                         
239                         UserRoleEnum.DESIGNER.setUserId(ecompUser.getLoginId());
240                         resource = AtomicOperationUtils.createResourceByType(ResourceTypeEnum.VF, UserRoleEnum.DESIGNER, true).left().value();
241                         
242                 } finally {
243                         ResourceRestUtils.deleteResource(resource.getUniqueId(), adminUser.getUserId());
244                         deleteUser(ecompUser.getLoginId());
245                 }
246                 
247         }
248         
249         @Test
250         public void changeUserRoleWithCheckOutResource() throws Exception {
251                 EcompUser ecompUser = new EcompUser();
252                 EcompRole ecompRole = new EcompRole();
253                 Resource resource = new Resource();             
254                 try {
255                         
256                         //create user
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);
265                         
266                         UserRoleEnum.DESIGNER.setUserId(ecompUser.getLoginId());
267                         resource = AtomicOperationUtils.createResourceByType(ResourceTypeEnum.VF, UserRoleEnum.DESIGNER, true).left().value();
268                         
269                         //update role
270                         ecompRole = new EcompRole();
271                         ecompRole.setId((long) 1);
272                         ecompRole.setName("TESTER");
273                         List<EcompRole> list= new ArrayList<EcompRole>();
274                         list.add(ecompRole);
275                         
276                         RestResponse pushUserRoles = EcompUserRestUtils.pushUserRoles(ecompUser.getLoginId(), list);
277 //                      assertTrue("wrong response code :" , pushUserRoles.getErrorCode() == BaseRestUtils.STATUS_CODE_ALREADY_EXISTS);
278                         
279                 } finally {
280                         ResourceRestUtils.deleteResource(resource.getUniqueId(), adminUser.getUserId());
281                         deleteUser(ecompUser.getLoginId());
282                 }
283         }
284         
285         @Test
286         public void changeUserRoleWithStartTestingResource() throws Exception {
287                 
288                 EcompUser ecompUser = new EcompUser();
289                 EcompRole ecompRole = new EcompRole();
290                 Resource resource= new Resource();
291
292                 try {
293                         //create user
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);
302                         
303                         UserRoleEnum.DESIGNER.setUserId(ecompUser.getLoginId());
304                         
305                         resource = AtomicOperationUtils.createResourceByType(ResourceTypeEnum.VF, UserRoleEnum.DESIGNER, true).left().value();
306                         AtomicOperationUtils.changeComponentState(resource, UserRoleEnum.DESIGNER, LifeCycleStatesEnum.STARTCERTIFICATION, true);
307                         
308                         
309                         //update role
310                         ecompRole = new EcompRole();
311                         ecompRole.setId((long) 1);
312                         ecompRole.setName("TESTER");
313                         List<EcompRole> list= new ArrayList<EcompRole>();
314                         list.add(ecompRole);
315                         
316                         RestResponse pushUserRoles = EcompUserRestUtils.pushUserRoles(ecompUser.getLoginId(), list);
317                         BaseRestUtils.checkSuccess(pushUserRoles);
318                         
319                 } finally {
320                         ResourceRestUtils.deleteResource(resource.getUniqueId(), adminUser.getUserId());
321                         deleteUser(ecompUser.getLoginId());
322                 }
323         }
324         
325         @Test
326         public void fillAllEcompFields() throws Exception {
327                 EcompUser ecompUser = new EcompUser();
328                 EcompRole ecompRole = new EcompRole();
329                 try {
330
331                         ///get list of users
332                         List<EcompUser> allusersList = getAllusersList();
333                         int sizeBeforeChange = allusersList.size();
334
335                         //create user
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);
357                         
358                         ///get list of users verify list size changed
359                         allusersList = getAllusersList();
360                         int sizeAfterChange = allusersList.size();
361                                         
362                         assertTrue("List is Equel" , sizeBeforeChange != sizeAfterChange );
363                         
364                 } finally {
365                         
366                         deleteUser(ecompUser.getLoginId());
367                 }
368         }
369         
370         @Test
371         public void missingMandatoryFieldRole() throws Exception {
372                 
373                 EcompUser ecompUser = new EcompUser();
374                 try {
375                         ///get list of users
376                         List<EcompUser> allusersList = getAllusersList();
377                         int sizeBeforeChange = allusersList.size();
378
379                         //create user
380                         ecompUser.setLoginId(getUser());
381                         RestResponse pushUser = EcompUserRestUtils.pushUser(ecompUser);
382                         BaseRestUtils.checkSuccess(pushUser);
383                         
384                         ///get list of users verify list size changed
385                         allusersList = getAllusersList();
386                         int sizeAfterChange = allusersList.size();
387                                         
388                         assertTrue("List is Equel" , sizeBeforeChange != sizeAfterChange );
389                         
390                 } finally {
391                         deleteUser(ecompUser.getLoginId());
392                 }
393         }
394         
395         @Test
396         public void missingMandatoryFieldATTid() throws Exception {
397                 
398                 EcompUser ecompUser = new EcompUser();
399                 EcompRole ecompRole = new EcompRole();
400                 try {
401                         
402                         //create user
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);
411                         
412                 } finally {
413                         deleteUser(ecompUser.getLoginId());
414                 }
415                 
416                 
417         }
418
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);
423                 return roleList;
424         }
425
426         private void deleteUser(String userId) throws IOException {
427                 User defaultUser = ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER);
428                 defaultUser.setUserId(userId);
429                 
430                 UserRestUtils.deleteUser(defaultUser, adminUser, true);
431         }
432         
433         private  List<EcompUser> getAllusersList() throws IOException {
434                 RestResponse allUsers = EcompUserRestUtils.getAllUsers();
435                 
436                 Type listType = new TypeToken<List<EcompUser>>() {}.getType();
437                 List<EcompUser> usersList = new Gson().fromJson(allUsers.getResponse(), listType);
438                 
439                 return usersList;
440         }
441         
442         private  List<EcompRole> getAllRoles() throws IOException {
443                 RestResponse allRoles = EcompUserRestUtils.getAllAvailableRoles();
444                 
445                 Type listType = new TypeToken<List<EcompRole>>() {}.getType();
446                 List<EcompRole> availableRoles = new Gson().fromJson(allRoles.getResponse(), listType);
447                 
448                 return availableRoles;
449         }
450         
451         private String getUser() {
452                 
453                 String returnMe = "ci"+ new BigInteger(getRandomNumber(4));
454                 System.out.println(returnMe);
455                 
456                 
457                 return returnMe;
458         }
459         
460         private static Random rnd = new Random();
461
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();
467         }
468 }