package de.randi2.core.unit.model; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; import java.util.ArrayList; import java.util.Map; import org.junit.Test; import de.randi2.model.Role; import de.randi2.model.security.PermissionHibernate; import de.randi2.testUtility.utility.AbstractDomainTest; public class RoleTest extends AbstractDomainTest<Role> { public RoleTest(){ super(Role.class); } @Test public void testConstructor(){ Role role = new Role( "ROLE_XYZ", false, true, true, true, false, false, true, true, false, true, false, true, false, true, true, false, true, false, true, false, true, true, false, true, false, false, false, false, null); assertEquals("ROLE_XYZ",role.getName()); assertEquals(false, role.isCreateTrialSite() ); assertEquals( true, role.isScopeTrialSiteView() ); assertEquals( true, role.isReadTrialSite() ); assertEquals( true, role.isScopeTrialSiteWrite() ); assertEquals( false, role.isWriteTrialSite () ); assertEquals( false, role.isAdminTrialSite () ); assertEquals( true, role.isWriteOwnUser () ); assertEquals( true, role.isReadOwnUser () ); assertEquals( false, role.isAdminOwnUser() ); assertEquals( true, role.isScopeUserCreate() ); assertEquals( false, role.isCreateUser() ); assertEquals( true, role.isScopeUserWrite () ); assertEquals( false, role.isWriteOtherUser () ); assertEquals( true, role.isScopeUserRead() ); assertEquals( true, role.isReadOtherUser() ); assertEquals( false, role.isAdminOtherUser() ); assertEquals( true, role.isScopeTrialCreate() ); assertEquals( false, role.isCreateTrial() ); assertEquals( true, role.isScopeTrialWrite() ); assertEquals( false, role.isWriteTrial () ); assertEquals( true, role.isScopeTrialRead() ); assertEquals( true, role.isReadTrial () ); assertEquals( false, role.isAdminTrial() ); assertEquals( true, role.isCreateTrialSubject () ); assertEquals( false, role.isWriteTrialSubject() ); assertEquals( false, role.isReadTrialSubject() ); assertEquals( false, role.isAdminTrialSubject() ); assertEquals( false, role.isCreateRole() ); assertTrue(role.getRolesToAssign().isEmpty()); } @Test public void testEqualsHashCode(){ Role role1 = new Role( "ROLE_XYZ", false, true, true, true, false, false, true, true, false, true, false, true, true, true, true, false, true, false, true, false, true, true, false, true, false, false, false, false, null); Role role2 = new Role( "ROLE_XYZ", false, true, true, true, false, false, true, true, false, true, false, true, false, true, true, false, true, false, true, false, true, true, false, true, false, false, false, false, null); Role role3 = new Role( "ROLE_123", false, true, true, true, false, false, true, true, false, true, false, true, false, true, true, false, true, false, true, false, true, false, false, true, false, false, false, false, null); assertEquals(role1, role2); assertEquals(role1.hashCode(), role2.hashCode()); assertFalse(role1.hashCode() == role3.hashCode()); assertFalse(role1.equals(role3)); assertFalse(role1.equals("test")); assertFalse(role1.equals(null)); } @Test public void testGetOwnUserPermission(){ Role role1 = new Role( "ROLE_XYZ", false, true, true, true, false, false, true, true, true, true, false, true, false, true, true, false, true, false, true, false, true, true, false, true, false, false, false, false, null); assertEquals(3, role1.getOwnUserPermissions().size()); assertTrue(role1.getOwnUserPermissions().contains(PermissionHibernate.READ)); assertTrue(role1.getOwnUserPermissions().contains(PermissionHibernate.WRITE)); assertTrue(role1.getOwnUserPermissions().contains(PermissionHibernate.ADMINISTRATION)); role1 = new Role( "ROLE_XYZ", false, true, true, true, false, false, true, true, false, true, false, true, false, true, true, false, true, false, true, false, true, true, false, true, false, false, false, false, null); assertEquals(2, role1.getOwnUserPermissions().size()); assertTrue(role1.getOwnUserPermissions().contains(PermissionHibernate.READ)); assertTrue(role1.getOwnUserPermissions().contains(PermissionHibernate.WRITE)); role1 = new Role( "ROLE_XYZ", false, true, true, true, false, false, false, true, false, true, false, true, false, true, true, false, true, false, true, false, true, true, false, true, false, false, false, false, null); assertEquals(1, role1.getOwnUserPermissions().size()); assertTrue(role1.getOwnUserPermissions().contains(PermissionHibernate.READ)); role1 = new Role( "ROLE_XYZ", false, true, true, true, false, false, true, false, false, true, false, true, false, true, true, false, true, false, true, false, true, true, false, true, false, false, false, false, null); assertEquals(1, role1.getOwnUserPermissions().size()); assertTrue(role1.getOwnUserPermissions().contains(PermissionHibernate.WRITE)); role1 = new Role( "ROLE_XYZ", false, true, true, true, false, false, false, false, true, true, false, true, false, true, true, false, true, false, true, false, true, true, false, true, false, false, false, false, null); assertEquals(1, role1.getOwnUserPermissions().size()); assertTrue(role1.getOwnUserPermissions().contains(PermissionHibernate.ADMINISTRATION)); } @Test public void testGetTrialSitePermission(){ Role role1 = new Role( "ROLE_XYZ", false, true, true, true, true, true, true, true, true, true, false, true, false, true, true, false, true, false, true, false, true, true, false, true, false, false, false, false, null); assertEquals(3, role1.getTrialSitePermissions().size()); assertTrue(role1.getTrialSitePermissions().contains(PermissionHibernate.READ)); assertTrue(role1.getTrialSitePermissions().contains(PermissionHibernate.WRITE)); assertTrue(role1.getTrialSitePermissions().contains(PermissionHibernate.ADMINISTRATION)); role1 = new Role( "ROLE_XYZ", false, true, true, true, true, false, true, true, false, true, false, true, false, true, true, false, true, false, true, false, true, true, false, true, false, false, false, false, null); assertEquals(2, role1.getTrialSitePermissions().size()); assertTrue(role1.getTrialSitePermissions().contains(PermissionHibernate.READ)); assertTrue(role1.getTrialSitePermissions().contains(PermissionHibernate.WRITE)); role1 = new Role( "ROLE_XYZ", false, true, true, true, false, false, false, true, false, true, false, true, false, true, true, false, true, false, true, false, true, true, false, true, false, false, false, false, null); assertEquals(1, role1.getTrialSitePermissions().size()); assertTrue(role1.getTrialSitePermissions().contains(PermissionHibernate.READ)); role1 = new Role( "ROLE_XYZ", false, true, false, true, true, false, true, false, false, true, false, true, false, true, true, false, true, false, true, false, true, true, false, true, false, false, false, false, null); assertEquals(1, role1.getTrialSitePermissions().size()); assertTrue(role1.getTrialSitePermissions().contains(PermissionHibernate.WRITE)); role1 = new Role( "ROLE_XYZ", false, true, false, true, false, true, false, false, true, true, false, true, false, true, true, false, true, false, true, false, true, true, false, true, false, false, false, false, null); assertEquals(1, role1.getTrialSitePermissions().size()); assertTrue(role1.getTrialSitePermissions().contains(PermissionHibernate.ADMINISTRATION)); } @Test public void testGetRequieredFields(){ Role role = new Role( "ROLE_XYZ", false, true, true, true, false, false, true, true, false, true, false, true, false, true, true, false, true, false, true, false, true, true, false, true, false, false, false, false, null); Map<String, Boolean> map = role.getRequiredFields(); for(String key : map.keySet()){ if(key.equals("name")) assertTrue(key,map.get(key)); else assertFalse(key,map.get(key)); } } @Test public void testUiName(){ Role role = new Role( "ROLE_XYZ", false, true, true, true, false, false, true, true, false, true, false, true, false, true, true, false, true, false, true, false, true, true, false, true, false, false, false, false, null); assertEquals("ROLE_XYZ", role.getUIName()); } }