Search in sources :

Example 1 with SyncRequestValue

use of org.apache.directory.api.ldap.extras.controls.syncrepl.syncRequest.SyncRequestValue in project directory-ldap-api by apache.

the class SyncRequestValueControlTest method testDecodeSyncRequestValueControlNoReloadHintSuccess.

/**
 * Test the decoding of a SyncRequestValue control with no reloadHint
 */
@Test
public void testDecodeSyncRequestValueControlNoReloadHintSuccess() throws Exception {
    ByteBuffer bb = ByteBuffer.allocate(0x0A);
    bb.put(new byte[] { // syncRequestValue ::= SEQUENCE {
    0x30, // syncRequestValue ::= SEQUENCE {
    0x08, 0x0A, 0x01, // mode ENUMERATED {
    0x03, // }
    0x04, 0x03, 'a', 'b', // cookie syncCookie OPTIONAL,
    'c' });
    bb.flip();
    SyncRequestValue decorator = new SyncRequestValueDecorator(codec);
    SyncRequestValue syncRequestValue = (SyncRequestValue) ((SyncRequestValueDecorator) decorator).decode(bb.array());
    assertEquals(SynchronizationModeEnum.REFRESH_AND_PERSIST, syncRequestValue.getMode());
    assertEquals("abc", Strings.utf8ToString(syncRequestValue.getCookie()));
    assertEquals(false, syncRequestValue.isReloadHint());
    // Check the encoding
    try {
        ByteBuffer buffer = ((SyncRequestValueDecorator) syncRequestValue).encode(ByteBuffer.allocate(((SyncRequestValueDecorator) syncRequestValue).computeLength()));
        String decoded = Strings.dumpBytes(buffer.array());
        String expected = Strings.dumpBytes(bb.array());
        assertEquals(expected, decoded);
    } catch (EncoderException ee) {
        fail();
    }
}
Also used : EncoderException(org.apache.directory.api.asn1.EncoderException) SyncRequestValue(org.apache.directory.api.ldap.extras.controls.syncrepl.syncRequest.SyncRequestValue) ByteBuffer(java.nio.ByteBuffer) SyncRequestValueDecorator(org.apache.directory.api.ldap.extras.controls.syncrepl_impl.SyncRequestValueDecorator) Test(org.junit.Test) AbstractCodecServiceTest(org.apache.directory.api.ldap.extras.AbstractCodecServiceTest)

Example 2 with SyncRequestValue

use of org.apache.directory.api.ldap.extras.controls.syncrepl.syncRequest.SyncRequestValue in project directory-ldap-api by apache.

the class SyncRequestValueControlTest method testDecodeSyncRequestValueControlNoCookieReloadHintTrue.

/**
 * Test the decoding of a SyncRequestValue control with no cookie, a true
 * reloadHint
 */
@Test
public void testDecodeSyncRequestValueControlNoCookieReloadHintTrue() throws Exception {
    ByteBuffer buffer = ByteBuffer.allocate(0x08);
    buffer.put(new byte[] { // syncRequestValue ::= SEQUENCE {
    0x30, // syncRequestValue ::= SEQUENCE {
    0x06, 0x0A, 0x01, // mode ENUMERATED {
    0x03, // }
    0x01, 0x01, // reloadHint BOOLEAN DEFAULT FALSE
    (byte) 0xFF });
    buffer.flip();
    SyncRequestValue decorator = new SyncRequestValueDecorator(codec);
    SyncRequestValue syncRequestValue = (SyncRequestValue) ((SyncRequestValueDecorator) decorator).decode(buffer.array());
    assertEquals(SynchronizationModeEnum.REFRESH_AND_PERSIST, syncRequestValue.getMode());
    assertNull(syncRequestValue.getCookie());
    assertEquals(true, syncRequestValue.isReloadHint());
    // Check the encoding
    try {
        ByteBuffer bb = ((SyncRequestValueDecorator) syncRequestValue).encode(ByteBuffer.allocate(((SyncRequestValueDecorator) syncRequestValue).computeLength()));
        String decoded = Strings.dumpBytes(bb.array());
        String expected = Strings.dumpBytes(buffer.array());
        assertEquals(expected, decoded);
    } catch (EncoderException ee) {
        fail();
    }
}
Also used : EncoderException(org.apache.directory.api.asn1.EncoderException) SyncRequestValue(org.apache.directory.api.ldap.extras.controls.syncrepl.syncRequest.SyncRequestValue) ByteBuffer(java.nio.ByteBuffer) SyncRequestValueDecorator(org.apache.directory.api.ldap.extras.controls.syncrepl_impl.SyncRequestValueDecorator) Test(org.junit.Test) AbstractCodecServiceTest(org.apache.directory.api.ldap.extras.AbstractCodecServiceTest)

