@Test
public void checkGroupMembership() throws XMLDBException, PermissionDeniedException {
Collection root = DatabaseManager.getCollection(baseUri + "/db", "admin", "");
UserManagementService ums = (UserManagementService)root.getService("UserManagementService", "1.0");
final String group1Name = "testGroup1";
final String group2Name = "testGroup2";
final String userName = "testUser";
Group group1 = new GroupAider(group1Name);
Group group2 = new GroupAider(group2Name);
Account user = new UserAider(userName, group1);
try {
ums.addGroup(group1);
ums.addGroup(group2);
ums.addAccount(user);
ums.getAccount(userName);
user.addGroup(group2);
ums.updateAccount(user);
/*** RESTART THE SERVER ***/
stopServer();
startServer();
/**************************/
root = DatabaseManager.getCollection(baseUri + "/db", "admin", "");
ums = (UserManagementService)root.getService("UserManagementService", "1.0");
user = ums.getAccount("testUser");
assertNotNull(user);
Group defaultGroup = user.getDefaultGroup();
assertNotNull(defaultGroup);
assertEquals(group1Name, defaultGroup.getName());
String groups[] = user.getGroups();
assertNotNull(groups);
assertEquals(2, groups.length);
assertEquals(group1Name, groups[0]);
assertEquals(group2Name, groups[1]);
} finally {
//cleanup
try { ums.removeGroup(group1); } catch(Exception e) {}
try { ums.removeGroup(group2); } catch(Exception e) {}
try { ums.removeAccount(user); } catch(Exception e) {}
}
}