SchemaManager schemaManager = loadSystem();
int atrSize = schemaManager.getAttributeTypeRegistry().size();
int goidSize = schemaManager.getGlobalOidRegistry().size();
// Create the collective attribute first
MutableAttributeType attributeType = new MutableAttributeType( "1.1.0" );
attributeType.setEqualityOid( "2.5.13.1" );
attributeType.setOrderingOid( null );
attributeType.setSubstringOid( null );
attributeType.setSyntaxOid( "1.3.6.1.4.1.1466.115.121.1.26" );
attributeType.setUsage( UsageEnum.USER_APPLICATIONS );
attributeType.setCollective( true );
// It should not fail
assertTrue( schemaManager.add( attributeType ) );
assertTrue( isATPresent( schemaManager, "1.1.0" ) );
assertEquals( atrSize + 1, schemaManager.getAttributeTypeRegistry().size() );
assertEquals( goidSize + 1, schemaManager.getGlobalOidRegistry().size() );
// Now try to create an AT which is a subtype of teh create collective attribute
MutableAttributeType subType = new MutableAttributeType( "1.1.1" );
subType.setEqualityOid( "2.5.13.1" );
subType.setOrderingOid( null );
subType.setSubstringOid( null );
subType.setSuperiorOid( "1.1.0" );
subType.setSyntaxOid( "1.3.6.1.4.1.1466.115.121.1.26" );
subType.setUsage( UsageEnum.USER_APPLICATIONS );
subType.setCollective( false );
// It should fail
assertFalse( schemaManager.add( subType ) );
assertFalse( isATPresent( schemaManager, "1.1.1" ) );