0x04, 0x03, 'i', 'o', 'd',
0x01, 0x01, (byte)0xFF
} );
buffer.flip();
SortRequestDecorator decorator = new SortRequestDecorator( codec );
SortRequestControl control = ( SortRequestControl ) decorator.decode( buffer.array() );
assertEquals( 2, control.getSortKeys().size() );
SortKey sk = control.getSortKeys().get( 0 );
assertEquals( "cn", sk.getAttributeTypeDesc() );
assertEquals( "oid", sk.getMatchingRuleId() );
assertFalse( sk.isReverseOrder() );
sk = control.getSortKeys().get( 1 );
assertEquals( "sn", sk.getAttributeTypeDesc() );
assertEquals( "iod", sk.getMatchingRuleId() );
assertTrue( sk.isReverseOrder() );
ByteBuffer encoded = ByteBuffer.allocate( buffer.capacity() );
decorator.computeLength();
decorator.encode( encoded );
assertTrue( Arrays.equals( buffer.array(), encoded.array() ) );
}