package org.cagrid.dorian.idp;
import junit.framework.TestCase;
import org.cagrid.dorian.model.exceptions.InvalidUserPropertyException;
import org.cagrid.dorian.model.exceptions.InvalidUserPropertyFault;
import org.cagrid.dorian.model.exceptions.NoSuchUserException;
import org.cagrid.dorian.model.exceptions.NoSuchUserFault;
import org.cagrid.dorian.model.idp.CountryCode;
import org.cagrid.dorian.model.idp.LocalUser;
import org.cagrid.dorian.model.idp.LocalUserFilter;
import org.cagrid.dorian.model.idp.LocalUserRole;
import org.cagrid.dorian.model.idp.LocalUserStatus;
import org.cagrid.dorian.model.idp.StateCode;
import org.cagrid.dorian.service.idp.PasswordSecurityManager;
import org.cagrid.dorian.service.idp.UserManager;
import org.cagrid.gaards.authentication.BasicAuthentication;
import org.cagrid.gaards.dorian.test.Utils;
import org.cagrid.tools.database.Database;
/**
* @author <A href="mailto:langella@bmi.osu.edu">Stephen Langella </A>
* @author <A href="mailto:oster@bmi.osu.edu">Scott Oster </A>
* @author <A href="mailto:hastings@bmi.osu.edu">Shannon Hastings </A>
* @version $Id: ArgumentManagerTable.java,v 1.2 2004/10/15 16:35:16 langella
* Exp $
*/
public class TestUserManager extends TestCase {
private Database db;
private int count = 0;
public void testMultipleUsers() {
int userCount = 20;
int activeNA = 0;
int pendingNA = 0;
int rejectedNA = 0;
int suspendedNA = 0;
int activeA = 1;
int pendingA = 0;
int rejectedA = 0;
int suspendedA = 0;
LocalUser[] users = new LocalUser[userCount];
UserManager um = null;
try {
um = Utils.getIdPUserManager();
for (int i = 0; i < users.length; i++) {
if ((i % 8) == 0) {
users[i] = makeUser(LocalUserRole.NON_ADMINISTRATOR, LocalUserStatus.ACTIVE);
activeNA = activeNA + 1;
} else if ((i % 8) == 1) {
users[i] = makeUser(LocalUserRole.NON_ADMINISTRATOR, LocalUserStatus.PENDING);
pendingNA = pendingNA + 1;
} else if ((i % 8) == 2) {
users[i] = makeUser(LocalUserRole.NON_ADMINISTRATOR, LocalUserStatus.REJECTED);
rejectedNA = rejectedNA + 1;
} else if ((i % 8) == 3) {
users[i] = makeUser(LocalUserRole.NON_ADMINISTRATOR, LocalUserStatus.SUSPENDED);
suspendedNA = suspendedNA + 1;
} else if ((i % 8) == 4) {
users[i] = makeUser(LocalUserRole.ADMINISTRATOR, LocalUserStatus.ACTIVE);
activeA = activeA + 1;
} else if ((i % 8) == 5) {
users[i] = makeUser(LocalUserRole.ADMINISTRATOR, LocalUserStatus.PENDING);
pendingA = pendingA + 1;
} else if ((i % 8) == 6) {
users[i] = makeUser(LocalUserRole.ADMINISTRATOR, LocalUserStatus.REJECTED);
rejectedA = rejectedA + 1;
} else if ((i % 8) == 7) {
users[i] = makeUser(LocalUserRole.ADMINISTRATOR, LocalUserStatus.SUSPENDED);
suspendedA = suspendedA + 1;
}
um.addUser(users[i]);
String salt = um.getPasswordSecurityManager().getEntry(users[i].getUserId()).getDigestSalt();
users[i].setPassword(PasswordSecurityManager.encrypt(users[i].getPassword(), salt));
assertTrue(um.userExists(users[i].getUserId()));
LocalUser u = um.getUser(users[i].getUserId());
assertEquals(users[i], u);
LocalUser[] list = um.getUsers(null);
assertEquals(i + 2, list.length);
LocalUserFilter f = new LocalUserFilter();
f.setStatus(LocalUserStatus.ACTIVE);
f.setRole(LocalUserRole.NON_ADMINISTRATOR);
assertEquals(activeNA, um.getUsers(f).length);
f.setStatus(LocalUserStatus.PENDING);
assertEquals(pendingNA, um.getUsers(f).length);
f.setStatus(LocalUserStatus.REJECTED);
assertEquals(rejectedNA, um.getUsers(f).length);
f.setStatus(LocalUserStatus.SUSPENDED);
assertEquals(suspendedNA, um.getUsers(f).length);
f.setStatus(LocalUserStatus.ACTIVE);
f.setRole(LocalUserRole.ADMINISTRATOR);
assertEquals(activeA, um.getUsers(f).length);
f.setStatus(LocalUserStatus.PENDING);
assertEquals(pendingA, um.getUsers(f).length);
f.setStatus(LocalUserStatus.REJECTED);
assertEquals(rejectedA, um.getUsers(f).length);
f.setStatus(LocalUserStatus.SUSPENDED);
assertEquals(suspendedA, um.getUsers(f).length);
}
int numberOfUsers = users.length + 1;
for (int i = 0; i < users.length; i++) {
um.removeUser(users[i].getUserId());
numberOfUsers = numberOfUsers - 1;
if ((users[i].getStatus().equals(LocalUserStatus.ACTIVE)) && (users[i].getRole().equals(LocalUserRole.NON_ADMINISTRATOR))) {
activeNA = activeNA - 1;
} else if ((users[i].getStatus().equals(LocalUserStatus.PENDING)) && (users[i].getRole().equals(LocalUserRole.NON_ADMINISTRATOR))) {
pendingNA = pendingNA - 1;
}
if ((users[i].getStatus().equals(LocalUserStatus.REJECTED)) && (users[i].getRole().equals(LocalUserRole.NON_ADMINISTRATOR))) {
rejectedNA = rejectedNA - 1;
}
if ((users[i].getStatus().equals(LocalUserStatus.SUSPENDED)) && (users[i].getRole().equals(LocalUserRole.NON_ADMINISTRATOR))) {
users[i] = makeUser(LocalUserRole.NON_ADMINISTRATOR, LocalUserStatus.SUSPENDED);
suspendedNA = suspendedNA - 1;
} else if ((users[i].getStatus().equals(LocalUserStatus.ACTIVE)) && (users[i].getRole().equals(LocalUserRole.ADMINISTRATOR))) {
activeA = activeA - 1;
} else if ((users[i].getStatus().equals(LocalUserStatus.PENDING)) && (users[i].getRole().equals(LocalUserRole.ADMINISTRATOR))) {
pendingA = pendingA - 1;
} else if ((users[i].getStatus().equals(LocalUserStatus.REJECTED)) && (users[i].getRole().equals(LocalUserRole.ADMINISTRATOR))) {
rejectedA = rejectedA - 1;
} else if ((users[i].getStatus().equals(LocalUserStatus.SUSPENDED)) && (users[i].getRole().equals(LocalUserRole.ADMINISTRATOR))) {
suspendedA = suspendedA - 1;
}
assertFalse(um.userExists(users[i].getEmail()));
LocalUser[] list = um.getUsers(null);
assertEquals(numberOfUsers, list.length);
LocalUserFilter f = new LocalUserFilter();
f.setStatus(LocalUserStatus.ACTIVE);
f.setRole(LocalUserRole.NON_ADMINISTRATOR);
assertEquals(activeNA, um.getUsers(f).length);
f.setStatus(LocalUserStatus.PENDING);
assertEquals(pendingNA, um.getUsers(f).length);
f.setStatus(LocalUserStatus.REJECTED);
assertEquals(rejectedNA, um.getUsers(f).length);
f.setStatus(LocalUserStatus.SUSPENDED);
assertEquals(suspendedNA, um.getUsers(f).length);
f.setStatus(LocalUserStatus.ACTIVE);
f.setRole(LocalUserRole.ADMINISTRATOR);
assertEquals(activeA, um.getUsers(f).length);
f.setStatus(LocalUserStatus.PENDING);
assertEquals(pendingA, um.getUsers(f).length);
f.setStatus(LocalUserStatus.REJECTED);
assertEquals(rejectedA, um.getUsers(f).length);
f.setStatus(LocalUserStatus.SUSPENDED);
assertEquals(suspendedA, um.getUsers(f).length);
}
} catch (Exception e) {
e.printStackTrace();
assertTrue(false);
} finally {
try {
um.clearDatabase();
} catch (Exception e) {
e.printStackTrace();
}
}
}
public void testChangeStatus() {
UserManager um = null;
try {
um = Utils.getIdPUserManager();
LocalUser u1 = makeActiveUser();
um.addUser(u1);
assertTrue(um.userExists(u1.getUserId()));
u1.setStatus(LocalUserStatus.SUSPENDED);
um.updateUser(u1);
String salt = um.getPasswordSecurityManager().getEntry(u1.getUserId()).getDigestSalt();
u1.setPassword(PasswordSecurityManager.encrypt(u1.getPassword(), salt));
LocalUser u2 = um.getUser(u1.getUserId());
assertEquals(u1.getPassword(), u2.getPassword());
assertEquals(u1, u2);
} catch (Exception e) {
e.printStackTrace();
assertTrue(false);
} finally {
try {
um.clearDatabase();
} catch (Exception e) {
e.printStackTrace();
}
}
}
public void testSystemMaxPasswordLength() {
UserManager um = null;
try {
um = Utils.getIdPUserManager();
LocalUser u1 = makeActiveUser();
String password = u1.getPassword();
StringBuffer sb = new StringBuffer();
sb.append(password);
int size = (UserManager.SYSTEM_MAX_PASSWORD_LENGTH + 1) - sb.length();
for (int i = 0; i < size; i++) {
sb.append("a");
}
u1.setPassword(sb.toString());
try {
um.addUser(u1);
fail("Should not be able to add a user that specified a password with a greater length the system max!!!");
} catch (Exception e) {
if (gov.nih.nci.cagrid.common.Utils.getExceptionMessage(e).indexOf(UserManager.SYSTEM_MAX_PASSWORD_ERROR_PREFIX) == -1) {
fail("Should not be able to add a user that specified a password with a greater length the system max!!!");
}
}
u1.setPassword(password);
um.addUser(u1);
assertTrue(um.userExists(u1.getUserId()));
BasicAuthentication ba = new BasicAuthentication();
ba.setUserId(u1.getUserId());
ba.setPassword(password);
um.authenticateAndVerifyUser(ba, null);
ba.setPassword(sb.toString());
try {
um.authenticateAndVerifyUser(ba, null);
fail("Should not be able to authenticate with a password with a greater length the system max!!!");
} catch (Exception e) {
if (gov.nih.nci.cagrid.common.Utils.getExceptionMessage(e).indexOf(UserManager.PASSWORD_ERROR_MESSAGE) == -1) {
fail("Should not be able to authenticate with a password with a greater length the system max!!!");
}
}
} catch (Exception e) {
e.printStackTrace();
assertTrue(false);
} finally {
try {
um.clearDatabase();
} catch (Exception e) {
e.printStackTrace();
}
}
}
public void testChangeRole() {
UserManager um = null;
try {
um = Utils.getIdPUserManager();
LocalUser u1 = makeActiveUser();
um.addUser(u1);
assertTrue(um.userExists(u1.getUserId()));
u1.setRole(LocalUserRole.ADMINISTRATOR);
um.updateUser(u1);
String salt = um.getPasswordSecurityManager().getEntry(u1.getUserId()).getDigestSalt();
u1.setPassword(PasswordSecurityManager.encrypt(u1.getPassword(), salt));
LocalUser u2 = um.getUser(u1.getUserId());
assertEquals(u1, u2);
} catch (Exception e) {
e.printStackTrace();
assertTrue(false);
} finally {
try {
um.clearDatabase();
} catch (Exception e) {
e.printStackTrace();
}
}
}
public void testChangePassword() {
UserManager um = null;
try {
um = Utils.getIdPUserManager();
LocalUser u1 = makeActiveUser();
um.addUser(u1);
assertTrue(um.userExists(u1.getUserId()));
u1.setPassword("$W0rdD0ct0R$2");
um.updateUser(u1);
LocalUser u2 = um.getUser(u1.getUserId());
String salt = um.getPasswordSecurityManager().getEntry(u1.getUserId()).getDigestSalt();
u1.setPassword(PasswordSecurityManager.encrypt(u1.getPassword(), salt));
assertEquals(u1.getPassword(), u2.getPassword());
} catch (Exception e) {
e.printStackTrace();
assertTrue(false);
} finally {
try {
um.clearDatabase();
} catch (Exception e) {
e.printStackTrace();
}
}
}
public void testUpdateUser() {
UserManager um = null;
try {
um = Utils.getIdPUserManager();
LocalUser u1 = makeActiveUser();
um.addUser(u1);
assertTrue(um.userExists(u1.getUserId()));
String password = u1.getPassword();
u1.setPassword(null);
u1.setFirstName("changedfirst");
u1.setLastName("changedlast");
u1.setAddress("changedaddress");
u1.setAddress2("changedaddress2");
u1.setCity("New York");
u1.setState(StateCode.NY);
u1.setCountry(CountryCode.AG);
u1.setZipcode("11776");
u1.setPhoneNumber("718-555-5555");
u1.setOrganization("changedorganization");
u1.setStatus(LocalUserStatus.SUSPENDED);
u1.setRole(LocalUserRole.ADMINISTRATOR);
um.updateUser(u1);
u1.getPasswordSecurity().setDigestSalt(null);
LocalUser u2 = um.getUser(u1.getUserId(), false);
assertEquals(u1, u2);
} catch (Exception e) {
e.printStackTrace();
assertTrue(false);
} finally {
try {
um.clearDatabase();
} catch (Exception e) {
e.printStackTrace();
}
}
}
public void testSingleUser() {
UserManager um = null;
try {
um = Utils.getIdPUserManager();
LocalUser u1 = makeActiveUser();
um.addUser(u1);
String salt = um.getPasswordSecurityManager().getEntry(u1.getUserId()).getDigestSalt();
u1.setPassword(PasswordSecurityManager.encrypt(u1.getPassword(), salt));
assertTrue(um.userExists(u1.getUserId()));
LocalUser u2 = um.getUser(u1.getUserId());
assertEquals(u1, u2);
LocalUser[] list = um.getUsers(null);
assertEquals(2, list.length);
LocalUserFilter f = new LocalUserFilter();
f.setStatus(LocalUserStatus.ACTIVE);
f.setRole(LocalUserRole.NON_ADMINISTRATOR);
assertEquals(1, um.getUsers(f).length);
f.setStatus(LocalUserStatus.PENDING);
assertEquals(0, um.getUsers(f).length);
f.setStatus(LocalUserStatus.REJECTED);
assertEquals(0, um.getUsers(f).length);
f.setStatus(LocalUserStatus.SUSPENDED);
assertEquals(0, um.getUsers(f).length);
f.setStatus(LocalUserStatus.ACTIVE);
f.setRole(LocalUserRole.ADMINISTRATOR);
assertEquals(1, um.getUsers(f).length);
f.setStatus(LocalUserStatus.PENDING);
assertEquals(0, um.getUsers(f).length);
f.setStatus(LocalUserStatus.REJECTED);
assertEquals(0, um.getUsers(f).length);
f.setStatus(LocalUserStatus.SUSPENDED);
assertEquals(0, um.getUsers(f).length);
um.removeUser(u1.getUserId());
assertFalse(um.userExists(u1.getEmail()));
try {
um.getUser(u1.getEmail());
assertTrue(false);
} catch (NoSuchUserException fs) {
}
assertEquals(1, um.getUsers(null).length);
} catch (Exception e) {
e.printStackTrace();
assertTrue(false);
} finally {
try {
um.clearDatabase();
} catch (Exception e) {
e.printStackTrace();
}
}
}
public void testFindUsers() {
UserManager um = null;
try {
um = Utils.getIdPUserManager();
int size = 10;
for (int i = 0; i < size; i++) {
um.addUser(makeUser(LocalUserRole.NON_ADMINISTRATOR, LocalUserStatus.ACTIVE));
}
assertEquals(size, um.getUsers(getActiveUserFilter()).length);
// test email address
LocalUserFilter fid = getActiveUserFilter();
fid.setUserId("user");
assertEquals(size, um.getUsers(fid).length);
fid.setUserId("XX");
assertEquals(0, um.getUsers(fid).length);
// test email address
LocalUserFilter f1 = getActiveUserFilter();
f1.setEmail("@mail.com");
assertEquals(size, um.getUsers(f1).length);
f1.setEmail("@mail.");
assertEquals(size, um.getUsers(f1).length);
f1.setEmail("XX");
assertEquals(0, um.getUsers(f1).length);
// Test First Name and Last Name
LocalUserFilter f2 = getActiveUserFilter();
f2.setFirstName("firs");
assertEquals(size, um.getUsers(f2).length);
f2.setLastName("ast");
assertEquals(size, um.getUsers(f2).length);
f2.setFirstName("XX");
assertEquals(0, um.getUsers(f2).length);
f2.setFirstName(null);
assertEquals(size, um.getUsers(f2).length);
// Test Organization
LocalUserFilter f0 = getActiveUserFilter();
f0.setOrganization("org");
assertEquals(size, um.getUsers(f0).length);
f0.setOrganization("XX");
assertEquals(0, um.getUsers(f0).length);
// Test Address
LocalUserFilter f3 = getActiveUserFilter();
f3.setAddress("address");
assertEquals(size, um.getUsers(f3).length);
f3.setAddress("XX");
assertEquals(0, um.getUsers(f3).length);
// Test Address 2
LocalUserFilter f4 = getActiveUserFilter();
f4.setAddress2("address2");
assertEquals(size, um.getUsers(f4).length);
f4.setAddress2("XX");
assertEquals(0, um.getUsers(f4).length);
// Test City and State
LocalUserFilter f5 = getActiveUserFilter();
f5.setCity("Columbus");
assertEquals(size, um.getUsers(f5).length);
f5.setState(StateCode.OH);
assertEquals(size, um.getUsers(f5).length);
f5.setCity(null);
assertEquals(size, um.getUsers(f5).length);
f5.setState(null);
assertEquals(size, um.getUsers(f5).length);
// Test Zip Code
LocalUserFilter f6 = getActiveUserFilter();
f6.setZipcode("43210");
assertEquals(size, um.getUsers(f6).length);
f6.setZipcode("XX");
assertEquals(0, um.getUsers(f6).length);
// Test country
LocalUserFilter cf = getActiveUserFilter();
cf.setCountry(CountryCode.US);
assertEquals(size, um.getUsers(cf).length);
// Test Phone Number
LocalUserFilter f7 = getActiveUserFilter();
f7.setPhoneNumber("614-555-5555");
assertEquals(size, um.getUsers(f7).length);
f7.setPhoneNumber("XX");
assertEquals(0, um.getUsers(f7).length);
// test for each user
for (int i = 0; i < size; i++) {
// test email address
LocalUserFilter all = getActiveUserFilter();
LocalUserFilter uid = getActiveUserFilter();
uid.setUserId(i + "user");
all.setUserId(i + "user");
assertEquals(1, um.getUsers(uid).length);
assertEquals(1, um.getUsers(all).length);
LocalUserFilter u1 = getActiveUserFilter();
u1.setEmail(i + "user@mail.com");
all.setEmail(i + "user@mail.com");
assertEquals(1, um.getUsers(u1).length);
assertEquals(1, um.getUsers(all).length);
// Test First Name
LocalUserFilter u2 = getActiveUserFilter();
u2.setFirstName(i + "first");
all.setFirstName(i + "first");
assertEquals(1, um.getUsers(u2).length);
assertEquals(1, um.getUsers(all).length);
// Test Last Name
LocalUserFilter u3 = getActiveUserFilter();
u3.setLastName(i + "last");
all.setLastName(i + "last");
assertEquals(1, um.getUsers(u3).length);
assertEquals(1, um.getUsers(all).length);
// Test Organization
LocalUserFilter u4 = getActiveUserFilter();
u4.setOrganization(i + "organization");
all.setOrganization(i + "organization");
assertEquals(1, um.getUsers(u4).length);
assertEquals(1, um.getUsers(all).length);
// Test Address
LocalUserFilter u5 = getActiveUserFilter();
u5.setAddress(i + "address");
all.setAddress(i + "address");
assertEquals(1, um.getUsers(u5).length);
assertEquals(1, um.getUsers(all).length);
// Test Address 2
LocalUserFilter u6 = getActiveUserFilter();
u6.setAddress2(i + "address2");
all.setAddress2(i + "address2");
assertEquals(1, um.getUsers(u6).length);
assertEquals(1, um.getUsers(all).length);
all.setCity("Columbus");
all.setState(StateCode.OH);
all.setCountry(CountryCode.US);
all.setZipcode("43210");
all.setPhoneNumber("614-555-5555");
assertEquals(1, um.getUsers(all).length);
}
} catch (Exception e) {
e.printStackTrace();
assertTrue(false);
} finally {
try {
um.clearDatabase();
} catch (Exception e) {
e.printStackTrace();
}
}
}
public void testForeignUser() {
UserManager um = null;
try {
um = Utils.getIdPUserManager();
LocalUser u = new LocalUser();
u.setUserId("user");
u.setEmail("user@mail.com");
u.setPassword("$W0rdD0ct0R$");
u.setFirstName("first");
u.setLastName("last");
u.setAddress("address");
u.setAddress2("address2");
u.setCity("Somewhere");
u.setState(StateCode.OUTSIDE_US);
u.setZipcode("G12 8QQ");
u.setCountry(CountryCode.AE);
u.setPhoneNumber("+44 141 330 4119");
u.setOrganization("organization");
u.setStatus(LocalUserStatus.ACTIVE);
u.setRole(LocalUserRole.NON_ADMINISTRATOR);
um.addUser(u);
assertTrue(um.userExists(u.getUserId()));
LocalUser u2 = um.getUser(u.getUserId());
String salt = um.getPasswordSecurityManager().getEntry(u.getUserId()).getDigestSalt();
u.setPassword(PasswordSecurityManager.encrypt(u.getPassword(), salt));
assertEquals(u, u2);
} catch (Exception e) {
e.printStackTrace();
assertTrue(false);
} finally {
try {
um.clearDatabase();
} catch (Exception e) {
e.printStackTrace();
}
}
}
public void testInvalidEmailAddress() {
UserManager um = null;
try {
um = Utils.getIdPUserManager();
LocalUser u1 = makeActiveUser();
u1.setEmail("bad email address");
try {
um.addUser(u1);
fail("Should not be able to add user with invalid email address.");
} catch (InvalidUserPropertyException e) {
String err = e.getMessage();
if (err.indexOf("Invalid email address specified") == -1) {
fail("Should not be able to add user with invalid email address.");
}
}
u1.setEmail("@cagrid.org");
try {
um.addUser(u1);
fail("Should not be able to add user with invalid email address.");
} catch (InvalidUserPropertyException e) {
String err = e.getMessage();
if (err.indexOf("Invalid email address specified") == -1) {
fail("Should not be able to add user with invalid email address.");
}
}
u1.setEmail("user@");
try {
um.addUser(u1);
fail("Should not be able to add user with invalid email address.");
} catch (InvalidUserPropertyException e) {
String err = e.getMessage();
if (err.indexOf("Invalid email address specified") == -1) {
fail("Should not be able to add user with invalid email address.");
}
}
u1.setEmail("user@cagrid.org");
um.addUser(u1);
String salt = um.getPasswordSecurityManager().getEntry(u1.getUserId()).getDigestSalt();
u1.setPassword(PasswordSecurityManager.encrypt(u1.getPassword(), salt));
assertTrue(um.userExists(u1.getUserId()));
LocalUser u2 = um.getUser(u1.getUserId());
assertEquals(u1, u2);
u1.setPassword(null);
u1.setEmail("bad email address");
try {
um.updateUser(u1);
fail("Should not be able to update user with invalid email address.");
} catch (InvalidUserPropertyException e) {
String err = e.getMessage();
if (err.indexOf("Invalid email address specified") == -1) {
fail("Should not be able to update user with invalid email address.");
}
}
u1.setEmail("@cagrid.org");
try {
um.updateUser(u1);
fail("Should not be able to update user with invalid email address.");
} catch (InvalidUserPropertyException e) {
String err = gov.nih.nci.cagrid.common.Utils.getExceptionMessage(e);
if (err.indexOf("Invalid email address specified") == -1) {
fail("Should not be able to update user with invalid email address.");
}
}
u1.setEmail("user@");
try {
um.updateUser(u1);
fail("Should not be able to update user with invalid email address.");
} catch (InvalidUserPropertyException e) {
String err = gov.nih.nci.cagrid.common.Utils.getExceptionMessage(e);
if (err.indexOf("Invalid email address specified") == -1) {
fail("Should not be able to update user with invalid email address.");
}
}
u1.setEmail("user@cagrid.org");
um.updateUser(u1);
LocalUser u3 = um.getUser(u1.getUserId());
u3.setPassword(null);
assertEquals(u1, u3);
um.removeUser(u1.getUserId());
assertFalse(um.userExists(u1.getEmail()));
assertEquals(1, um.getUsers(null).length);
} catch (Exception e) {
e.printStackTrace();
assertTrue(false);
} finally {
try {
um.clearDatabase();
} catch (Exception e) {
e.printStackTrace();
}
}
}
private LocalUserFilter getActiveUserFilter() {
LocalUserFilter filter = new LocalUserFilter();
filter.setStatus(LocalUserStatus.ACTIVE);
filter.setRole(LocalUserRole.NON_ADMINISTRATOR);
return filter;
}
private LocalUser makeActiveUser() {
return makeUser(LocalUserRole.NON_ADMINISTRATOR, LocalUserStatus.ACTIVE);
}
private LocalUser makeUser(LocalUserRole role, LocalUserStatus status) {
LocalUser u = new LocalUser();
u.setUserId(count + "user");
u.setEmail(count + "user@mail.com");
u.setPassword(count + "$W0rdD0ct0R$");
u.setFirstName(count + "first");
u.setLastName(count + "last");
u.setAddress(count + "address");
u.setAddress2(count + "address2");
u.setCity("Columbus");
u.setState(StateCode.OH);
u.setZipcode("43210");
u.setCountry(CountryCode.US);
u.setPhoneNumber("614-555-5555");
u.setOrganization(count + "organization");
u.setStatus(status);
u.setRole(role);
count = count + 1;
return u;
}
protected void setUp() throws Exception {
super.setUp();
try {
count = 0;
db = Utils.getDB();
assertEquals(0, db.getUsedConnectionCount());
} catch (Exception e) {
e.printStackTrace();
assertTrue(false);
}
}
protected void tearDown() throws Exception {
super.setUp();
try {
assertEquals(0, db.getUsedConnectionCount());
} catch (Exception e) {
e.printStackTrace();
assertTrue(false);
}
}
}