Example 3 with SyncRequestValue

use of org.apache.directory.api.ldap.extras.controls.syncrepl.syncRequest.SyncRequestValue in project directory-ldap-api by apache.

the class SyncRequestValueControlTest method testDecodeSyncRequestValueControlNoCookieNoReloadHint.

/**
 * Test the decoding of a SyncRequestValue control with no cookie, no
 * reloadHint
 */
@Test
public void testDecodeSyncRequestValueControlNoCookieNoReloadHint() throws Exception {
    ByteBuffer bb = ByteBuffer.allocate(0x05);
    bb.put(new byte[] { // syncRequestValue ::= SEQUENCE {
    0x30, // syncRequestValue ::= SEQUENCE {
    0x03, 0x0A, 0x01, // mode ENUMERATED {
    0x03 // refreshAndPersist (3)
    // }
    });
    bb.flip();
    SyncRequestValue decorator = new SyncRequestValueDecorator(codec);
    SyncRequestValue syncRequestValue = (SyncRequestValue) ((SyncRequestValueDecorator) decorator).decode(bb.array());
    assertEquals(SynchronizationModeEnum.REFRESH_AND_PERSIST, syncRequestValue.getMode());
    assertNull(syncRequestValue.getCookie());
    assertEquals(false, syncRequestValue.isReloadHint());
    // Check the encoding
    try {
        ByteBuffer buffer = ((SyncRequestValueDecorator) syncRequestValue).encode(ByteBuffer.allocate(((SyncRequestValueDecorator) syncRequestValue).computeLength()));
        String decoded = Strings.dumpBytes(buffer.array());
        String expected = Strings.dumpBytes(bb.array());
        assertEquals(expected, decoded);
    } catch (EncoderException ee) {
        fail();
    }
}
Also used : EncoderException(org.apache.directory.api.asn1.EncoderException) SyncRequestValue(org.apache.directory.api.ldap.extras.controls.syncrepl.syncRequest.SyncRequestValue) ByteBuffer(java.nio.ByteBuffer) SyncRequestValueDecorator(org.apache.directory.api.ldap.extras.controls.syncrepl_impl.SyncRequestValueDecorator) Test(org.junit.Test) AbstractCodecServiceTest(org.apache.directory.api.ldap.extras.AbstractCodecServiceTest)

Example 4 with SyncRequestValue

use of org.apache.directory.api.ldap.extras.controls.syncrepl.syncRequest.SyncRequestValue in project directory-ldap-api by apache.

the class SyncRequestValueControlTest method testDecodeSyncRequestValueControlRefreshAndPersistSuccess.

/**
 * Test the decoding of a SyncRequestValue control with a refreshAndPersist mode
 */
