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.ClinicWrapper;
import edu.ualberta.med.biobank.common.wrappers.MembershipWrapper;
import edu.ualberta.med.biobank.common.wrappers.RoleWrapper;
import edu.ualberta.med.biobank.common.wrappers.StudyWrapper;
import edu.ualberta.med.biobank.common.wrappers.UserWrapper;
import edu.ualberta.med.biobank.model.PermissionEnum;
import edu.ualberta.med.biobank.model.Role;
import edu.ualberta.med.biobank.server.applicationservice.exceptions.DuplicatePropertySetException;
import edu.ualberta.med.biobank.test.TestDatabase;
import edu.ualberta.med.biobank.test.internal.ClinicHelper;
import edu.ualberta.med.biobank.test.internal.MembershipHelper;
import edu.ualberta.med.biobank.test.internal.RoleHelper;
import edu.ualberta.med.biobank.test.internal.StudyHelper;
import edu.ualberta.med.biobank.test.internal.UserHelper;
@Deprecated
public class TestMembership extends TestDatabase {
@Test
public void testCanDeleteMembershipRoleUsingARole() throws Exception {
String name = "testCanDeleteMembershipRoleUsingARole" + r.nextInt();
UserWrapper user = UserHelper.addUser(name, null, true);
RoleWrapper role1 = RoleHelper.newRole(name + "_1");
role1.addToPermissionCollection(Arrays
.asList(PermissionEnum.CLINIC_CREATE));
role1.persist();
RoleHelper.createdRoles.add(role1);
MembershipWrapper mwr = MembershipHelper
.newMembership(user, null, null);
mwr.addToRoleCollection(Arrays.asList(role1));
mwr.persist();
mwr.reload();
Integer idRole = role1.getId();
Assert.assertEquals(1, mwr.getRoleCollection(false).size());
try {
mwr.delete();
Assert
.assertTrue("Can delete a membership role using a role", true);
} catch (Exception ex) {
Assert.fail("Should be able to delete the membership role");
}
Assert.assertNotNull(ModelUtils.getObjectWithId(appService, Role.class,
idRole));
}
/**
* Test unique constraint on principal/study/center
*/
@Test
public void testUniqueConstraint() throws Exception {
String name = "testUniqueConstraint" + r.nextInt();
StudyWrapper s = StudyHelper.addStudy(name);
ClinicWrapper c = ClinicHelper.addClinic(name);
UserWrapper u = UserHelper.addUser(name, null, true);
MembershipHelper.addMembership(u, c, s);
try {
MembershipHelper.addMembership(u, c, s);
Assert.fail("Should not be able to insert");
} catch (DuplicatePropertySetException ex) {
Assert.assertTrue("Should not be able to insert", true);
}
try {
MembershipHelper.addMembership(u, c, null);
Assert.assertTrue("Should be able to insert", true);
} catch (DuplicatePropertySetException ex) {
Assert.fail("Should be able to insert");
}
try {
MembershipHelper.addMembership(u, c, null);
Assert.fail("Should not be able to insert");
} catch (DuplicatePropertySetException ex) {
Assert.assertTrue("Should not be able to insert", true);
}
MembershipHelper.addMembership(u, null, null);
try {
MembershipHelper.addMembership(u, null, null);
Assert.fail("Should not be able to insert");
} catch (DuplicatePropertySetException ex) {
Assert.assertTrue("Should not be able to insert", true);
}
}
}