package edu.ualberta.med.biobank.test.wrappers;
import java.util.Arrays;
import junit.framework.Assert;
import org.junit.Test;
import edu.ualberta.med.biobank.common.wrappers.GroupWrapper;
import edu.ualberta.med.biobank.common.wrappers.MembershipWrapper;
import edu.ualberta.med.biobank.common.wrappers.RoleWrapper;
import edu.ualberta.med.biobank.common.wrappers.UserWrapper;
import edu.ualberta.med.biobank.model.Group;
import edu.ualberta.med.biobank.model.Membership;
import edu.ualberta.med.biobank.model.Role;
import edu.ualberta.med.biobank.test.TestDatabase;
import edu.ualberta.med.biobank.test.internal.GroupHelper;
import edu.ualberta.med.biobank.test.internal.RoleHelper;
import edu.ualberta.med.biobank.test.internal.UserHelper;
@Deprecated
public class TestGroup extends TestDatabase {
@Test
public void testGettersAndSetters() throws Exception {
String name = "testGettersAndSetters" + r.nextInt();
GroupWrapper g = GroupHelper.addGroup(name, true);
testGettersAndSetters(g);
}
@Test
public void testAddUsers() throws Exception {
String name = "addUsers" + r.nextInt();
GroupWrapper group = GroupHelper.addGroup(name, true);
Assert.assertEquals(0, group.getUserCollection(false).size());
UserWrapper user1 = UserHelper.addUser(name + "_1", null, true);
UserWrapper user2 = UserHelper.addUser(name + "_2", null, true);
group.addToUserCollection(Arrays.asList(user1, user2));
group.persist();
group.reload();
user1.reload();
user2.reload();
Assert.assertEquals(2, group.getUserCollection(false).size());
Assert.assertEquals(1, user1.getGroupCollection(false).size());
Assert.assertEquals(1, user2.getGroupCollection(false).size());
}
@Test
public void testCascadeWithMembershipRole() throws Exception {
String name = "testCascadeWithMembershipRole" + r.nextInt();
GroupWrapper group = GroupHelper.addGroup(name, false);
Assert.assertEquals(0, group.getMembershipCollection(false).size());
RoleWrapper role = RoleHelper.addRole(name, true);
Integer idRole = role.getId();
MembershipWrapper mrw = new MembershipWrapper(appService);
mrw.setPrincipal(group);
mrw.addToRoleCollection(Arrays.asList(role));
group.addToMembershipCollection(Arrays.asList(mrw));
group.persist();
Assert.assertEquals(1, group.getMembershipCollection(false).size());
MembershipWrapper membership = group.getMembershipCollection(false)
.get(0);
Integer idMembership = membership.getId();
Assert.assertEquals(group, membership.getPrincipal());
Assert.assertEquals(1, membership.getRoleCollection(false).size());
Assert.assertEquals(role, membership.getRoleCollection(false).get(0));
// delete group
Integer idGroup = group.getId();
group.delete();
// check group is deleted
Group dbGroup = ModelUtils.getObjectWithId(appService, Group.class,
idGroup);
Assert.assertNull(dbGroup);
// check membership deleted
Membership dbMembership = ModelUtils.getObjectWithId(appService,
Membership.class, idMembership);
Assert.assertNull(dbMembership);
// check role no deleted
Role dbRole = ModelUtils
.getObjectWithId(appService, Role.class, idRole);
Assert.assertNotNull(dbRole);
}
}