List<String> actualOrder = new ArrayList<String>();
while ( cursor.next() )
{
SearchResultEntry se = ( SearchResultEntry ) cursor.get();
Entry entry = se.getEntry();
actualOrder.add( entry.getDn().getName() );
}
cursor.close();
// remove the LAST 3 entries present in the actualOrder list, they exist on top cause they don't have "sn" attribute
// NOTE: there is no guaranteed order for these LAST 3 entries
actualOrder.remove( actualOrder.size() - 1 );
actualOrder.remove( actualOrder.size() - 1 );
actualOrder.remove( actualOrder.size() - 1 );
assertEquals( expectedCount, actualOrder.size() );
for ( int i = 0; i < expectedOrder.size(); i++ )
{
assertEquals( expectedOrder.get( i ), actualOrder.get( i ) );
}
// check reverse order
actualOrder.clear();
sk.setReverseOrder( true );
cursor = con.search( req );
while ( cursor.next() )
{
SearchResultEntry se = ( SearchResultEntry ) cursor.get();
Entry entry = se.getEntry();
actualOrder.add( entry.getDn().getName() );
}
cursor.close();