@Test
public void testAddGetChildRole()
throws RbacManagerException
{
if ( !supportChildRole() )
{
log.info( "child role feature not supported by the RBACManager impl: {}",
rbacManager.getClass().getName() );
return;
}
RBACManager manager = rbacManager;
assertNotNull( manager );
rbacManager.eraseDatabase();
eventTracker.rbacInit( true );
Role adminRole = manager.saveRole( getAdminRole() );
Role develRole = manager.saveRole( getDeveloperRole() );
assertEquals( 2, manager.getAllRoles().size() );
Role actualAdmin = manager.getRole( adminRole.getName() );
Role actualDevel = manager.getRole( develRole.getName() );
assertEquals( adminRole.getName(), actualAdmin.getName() );
assertEquals( adminRole.getChildRoleNames(), actualAdmin.getChildRoleNames() );
assertEquals( develRole, actualDevel );
manager.addChildRole( develRole, getProjectAdminRole() );
manager.saveRole( develRole );
assertEquals( 3, manager.getAllRoles().size() );
assertEventTracker( 3, 0, 3, 0, true, true );
}