package org.waarp.common.role;
import static org.junit.Assert.*;
import org.junit.Test;
import org.waarp.common.role.RoleDefault.ROLE;
public class RoleDefaultTest {
private void checkRole(RoleDefault role, ROLE rolecheck) {
switch (rolecheck) {
case HOST:
assertTrue(role.hasHost());
assertFalse(role.hasLimit());
assertFalse(role.hasLogControl());
assertFalse(role.hasReadOnly());
assertFalse(role.hasRule());
assertFalse(role.hasSystem());
assertFalse(role.hasTransfer());
assertFalse(role.hasUnused());
assertFalse(role.isContaining(ROLE.READONLY));
assertFalse(role.isContaining(ROLE.TRANSFER));
assertFalse(role.isContaining(ROLE.RULE));
assertTrue(role.isContaining(ROLE.HOST));
assertFalse(role.isContaining(ROLE.LIMIT));
assertFalse(role.isContaining(ROLE.SYSTEM));
assertFalse(role.isContaining(ROLE.LOGCONTROL));
assertFalse(role.isContaining(ROLE.UNUSED));
assertFalse(role.isContaining(ROLE.PARTNER));
assertFalse(role.isContaining(ROLE.CONFIGADMIN));
assertFalse(role.isContaining(ROLE.FULLADMIN));
assertFalse(role.hasNoAccess());
assertFalse(role.isContaining(ROLE.NOACCESS));
break;
case LIMIT:
assertFalse(role.hasHost());
assertTrue(role.hasLimit());
assertFalse(role.hasLogControl());
assertFalse(role.hasReadOnly());
assertFalse(role.hasRule());
assertFalse(role.hasSystem());
assertFalse(role.hasTransfer());
assertFalse(role.hasUnused());
assertFalse(role.isContaining(ROLE.READONLY));
assertFalse(role.isContaining(ROLE.TRANSFER));
assertFalse(role.isContaining(ROLE.RULE));
assertFalse(role.isContaining(ROLE.HOST));
assertTrue(role.isContaining(ROLE.LIMIT));
assertFalse(role.isContaining(ROLE.SYSTEM));
assertFalse(role.isContaining(ROLE.LOGCONTROL));
assertFalse(role.isContaining(ROLE.UNUSED));
assertFalse(role.isContaining(ROLE.PARTNER));
assertFalse(role.isContaining(ROLE.CONFIGADMIN));
assertFalse(role.isContaining(ROLE.FULLADMIN));
assertFalse(role.hasNoAccess());
assertFalse(role.isContaining(ROLE.NOACCESS));
break;
case LOGCONTROL:
assertFalse(role.hasHost());
assertFalse(role.hasLimit());
assertTrue(role.hasLogControl());
assertFalse(role.hasReadOnly());
assertFalse(role.hasRule());
assertFalse(role.hasSystem());
assertFalse(role.hasTransfer());
assertFalse(role.hasUnused());
assertFalse(role.isContaining(ROLE.READONLY));
assertFalse(role.isContaining(ROLE.TRANSFER));
assertFalse(role.isContaining(ROLE.RULE));
assertFalse(role.isContaining(ROLE.HOST));
assertFalse(role.isContaining(ROLE.LIMIT));
assertFalse(role.isContaining(ROLE.SYSTEM));
assertTrue(role.isContaining(ROLE.LOGCONTROL));
assertFalse(role.isContaining(ROLE.UNUSED));
assertFalse(role.isContaining(ROLE.PARTNER));
assertFalse(role.isContaining(ROLE.CONFIGADMIN));
assertFalse(role.isContaining(ROLE.FULLADMIN));
assertFalse(role.hasNoAccess());
assertFalse(role.isContaining(ROLE.NOACCESS));
break;
case NOACCESS:
assertFalse(role.hasHost());
assertFalse(role.hasLimit());
assertFalse(role.hasLogControl());
assertFalse(role.hasReadOnly());
assertFalse(role.hasRule());
assertFalse(role.hasSystem());
assertFalse(role.hasTransfer());
assertFalse(role.hasUnused());
assertFalse(role.isContaining(ROLE.READONLY));
assertFalse(role.isContaining(ROLE.TRANSFER));
assertFalse(role.isContaining(ROLE.RULE));
assertFalse(role.isContaining(ROLE.HOST));
assertFalse(role.isContaining(ROLE.LIMIT));
assertFalse(role.isContaining(ROLE.SYSTEM));
assertFalse(role.isContaining(ROLE.LOGCONTROL));
assertFalse(role.isContaining(ROLE.UNUSED));
assertFalse(role.isContaining(ROLE.PARTNER));
assertFalse(role.isContaining(ROLE.CONFIGADMIN));
assertFalse(role.isContaining(ROLE.FULLADMIN));
assertTrue(role.hasNoAccess());
assertTrue(role.isContaining(ROLE.NOACCESS));
break;
case READONLY:
assertFalse(role.hasHost());
assertFalse(role.hasLimit());
assertFalse(role.hasLogControl());
assertTrue(role.hasReadOnly());
assertFalse(role.hasRule());
assertFalse(role.hasSystem());
assertFalse(role.hasTransfer());
assertFalse(role.hasUnused());
assertTrue(role.isContaining(ROLE.READONLY));
assertFalse(role.isContaining(ROLE.TRANSFER));
assertFalse(role.isContaining(ROLE.RULE));
assertFalse(role.isContaining(ROLE.HOST));
assertFalse(role.isContaining(ROLE.LIMIT));
assertFalse(role.isContaining(ROLE.SYSTEM));
assertFalse(role.isContaining(ROLE.LOGCONTROL));
assertFalse(role.isContaining(ROLE.UNUSED));
assertFalse(role.isContaining(ROLE.PARTNER));
assertFalse(role.isContaining(ROLE.CONFIGADMIN));
assertFalse(role.isContaining(ROLE.FULLADMIN));
assertFalse(role.hasNoAccess());
assertFalse(role.isContaining(ROLE.NOACCESS));
break;
case RULE:
assertFalse(role.hasHost());
assertFalse(role.hasLimit());
assertFalse(role.hasLogControl());
assertFalse(role.hasReadOnly());
assertTrue(role.hasRule());
assertFalse(role.hasSystem());
assertFalse(role.hasTransfer());
assertFalse(role.hasUnused());
assertFalse(role.isContaining(ROLE.READONLY));
assertFalse(role.isContaining(ROLE.TRANSFER));
assertTrue(role.isContaining(ROLE.RULE));
assertFalse(role.isContaining(ROLE.HOST));
assertFalse(role.isContaining(ROLE.LIMIT));
assertFalse(role.isContaining(ROLE.SYSTEM));
assertFalse(role.isContaining(ROLE.LOGCONTROL));
assertFalse(role.isContaining(ROLE.UNUSED));
assertFalse(role.isContaining(ROLE.PARTNER));
assertFalse(role.isContaining(ROLE.CONFIGADMIN));
assertFalse(role.isContaining(ROLE.FULLADMIN));
assertFalse(role.hasNoAccess());
assertFalse(role.isContaining(ROLE.NOACCESS));
break;
case SYSTEM:
assertFalse(role.hasHost());
assertFalse(role.hasLimit());
assertFalse(role.hasLogControl());
assertFalse(role.hasReadOnly());
assertFalse(role.hasRule());
assertTrue(role.hasSystem());
assertFalse(role.hasTransfer());
assertFalse(role.hasUnused());
assertFalse(role.isContaining(ROLE.READONLY));
assertFalse(role.isContaining(ROLE.TRANSFER));
assertFalse(role.isContaining(ROLE.RULE));
assertFalse(role.isContaining(ROLE.HOST));
assertFalse(role.isContaining(ROLE.LIMIT));
assertTrue(role.isContaining(ROLE.SYSTEM));
assertFalse(role.isContaining(ROLE.LOGCONTROL));
assertFalse(role.isContaining(ROLE.UNUSED));
assertFalse(role.isContaining(ROLE.PARTNER));
assertFalse(role.isContaining(ROLE.CONFIGADMIN));
assertFalse(role.isContaining(ROLE.FULLADMIN));
assertFalse(role.hasNoAccess());
assertFalse(role.isContaining(ROLE.NOACCESS));
break;
case TRANSFER:
assertFalse(role.hasHost());
assertFalse(role.hasLimit());
assertFalse(role.hasLogControl());
assertFalse(role.hasReadOnly());
assertFalse(role.hasRule());
assertFalse(role.hasSystem());
assertTrue(role.hasTransfer());
assertFalse(role.hasUnused());
assertFalse(role.isContaining(ROLE.READONLY));
assertTrue(role.isContaining(ROLE.TRANSFER));
assertFalse(role.isContaining(ROLE.RULE));
assertFalse(role.isContaining(ROLE.HOST));
assertFalse(role.isContaining(ROLE.LIMIT));
assertFalse(role.isContaining(ROLE.SYSTEM));
assertFalse(role.isContaining(ROLE.LOGCONTROL));
assertFalse(role.isContaining(ROLE.UNUSED));
assertFalse(role.isContaining(ROLE.PARTNER));
assertFalse(role.isContaining(ROLE.CONFIGADMIN));
assertFalse(role.isContaining(ROLE.FULLADMIN));
assertFalse(role.hasNoAccess());
assertFalse(role.isContaining(ROLE.NOACCESS));
break;
case UNUSED:
assertFalse(role.hasHost());
assertFalse(role.hasLimit());
assertFalse(role.hasLogControl());
assertFalse(role.hasReadOnly());
assertFalse(role.hasRule());
assertFalse(role.hasSystem());
assertFalse(role.hasTransfer());
assertTrue(role.hasUnused());
assertFalse(role.isContaining(ROLE.READONLY));
assertFalse(role.isContaining(ROLE.TRANSFER));
assertFalse(role.isContaining(ROLE.RULE));
assertFalse(role.isContaining(ROLE.HOST));
assertFalse(role.isContaining(ROLE.LIMIT));
assertFalse(role.isContaining(ROLE.SYSTEM));
assertFalse(role.isContaining(ROLE.LOGCONTROL));
assertTrue(role.isContaining(ROLE.UNUSED));
assertFalse(role.isContaining(ROLE.PARTNER));
assertFalse(role.isContaining(ROLE.CONFIGADMIN));
assertFalse(role.isContaining(ROLE.FULLADMIN));
assertFalse(role.hasNoAccess());
assertFalse(role.isContaining(ROLE.NOACCESS));
break;
case PARTNER:
assertFalse(role.hasHost());
assertFalse(role.hasLimit());
assertFalse(role.hasLogControl());
assertTrue(role.hasReadOnly());
assertFalse(role.hasRule());
assertFalse(role.hasSystem());
assertTrue(role.hasTransfer());
assertFalse(role.hasUnused());
assertTrue(role.isContaining(ROLE.READONLY));
assertTrue(role.isContaining(ROLE.TRANSFER));
assertFalse(role.isContaining(ROLE.RULE));
assertFalse(role.isContaining(ROLE.HOST));
assertFalse(role.isContaining(ROLE.LIMIT));
assertFalse(role.isContaining(ROLE.SYSTEM));
assertFalse(role.isContaining(ROLE.LOGCONTROL));
assertFalse(role.isContaining(ROLE.UNUSED));
assertTrue(role.isContaining(ROLE.PARTNER));
assertFalse(role.isContaining(ROLE.CONFIGADMIN));
assertFalse(role.isContaining(ROLE.FULLADMIN));
assertFalse(role.hasNoAccess());
assertFalse(role.isContaining(ROLE.NOACCESS));
break;
case CONFIGADMIN:
assertTrue(role.hasHost());
assertFalse(role.hasLimit());
assertFalse(role.hasLogControl());
assertTrue(role.hasReadOnly());
assertTrue(role.hasRule());
assertFalse(role.hasSystem());
assertTrue(role.hasTransfer());
assertFalse(role.hasUnused());
assertTrue(role.isContaining(ROLE.READONLY));
assertTrue(role.isContaining(ROLE.TRANSFER));
assertTrue(role.isContaining(ROLE.RULE));
assertTrue(role.isContaining(ROLE.HOST));
assertFalse(role.isContaining(ROLE.LIMIT));
assertFalse(role.isContaining(ROLE.SYSTEM));
assertFalse(role.isContaining(ROLE.LOGCONTROL));
assertFalse(role.isContaining(ROLE.UNUSED));
assertTrue(role.isContaining(ROLE.PARTNER));
assertTrue(role.isContaining(ROLE.CONFIGADMIN));
assertFalse(role.isContaining(ROLE.FULLADMIN));
assertFalse(role.hasNoAccess());
assertFalse(role.isContaining(ROLE.NOACCESS));
break;
case FULLADMIN:
assertTrue(role.hasHost());
assertTrue(role.hasLimit());
assertTrue(role.hasLogControl());
assertTrue(role.hasReadOnly());
assertTrue(role.hasRule());
assertTrue(role.hasSystem());
assertTrue(role.hasTransfer());
assertFalse(role.hasUnused());
assertTrue(role.isContaining(ROLE.READONLY));
assertTrue(role.isContaining(ROLE.TRANSFER));
assertTrue(role.isContaining(ROLE.RULE));
assertTrue(role.isContaining(ROLE.HOST));
assertTrue(role.isContaining(ROLE.LIMIT));
assertTrue(role.isContaining(ROLE.SYSTEM));
assertTrue(role.isContaining(ROLE.LOGCONTROL));
assertFalse(role.isContaining(ROLE.UNUSED));
assertTrue(role.isContaining(ROLE.PARTNER));
assertTrue(role.isContaining(ROLE.CONFIGADMIN));
assertTrue(role.isContaining(ROLE.FULLADMIN));
assertFalse(role.hasNoAccess());
assertFalse(role.isContaining(ROLE.NOACCESS));
break;
default:
break;
}
}
@Test
public void testRoleDefault() {
RoleDefault role = new RoleDefault();
checkRole(role, ROLE.NOACCESS);
}
@Test
public void testRoleDefaultROLE() {
for (ROLE roletoset : ROLE.values()) {
RoleDefault role = new RoleDefault(roletoset);
checkRole(role, roletoset);
role.clear();
checkRole(role, ROLE.NOACCESS);
}
}
@Test
public void testAddRole() {
for (ROLE roletoset : ROLE.values()) {
RoleDefault role = new RoleDefault();
checkRole(role, ROLE.NOACCESS);
role.addRole(roletoset);
checkRole(role, roletoset);
role.clear();
checkRole(role, ROLE.NOACCESS);
}
}
@Test
public void testSetRole() {
for (ROLE roletoset : ROLE.values()) {
RoleDefault role = new RoleDefault();
checkRole(role, ROLE.NOACCESS);
role.addRole(ROLE.FULLADMIN);
checkRole(role, ROLE.FULLADMIN);
role.setRole(roletoset);
checkRole(role, roletoset);
}
}
@Test
public void testSetRoleDefault() {
for (ROLE roletoset : ROLE.values()) {
RoleDefault role = new RoleDefault();
checkRole(role, ROLE.NOACCESS);
role.addRole(roletoset);
checkRole(role, roletoset);
RoleDefault role2 = new RoleDefault();
checkRole(role2, ROLE.NOACCESS);
role2.setRoleDefault(role);
checkRole(role2, roletoset);
role.clear();
checkRole(role, ROLE.NOACCESS);
checkRole(role2, roletoset);
}
}
}