@Test
public void testDecodeSyncRequestValueControlRefreshAndPersistSuccess() throws Exception {
    ByteBuffer bb = ByteBuffer.allocate(0x0D);
    bb.put(new byte[] { // syncRequestValue ::= SEQUENCE {
    0x30, // syncRequestValue ::= SEQUENCE {
    0x0B, 0x0A, 0x01, // mode ENUMERATED {
    0x03, // }
    0x04, 0x03, 'a', 'b', // cookie syncCookie OPTIONAL,
    'c', 0x01, 0x01, // reloadHint BOOLEAN DEFAULT FALSE
    0x00 });
    bb.flip();
    SyncRequestValue decorator = new SyncRequestValueDecorator(codec);
    SyncRequestValue syncRequestValue = (SyncRequestValue) ((SyncRequestValueDecorator) decorator).decode(bb.array());
    assertEquals(SynchronizationModeEnum.REFRESH_AND_PERSIST, syncRequestValue.getMode());
    assertEquals("abc", Strings.utf8ToString(syncRequestValue.getCookie()));
    assertEquals(false, syncRequestValue.isReloadHint());
    // Check the encoding
    try {
        ByteBuffer buffer = ByteBuffer.allocate(0x0A);
        buffer.put(new byte[] { // syncRequestValue ::= SEQUENCE {
        0x30, // syncRequestValue ::= SEQUENCE {
        0x08, 0x0A, 0x01, // mode ENUMERATED {
        0x03, // }
        0x04, 0x03, 'a', 'b', // cookie syncCookie OPTIONAL,
        'c' });
        buffer.flip();
        bb = ((SyncRequestValueDecorator) syncRequestValue).encode(ByteBuffer.allocate(((SyncRequestValueDecorator) syncRequestValue).computeLength()));
        String decoded = Strings.dumpBytes(bb.array());
        String expected = Strings.dumpBytes(buffer.array());
        assertEquals(expected, decoded);
    } catch (EncoderException ee) {
        fail();
    }
}
Also used : EncoderException(org.apache.directory.api.asn1.EncoderException) SyncRequestValue(org.apache.directory.api.ldap.extras.controls.syncrepl.syncRequest.SyncRequestValue) ByteBuffer(java.nio.ByteBuffer) SyncRequestValueDecorator(org.apache.directory.api.ldap.extras.controls.syncrepl_impl.SyncRequestValueDecorator) Test(org.junit.Test) AbstractCodecServiceTest(org.apache.directory.api.ldap.extras.AbstractCodecServiceTest)

Example 5 with SyncRequestValue

use of org.apache.directory.api.ldap.extras.controls.syncrepl.syncRequest.SyncRequestValue in project directory-ldap-api by apache.

the class SyncRequestValueControlTest method testDecodeSyncRequestValueControlEmptySequence.

/**
 * Test the decoding of a SyncRequestValue control with an empty sequence
 */
@Test
public void testDecodeSyncRequestValueControlEmptySequence() {
    ByteBuffer bb = ByteBuffer.allocate(0x02);
    bb.put(new byte[] { // syncRequestValue ::= SEQUENCE {
    0x30, // syncRequestValue ::= SEQUENCE {
    0x00 });
    bb.flip();
    SyncRequestValue decorator = new SyncRequestValueDecorator(codec);
    try {
        ((SyncRequestValueDecorator) decorator).decode(bb.array());
        fail("we should not get there");
    } catch (DecoderException de) {
        assertTrue(true);
    }
}
Also used : DecoderException(org.apache.directory.api.asn1.DecoderException) SyncRequestValue(org.apache.directory.api.ldap.extras.controls.syncrepl.syncRequest.SyncRequestValue) ByteBuffer(java.nio.ByteBuffer) SyncRequestValueDecorator(org.apache.directory.api.ldap.extras.controls.syncrepl_impl.SyncRequestValueDecorator) Test(org.junit.Test) AbstractCodecServiceTest(org.apache.directory.api.ldap.extras.AbstractCodecServiceTest)

Aggregations

ByteBuffer (java.nio.ByteBuffer)10 AbstractCodecServiceTest (org.apache.directory.api.ldap.extras.AbstractCodecServiceTest)10 SyncRequestValue (org.apache.directory.api.ldap.extras.controls.syncrepl.syncRequest.SyncRequestValue)10 SyncRequestValueDecorator (org.apache.directory.api.ldap.extras.controls.syncrepl_impl.SyncRequestValueDecorator)10 Test (org.junit.Test)10 EncoderException (org.apache.directory.api.asn1.EncoderException)7 DecoderException (org.apache.directory.api.asn1.DecoderException)2 SyncRequestValueImpl (org.apache.directory.api.ldap.extras.controls.syncrepl.syncRequest.SyncRequestValueImpl)1