/* See LICENSE for licensing and NOTICE for copyright. */
package org.ldaptive.control;
import java.util.EnumSet;
import org.ldaptive.LdapUtils;
import org.testng.Assert;
import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;
/**
* Unit test for {@link PersistentSearchRequestControl}.
*
* @author Middleware Services
*/
public class PersistentSearchRequestControlTest
{
/**
* Persistent search request control test data.
*
* @return response test data
*/
@DataProvider(name = "request")
public Object[][] createData()
{
return
new Object[][] {
// all types, changesOnly=true, returnEcs=true
// BER: 30:09:02:01:0F:01:01:FF:01:01:FF
new Object[] {
LdapUtils.base64Decode("MAkCAQ8BAf8BAf8="),
new PersistentSearchRequestControl(EnumSet.allOf(PersistentSearchChangeType.class), true, true),
},
// modify type, changesOnly=false, returnEcs=true
// BER: 30:09:02:01:04:01:01:00:01:01:FF
new Object[] {
LdapUtils.base64Decode("MAkCAQQBAQABAf8="),
new PersistentSearchRequestControl(EnumSet.of(PersistentSearchChangeType.MODIFY), false, true),
},
// add and delete types, changesOnly=true, returnEcs=false
// BER: 30:09:02:01:03:01:01:FF:01:01:00
new Object[] {
LdapUtils.base64Decode("MAkCAQMBAf8BAQA="),
new PersistentSearchRequestControl(
EnumSet.of(PersistentSearchChangeType.ADD, PersistentSearchChangeType.DELETE),
true,
false),
},
};
}
/**
* @param berValue to encode.
* @param expected persistent search request control to test.
*
* @throws Exception On test failure.
*/
@Test(groups = {"control"}, dataProvider = "request")
public void encode(final byte[] berValue, final PersistentSearchRequestControl expected)
throws Exception
{
Assert.assertEquals(expected.encode(), berValue);
}
}