UserRoleDaoService { public RoleListWrapper getRolesForUser( String user ) throws UncategorizedUserRoleDaoException { if ( canAdminister() ) { ITenant tenant = TenantUtils.getCurrentTenant(); return new RoleListWrapper( getRoleDao().getUserRoles( tenant, user ) ); } else { throw new SecurityException(); } }  UserListWrapper getUsers(); RoleListWrapper getRolesForUser( String user ); void assignRolesToUser( String userName, String roleNames ); void removeRolesFromUser( String userName, String roleNames ); void createRole( String roleName ); RoleListWrapper getRoles(); UserListWrapper getRoleMembers( String roleName ); void createUser( User user ); void changeUserPassword( final String userName, final String newPass, String oldPass ); void deleteUsers( String userNames ); void deleteRoles( String roleNames ); SystemRolesMap getRoleBindingStruct( String locale ); void setLogicalRoles( LogicalRoleAssignments roleAssignments ); void updatePassword( User user, String administratorPassword ); void updatePassword( User user ); static final String PUC_USER_PASSWORD_LENGTH; static final String PUC_USER_PASSWORD_REQUIRE_SPECIAL_CHARACTER; }
@Test public void testGetRolesForUser() throws Exception { List<IPentahoRole> roleList = new ArrayList<>(); IUserRoleDao roleDao = mock( IUserRoleDao.class ); when( roleDao.getUserRoles( any( ITenant.class ), anyString() ) ).thenReturn( roleList ); PentahoSystem.registerObject( roleDao ); RoleListWrapper wrapRoleList = new RoleListWrapper( roleList ); IPentahoSession session = mock( IPentahoSession.class ); String tenantPath = "testPath"; when( session.getAttribute( IPentahoSession.TENANT_ID_KEY ) ).thenReturn( tenantPath ); PentahoSessionHolder.setSession( session ); setupMockSessionUser( SESSION_USER_NAME, true ); assertEquals( wrapRoleList.getRoles(), userRoleService.getRolesForUser( "admin" ).getRoles() ); }