* superior
*/
@Test
public void testAddObjectClassSuperiorsATInMustPresentInSuperiorsMay() throws Exception
{
SchemaManager schemaManager = loadSystem();
int ocrSize = schemaManager.getObjectClassRegistry().size();
int goidSize = schemaManager.getGlobalOidRegistry().size();
ObjectClass objectClass = new ObjectClass( "1.1.1" );
objectClass.setNames( "Test" );
objectClass.setType( ObjectClassTypeEnum.STRUCTURAL );
objectClass.addSuperiorOids( "alias", "OpenLDAProotDSE" );
objectClass.addMustAttributeTypeOids( "aliasedObjectName", "cn" );
assertTrue( schemaManager.add( objectClass ) );
assertEquals( 0, schemaManager.getErrors().size() );
ObjectClass added = schemaManager.lookupObjectClassRegistry( "1.1.1" );
assertNotNull( added );
assertTrue( added.getNames().contains( "Test" ) );
assertNotNull( added.getSuperiors() );
assertEquals( 2, added.getSuperiors().size() );
Set<String> expectedSups = new HashSet<String>();
expectedSups.add( "alias" );
expectedSups.add( "OpenLDAProotDSE" );
for ( ObjectClass addedOC : added.getSuperiors() )
{
assertTrue( expectedSups.contains( addedOC.getName() ) );
expectedSups.remove( addedOC.getName() );
}
assertEquals( ocrSize + 1, schemaManager.getObjectClassRegistry().size() );
assertEquals( goidSize + 1, schemaManager.getGlobalOidRegistry().size() );
}