public void testRoleMerging()
throws Exception
{
List<CRole> roles = manager.listRoles();
CRole anon = manager.readRole("anon");
assertTrue("roles: " + anon.getRoles(), anon.getRoles().contains("other"));
assertTrue("roles: " + anon.getRoles(), anon.getRoles().contains("role2"));
assertEquals("roles: " + anon.getRoles(), 2, anon.getRoles().size());
assertTrue(anon.getPrivileges().contains("priv1"));
assertTrue(anon.getPrivileges().contains("4-test"));
assertEquals("privs: " + anon.getPrivileges(), 2, anon.getPrivileges().size());
assertEquals("Test Anon Role", anon.getName());
assertEquals("Test Anon Role Description", anon.getDescription());
assertEquals(60, anon.getSessionTimeout());
CRole other = manager.readRole("other");
assertTrue(other.getRoles().contains("role2"));
assertEquals("roles: " + other.getRoles(), 1, other.getRoles().size());
assertTrue(other.getPrivileges().contains("6-test"));
assertTrue(other.getPrivileges().contains("priv2"));
assertEquals("privs: " + other.getPrivileges(), 2, other.getPrivileges().size());
assertEquals("Other Role", other.getName());
assertEquals("Other Role Description", other.getDescription());
assertEquals(60, other.getSessionTimeout());
// all roles
assertEquals(8, roles.size());
}