BindOperationRecorder implements
        CompensatingTransactionOperationRecorder { public CompensatingTransactionOperationExecutor recordOperation( Object[] args) { if (args == null || args.length != 3) { throw new IllegalArgumentException( "Invalid arguments for bind operation"); } Name dn = LdapTransactionUtils.getFirstArgumentAsName(args); Object object = args[1]; Attributes attributes = null; if (args[2] != null && !(args[2] instanceof Attributes)) { throw new IllegalArgumentException( "Invalid third argument to bind operation"); } else if (args[2] != null) { attributes = (Attributes) args[2]; } return new BindOperationExecutor(ldapOperations, dn, object, attributes); } BindOperationRecorder(LdapOperations ldapOperations); CompensatingTransactionOperationExecutor recordOperation(
            Object[] args);  }
@Test(expected = IllegalArgumentException.class) public void testPerformOperation_Invalid() { BindOperationRecorder tested = new BindOperationRecorder( ldapOperationsMock); Object expectedDn = new Object(); tested.recordOperation(new Object[]{expectedDn}); }