modifier.setMaxBaseDistance( 3 );
modifier.setBase( new DN( "ou=users" ) );
SubtreeSpecification ss = modifier.getSubtreeSpecification();
DN apDn = new DN( "ou=system" );
DN entryDn = new DN( "ou=users,ou=system" );
ServerEntry entry = new DefaultServerEntry( schemaManager, entryDn );
entry.put( "objectClass", "person" );
assertFalse( evaluator.evaluate( ss, apDn, entryDn, entry ) );
entryDn = new DN( "uid=akarasulu,ou=users,ou=system" );
assertTrue( evaluator.evaluate( ss, apDn, entryDn, entry ) );
entryDn = new DN( "ou=system" );
assertFalse( evaluator.evaluate( ss, apDn, entryDn, entry ) );
entryDn = new DN( "ou=twolevels,uid=akarasulu,ou=users,ou=system" );
assertTrue( evaluator.evaluate( ss, apDn, entryDn, entry ) );
entryDn = new DN( "ou=threelevels,ou=twolevels,uid=akarasulu,ou=users,ou=system" );
assertTrue( evaluator.evaluate( ss, apDn, entryDn, entry ) );
entryDn = new DN( "ou=fourlevels,ou=threelevels,ou=twolevels,uid=akarasulu,ou=users,ou=system" );
assertFalse( evaluator.evaluate( ss, apDn, entryDn, entry ) );
// now change the refinement so the entry is rejected
entry = new DefaultServerEntry( schemaManager, entryDn );
entry.put( "objectClass", "organizationalUnit" );
assertFalse( evaluator.evaluate( ss, apDn, entryDn, entry ) );
entryDn = new DN( "uid=akarasulu,ou=users,ou=system" );