RANGER-2150: Unit test coverage for XUserMgr and UserMgr class
Project: http://git-wip-us.apache.org/repos/asf/ranger/repo Commit: http://git-wip-us.apache.org/repos/asf/ranger/commit/ea065288 Tree: http://git-wip-us.apache.org/repos/asf/ranger/tree/ea065288 Diff: http://git-wip-us.apache.org/repos/asf/ranger/diff/ea065288 Branch: refs/heads/ranger-1.1 Commit: ea065288a1b23e3bc972a9200c6add4389cc89c4 Parents: 1732536 Author: pradeep <prad...@apache.org> Authored: Fri Jul 6 01:28:54 2018 +0530 Committer: pradeep <prad...@apache.org> Committed: Wed Jul 25 09:41:52 2018 +0530 ---------------------------------------------------------------------- .../java/org/apache/ranger/biz/UserMgr.java | 4 +- .../java/org/apache/ranger/biz/XUserMgr.java | 33 +- .../java/org/apache/ranger/biz/TestUserMgr.java | 1036 ++++-- .../org/apache/ranger/biz/TestXUserMgr.java | 3284 +++++++++++++----- 4 files changed, 3166 insertions(+), 1191 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ranger/blob/ea065288/security-admin/src/main/java/org/apache/ranger/biz/UserMgr.java ---------------------------------------------------------------------- diff --git a/security-admin/src/main/java/org/apache/ranger/biz/UserMgr.java b/security-admin/src/main/java/org/apache/ranger/biz/UserMgr.java index 6d94e4f..2a638f8 100644 --- a/security-admin/src/main/java/org/apache/ranger/biz/UserMgr.java +++ b/security-admin/src/main/java/org/apache/ranger/biz/UserMgr.java @@ -618,7 +618,7 @@ public class UserMgr { return userProfile; } - private void gjUserToUserProfile(XXPortalUser user, VXPortalUser userProfile) { + protected void gjUserToUserProfile(XXPortalUser user, VXPortalUser userProfile) { UserSessionBase sess = ContextUtil.getCurrentUserSession(); if (sess == null) { return; @@ -810,7 +810,7 @@ public class UserMgr { * @param searchCriteria * @return */ - private Query createUserSearchQuery(String queryStr, String sortClause, + protected Query createUserSearchQuery(String queryStr, String sortClause, SearchCriteria searchCriteria) { HashMap<String, Object> paramList = searchCriteria.getParamList(); http://git-wip-us.apache.org/repos/asf/ranger/blob/ea065288/security-admin/src/main/java/org/apache/ranger/biz/XUserMgr.java ---------------------------------------------------------------------- diff --git a/security-admin/src/main/java/org/apache/ranger/biz/XUserMgr.java b/security-admin/src/main/java/org/apache/ranger/biz/XUserMgr.java index 7f5eab7..ea60e99 100644 --- a/security-admin/src/main/java/org/apache/ranger/biz/XUserMgr.java +++ b/security-admin/src/main/java/org/apache/ranger/biz/XUserMgr.java @@ -132,12 +132,12 @@ public class XUserMgr extends XUserMgrBase { @Autowired GUIDUtil guidUtil; - @Autowired - UserMgr userManager; - @Autowired XUgsyncAuditInfoService xUgsyncAuditInfoService; + @Autowired + XGroupUserService xGroupUserService; + static final Logger logger = Logger.getLogger(XUserMgr.class); @@ -173,7 +173,7 @@ public class XUserMgr extends XUserMgrBase { } if (vXUser.getDescription() == null) { - setUserDesc(vXUser); + vXUser.setDescription(vXUser.getName()); } String actualPassword = vXUser.getPassword(); @@ -325,7 +325,7 @@ public class XUserMgr extends XUserMgrBase { return null; } - private VXGroupUser createXGroupUser(Long userId, Long groupId) { + protected VXGroupUser createXGroupUser(Long userId, Long groupId) { VXGroupUser vXGroupUser = new VXGroupUser(); vXGroupUser.setParentGroupId(groupId); vXGroupUser.setUserId(userId); @@ -538,8 +538,7 @@ public class XUserMgr extends XUserMgrBase { List<String> existingRole = daoManager.getXXPortalUserRole() .findXPortalUserRolebyXPortalUserId(xxPortalUser.getId()); if (xxPortalUser.getUserSource() == RangerCommonEnums.USER_EXTERNAL) { - vXPortalUser = userManager.updateRoleForExternalUsers(reqRoleList, - existingRole, vXPortalUser); + vXPortalUser = userMgr.updateRoleForExternalUsers(reqRoleList, existingRole, vXPortalUser); } vXUser = xUserService.createXUserWithOutLogin(vXUser); vxUGInfo.setXuserInfo(vXUser); @@ -603,10 +602,10 @@ public class XUserMgr extends XUserMgrBase { List<String> existingRole = daoManager.getXXPortalUserRole() .findXPortalUserRolebyXPortalUserId( xxPortalUser.getId()); - VXPortalUser vxPortalUser = userManager + VXPortalUser vxPortalUser = userMgr .mapXXPortalUserToVXPortalUserForDefaultAccount(xxPortalUser); if (xxPortalUser.getUserSource() == RangerCommonEnums.USER_EXTERNAL) { - vxPortalUser = userManager.updateRoleForExternalUsers( + vxPortalUser = userMgr.updateRoleForExternalUsers( reqRoleList, existingRole, vxPortalUser); assignPermissionToUser(vxPortalUser, true); } @@ -851,11 +850,6 @@ public class XUserMgr extends XUserMgrBase { return vXUserList; } - // FIXME Hack : Unnecessary, to be removed after discussion. - private void setUserDesc(VXUser vXUser) { - vXUser.setDescription(vXUser.getName()); - } - @Override public VXGroup updateXGroup(VXGroup vXGroup) { checkAdminAccess(); @@ -872,7 +866,7 @@ public class XUserMgr extends XUserMgrBase { return vXGroup; } - private void updateXgroupUserForGroupUpdate(VXGroup vXGroup) { + protected void updateXgroupUserForGroupUpdate(VXGroup vXGroup) { List<XXGroupUser> grpUsers = daoManager.getXXGroupUser().findByGroupId(vXGroup.getId()); if(CollectionUtils.isNotEmpty(grpUsers)){ for (XXGroupUser grpUser : grpUsers) { @@ -1264,10 +1258,8 @@ public class XUserMgr extends XUserMgrBase { } public VXPermMapList searchXPermMaps(SearchCriteria searchCriteria) { - - VXPermMapList returnList; + VXPermMapList returnList = null; UserSessionBase currentUserSession = ContextUtil.getCurrentUserSession(); - // If user is system admin if (currentUserSession != null && currentUserSession.isUserAdmin()) { returnList = super.searchXPermMaps(searchCriteria); } else { @@ -1310,13 +1302,12 @@ public class XUserMgr extends XUserMgrBase { public VXAuditMapList searchXAuditMaps(SearchCriteria searchCriteria) { - VXAuditMapList returnList; + VXAuditMapList returnList=new VXAuditMapList(); UserSessionBase currentUserSession = ContextUtil.getCurrentUserSession(); // If user is system admin if (currentUserSession != null && currentUserSession.isUserAdmin()) { returnList = super.searchXAuditMaps(searchCriteria); } else { - returnList = new VXAuditMapList(); int startIndex = searchCriteria.getStartIndex(); int pageSize = searchCriteria.getMaxRows(); searchCriteria.setStartIndex(0); @@ -2255,7 +2246,7 @@ public class XUserMgr extends XUserMgrBase { } return createdXUser; } - private void validatePassword(VXUser vXUser) { + protected void validatePassword(VXUser vXUser) { if (vXUser.getPassword() != null && !vXUser.getPassword().isEmpty()) { boolean checkPassword = false; String pattern = "(?=.*[0-9])(?=.*[a-zA-Z]).{8,}"; http://git-wip-us.apache.org/repos/asf/ranger/blob/ea065288/security-admin/src/test/java/org/apache/ranger/biz/TestUserMgr.java ---------------------------------------------------------------------- diff --git a/security-admin/src/test/java/org/apache/ranger/biz/TestUserMgr.java b/security-admin/src/test/java/org/apache/ranger/biz/TestUserMgr.java index 10453a5..202a113 100644 --- a/security-admin/src/test/java/org/apache/ranger/biz/TestUserMgr.java +++ b/security-admin/src/test/java/org/apache/ranger/biz/TestUserMgr.java @@ -23,11 +23,11 @@ import java.util.List; import javax.persistence.EntityManager; import javax.persistence.Query; -import javax.ws.rs.WebApplicationException; - +import org.apache.ranger.common.AppConstants; import org.apache.ranger.common.ContextUtil; -import org.apache.ranger.common.MessageEnums; import org.apache.ranger.common.RESTErrorUtil; +import org.apache.ranger.common.RangerCommonEnums; +import org.apache.ranger.common.RangerConstants; import org.apache.ranger.common.SearchCriteria; import org.apache.ranger.common.SearchUtil; import org.apache.ranger.common.StringUtil; @@ -37,15 +37,19 @@ import org.apache.ranger.db.XXGroupPermissionDao; import org.apache.ranger.db.XXModuleDefDao; import org.apache.ranger.db.XXPortalUserDao; import org.apache.ranger.db.XXPortalUserRoleDao; +import org.apache.ranger.db.XXUserDao; import org.apache.ranger.db.XXUserPermissionDao; import org.apache.ranger.entity.XXGroupPermission; import org.apache.ranger.entity.XXModuleDef; import org.apache.ranger.entity.XXPortalUser; import org.apache.ranger.entity.XXPortalUserRole; +import org.apache.ranger.entity.XXTrxLog; +import org.apache.ranger.entity.XXUser; import org.apache.ranger.entity.XXUserPermission; import org.apache.ranger.security.context.RangerContextHolder; import org.apache.ranger.security.context.RangerSecurityContext; import org.apache.ranger.service.XGroupPermissionService; +import org.apache.ranger.service.XPortalUserService; import org.apache.ranger.service.XUserPermissionService; import org.apache.ranger.view.VXGroupPermission; import org.apache.ranger.view.VXPasswordChange; @@ -54,6 +58,7 @@ import org.apache.ranger.view.VXPortalUserList; import org.apache.ranger.view.VXResponse; import org.apache.ranger.view.VXString; import org.apache.ranger.view.VXUserPermission; +import org.junit.After; import org.junit.Assert; import org.junit.FixMethodOrder; import org.junit.Rule; @@ -71,6 +76,7 @@ import org.mockito.junit.MockitoJUnitRunner; public class TestUserMgr { private static Long userId = 1L; + private static String userLoginID = "testuser"; @InjectMocks UserMgr userMgr = new UserMgr(); @@ -94,7 +100,7 @@ public class TestUserMgr { SearchUtil searchUtil; @Mock - RangerBizUtil rangerBizUtil; + RangerBizUtil rangerBizUtil; @Mock XUserPermissionService xUserPermissionService; @@ -108,6 +114,9 @@ public class TestUserMgr { @Mock XUserMgr xUserMgr; + @Mock + XPortalUserService xPortalUserService; + @Rule public ExpectedException thrown = ExpectedException.none(); @@ -115,8 +124,7 @@ public class TestUserMgr { RangerSecurityContext context = new RangerSecurityContext(); context.setUserSession(new UserSessionBase()); RangerContextHolder.setSecurityContext(context); - UserSessionBase currentUserSession = ContextUtil - .getCurrentUserSession(); + UserSessionBase currentUserSession = ContextUtil.getCurrentUserSession(); currentUserSession.setUserAdmin(true); } @@ -148,16 +156,48 @@ public class TestUserMgr { userProfile.setEmailAddress("t...@test.com"); userProfile.setFirstName("user12"); userProfile.setLastName("test12"); - userProfile.setLoginId("134"); + userProfile.setLoginId(userLoginID); userProfile.setPassword("usertest12323"); - userProfile.setUserSource(123); - userProfile.setPublicScreenName("user"); + userProfile.setUserSource(1); + userProfile.setPublicScreenName("testuser"); userProfile.setId(userId); return userProfile; } + private XXPortalUser xxPortalUser(VXPortalUser userProfile) { + XXPortalUser xxPortalUser = new XXPortalUser(); + xxPortalUser.setEmailAddress(userProfile.getEmailAddress()); + xxPortalUser.setFirstName(userProfile.getFirstName()); + xxPortalUser.setLastName(userProfile.getLastName()); + xxPortalUser.setLoginId(userProfile.getLoginId()); + xxPortalUser.setPassword(userProfile.getPassword()); + xxPortalUser.setUserSource(userProfile.getUserSource()); + xxPortalUser.setPublicScreenName(userProfile.getPublicScreenName()); + return xxPortalUser; + } + + public void setupRangerUserSyncUser() { + RangerSecurityContext context = new RangerSecurityContext(); + context.setUserSession(new UserSessionBase()); + RangerContextHolder.setSecurityContext(context); + UserSessionBase currentUserSession = ContextUtil.getCurrentUserSession(); + XXPortalUser user = new XXPortalUser(); + user.setId(1L); + user.setLoginId("rangerusersync"); + user.setEmailAddress("t...@test.com"); + currentUserSession.setXXPortalUser(user); + currentUserSession.setUserAdmin(true); + } + + @After + public void destroySession() { + RangerSecurityContext context = new RangerSecurityContext(); + context.setUserSession(null); + RangerContextHolder.setSecurityContext(context); + } + @Test - public void test11CreateUser() { + public void test01CreateUser() { setup(); XXPortalUserDao userDao = Mockito.mock(XXPortalUserDao.class); XXPortalUserRoleDao roleDao = Mockito.mock(XXPortalUserRoleDao.class); @@ -184,41 +224,36 @@ public class TestUserMgr { list.add(XXPortalUserRole); Mockito.when(daoManager.getXXPortalUser()).thenReturn(userDao); - Mockito.when(userDao.create((XXPortalUser) Mockito.any())) - .thenReturn(user); + Mockito.when(userDao.create((XXPortalUser) Mockito.any())).thenReturn(user); Mockito.when(daoManager.getXXPortalUserRole()).thenReturn(roleDao); Mockito.when(roleDao.findByUserId(userId)).thenReturn(list); - Mockito.doNothing().when(rangerBizUtil).blockAuditorRoleUser(); - XXPortalUser dbxxPortalUser = userMgr.createUser(userProfile, 1, - userRoleList); + Mockito.doNothing().when(rangerBizUtil).blockAuditorRoleUser(); + XXPortalUser dbxxPortalUser = userMgr.createUser(userProfile, 1,userRoleList); Assert.assertNotNull(dbxxPortalUser); userId = dbxxPortalUser.getId(); Assert.assertEquals(userId, dbxxPortalUser.getId()); - Assert.assertEquals(userProfile.getFirstName(), - dbxxPortalUser.getFirstName()); - Assert.assertEquals(userProfile.getFirstName(), - dbxxPortalUser.getFirstName()); - Assert.assertEquals(userProfile.getLastName(), - dbxxPortalUser.getLastName()); - Assert.assertEquals(userProfile.getLoginId(), - dbxxPortalUser.getLoginId()); - Assert.assertEquals(userProfile.getEmailAddress(), - dbxxPortalUser.getEmailAddress()); - Assert.assertEquals(userProfile.getPassword(), - dbxxPortalUser.getPassword()); + Assert.assertEquals(userProfile.getFirstName(),dbxxPortalUser.getFirstName()); + Assert.assertEquals(userProfile.getFirstName(),dbxxPortalUser.getFirstName()); + Assert.assertEquals(userProfile.getLastName(),dbxxPortalUser.getLastName()); + Assert.assertEquals(userProfile.getLoginId(),dbxxPortalUser.getLoginId()); + Assert.assertEquals(userProfile.getEmailAddress(),dbxxPortalUser.getEmailAddress()); + Assert.assertEquals(userProfile.getPassword(),dbxxPortalUser.getPassword()); Mockito.verify(daoManager).getXXPortalUser(); Mockito.verify(daoManager).getXXPortalUserRole(); } @Test - public void test12CreateUser() { + public void test02CreateUser() { setup(); XXPortalUserDao userDao = Mockito.mock(XXPortalUserDao.class); XXPortalUserRoleDao roleDao = Mockito.mock(XXPortalUserRoleDao.class); VXPortalUser userProfile = userProfile(); + Collection<String> userRoleList = new ArrayList<String>(); + userRoleList.add("ROLE_USER"); + userProfile.setUserRoleList(userRoleList); XXPortalUser user = new XXPortalUser(); user.setEmailAddress(userProfile.getEmailAddress()); @@ -237,35 +272,28 @@ public class TestUserMgr { list.add(XXPortalUserRole); Mockito.when(daoManager.getXXPortalUser()).thenReturn(userDao); - Mockito.when(userDao.create((XXPortalUser) Mockito.any())) - .thenReturn(user); + Mockito.when(userDao.create((XXPortalUser) Mockito.any())).thenReturn(user); Mockito.when(daoManager.getXXPortalUserRole()).thenReturn(roleDao); Mockito.when(roleDao.findByUserId(userId)).thenReturn(list); - Mockito.doNothing().when(rangerBizUtil).blockAuditorRoleUser(); + Mockito.doNothing().when(rangerBizUtil).blockAuditorRoleUser(); XXPortalUser dbxxPortalUser = userMgr.createUser(userProfile, 1); userId = dbxxPortalUser.getId(); Assert.assertNotNull(dbxxPortalUser); Assert.assertEquals(userId, dbxxPortalUser.getId()); - Assert.assertEquals(userProfile.getFirstName(), - dbxxPortalUser.getFirstName()); - Assert.assertEquals(userProfile.getFirstName(), - dbxxPortalUser.getFirstName()); - Assert.assertEquals(userProfile.getLastName(), - dbxxPortalUser.getLastName()); - Assert.assertEquals(userProfile.getLoginId(), - dbxxPortalUser.getLoginId()); - Assert.assertEquals(userProfile.getEmailAddress(), - dbxxPortalUser.getEmailAddress()); - Assert.assertEquals(userProfile.getPassword(), - dbxxPortalUser.getPassword()); + Assert.assertEquals(userProfile.getFirstName(),dbxxPortalUser.getFirstName()); + Assert.assertEquals(userProfile.getFirstName(),dbxxPortalUser.getFirstName()); + Assert.assertEquals(userProfile.getLastName(),dbxxPortalUser.getLastName()); + Assert.assertEquals(userProfile.getLoginId(),dbxxPortalUser.getLoginId()); + Assert.assertEquals(userProfile.getEmailAddress(),dbxxPortalUser.getEmailAddress()); + Assert.assertEquals(userProfile.getPassword(),dbxxPortalUser.getPassword()); Mockito.verify(daoManager).getXXPortalUser(); Mockito.verify(daoManager).getXXPortalUserRole(); } @Test - public void test13ChangePasswordAsAdmin() { + public void test03ChangePasswordAsAdmin() { setup(); XXPortalUserDao userDao = Mockito.mock(XXPortalUserDao.class); VXPortalUser userProfile = userProfile(); @@ -281,26 +309,20 @@ public class TestUserMgr { Mockito.when(daoManager.getXXPortalUser()).thenReturn(userDao); Mockito.when(userDao.findByLoginId(Mockito.nullable(String.class))).thenReturn(user); - Mockito.when( - stringUtil.equals(Mockito.anyString(), Mockito.nullable(String.class))) - .thenReturn(true); + Mockito.when(stringUtil.equals(Mockito.anyString(), Mockito.nullable(String.class))).thenReturn(true); Mockito.when(daoManager.getXXPortalUser()).thenReturn(userDao); - Mockito.when( - stringUtil.validatePassword(Mockito.anyString(), Mockito.any(String[].class))).thenReturn(true); + Mockito.when(stringUtil.validatePassword(Mockito.anyString(), Mockito.any(String[].class))).thenReturn(true); VXResponse dbVXResponse = userMgr.changePassword(pwdChange); Assert.assertNotNull(dbVXResponse); - Assert.assertEquals(userProfile.getStatus(), - dbVXResponse.getStatusCode()); + Assert.assertEquals(userProfile.getStatus(),dbVXResponse.getStatusCode()); - Mockito.verify(stringUtil).equals(Mockito.anyString(), - Mockito.nullable(String.class)); - Mockito.verify(stringUtil).validatePassword(Mockito.anyString(), - Mockito.any(String[].class)); + Mockito.verify(stringUtil).equals(Mockito.anyString(),Mockito.nullable(String.class)); + Mockito.verify(stringUtil).validatePassword(Mockito.anyString(),Mockito.any(String[].class)); } @Test - public void test14ChangePasswordAsKeyAdmin() { + public void test04ChangePasswordAsKeyAdmin() { setupKeyAdmin(); XXPortalUserDao userDao = Mockito.mock(XXPortalUserDao.class); VXPortalUser userProfile = userProfile(); @@ -330,7 +352,7 @@ public class TestUserMgr { } @Test - public void test15ChangePasswordAsUser() { + public void test05ChangePasswordAsUser() { setupUser(); XXPortalUserDao userDao = Mockito.mock(XXPortalUserDao.class); VXPortalUser userProfile = userProfile(); @@ -360,7 +382,7 @@ public class TestUserMgr { } @Test - public void test16ChangeEmailAddressAsAdmin() { + public void test06ChangeEmailAddressAsAdmin() { setup(); XXPortalUserDao userDao = Mockito.mock(XXPortalUserDao.class); XXPortalUserRoleDao roleDao = Mockito.mock(XXPortalUserRoleDao.class); @@ -448,21 +470,22 @@ public class TestUserMgr { Mockito.when(xUserPermissionService.populateViewBean(xUserPermissionObj)).thenReturn(userPermission); Mockito.when(daoManager.getXXModuleDef()).thenReturn(xModuleDefDao); Mockito.when(xModuleDefDao.findByModuleId(Mockito.anyLong())).thenReturn(xModuleDef); - Mockito.doNothing().when(rangerBizUtil).blockAuditorRoleUser(); - VXPortalUser dbVXPortalUser = userMgr.changeEmailAddress(user, - changeEmail); + Mockito.doNothing().when(rangerBizUtil).blockAuditorRoleUser(); + VXPortalUser dbVXPortalUser = userMgr.changeEmailAddress(user,changeEmail); Assert.assertNotNull(dbVXPortalUser); Assert.assertEquals(userId, dbVXPortalUser.getId()); - Assert.assertEquals(userProfile.getLastName(), - dbVXPortalUser.getLastName()); - Assert.assertEquals(changeEmail.getLoginId(), - dbVXPortalUser.getLoginId()); - Assert.assertEquals(changeEmail.getEmailAddress(), - dbVXPortalUser.getEmailAddress()); + Assert.assertEquals(userProfile.getLastName(),dbVXPortalUser.getLastName()); + Assert.assertEquals(changeEmail.getLoginId(),dbVXPortalUser.getLoginId()); + Assert.assertEquals(changeEmail.getEmailAddress(),dbVXPortalUser.getEmailAddress()); + user.setUserSource(RangerCommonEnums.USER_APP); + dbVXPortalUser = userMgr.changeEmailAddress(user,changeEmail); + user.setUserSource(RangerCommonEnums.USER_EXTERNAL); + changeEmail.setEmailAddress(""); + dbVXPortalUser = userMgr.changeEmailAddress(user,changeEmail); } @Test - public void test17ChangeEmailAddressAsKeyAdmin() { + public void test07ChangeEmailAddressAsKeyAdmin() { setupKeyAdmin(); XXPortalUserDao userDao = Mockito.mock(XXPortalUserDao.class); XXPortalUserRoleDao roleDao = Mockito.mock(XXPortalUserRoleDao.class); @@ -549,7 +572,7 @@ public class TestUserMgr { Mockito.when(xUserPermissionService.populateViewBean(xUserPermissionObj)).thenReturn(userPermission); Mockito.when(daoManager.getXXModuleDef()).thenReturn(xModuleDefDao); Mockito.when(xModuleDefDao.findByModuleId(Mockito.anyLong())).thenReturn(xModuleDef); - Mockito.doNothing().when(rangerBizUtil).blockAuditorRoleUser(); + Mockito.doNothing().when(rangerBizUtil).blockAuditorRoleUser(); VXPortalUser dbVXPortalUser = userMgr.changeEmailAddress(userKeyAdmin,changeEmail); Assert.assertNotNull(dbVXPortalUser); Assert.assertEquals(userId, dbVXPortalUser.getId()); @@ -560,7 +583,7 @@ public class TestUserMgr { @Test - public void test18ChangeEmailAddressAsUser() { + public void test08ChangeEmailAddressAsUser() { setupUser(); XXPortalUserDao userDao = Mockito.mock(XXPortalUserDao.class); XXPortalUserRoleDao roleDao = Mockito.mock(XXPortalUserRoleDao.class); @@ -647,7 +670,7 @@ public class TestUserMgr { Mockito.when(xUserPermissionService.populateViewBean(xUserPermissionObj)).thenReturn(userPermission); Mockito.when(daoManager.getXXModuleDef()).thenReturn(xModuleDefDao); Mockito.when(xModuleDefDao.findByModuleId(Mockito.anyLong())).thenReturn(xModuleDef); - Mockito.doNothing().when(rangerBizUtil).blockAuditorRoleUser(); + Mockito.doNothing().when(rangerBizUtil).blockAuditorRoleUser(); VXPortalUser dbVXPortalUser = userMgr.changeEmailAddress(user,changeEmail); Assert.assertNotNull(dbVXPortalUser); Assert.assertEquals(userId, dbVXPortalUser.getId()); @@ -657,14 +680,12 @@ public class TestUserMgr { } @Test - public void test21CreateUser() { + public void test09CreateUser() { setup(); XXPortalUserDao userDao = Mockito.mock(XXPortalUserDao.class); XXPortalUserRoleDao roleDao = Mockito.mock(XXPortalUserRoleDao.class); - XXUserPermissionDao xUserPermissionDao = Mockito - .mock(XXUserPermissionDao.class); - XXGroupPermissionDao xGroupPermissionDao = Mockito - .mock(XXGroupPermissionDao.class); + XXUserPermissionDao xUserPermissionDao = Mockito.mock(XXUserPermissionDao.class); + XXGroupPermissionDao xGroupPermissionDao = Mockito.mock(XXGroupPermissionDao.class); XXPortalUser user = new XXPortalUser(); VXPortalUser userProfile = userProfile(); @@ -700,25 +721,20 @@ public class TestUserMgr { xGroupPermissionList.add(xGroupPermissionObj); Mockito.when(daoManager.getXXPortalUser()).thenReturn(userDao); - Mockito.when(userDao.create((XXPortalUser) Mockito.any())) - .thenReturn(user); + Mockito.when(userDao.create((XXPortalUser) Mockito.any())).thenReturn(user); Mockito.when(daoManager.getXXPortalUserRole()).thenReturn(roleDao); - Mockito.when(daoManager.getXXUserPermission()).thenReturn( - xUserPermissionDao); + Mockito.when(daoManager.getXXUserPermission()).thenReturn(xUserPermissionDao); - Mockito.when(daoManager.getXXGroupPermission()).thenReturn( - xGroupPermissionDao); - Mockito.doNothing().when(rangerBizUtil).blockAuditorRoleUser(); + Mockito.when(daoManager.getXXGroupPermission()).thenReturn(xGroupPermissionDao); + Mockito.doNothing().when(rangerBizUtil).blockAuditorRoleUser(); VXPortalUser dbVXPortalUser = userMgr.createUser(userProfile); Assert.assertNotNull(dbVXPortalUser); Assert.assertEquals(user.getId(), dbVXPortalUser.getId()); Assert.assertEquals(user.getFirstName(), dbVXPortalUser.getFirstName()); - Assert.assertEquals(user.getFirstName(), dbVXPortalUser.getFirstName()); Assert.assertEquals(user.getLastName(), dbVXPortalUser.getLastName()); Assert.assertEquals(user.getLoginId(), dbVXPortalUser.getLoginId()); - Assert.assertEquals(user.getEmailAddress(), - dbVXPortalUser.getEmailAddress()); + Assert.assertEquals(user.getEmailAddress(),dbVXPortalUser.getEmailAddress()); Assert.assertEquals(user.getPassword(), dbVXPortalUser.getPassword()); Mockito.verify(daoManager).getXXPortalUser(); @@ -727,13 +743,16 @@ public class TestUserMgr { } @Test - public void test22CreateDefaultAccountUser() { + public void test10CreateDefaultAccountUser() { setup(); XXPortalUserDao userDao = Mockito.mock(XXPortalUserDao.class); XXPortalUserRoleDao roleDao = Mockito.mock(XXPortalUserRoleDao.class); VXPortalUser userProfile = userProfile(); + Collection<String> userRoleList = new ArrayList<String>(); + userRoleList.add("ROLE_USER"); + userProfile.setUserRoleList(userRoleList); XXPortalUser user = new XXPortalUser(); - + user.setEmailAddress(userProfile.getEmailAddress()); XXPortalUserRole XXPortalUserRole = new XXPortalUserRole(); XXPortalUserRole.setId(userId); XXPortalUserRole.setUserRole("ROLE_USER"); @@ -742,30 +761,72 @@ public class TestUserMgr { list.add(XXPortalUserRole); Mockito.when(daoManager.getXXPortalUser()).thenReturn(userDao); - Mockito.when(userDao.findByLoginId(Mockito.anyString())).thenReturn( - user); + Mockito.when(userDao.findByLoginId(Mockito.anyString())).thenReturn(user); Mockito.when(daoManager.getXXPortalUserRole()).thenReturn(roleDao); - Mockito.doNothing().when(rangerBizUtil).blockAuditorRoleUser(); - VXPortalUser dbVXPortalUser = userMgr - .createDefaultAccountUser(userProfile); + Mockito.doNothing().when(rangerBizUtil).blockAuditorRoleUser(); + VXPortalUser dbVXPortalUser = userMgr.createDefaultAccountUser(userProfile); Assert.assertNotNull(dbVXPortalUser); Assert.assertEquals(user.getId(), dbVXPortalUser.getId()); Assert.assertEquals(user.getFirstName(), dbVXPortalUser.getFirstName()); - Assert.assertEquals(user.getFirstName(), dbVXPortalUser.getFirstName()); Assert.assertEquals(user.getLastName(), dbVXPortalUser.getLastName()); Assert.assertEquals(user.getLoginId(), dbVXPortalUser.getLoginId()); - Assert.assertEquals(user.getEmailAddress(), - dbVXPortalUser.getEmailAddress()); + Assert.assertEquals(user.getEmailAddress(),dbVXPortalUser.getEmailAddress()); Assert.assertEquals(user.getPassword(), dbVXPortalUser.getPassword()); - - Mockito.verify(daoManager, Mockito.atLeast(1)).getXXPortalUser(); - Mockito.verify(daoManager, Mockito.atLeast(1)).getXXPortalUserRole(); + Mockito.verify(daoManager, Mockito.atLeast(1)).getXXPortalUser(); + Mockito.verify(daoManager, Mockito.atLeast(1)).getXXPortalUserRole(); } @Test - public void test23IsUserInRole() { + public void test11CreateDefaultAccountUser() { + setup(); + XXPortalUserDao userDao = Mockito.mock(XXPortalUserDao.class); XXPortalUserRoleDao roleDao = Mockito.mock(XXPortalUserRoleDao.class); + VXPortalUser userProfile = userProfile(); + userProfile.setStatus(RangerCommonEnums.USER_EXTERNAL); + Collection<String> userRoleList = new ArrayList<String>(); + userRoleList.add("ROLE_USER"); + userProfile.setUserRoleList(userRoleList); + XXPortalUser user = new XXPortalUser(); + user.setEmailAddress(userProfile.getEmailAddress()); + user.setUserSource(RangerCommonEnums.USER_EXTERNAL); + XXPortalUserRole XXPortalUserRole = new XXPortalUserRole(); + XXPortalUserRole.setId(userId); + XXPortalUserRole.setUserRole("ROLE_USER"); + + List<XXPortalUserRole> list = new ArrayList<XXPortalUserRole>(); + list.add(XXPortalUserRole); + Mockito.when(daoManager.getXXPortalUser()).thenReturn(userDao); + Mockito.when(userDao.findByLoginId(Mockito.anyString())).thenReturn(null); + Mockito.when(userDao.findByEmailAddress(Mockito.anyString())).thenReturn(null); + Mockito.when(daoManager.getXXPortalUserRole()).thenReturn(roleDao); + Mockito.when(userDao.create((XXPortalUser) Mockito.any())).thenReturn(user); + Mockito.doNothing().when(rangerBizUtil).blockAuditorRoleUser(); + VXPortalUser dbVXPortalUser = userMgr.createDefaultAccountUser(userProfile); + Assert.assertNotNull(dbVXPortalUser); + Assert.assertEquals(user.getId(), dbVXPortalUser.getId()); + Assert.assertEquals(user.getFirstName(), dbVXPortalUser.getFirstName()); + Assert.assertEquals(user.getLastName(), dbVXPortalUser.getLastName()); + Assert.assertEquals(user.getLoginId(), dbVXPortalUser.getLoginId()); + Assert.assertEquals(user.getEmailAddress(),dbVXPortalUser.getEmailAddress()); + Assert.assertEquals(user.getPassword(), dbVXPortalUser.getPassword()); + Mockito.verify(daoManager, Mockito.atLeast(1)).getXXPortalUser(); + Mockito.verify(daoManager, Mockito.atLeast(1)).getXXPortalUserRole(); + } + + @Test + public void test12CreateDefaultAccountUser() { + setup(); + XXPortalUserDao userDao = Mockito.mock(XXPortalUserDao.class); + XXPortalUserRoleDao roleDao = Mockito.mock(XXPortalUserRoleDao.class); + VXPortalUser userProfile = userProfile(); + userProfile.setStatus(RangerCommonEnums.USER_EXTERNAL); + Collection<String> userRoleList = new ArrayList<String>(); + userRoleList.add("ROLE_USER"); + userProfile.setUserRoleList(userRoleList); + XXPortalUser xxPortalUser = new XXPortalUser(); + xxPortalUser.setEmailAddress(userProfile.getEmailAddress()); + xxPortalUser.setUserSource(RangerCommonEnums.USER_EXTERNAL); XXPortalUserRole XXPortalUserRole = new XXPortalUserRole(); XXPortalUserRole.setId(userId); XXPortalUserRole.setUserRole("ROLE_USER"); @@ -773,57 +834,76 @@ public class TestUserMgr { List<XXPortalUserRole> list = new ArrayList<XXPortalUserRole>(); list.add(XXPortalUserRole); + Mockito.when(daoManager.getXXPortalUser()).thenReturn(userDao); + Mockito.when(userDao.findByLoginId(Mockito.anyString())).thenReturn(xxPortalUser); Mockito.when(daoManager.getXXPortalUserRole()).thenReturn(roleDao); - Mockito.when(roleDao.findByRoleUserId(userId, "ROLE_USER")).thenReturn( - XXPortalUserRole); + Mockito.doNothing().when(rangerBizUtil).blockAuditorRoleUser(); + userProfile.setPassword(""); + userProfile.setEmailAddress(null); + VXPortalUser dbVXPortalUser = userMgr.createDefaultAccountUser(userProfile); + Assert.assertNotNull(dbVXPortalUser); + Assert.assertEquals(xxPortalUser.getId(), dbVXPortalUser.getId()); + Assert.assertEquals(xxPortalUser.getFirstName(), dbVXPortalUser.getFirstName()); + Assert.assertEquals(xxPortalUser.getLastName(), dbVXPortalUser.getLastName()); + Assert.assertEquals(xxPortalUser.getLoginId(), dbVXPortalUser.getLoginId()); + Assert.assertEquals(xxPortalUser.getEmailAddress(),dbVXPortalUser.getEmailAddress()); + Assert.assertEquals(xxPortalUser.getPassword(), dbVXPortalUser.getPassword()); + Mockito.verify(daoManager, Mockito.atLeast(1)).getXXPortalUser(); + Mockito.verify(daoManager, Mockito.atLeast(1)).getXXPortalUserRole(); + } + @Test + public void test13IsUserInRole() { + XXPortalUserRoleDao roleDao = Mockito.mock(XXPortalUserRoleDao.class); + XXPortalUserRole XXPortalUserRole = new XXPortalUserRole(); + XXPortalUserRole.setId(userId); + XXPortalUserRole.setUserRole("ROLE_USER"); + List<XXPortalUserRole> list = new ArrayList<XXPortalUserRole>(); + list.add(XXPortalUserRole); + Mockito.when(daoManager.getXXPortalUserRole()).thenReturn(roleDao); + Mockito.when(roleDao.findByRoleUserId(userId, "ROLE_USER")).thenReturn(XXPortalUserRole); boolean isValue = userMgr.isUserInRole(userId, "ROLE_USER"); Assert.assertTrue(isValue); - - Mockito.verify(daoManager).getXXPortalUserRole(); + Mockito.when(roleDao.findByRoleUserId(userId, "ROLE_USER")).thenReturn(null); + isValue = userMgr.isUserInRole(userId, "ROLE_USER"); + Assert.assertFalse(isValue); } @Test - public void test24UpdateUserWithPass() { + public void test14UpdateUserWithPass() { setup(); XXPortalUserDao userDao = Mockito.mock(XXPortalUserDao.class); - VXPortalUser userProfile = userProfile(); + userProfile.setPassword("password1234"); XXPortalUser user = new XXPortalUser(); - + user.setId(userProfile.getId()); + user.setLoginId(userProfile.getLoginId()); + user.setEmailAddress(userProfile.getEmailAddress()); + user.setLoginId(userProfile.getLoginId()); + String encryptedPwd = userMgr.encrypt(userProfile.getLoginId(),userProfile.getPassword()); + user.setPassword(encryptedPwd); Mockito.when(daoManager.getXXPortalUser()).thenReturn(userDao); Mockito.when(userDao.getById(userProfile.getId())).thenReturn(user); - - Mockito.when( - restErrorUtil.createRESTException( - "Please provide valid email address.", - MessageEnums.INVALID_INPUT_DATA)).thenThrow( - new WebApplicationException()); - thrown.expect(WebApplicationException.class); - Mockito.doNothing().when(rangerBizUtil).blockAuditorRoleUser(); + Mockito.when(stringUtil.validateEmail(Mockito.anyString())).thenReturn(true); + Mockito.doNothing().when(rangerBizUtil).blockAuditorRoleUser(); + Mockito.when(stringUtil.validatePassword(Mockito.anyString(), Mockito.any(String[].class))).thenReturn(true); + Mockito.when(userDao.update(user)).thenReturn(user); XXPortalUser dbXXPortalUser = userMgr.updateUserWithPass(userProfile); Assert.assertNotNull(dbXXPortalUser); Assert.assertEquals(userId, dbXXPortalUser.getId()); - Assert.assertEquals(userProfile.getFirstName(), - dbXXPortalUser.getFirstName()); - Assert.assertEquals(userProfile.getFirstName(), - dbXXPortalUser.getFirstName()); - Assert.assertEquals(userProfile.getLastName(), - dbXXPortalUser.getLastName()); - Assert.assertEquals(userProfile.getLoginId(), - dbXXPortalUser.getLoginId()); - Assert.assertEquals(userProfile.getEmailAddress(), - dbXXPortalUser.getEmailAddress()); - Assert.assertEquals(userProfile.getPassword(), - dbXXPortalUser.getPassword()); - - Mockito.verify(restErrorUtil).createRESTException( - "Please provide valid email address.", - MessageEnums.INVALID_INPUT_DATA); + Assert.assertEquals(userProfile.getFirstName(),dbXXPortalUser.getFirstName()); + Assert.assertEquals(userProfile.getFirstName(),dbXXPortalUser.getFirstName()); + Assert.assertEquals(userProfile.getLastName(),dbXXPortalUser.getLastName()); + Assert.assertEquals(userProfile.getLoginId(),dbXXPortalUser.getLoginId()); + Assert.assertEquals(userProfile.getEmailAddress(),dbXXPortalUser.getEmailAddress()); + Assert.assertEquals(encryptedPwd, dbXXPortalUser.getPassword()); + Mockito.when(userDao.getById(userProfile.getId())).thenReturn(null); + dbXXPortalUser = userMgr.updateUserWithPass(userProfile); + Assert.assertNull(dbXXPortalUser); } @Test - public void test25searchUsers() { + public void test15searchUsers() { Query query = Mockito.mock(Query.class); EntityManager entityManager = Mockito.mock(EntityManager.class); SearchCriteria searchCriteria = new SearchCriteria(); @@ -833,27 +913,44 @@ public class TestUserMgr { searchCriteria.setMaxRows(12); searchCriteria.setOwnerId(userId); searchCriteria.setStartIndex(1); - searchCriteria.setSortBy("asc"); + searchCriteria.setSortBy("userId"); + searchCriteria.setSortType("asc"); Long count = 1l; Mockito.when(daoManager.getEntityManager()).thenReturn(entityManager); - Mockito.when(entityManager.createQuery(Mockito.anyString())) - .thenReturn(query); + Mockito.when(entityManager.createQuery(Mockito.anyString())).thenReturn(query); Mockito.when(query.getSingleResult()).thenReturn(count); - VXPortalUserList dbVXPortalUserList = userMgr - .searchUsers(searchCriteria); - + VXPortalUserList dbVXPortalUserList = userMgr.searchUsers(searchCriteria); + Assert.assertNotNull(dbVXPortalUserList); + searchCriteria.setSortBy("loginId"); + dbVXPortalUserList = userMgr.searchUsers(searchCriteria); + Assert.assertNotNull(dbVXPortalUserList); + searchCriteria.setSortBy("emailAddress"); + dbVXPortalUserList = userMgr.searchUsers(searchCriteria); + Assert.assertNotNull(dbVXPortalUserList); + searchCriteria.setSortBy("firstName"); + dbVXPortalUserList = userMgr.searchUsers(searchCriteria); + Assert.assertNotNull(dbVXPortalUserList); + searchCriteria.setSortBy("lastName"); + dbVXPortalUserList = userMgr.searchUsers(searchCriteria); + Assert.assertNotNull(dbVXPortalUserList); + searchCriteria.setSortBy("source"); + searchCriteria.setSortType(""); + dbVXPortalUserList = userMgr.searchUsers(searchCriteria); + Assert.assertNotNull(dbVXPortalUserList); + searchCriteria.setSortBy(""); + searchCriteria.setSortType("desc"); + dbVXPortalUserList = userMgr.searchUsers(searchCriteria); Assert.assertNotNull(dbVXPortalUserList); - Mockito.verify(query).getSingleResult(); } @Test - public void test26FindByEmailAddress() { + public void test16FindByEmailAddress() { XXPortalUserDao userDao = Mockito.mock(XXPortalUserDao.class); XXPortalUser user = new XXPortalUser(); - String emailId = "jeet786son...@gmail.com"; + String emailId = "test001u...@apache.org"; Mockito.when(daoManager.getXXPortalUser()).thenReturn(userDao); Mockito.when(userDao.findByEmailAddress(emailId)).thenReturn(user); @@ -865,7 +962,7 @@ public class TestUserMgr { } @Test - public void test27GetRolesForUser() { + public void test17GetRolesForUser() { XXPortalUserRoleDao roleDao = Mockito.mock(XXPortalUserRoleDao.class); VXPortalUser userProfile = userProfile(); @@ -895,7 +992,7 @@ public class TestUserMgr { } @Test - public void test28DeleteUserRole() { + public void test18DeleteUserRole() { setup(); XXPortalUserRoleDao roleDao = Mockito.mock(XXPortalUserRoleDao.class); @@ -909,26 +1006,22 @@ public class TestUserMgr { Mockito.when(daoManager.getXXPortalUserRole()).thenReturn(roleDao); Mockito.when(roleDao.findByUserId(userId)).thenReturn(list); - + boolean deleteValue = userMgr.deleteUserRole(userId, userRole); Assert.assertTrue(deleteValue); } @Test - public void test29DeactivateUser() { + public void test19DeactivateUser() { setup(); XXPortalUserDao userDao = Mockito.mock(XXPortalUserDao.class); XXPortalUserRoleDao roleDao = Mockito.mock(XXPortalUserRoleDao.class); - XXUserPermissionDao xUserPermissionDao = Mockito - .mock(XXUserPermissionDao.class); - XXGroupPermissionDao xGroupPermissionDao = Mockito - .mock(XXGroupPermissionDao.class); - VXGroupPermission vXGroupPermission = Mockito - .mock(VXGroupPermission.class); + XXUserPermissionDao xUserPermissionDao = Mockito.mock(XXUserPermissionDao.class); + XXGroupPermissionDao xGroupPermissionDao = Mockito.mock(XXGroupPermissionDao.class); + VXGroupPermission vXGroupPermission = Mockito.mock(VXGroupPermission.class); XXModuleDefDao xModuleDefDao = Mockito.mock(XXModuleDefDao.class); XXModuleDef xModuleDef = Mockito.mock(XXModuleDef.class); - VXUserPermission vXUserPermission = Mockito - .mock(VXUserPermission.class); + VXUserPermission vXUserPermission = Mockito.mock(VXUserPermission.class); VXPortalUser userProfile = userProfile(); @@ -976,75 +1069,56 @@ public class TestUserMgr { Mockito.when(userDao.update(user)).thenReturn(user); Mockito.when(daoManager.getXXPortalUserRole()).thenReturn(roleDao); - Mockito.when(roleDao.findByParentId(Mockito.anyLong())) - .thenReturn(list); - - Mockito.when(daoManager.getXXUserPermission()).thenReturn( - xUserPermissionDao); - Mockito.when( - xUserPermissionDao - .findByUserPermissionIdAndIsAllowed(userProfile.getId())) - .thenReturn(xUserPermissionsList); - - Mockito.when(daoManager.getXXGroupPermission()).thenReturn( - xGroupPermissionDao); - Mockito.when( - xGroupPermissionDao.findbyVXPortalUserId(userProfile.getId())) - .thenReturn(xGroupPermissionList); - - Mockito.when( - xGroupPermissionService.populateViewBean(xGroupPermissionObj)) - .thenReturn(vXGroupPermission); + Mockito.when(roleDao.findByParentId(Mockito.anyLong())).thenReturn(list); + + Mockito.when(daoManager.getXXUserPermission()).thenReturn(xUserPermissionDao); + Mockito.when(xUserPermissionDao.findByUserPermissionIdAndIsAllowed(userProfile.getId())).thenReturn(xUserPermissionsList); + + Mockito.when(daoManager.getXXGroupPermission()).thenReturn(xGroupPermissionDao); + Mockito.when(xGroupPermissionDao.findbyVXPortalUserId(userProfile.getId())).thenReturn(xGroupPermissionList); + + Mockito.when(xGroupPermissionService.populateViewBean(xGroupPermissionObj)).thenReturn(vXGroupPermission); Mockito.when(daoManager.getXXModuleDef()).thenReturn(xModuleDefDao); - Mockito.when(xModuleDefDao.findByModuleId(Mockito.anyLong())) - .thenReturn(xModuleDef); - - Mockito.when( - xUserPermissionService.populateViewBean(xUserPermissionObj)) - .thenReturn(vXUserPermission); - Mockito.doNothing().when(rangerBizUtil).blockAuditorRoleUser(); - VXPortalUser dbVXPortalUser = userMgr.deactivateUser(user); + Mockito.when(xModuleDefDao.findByModuleId(Mockito.anyLong())).thenReturn(xModuleDef); + + Mockito.when(xUserPermissionService.populateViewBean(xUserPermissionObj)).thenReturn(vXUserPermission); + Mockito.doNothing().when(rangerBizUtil).blockAuditorRoleUser(); + VXPortalUser dbVXPortalUser = userMgr.deactivateUser(null); + Assert.assertNull(dbVXPortalUser); + dbVXPortalUser = userMgr.deactivateUser(user); Assert.assertNotNull(dbVXPortalUser); Assert.assertEquals(user.getId(), dbVXPortalUser.getId()); Assert.assertEquals(user.getFirstName(), dbVXPortalUser.getFirstName()); - Assert.assertEquals(user.getFirstName(), dbVXPortalUser.getFirstName()); Assert.assertEquals(user.getLastName(), dbVXPortalUser.getLastName()); Assert.assertEquals(user.getLoginId(), dbVXPortalUser.getLoginId()); Mockito.verify(daoManager).getXXPortalUser(); Mockito.verify(daoManager).getXXUserPermission(); Mockito.verify(daoManager).getXXGroupPermission(); - Mockito.verify(xUserPermissionService).populateViewBean( - xUserPermissionObj); - Mockito.verify(xGroupPermissionService).populateViewBean( - xGroupPermissionObj); + Mockito.verify(xUserPermissionService).populateViewBean(xUserPermissionObj); + Mockito.verify(xGroupPermissionService).populateViewBean(xGroupPermissionObj); } @Test - public void test30checkAccess() { + public void test20checkAccess() { setup(); XXPortalUserDao xPortalUserDao = Mockito.mock(XXPortalUserDao.class); XXPortalUser xPortalUser = Mockito.mock(XXPortalUser.class); Mockito.when(daoManager.getXXPortalUser()).thenReturn(xPortalUserDao); Mockito.when(xPortalUserDao.getById(userId)).thenReturn(xPortalUser); - userMgr.checkAccess(userId); - Mockito.verify(daoManager).getXXPortalUser(); } @Test - public void test31getUserProfile() { + public void test21getUserProfile() { setup(); XXPortalUserDao xPortalUserDao = Mockito.mock(XXPortalUserDao.class); XXPortalUser xPortalUser = Mockito.mock(XXPortalUser.class); - XXUserPermissionDao xUserPermissionDao = Mockito - .mock(XXUserPermissionDao.class); - XXGroupPermissionDao xGroupPermissionDao = Mockito - .mock(XXGroupPermissionDao.class); + XXUserPermissionDao xUserPermissionDao = Mockito.mock(XXUserPermissionDao.class); + XXGroupPermissionDao xGroupPermissionDao = Mockito.mock(XXGroupPermissionDao.class); - XXPortalUserRoleDao xPortalUserRoleDao = Mockito - .mock(XXPortalUserRoleDao.class); + XXPortalUserRoleDao xPortalUserRoleDao = Mockito.mock(XXPortalUserRoleDao.class); List<XXPortalUserRole> xPortalUserRoleList = new ArrayList<XXPortalUserRole>(); XXPortalUserRole XXPortalUserRole = new XXPortalUserRole(); @@ -1077,45 +1151,62 @@ public class TestUserMgr { xGroupPermissionList.add(xGroupPermissionObj); Mockito.when(daoManager.getXXPortalUser()).thenReturn(xPortalUserDao); - Mockito.when(xPortalUserDao.getById(userId)).thenReturn(xPortalUser); - Mockito.when(daoManager.getXXPortalUserRole()).thenReturn( - xPortalUserRoleDao); - Mockito.when(daoManager.getXXUserPermission()).thenReturn( - xUserPermissionDao); + Mockito.when(xPortalUserDao.getById(userId)).thenReturn(null); + Mockito.when(daoManager.getXXPortalUserRole()).thenReturn(xPortalUserRoleDao); + Mockito.when(daoManager.getXXUserPermission()).thenReturn(xUserPermissionDao); - Mockito.when(daoManager.getXXGroupPermission()).thenReturn( - xGroupPermissionDao); + Mockito.when(daoManager.getXXGroupPermission()).thenReturn(xGroupPermissionDao); VXPortalUser dbVXPortalUser = userMgr.getUserProfile(userId); + Mockito.when(xPortalUserDao.getById(userId)).thenReturn(xPortalUser); + dbVXPortalUser = userMgr.getUserProfile(userId); Assert.assertNotNull(dbVXPortalUser); - - Mockito.verify(daoManager).getXXPortalUser(); - Mockito.verify(daoManager).getXXUserPermission(); - Mockito.verify(daoManager).getXXUserPermission(); - Mockito.verify(daoManager).getXXGroupPermission(); } @Test - public void test32getUserProfileByLoginId() { + public void test22getUserProfileByLoginId() { setup(); XXPortalUserDao xPortalUserDao = Mockito.mock(XXPortalUserDao.class); Mockito.when(daoManager.getXXPortalUser()).thenReturn(xPortalUserDao); - + VXPortalUser userProfile = userProfile(); + XXPortalUser user = new XXPortalUser(); + user.setEmailAddress(userProfile.getEmailAddress()); + user.setFirstName(userProfile.getFirstName()); + user.setLastName(userProfile.getLastName()); + user.setLoginId(userProfile.getLoginId()); + user.setPassword(userProfile.getPassword()); + user.setUserSource(userProfile.getUserSource()); + user.setPublicScreenName(userProfile.getPublicScreenName()); + user.setId(userProfile.getId()); VXPortalUser dbVXPortalUser = userMgr.getUserProfileByLoginId(); - Assert.assertNull(dbVXPortalUser); - - Mockito.verify(daoManager).getXXPortalUser(); + Mockito.when(xPortalUserDao.findByLoginId(Mockito.anyString())).thenReturn(user); + XXPortalUserRoleDao xPortalUserRoleDao = Mockito.mock(XXPortalUserRoleDao.class); + Mockito.when(daoManager.getXXPortalUserRole()).thenReturn(xPortalUserRoleDao); + List<XXPortalUserRole> xPortalUserRoleList = new ArrayList<XXPortalUserRole>(); + XXPortalUserRole XXPortalUserRole = new XXPortalUserRole(); + XXPortalUserRole.setId(userId); + XXPortalUserRole.setUserId(userId); + XXPortalUserRole.setUserRole("ROLE_USER"); + xPortalUserRoleList.add(XXPortalUserRole); + Mockito.when(xPortalUserRoleDao.findByParentId(Mockito.anyLong())).thenReturn(xPortalUserRoleList); + XXUserPermissionDao xUserPermissionDao = Mockito.mock(XXUserPermissionDao.class); + XXGroupPermissionDao xGroupPermissionDao = Mockito.mock(XXGroupPermissionDao.class); + Mockito.when(daoManager.getXXUserPermission()).thenReturn(xUserPermissionDao); + List<XXUserPermission> xUserPermissionsList = new ArrayList<XXUserPermission>(); + List<XXGroupPermission> xGroupPermissionList = new ArrayList<XXGroupPermission>(); + Mockito.when(xUserPermissionDao.findByUserPermissionIdAndIsAllowed(userProfile.getId())).thenReturn(xUserPermissionsList); + Mockito.when(daoManager.getXXGroupPermission()).thenReturn(xGroupPermissionDao); + Mockito.when(xGroupPermissionDao.findbyVXPortalUserId(userProfile.getId())).thenReturn(xGroupPermissionList); + dbVXPortalUser = userMgr.getUserProfileByLoginId(user.getLoginId()); + Assert.assertNotNull(dbVXPortalUser); } @Test - public void test33setUserRoles() { + public void test23setUserRoles() { setup(); - XXPortalUserRoleDao xPortalUserRoleDao = Mockito - .mock(XXPortalUserRoleDao.class); + XXPortalUserRoleDao xPortalUserRoleDao = Mockito.mock(XXPortalUserRoleDao.class); XXPortalUserDao userDao = Mockito.mock(XXPortalUserDao.class); - XXUserPermissionDao xUserPermissionDao = Mockito - .mock(XXUserPermissionDao.class); - XXGroupPermissionDao xGroupPermissionDao = Mockito - .mock(XXGroupPermissionDao.class); + XXUserPermissionDao xUserPermissionDao = Mockito.mock(XXUserPermissionDao.class); + XXGroupPermissionDao xGroupPermissionDao = Mockito.mock(XXGroupPermissionDao.class); XXModuleDefDao xModuleDefDao = Mockito.mock(XXModuleDefDao.class); VXPortalUser userProfile = userProfile(); @@ -1192,47 +1283,31 @@ public class TestUserMgr { userPermission.setUserName("xyz"); userPermission.setOwner("admin"); - Mockito.when(daoManager.getXXPortalUserRole()).thenReturn( - xPortalUserRoleDao); + Mockito.when(daoManager.getXXPortalUserRole()).thenReturn(xPortalUserRoleDao); Mockito.when(daoManager.getXXPortalUser()).thenReturn(userDao); Mockito.when(userDao.getById(userId)).thenReturn(user); - Mockito.when(daoManager.getXXUserPermission()).thenReturn( - xUserPermissionDao); - Mockito.when( - xUserPermissionDao - .findByUserPermissionIdAndIsAllowed(userProfile.getId())) - .thenReturn(xUserPermissionsList); - Mockito.when(daoManager.getXXGroupPermission()).thenReturn( - xGroupPermissionDao); - Mockito.when( - xGroupPermissionDao.findbyVXPortalUserId(userProfile.getId())) - .thenReturn(xGroupPermissionList); - Mockito.when( - xGroupPermissionService.populateViewBean(xGroupPermissionObj)) - .thenReturn(groupPermission); + Mockito.when(daoManager.getXXUserPermission()).thenReturn(xUserPermissionDao); + Mockito.when(xUserPermissionDao.findByUserPermissionIdAndIsAllowed(userProfile.getId())).thenReturn(xUserPermissionsList); + Mockito.when(daoManager.getXXGroupPermission()).thenReturn(xGroupPermissionDao); + Mockito.when(xGroupPermissionDao.findbyVXPortalUserId(userProfile.getId())).thenReturn(xGroupPermissionList); + Mockito.when(xGroupPermissionService.populateViewBean(xGroupPermissionObj)).thenReturn(groupPermission); Mockito.when(daoManager.getXXModuleDef()).thenReturn(xModuleDefDao); - Mockito.when(xModuleDefDao.findByModuleId(Mockito.anyLong())) - .thenReturn(xModuleDef); - Mockito.when( - xUserPermissionService.populateViewBean(xUserPermissionObj)) - .thenReturn(userPermission); + Mockito.when(xModuleDefDao.findByModuleId(Mockito.anyLong())).thenReturn(xModuleDef); + Mockito.when(xUserPermissionService.populateViewBean(xUserPermissionObj)).thenReturn(userPermission); Mockito.when(daoManager.getXXModuleDef()).thenReturn(xModuleDefDao); - Mockito.when(xModuleDefDao.findByModuleId(Mockito.anyLong())) - .thenReturn(xModuleDef); - Mockito.doNothing().when(rangerBizUtil).blockAuditorRoleUser(); + Mockito.when(xModuleDefDao.findByModuleId(Mockito.anyLong())).thenReturn(xModuleDef); + Mockito.doNothing().when(rangerBizUtil).blockAuditorRoleUser(); userMgr.checkAccess(userId); userMgr.setUserRoles(userId, vStringRolesList); Mockito.verify(daoManager).getXXUserPermission(); Mockito.verify(daoManager).getXXGroupPermission(); - Mockito.verify(xGroupPermissionService).populateViewBean( - xGroupPermissionObj); - Mockito.verify(xUserPermissionService).populateViewBean( - xUserPermissionObj); + Mockito.verify(xGroupPermissionService).populateViewBean(xGroupPermissionObj); + Mockito.verify(xUserPermissionService).populateViewBean(xUserPermissionObj); } @Test - public void test19updateRoles() { + public void test24updateRoles() { setup(); Collection<String> rolesList = new ArrayList<String>(); rolesList.add("ROLE_USER"); @@ -1250,7 +1325,7 @@ public class TestUserMgr { } @Test - public void test20UpdateUserWithPass() { + public void test25updatePasswordInSHA256() { XXPortalUserDao userDao = Mockito.mock(XXPortalUserDao.class); VXPortalUser userProfile = userProfile(); String userName = userProfile.getFirstName(); @@ -1261,17 +1336,470 @@ public class TestUserMgr { user.setLastName(userProfile.getLastName()); user.setLoginId(userProfile.getLoginId()); user.setPassword(userProfile.getPassword()); - user.setUserSource(userProfile.getUserSource()); + user.setUserSource(RangerCommonEnums.USER_APP); user.setPublicScreenName(userProfile.getPublicScreenName()); user.setId(userProfile.getId()); Mockito.when(daoManager.getXXPortalUser()).thenReturn(userDao); - Mockito.when(userDao.findByLoginId(Mockito.anyString())).thenReturn( - user); Mockito.when(daoManager.getXXPortalUser()).thenReturn(userDao); Mockito.when(userDao.update(user)).thenReturn(user); - XXPortalUser dbXXPortalUser = userMgr.updatePasswordInSHA256(userName, - userPassword,false); + XXPortalUser dbXXPortalUser = userMgr.updatePasswordInSHA256(null,userPassword,false); + Assert.assertNull(dbXXPortalUser); + Mockito.when(userDao.findByLoginId(Mockito.anyString())).thenReturn(null); + dbXXPortalUser = userMgr.updatePasswordInSHA256(userName,userPassword,false); + Assert.assertNull(dbXXPortalUser); + Mockito.when(userDao.findByLoginId(Mockito.anyString())).thenReturn(user); + dbXXPortalUser = userMgr.updatePasswordInSHA256(userName,userPassword,true); + Assert.assertNotNull(dbXXPortalUser); + dbXXPortalUser = userMgr.updatePasswordInSHA256(userName,"Secret",true); Assert.assertNotNull(dbXXPortalUser); + } + @Test + public void test26CreateUser() { + setup(); + XXPortalUserDao userDao = Mockito.mock(XXPortalUserDao.class); + XXPortalUserRoleDao roleDao = Mockito.mock(XXPortalUserRoleDao.class); + + VXPortalUser userProfile = userProfile(); + + Collection<String> userRoleList = new ArrayList<String>(); + userRoleList.add("ROLE_USER"); + + XXPortalUser user = new XXPortalUser(); + user.setEmailAddress(userProfile.getEmailAddress()); + user.setFirstName(userProfile.getFirstName()); + user.setLastName(userProfile.getLastName()); + user.setLoginId(userProfile.getLoginId()); + String encryptedPwd = userMgr.encrypt(userProfile.getLoginId(),userProfile.getPassword()); + user.setPassword(encryptedPwd); + user.setUserSource(userProfile.getUserSource()); + user.setPublicScreenName(userProfile.getPublicScreenName()); + user.setId(userProfile.getId()); + + XXPortalUserRole XXPortalUserRole = new XXPortalUserRole(); + XXPortalUserRole.setId(user.getId()); + XXPortalUserRole.setUserRole("ROLE_USER"); + List<XXPortalUserRole> list = new ArrayList<XXPortalUserRole>(); + list.add(XXPortalUserRole); + + Mockito.when(daoManager.getXXPortalUser()).thenReturn(userDao); + Mockito.when(userDao.create((XXPortalUser) Mockito.any())).thenReturn(user); + Mockito.when(daoManager.getXXPortalUserRole()).thenReturn(roleDao); + Mockito.when(roleDao.findByUserId(userId)).thenReturn(list); + XXPortalUser dbxxPortalUser = userMgr.createUser(userProfile, 1,userRoleList); + Assert.assertNotNull(dbxxPortalUser); + userId = dbxxPortalUser.getId(); + Assert.assertEquals(userId, dbxxPortalUser.getId()); + Assert.assertEquals(userProfile.getFirstName(),dbxxPortalUser.getFirstName()); + Assert.assertEquals(userProfile.getFirstName(),dbxxPortalUser.getFirstName()); + Assert.assertEquals(userProfile.getLastName(),dbxxPortalUser.getLastName()); + Assert.assertEquals(userProfile.getLoginId(),dbxxPortalUser.getLoginId()); + Assert.assertEquals(userProfile.getEmailAddress(),dbxxPortalUser.getEmailAddress()); + Assert.assertEquals(encryptedPwd,dbxxPortalUser.getPassword()); + + Mockito.verify(daoManager).getXXPortalUser(); + Mockito.verify(daoManager).getXXPortalUserRole(); + } + + @Test + public void test27UpdateUser() { + setup(); + XXPortalUserDao userDao = Mockito.mock(XXPortalUserDao.class); + + VXPortalUser userProfile = userProfile(); + XXPortalUser user = new XXPortalUser(); + user.setId(userProfile.getId()); + user.setLoginId(userProfile.getLoginId()); + user.setEmailAddress(userProfile.getEmailAddress()); + user.setLoginId(userProfile.getLoginId()); + String encryptedPwd = userMgr.encrypt(userProfile.getLoginId(),userProfile.getPassword()); + user.setPassword(encryptedPwd); + Mockito.when(daoManager.getXXPortalUser()).thenReturn(userDao); + Mockito.when(userDao.getById(userProfile.getId())).thenReturn(user); + Mockito.when(stringUtil.validateEmail(Mockito.anyString())).thenReturn(true); + + Mockito.doNothing().when(rangerBizUtil).blockAuditorRoleUser(); + XXPortalUser dbXXPortalUser = userMgr.updateUser(userProfile); + Assert.assertNotNull(dbXXPortalUser); + Assert.assertEquals(userId, dbXXPortalUser.getId()); + Assert.assertEquals(userProfile.getFirstName(),dbXXPortalUser.getFirstName()); + Assert.assertEquals(userProfile.getFirstName(),dbXXPortalUser.getFirstName()); + Assert.assertEquals(userProfile.getLastName(),dbXXPortalUser.getLastName()); + Assert.assertEquals(userProfile.getLoginId(),dbXXPortalUser.getLoginId()); + Assert.assertEquals(userProfile.getEmailAddress(),dbXXPortalUser.getEmailAddress()); + Assert.assertEquals(encryptedPwd,dbXXPortalUser.getPassword()); + } + + @Test + public void test28UpdateUser() { + setup(); + XXPortalUserDao userDao = Mockito.mock(XXPortalUserDao.class); + + VXPortalUser userProfile = userProfile(); + XXPortalUser user = new XXPortalUser(); + user.setId(userProfile.getId()); + user.setLoginId(userProfile.getLoginId()); + user.setEmailAddress(userProfile.getEmailAddress()); + user.setLoginId(userProfile.getLoginId()); + String encryptedPwd = userMgr.encrypt(userProfile.getLoginId(),userProfile.getPassword()); + user.setPassword(encryptedPwd); + Mockito.when(daoManager.getXXPortalUser()).thenReturn(userDao); + Mockito.when(userDao.getById(userProfile.getId())).thenReturn(null); + XXPortalUser dbXXPortalUser = userMgr.updateUser(userProfile); + Assert.assertNull(dbXXPortalUser); + user.setStatus(RangerCommonEnums.USER_EXTERNAL); + user.setFirstName("null"); + user.setLastName("null"); + Mockito.when(userDao.getById(userProfile.getId())).thenReturn(user); + Mockito.when(stringUtil.validateEmail(Mockito.anyString())).thenReturn(true); + Mockito.doNothing().when(rangerBizUtil).blockAuditorRoleUser(); + Mockito.when(userDao.findByEmailAddress(Mockito.anyString())).thenReturn(user); + dbXXPortalUser = userMgr.updateUser(userProfile); + Assert.assertNotNull(dbXXPortalUser); + Assert.assertEquals(userId, dbXXPortalUser.getId()); + Assert.assertEquals(userProfile.getLoginId(),dbXXPortalUser.getLoginId()); + Assert.assertEquals(userProfile.getEmailAddress(),dbXXPortalUser.getEmailAddress()); + Assert.assertEquals(encryptedPwd,dbXXPortalUser.getPassword()); + } + + @Test + public void test29UpdateOldUserName() { + setup(); + XXPortalUserDao userDao = Mockito.mock(XXPortalUserDao.class); + XXUserDao xXUserDao = Mockito.mock(XXUserDao.class); + VXPortalUser userProfile = userProfile(); + String userLoginId = userProfile.getLoginId(); + String newUserName= "newUserName"; + String currentPassword = userProfile.getPassword(); + + XXPortalUser xXPortalUser = new XXPortalUser(); + xXPortalUser.setEmailAddress(userProfile.getEmailAddress()); + xXPortalUser.setFirstName(userProfile.getFirstName()); + xXPortalUser.setLastName(userProfile.getLastName()); + xXPortalUser.setLoginId(userProfile.getLoginId()); + String encryptedPwd = userMgr.encrypt(userProfile.getLoginId(),userProfile.getPassword()); + xXPortalUser.setPassword(encryptedPwd); + xXPortalUser.setUserSource(userProfile.getUserSource()); + xXPortalUser.setPublicScreenName(userProfile.getPublicScreenName()); + xXPortalUser.setId(userProfile.getId()); + xXPortalUser.setUserSource(RangerCommonEnums.USER_APP); + + XXUser xXUser = new XXUser(); + Collection<String> userRoleList = new ArrayList<String>(); + userRoleList.add("ROLE_USER"); + Collection<String> groupNameList = new ArrayList<String>(); + groupNameList.add("Grp2"); + xXUser.setId(userId); + xXUser.setDescription(userProfile.getPublicScreenName()); + xXUser.setName(userProfile.getLoginId()); + + List<XXTrxLog> trxLogList = new ArrayList<XXTrxLog>(); + XXTrxLog xTrxLogObj = new XXTrxLog(); + xTrxLogObj.setAction("update"); + xTrxLogObj.setAddedByUserId(userId); + xTrxLogObj.setAttributeName("User Name"); + xTrxLogObj.setCreateTime(new Date()); + xTrxLogObj.setId(userId); + xTrxLogObj.setPreviousValue(userLoginId); + xTrxLogObj.setNewValue(newUserName); + xTrxLogObj.setObjectClassType(AppConstants.CLASS_TYPE_USER_PROFILE); + xTrxLogObj.setObjectName(xXPortalUser.getLoginId()); + xTrxLogObj.setObjectId(userId); + xTrxLogObj.setParentObjectClassType(AppConstants.CLASS_TYPE_USER_PROFILE); + xTrxLogObj.setParentObjectId(userId); + xTrxLogObj.setUpdatedByUserId(xXPortalUser.getId()); + trxLogList.add(xTrxLogObj); + Mockito.when(daoManager.getXXPortalUser()).thenReturn(userDao); + Mockito.when(userDao.findByLoginId(userProfile.getLoginId())).thenReturn(xXPortalUser); + Mockito.when(daoManager.getXXUser()).thenReturn(xXUserDao); + Mockito.when(xXUserDao.findByUserName(xXUser.getName())).thenReturn(xXUser); + + xXUser.setName(newUserName); + Mockito.when(xXUserDao.update(xXUser)).thenReturn(xXUser); + + xXPortalUser.setLoginId(newUserName); + Mockito.when(userDao.update(xXPortalUser)).thenReturn(xXPortalUser); + + xXPortalUser=userMgr.updateOldUserName(userLoginId, newUserName, currentPassword); + + Assert.assertNotNull(xXPortalUser); + Assert.assertEquals(newUserName,xXPortalUser.getLoginId()); + xXPortalUser.setUserSource(RangerCommonEnums.USER_EXTERNAL); + Mockito.when(userDao.findByLoginId(userProfile.getLoginId())).thenReturn(xXPortalUser); + xXPortalUser=userMgr.updateOldUserName(userLoginId, newUserName, currentPassword); + xXPortalUser=userMgr.updateOldUserName(null, newUserName, currentPassword); + Mockito.when(userDao.findByLoginId(userProfile.getLoginId())).thenReturn(null); + xXPortalUser=userMgr.updateOldUserName(userLoginId, newUserName, currentPassword); + } + + @Test + public void test30getRolesByLoginId() { + setup(); + XXPortalUserDao userDao = Mockito.mock(XXPortalUserDao.class); + XXPortalUserRoleDao roleDao = Mockito.mock(XXPortalUserRoleDao.class); + + VXPortalUser userProfile = userProfile(); + String userLoginId = userProfile.getLoginId(); + + Collection<String> userRoleList = new ArrayList<String>(); + userRoleList.add("ROLE_USER"); + + XXPortalUser user = new XXPortalUser(); + user.setEmailAddress(userProfile.getEmailAddress()); + user.setFirstName(userProfile.getFirstName()); + user.setLastName(userProfile.getLastName()); + user.setLoginId(userProfile.getLoginId()); + String encryptedPwd = userMgr.encrypt(userProfile.getLoginId(),userProfile.getPassword()); + user.setPassword(encryptedPwd); + user.setUserSource(userProfile.getUserSource()); + user.setPublicScreenName(userProfile.getPublicScreenName()); + user.setId(userProfile.getId()); + + XXPortalUserRole XXPortalUserRole = new XXPortalUserRole(); + XXPortalUserRole.setId(user.getId()); + XXPortalUserRole.setUserRole("ROLE_USER"); + List<XXPortalUserRole> list = new ArrayList<XXPortalUserRole>(); + list.add(XXPortalUserRole); + + Mockito.when(daoManager.getXXPortalUser()).thenReturn(userDao); + Mockito.when(userDao.findByLoginId(userProfile.getLoginId())).thenReturn(user); + Mockito.when(daoManager.getXXPortalUserRole()).thenReturn(roleDao); + Mockito.when(roleDao.findByUserId(userId)).thenReturn(list); + Collection<String> roleList = userMgr.getRolesByLoginId(userLoginId); + Assert.assertNotNull(roleList); + Assert.assertEquals(userLoginId, user.getLoginId()); + Assert.assertEquals(userRoleList, roleList); + roleList = userMgr.getRolesByLoginId(null); + Mockito.when(roleDao.findByUserId(userId)).thenReturn(null); + roleList = userMgr.getRolesByLoginId(userLoginId); + } + + @Test + public void test31checkAccess() { + setup(); + XXPortalUser xPortalUser = Mockito.mock(XXPortalUser.class); + userMgr.checkAccess(xPortalUser); + destroySession(); + VXPortalUser userProfile = userProfile(); + xPortalUser = xxPortalUser(userProfile); + xPortalUser.setId(userProfile.getId()); + setupUser(); + userMgr.checkAccess(xPortalUser); + } + + @Test + public void test32checkAdminAccess() { + setup(); + userMgr.checkAdminAccess(); + } + + @Test + public void test33checkAccessForUpdate() { + setup(); + XXPortalUser xPortalUser = Mockito.mock(XXPortalUser.class); + userMgr.checkAccessForUpdate(xPortalUser); + } + + @Test + public void test34updateRoleForExternalUsers() { + setupRangerUserSyncUser(); + XXPortalUserDao userDao = Mockito.mock(XXPortalUserDao.class); + XXPortalUserRoleDao roleDao = Mockito.mock(XXPortalUserRoleDao.class); + XXUserPermissionDao xUserPermissionDao = Mockito.mock(XXUserPermissionDao.class); + Collection<String> existingRoleList = new ArrayList<String>(); + existingRoleList.add(RangerConstants.ROLE_USER); + Collection<String> reqRoleList = new ArrayList<String>(); + reqRoleList.add(RangerConstants.ROLE_SYS_ADMIN); + + VXPortalUser userProfile = userProfile(); + XXPortalUser user = new XXPortalUser(); + user.setId(userProfile.getId()); + user.setLoginId(userProfile.getLoginId()); + user.setEmailAddress(userProfile.getEmailAddress()); + user.setLoginId(userProfile.getLoginId()); + String encryptedPwd = userMgr.encrypt(userProfile.getLoginId(),userProfile.getPassword()); + user.setPassword(encryptedPwd); + + XXPortalUserRole XXPortalUserRole = new XXPortalUserRole(); + XXPortalUserRole.setId(userProfile.getId()); + XXPortalUserRole.setUserRole(RangerConstants.ROLE_USER); + List<XXPortalUserRole> list = new ArrayList<XXPortalUserRole>(); + list.add(XXPortalUserRole); + + List<XXUserPermission> xUserPermissionsList = new ArrayList<XXUserPermission>(); + XXUserPermission xUserPermissionObj = new XXUserPermission(); + xUserPermissionObj.setAddedByUserId(userId); + xUserPermissionObj.setCreateTime(new Date()); + xUserPermissionObj.setId(userId); + xUserPermissionObj.setIsAllowed(1); + xUserPermissionObj.setModuleId(1L); + xUserPermissionObj.setUpdatedByUserId(userId); + xUserPermissionObj.setUpdateTime(new Date()); + xUserPermissionObj.setUserId(userId); + xUserPermissionsList.add(xUserPermissionObj); + Mockito.when(daoManager.getXXPortalUser()).thenReturn(userDao); + Mockito.when(daoManager.getXXPortalUserRole()).thenReturn(roleDao); + Mockito.when(roleDao.findByUserId(userId)).thenReturn(list); + Mockito.when(userDao.getById(userProfile.getId())).thenReturn(user); + Mockito.when(stringUtil.validateEmail(Mockito.anyString())).thenReturn(true); + Mockito.doNothing().when(rangerBizUtil).blockAuditorRoleUser(); + Mockito.when(daoManager.getXXUserPermission()).thenReturn(xUserPermissionDao); + Mockito.when(xUserPermissionDao.findByUserPermissionId(userProfile.getId())).thenReturn(xUserPermissionsList); + VXPortalUser dbVXPortalUser = userMgr.updateRoleForExternalUsers(reqRoleList,existingRoleList,userProfile); + Assert.assertNotNull(dbVXPortalUser); + Assert.assertEquals(userId, dbVXPortalUser.getId()); + Assert.assertEquals(userProfile.getFirstName(),dbVXPortalUser.getFirstName()); + Assert.assertEquals(userProfile.getLastName(),dbVXPortalUser.getLastName()); + Assert.assertEquals(userProfile.getLoginId(),dbVXPortalUser.getLoginId()); + Assert.assertEquals(userProfile.getEmailAddress(),dbVXPortalUser.getEmailAddress()); + } + + @Test + public void test35mapVXPortalUserToXXPortalUser() { + setup(); + Collection<String> existingRoleList = new ArrayList<String>(); + existingRoleList.add(RangerConstants.ROLE_USER); + Collection<String> reqRoleList = new ArrayList<String>(); + reqRoleList.add(RangerConstants.ROLE_SYS_ADMIN); + + VXPortalUser userProfile = userProfile(); + userProfile.setFirstName("null"); + userProfile.setLastName("null"); + XXPortalUser user = new XXPortalUser(); + user.setId(userProfile.getId()); + user.setLoginId(userProfile.getLoginId()); + user.setEmailAddress(userProfile.getEmailAddress()); + user.setLoginId(userProfile.getLoginId()); + String encryptedPwd = userMgr.encrypt(userProfile.getLoginId(),userProfile.getPassword()); + user.setPassword(encryptedPwd); + + XXPortalUserRole XXPortalUserRole = new XXPortalUserRole(); + XXPortalUserRole.setId(userProfile.getId()); + XXPortalUserRole.setUserRole(RangerConstants.ROLE_USER); + List<XXPortalUserRole> list = new ArrayList<XXPortalUserRole>(); + list.add(XXPortalUserRole); + + List<XXUserPermission> xUserPermissionsList = new ArrayList<XXUserPermission>(); + XXUserPermission xUserPermissionObj = new XXUserPermission(); + xUserPermissionObj.setAddedByUserId(userId); + xUserPermissionObj.setCreateTime(new Date()); + xUserPermissionObj.setId(userId); + xUserPermissionObj.setIsAllowed(1); + xUserPermissionObj.setModuleId(1L); + xUserPermissionObj.setUpdatedByUserId(userId); + xUserPermissionObj.setUpdateTime(new Date()); + xUserPermissionObj.setUserId(userId); + xUserPermissionsList.add(xUserPermissionObj); + XXPortalUser dbVXPortalUser = userMgr.mapVXPortalUserToXXPortalUser(userProfile); + Assert.assertNotNull(dbVXPortalUser); + Assert.assertEquals(userProfile.getLoginId(),dbVXPortalUser.getLoginId()); + Assert.assertEquals(userProfile.getEmailAddress(),dbVXPortalUser.getEmailAddress()); + } + + @Test + public void test36UpdateUser() { + setup(); + XXPortalUserDao userDao = Mockito.mock(XXPortalUserDao.class); + VXPortalUser userProfile = userProfile(); + XXPortalUser user = new XXPortalUser(); + user.setId(userProfile.getId()); + user.setLoginId(userProfile.getLoginId()); + userProfile.setFirstName("User"); + userProfile.setLastName("User"); + Mockito.when(stringUtil.validateEmail(Mockito.anyString())).thenReturn(true); + String encryptedPwd = userMgr.encrypt(userProfile.getLoginId(),userProfile.getPassword()); + user.setPassword(encryptedPwd); + Mockito.when(daoManager.getXXPortalUser()).thenReturn(userDao); + Mockito.when(userDao.getById(userProfile.getId())).thenReturn(user); + Mockito.doNothing().when(rangerBizUtil).blockAuditorRoleUser(); + Mockito.when(stringUtil.toCamelCaseAllWords(Mockito.anyString())).thenReturn(userProfile.getFirstName()); + XXPortalUser dbXXPortalUser = userMgr.updateUser(userProfile); + Assert.assertNotNull(dbXXPortalUser); + Mockito.when(stringUtil.isEmpty(Mockito.anyString())).thenReturn(true); + userProfile.setFirstName("null"); + userProfile.setLastName("null"); + userProfile.setEmailAddress(""); + dbXXPortalUser = userMgr.updateUser(userProfile); + } + + @Test + public void test37createUserSearchQuery() { + EntityManager entityManager = Mockito.mock(EntityManager.class); + String queryString="Select id,loginId,emailAddress,firstName,lastName,statusList,publicScreenName,status from XXPortalUser"; + Query query = Mockito.mock(Query.class); + SearchCriteria searchCriteria = new SearchCriteria(); + searchCriteria.setDistinct(true); + searchCriteria.setGetChildren(true); + searchCriteria.setGetCount(true); + searchCriteria.setMaxRows(12); + searchCriteria.setOwnerId(userId); + searchCriteria.setStartIndex(1); + searchCriteria.setSortBy("asc"); + VXPortalUser vXPortalUser=userProfile(); + List<String> userRoleList = new ArrayList<String>(); + userRoleList.add("ROLE_USER"); + List<Integer> statusList = new ArrayList<Integer>(); + statusList.add(1); + searchCriteria.addParam("roleList", userRoleList); + searchCriteria.addParam("userId", vXPortalUser.getId()); + searchCriteria.addParam("loginId", vXPortalUser.getLoginId()); + searchCriteria.addParam("emailAddress", vXPortalUser.getEmailAddress()); + searchCriteria.addParam("firstName", vXPortalUser.getFirstName()); + searchCriteria.addParam("lastName", vXPortalUser.getLastName()); + searchCriteria.addParam("statusList", statusList); + searchCriteria.addParam("publicScreenName", vXPortalUser.getPublicScreenName()); + searchCriteria.addParam("status", vXPortalUser.getStatus()); + searchCriteria.addParam("familyScreenName", vXPortalUser.getPublicScreenName()); + Mockito.when(daoManager.getEntityManager()).thenReturn(entityManager); + Mockito.when(entityManager.createQuery(Mockito.anyString())).thenReturn(query); + Query newQuery = userMgr.createUserSearchQuery(query.toString(),queryString,searchCriteria); + Assert.assertNotNull(newQuery); + userRoleList.add("ROLE_SYS_ADMIN"); + statusList.add(0); + searchCriteria.addParam("statusList", statusList); + searchCriteria.addParam("roleList", userRoleList); + newQuery = userMgr.createUserSearchQuery(query.toString(),queryString,searchCriteria); + } + + @Test + public void test38mapVXPortalUserToXXPortalUser() { + Collection<String> existingRoleList = new ArrayList<String>(); + existingRoleList.add(RangerConstants.ROLE_USER); + VXPortalUser dbVXPortalUser = userMgr.mapXXPortalUserToVXPortalUser(null,existingRoleList); + XXPortalUser user = new XXPortalUser(); + Assert.assertNull(dbVXPortalUser); + dbVXPortalUser = userMgr.mapXXPortalUserToVXPortalUser(user,existingRoleList); + Assert.assertNull(dbVXPortalUser); + } + + @Test + public void test39gjUserToUserProfile() { + VXPortalUser vXPortalUser = new VXPortalUser(); + XXPortalUser xXPortalUser = new XXPortalUser(); + userMgr.gjUserToUserProfile(xXPortalUser,vXPortalUser); + } + + @Test + public void test40deleteUserRole() { + XXPortalUserRole xXPortalUserRole = new XXPortalUserRole(); + userMgr.deleteUserRole(1L,xXPortalUserRole); + } + + @Test + public void test41mapXXPortalUserToVXPortalUserForDefaultAccount() { + VXPortalUser vXPortalUser=userProfile(); + XXPortalUser xXPortalUser = xxPortalUser(vXPortalUser); + XXPortalUserRoleDao roleDao = Mockito.mock(XXPortalUserRoleDao.class); + Mockito.when(daoManager.getXXPortalUserRole()).thenReturn(roleDao); + XXPortalUserRole XXPortalUserRole = new XXPortalUserRole(); + XXPortalUserRole.setId(userId); + XXPortalUserRole.setUserRole("ROLE_USER"); + List<XXPortalUserRole> list = new ArrayList<XXPortalUserRole>(); + list.add(XXPortalUserRole); + Mockito.when(roleDao.findByParentId(xXPortalUser.getId())).thenReturn(list); + VXPortalUser dbVXPortalUser = userMgr.mapXXPortalUserToVXPortalUserForDefaultAccount(xXPortalUser); + Assert.assertNotNull(dbVXPortalUser); + } + }