Search in sources :

Example 16 with ModifyRequestDecorator

use of org.apache.directory.api.ldap.codec.decorators.ModifyRequestDecorator in project directory-ldap-api by apache.

the class ModifyRequestTest method testDecodeModifyRequestWrongOperation.

/**
 * Test the decoding of a ModifyRequest with an wrong operation
 */
@Test
public void testDecodeModifyRequestWrongOperation() {
    Asn1Decoder ldapDecoder = new Asn1Decoder();
    ByteBuffer stream = ByteBuffer.allocate(0x30);
    stream.put(new byte[] { 0x30, // LdapMessage
    0x2E, 0x02, 0x01, // Message ID : 49
    0x31, 0x66, // ModifyRequest
    0x29, 0x04, 0x20, 'c', 'n', '=', 't', 'e', 's', 't', 'M', 'o', 'd', 'i', 'f', 'y', ',', 'o', 'u', '=', 'u', 's', 'e', 'r', 's', ',', 'o', 'u', '=', 's', 'y', 's', 't', 'e', 'm', 0x30, 0x05, 0x30, 0x03, 0x0A, 0x01, 0x04 });
    stream.flip();
    // Allocate a LdapMessage Container
    LdapMessageContainer<ModifyRequestDecorator> ldapMessageContainer = new LdapMessageContainer<ModifyRequestDecorator>(codec);
    // Decode a ModifyRequest PDU
    try {
        ldapDecoder.decode(stream, ldapMessageContainer);
        fail("We should never reach this point !!!");
    } catch (DecoderException de) {
        assertTrue(true);
    }
}
Also used : ModifyRequestDecorator(org.apache.directory.api.ldap.codec.decorators.ModifyRequestDecorator) LdapMessageContainer(org.apache.directory.api.ldap.codec.api.LdapMessageContainer) DecoderException(org.apache.directory.api.asn1.DecoderException) Asn1Decoder(org.apache.directory.api.asn1.ber.Asn1Decoder) ByteBuffer(java.nio.ByteBuffer) Test(org.junit.Test) AbstractCodecServiceTest(org.apache.directory.api.ldap.codec.osgi.AbstractCodecServiceTest)

Example 17 with ModifyRequestDecorator

use of org.apache.directory.api.ldap.codec.decorators.ModifyRequestDecorator in project directory-ldap-api by apache.

the class ModifyRequestTest method testDecodeModifyRequestAddOperationModificationType2Vals.

/**
 * Test the decoding of a ModifyRequest with an add operation, and a
 * modification with a type and two vals
 */
@Test
public void testDecodeModifyRequestAddOperationModificationType2Vals() throws LdapException {
    Asn1Decoder ldapDecoder = new Asn1Decoder();
    ByteBuffer stream = ByteBuffer.allocate(0x3D);
    stream.put(new byte[] { 0x30, // LdapMessage
    0x3B, 0x02, 0x01, // Message ID : 49
    0x31, 0x66, // ModifyRequest
    0x36, 0x04, 0x20, 'c', 'n', '=', 't', 'e', 's', 't', 'M', 'o', 'd', 'i', 'f', 'y', ',', 'o', 'u', '=', 'u', 's', 'e', 'r', 's', ',', 'o', 'u', '=', 's', 'y', 's', 't', 'e', 'm', 0x30, 0x12, 0x30, 0x10, 0x0A, 0x01, 0x00, 0x30, 0x0B, 0x04, 0x01, 'l', 0x31, 0x06, 0x04, 0x01, 'a', 0x04, 0x01, 'b' });
    String decodedPdu = Strings.dumpBytes(stream.array());
    stream.flip();
    // Allocate a LdapMessage Container
    LdapMessageContainer<ModifyRequestDecorator> ldapMessageContainer = new LdapMessageContainer<ModifyRequestDecorator>(codec);
    // Decode a ModifyRequest PDU
    try {
        ldapDecoder.decode(stream, ldapMessageContainer);
    } catch (DecoderException de) {
        de.printStackTrace();
        fail(de.getMessage());
    }
    // Check the decoded PDU
    ModifyRequest modifyRequest = ldapMessageContainer.getMessage();
    assertEquals(49, modifyRequest.getMessageId());
    assertEquals("cn=testModify,ou=users,ou=system", modifyRequest.getName().toString());
    Object[] modifications = modifyRequest.getModifications().toArray();
    assertEquals(1, modifications.length);
    Modification modification = (Modification) modifications[0];
    Attribute attributeValue = modification.getAttribute();
    assertEquals("l", Strings.toLowerCaseAscii(attributeValue.getUpId()));
    assertEquals(2, attributeValue.size());
    assertTrue(attributeValue.contains("a"));
    assertTrue(attributeValue.contains("b"));
    // Check the encoding
    try {
        ByteBuffer bb = encoder.encodeMessage(modifyRequest);
        // Check the length
        assertEquals(0x3D, bb.limit());
        String encodedPdu = Strings.dumpBytes(bb.array());
        assertEquals(encodedPdu, decodedPdu);
    } catch (EncoderException ee) {
        ee.printStackTrace();
        fail(ee.getMessage());
    }
}
Also used : ModifyRequestDecorator(org.apache.directory.api.ldap.codec.decorators.ModifyRequestDecorator) LdapMessageContainer(org.apache.directory.api.ldap.codec.api.LdapMessageContainer) Modification(org.apache.directory.api.ldap.model.entry.Modification) Attribute(org.apache.directory.api.ldap.model.entry.Attribute) ModifyRequest(org.apache.directory.api.ldap.model.message.ModifyRequest) ByteBuffer(java.nio.ByteBuffer) DecoderException(org.apache.directory.api.asn1.DecoderException) EncoderException(org.apache.directory.api.asn1.EncoderException) Asn1Decoder(org.apache.directory.api.asn1.ber.Asn1Decoder) Test(org.junit.Test) AbstractCodecServiceTest(org.apache.directory.api.ldap.codec.osgi.AbstractCodecServiceTest)

