@Test
public void testSelfValue() throws Exception
{
Set<AttributeType> attrTypes = new HashSet<AttributeType>();
attrTypes.add( CN_AT );
Collection<ACITuple> tuples = getTuples( new SelfValueItem( attrTypes ) );
Entry entry = new DefaultEntry( schemaManager, USER_NAME );
entry.put( "cn", USER_NAME.getNormName() );
// Test wrong scope
AciContext aciContext = new AciContext( null, null );
aciContext.setAciTuples( tuples );
aciContext.setUserDn( USER_NAME );
aciContext.setAttributeType( CN_AT );
aciContext.setEntry( entry );
assertEquals( 0, filterA.filter( aciContext, OperationScope.ENTRY, null ).size() );
tuples = getTuples( new SelfValueItem( attrTypes ) );
aciContext = new AciContext( null, null );
aciContext.setAciTuples( tuples );
aciContext.setUserDn( USER_NAME );
aciContext.setAttributeType( CN_AT );
aciContext.setEntry( entry );
assertEquals( 1, filterA.filter( aciContext, OperationScope.ATTRIBUTE_TYPE_AND_VALUE, null ).size() );
entry.removeAttributes( "cn" );
aciContext = new AciContext( null, null );
aciContext.setAciTuples( tuples );
aciContext.setUserDn( USER_NAME );
aciContext.setAttributeType( CN_AT );
aciContext.setEntry( entry );
assertEquals( 0, filterA.filter( aciContext, OperationScope.ATTRIBUTE_TYPE_AND_VALUE, null ).size() );
tuples = getTuples( new SelfValueItem( attrTypes ) );
aciContext = new AciContext( null, null );
aciContext.setAciTuples( tuples );
aciContext.setUserDn( USER_NAME );
aciContext.setAttributeType( SN_AT );