/* See LICENSE for licensing and NOTICE for copyright. */
package org.ldaptive.control;
import org.ldaptive.LdapUtils;
import org.testng.Assert;
import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;
/**
* Unit test for {@link SyncRequestControl}.
*
* @author Middleware Services
*/
public class SyncRequestControlTest
{
/**
* Sync request control test data.
*
* @return response test data
*/
@DataProvider(name = "request")
public Object[][] createData()
{
return
new Object[][] {
// refresh only, reloadHint false
// BER:30:06:02:01:01:01:01:00
new Object[] {
LdapUtils.base64Decode("MAYCAQEBAQA="),
new SyncRequestControl(SyncRequestControl.Mode.REFRESH_ONLY, true),
},
// refresh and persist with cookie, reloadHint true
// BER:30:30:3C:0A:01:03:04:34:72:69:64:3D:30:30:30:2C:63:73:6E:3D:32:
// 30:31:32:30:37:30:36:31:38:31:35:35:32:2E:33:33:37:37:31:38:5A:
// 23:30:30:30:30:30:30:23:30:30:30:23:30:30:30:30:30:30:01:01:FF:
new Object[] {
LdapUtils.base64Decode(
"MDwCAQMENHJpZD0wMDAsY3NuPTIwMTIwNzA2MTgxNTUyLjMzNzcxOFojMDAwMDAw" +
"IzAwMCMwMDAwMDABAf8="),
new SyncRequestControl(
SyncRequestControl.Mode.REFRESH_AND_PERSIST,
new byte[] {
(byte) 0x72, (byte) 0x69, (byte) 0x64, (byte) 0x3D, (byte) 0x30,
(byte) 0x30, (byte) 0x30, (byte) 0x2C, (byte) 0x63, (byte) 0x73,
(byte) 0x6E, (byte) 0x3D, (byte) 0x32, (byte) 0x30, (byte) 0x31,
(byte) 0x32, (byte) 0x30, (byte) 0x37, (byte) 0x30, (byte) 0x36,
(byte) 0x31, (byte) 0x38, (byte) 0x31, (byte) 0x35, (byte) 0x35,
(byte) 0x32, (byte) 0x2E, (byte) 0x33, (byte) 0x33, (byte) 0x37,
(byte) 0x37, (byte) 0x31, (byte) 0x38, (byte) 0x5A, (byte) 0x23,
(byte) 0x30, (byte) 0x30, (byte) 0x30, (byte) 0x30, (byte) 0x30,
(byte) 0x30, (byte) 0x23, (byte) 0x30, (byte) 0x30, (byte) 0x30,
(byte) 0x23, (byte) 0x30, (byte) 0x30, (byte) 0x30, (byte) 0x30,
(byte) 0x30, (byte) 0x30,
},
true,
true),
},
};
}
/**
* @param berValue to encode.
* @param expected sync request control to test.
*
* @throws Exception On test failure.
*/
@Test(groups = {"control"}, dataProvider = "request")
public void decode(final byte[] berValue, final SyncRequestControl expected)
throws Exception
{
Assert.assertEquals(expected.encode(), berValue);
}
}