Example 18 with ModifyRequestDecorator

use of org.apache.directory.api.ldap.codec.decorators.ModifyRequestDecorator in project directory-ldap-api by apache.

the class ModifyRequestTest method testDecodeModifyRequestAddOperationEmptyModification.

/**
 * Test the decoding of a ModifyRequest with an add operation, and an empty
 * modification
 */
@Test
public void testDecodeModifyRequestAddOperationEmptyModification() {
    Asn1Decoder ldapDecoder = new Asn1Decoder();
    ByteBuffer stream = ByteBuffer.allocate(0x32);
    stream.put(new byte[] { 0x30, // LdapMessage
    0x30, 0x02, 0x01, // Message ID : 49
    0x31, 0x66, // ModifyRequest
    0x2B, 0x04, 0x20, 'c', 'n', '=', 't', 'e', 's', 't', 'M', 'o', 'd', 'i', 'f', 'y', ',', 'o', 'u', '=', 'u', 's', 'e', 'r', 's', ',', 'o', 'u', '=', 's', 'y', 's', 't', 'e', 'm', 0x30, 0x07, 0x30, 0x05, 0x0A, 0x01, 0x00, 0x30, 0x00 });
    stream.flip();
    // Allocate a LdapMessage Container
    LdapMessageContainer<ModifyRequestDecorator> ldapMessageContainer = new LdapMessageContainer<ModifyRequestDecorator>(codec);
    // Decode a ModifyRequest PDU
    try {
        ldapDecoder.decode(stream, ldapMessageContainer);
        fail("We should never reach this point !!!");
    } catch (DecoderException de) {
        assertTrue(true);
    }
}
Also used : ModifyRequestDecorator(org.apache.directory.api.ldap.codec.decorators.ModifyRequestDecorator) LdapMessageContainer(org.apache.directory.api.ldap.codec.api.LdapMessageContainer) DecoderException(org.apache.directory.api.asn1.DecoderException) Asn1Decoder(org.apache.directory.api.asn1.ber.Asn1Decoder) ByteBuffer(java.nio.ByteBuffer) Test(org.junit.Test) AbstractCodecServiceTest(org.apache.directory.api.ldap.codec.osgi.AbstractCodecServiceTest)

Example 19 with ModifyRequestDecorator

use of org.apache.directory.api.ldap.codec.decorators.ModifyRequestDecorator in project directory-ldap-api by apache.

the class ModifyRequestTest method testDecodeModifyRequestObjectAlone.

/**
 * Test the decoding of a ModifyRequest with an object and nothing else
 */
@Test
public void testDecodeModifyRequestObjectAlone() {
    Asn1Decoder ldapDecoder = new Asn1Decoder();
    ByteBuffer stream = ByteBuffer.allocate(0x29);
    stream.put(new byte[] { 0x30, // LdapMessage
    0x27, 0x02, 0x01, // Message ID : 49
    0x31, 0x66, // ModifyRequest
    0x22, 0x04, 0x20, 'c', 'n', '=', 't', 'e', 's', 't', 'M', 'o', 'd', 'i', 'f', 'y', ',', 'o', 'u', '=', 'u', 's', 'e', 'r', 's', ',', 'o', 'u', '=', 's', 'y', 's', 't', 'e', 'm' });
    stream.flip();
    // Allocate a LdapMessage Container
    LdapMessageContainer<ModifyRequestDecorator> ldapMessageContainer = new LdapMessageContainer<ModifyRequestDecorator>(codec);
    // Decode a ModifyRequest PDU
    try {
        ldapDecoder.decode(stream, ldapMessageContainer);
        fail("We should never reach this point !!!");
    } catch (DecoderException de) {
        assertTrue(true);
    }
}
Also used : ModifyRequestDecorator(org.apache.directory.api.ldap.codec.decorators.ModifyRequestDecorator) LdapMessageContainer(org.apache.directory.api.ldap.codec.api.LdapMessageContainer) DecoderException(org.apache.directory.api.asn1.DecoderException) Asn1Decoder(org.apache.directory.api.asn1.ber.Asn1Decoder) ByteBuffer(java.nio.ByteBuffer) Test(org.junit.Test) AbstractCodecServiceTest(org.apache.directory.api.ldap.codec.osgi.AbstractCodecServiceTest)

Example 20 with ModifyRequestDecorator

use of org.apache.directory.api.ldap.codec.decorators.ModifyRequestDecorator in project directory-ldap-api by apache.

the class ModifyRequestTest method testDecodeModifyRequestAddOperationEnd.

/**
 * Test the decoding of a ModifyRequest with an add operation, and nothing
 * more
 */
@Test
public void testDecodeModifyRequestAddOperationEnd() {
    Asn1Decoder ldapDecoder = new Asn1Decoder();
    ByteBuffer stream = ByteBuffer.allocate(0x30);
    stream.put(new byte[] { 0x30, // LdapMessage
    0x2E, 0x02, 0x01, // Message ID : 49
    0x31, 0x66, // ModifyRequest
    0x29, 0x04, 0x20, 'c', 'n', '=', 't', 'e', 's', 't', 'M', 'o', 'd', 'i', 'f', 'y', ',', 'o', 'u', '=', 'u', 's', 'e', 'r', 's', ',', 'o', 'u', '=', 's', 'y', 's', 't', 'e', 'm', 0x30, 0x05, 0x30, 0x03, 0x0A, 0x01, 0x00 });
    stream.flip();
    // Allocate a LdapMessage Container
    LdapMessageContainer<ModifyRequestDecorator> ldapMessageContainer = new LdapMessageContainer<ModifyRequestDecorator>(codec);
    // Decode a ModifyRequest PDU
    try {
        ldapDecoder.decode(stream, ldapMessageContainer);
        fail("We should never reach this point !!!");
    } catch (DecoderException de) {
        assertTrue(true);
    }
}
Also used : ModifyRequestDecorator(org.apache.directory.api.ldap.codec.decorators.ModifyRequestDecorator) LdapMessageContainer(org.apache.directory.api.ldap.codec.api.LdapMessageContainer) DecoderException(org.apache.directory.api.asn1.DecoderException) Asn1Decoder(org.apache.directory.api.asn1.ber.Asn1Decoder) ByteBuffer(java.nio.ByteBuffer) Test(org.junit.Test) AbstractCodecServiceTest(org.apache.directory.api.ldap.codec.osgi.AbstractCodecServiceTest)

Aggregations

ModifyRequestDecorator (org.apache.directory.api.ldap.codec.decorators.ModifyRequestDecorator)25 DecoderException (org.apache.directory.api.asn1.DecoderException)20 ByteBuffer (java.nio.ByteBuffer)19 Asn1Decoder (org.apache.directory.api.asn1.ber.Asn1Decoder)19 LdapMessageContainer (org.apache.directory.api.ldap.codec.api.LdapMessageContainer)19 AbstractCodecServiceTest (org.apache.directory.api.ldap.codec.osgi.AbstractCodecServiceTest)19 Test (org.junit.Test)19 ModifyRequest (org.apache.directory.api.ldap.model.message.ModifyRequest)11 EncoderException (org.apache.directory.api.asn1.EncoderException)7 Attribute (org.apache.directory.api.ldap.model.entry.Attribute)7 Modification (org.apache.directory.api.ldap.model.entry.Modification)7 TLV (org.apache.directory.api.asn1.ber.tlv.TLV)4 ResponseCarryingException (org.apache.directory.api.ldap.codec.api.ResponseCarryingException)4 ModifyResponseImpl (org.apache.directory.api.ldap.model.message.ModifyResponseImpl)4 IntegerDecoderException (org.apache.directory.api.asn1.ber.tlv.IntegerDecoderException)1 CodecControl (org.apache.directory.api.ldap.codec.api.CodecControl)1 AbandonRequestDecorator (org.apache.directory.api.ldap.codec.decorators.AbandonRequestDecorator)1 AddRequestDecorator (org.apache.directory.api.ldap.codec.decorators.AddRequestDecorator)1 AddResponseDecorator (org.apache.directory.api.ldap.codec.decorators.AddResponseDecorator)1 BindRequestDecorator (org.apache.directory.api.ldap.codec.decorators.BindRequestDecorator)1