use of org.apache.directory.api.ldap.codec.decorators.AddResponseDecorator in project directory-ldap-api by apache.
the class LdapResultTest method testDecodeAddResponseEmptyResultCodeOKReferrals.
/**
* Test the decoding of a AddResponse with a valid LdapResult with referrals
*/
@Test
public void testDecodeAddResponseEmptyResultCodeOKReferrals() {
Asn1Decoder ldapDecoder = new Asn1Decoder();
ByteBuffer stream = ByteBuffer.allocate(0x24);
stream.put(new byte[] { 0x30, // LDAPMessage ::=SEQUENCE {
0x22, 0x02, 0x01, // messageID MessageID
0x01, 0x69, // CHOICE { ..., addResponse AddResponse, ...
0x1D, 0x0A, 0x01, // resultCode success (Referral)
0x0A, 0x04, // Empty matched Dn
0x00, 0x04, // Empty errorMessage
0x00, (byte) 0xA3, 0x14, 0x04, 0x08, 'l', 'd', 'a', 'p', ':', '/', '/', '/', 0x04, 0x08, 'l', 'd', 'a', 'p', ':', '/', '/', '/' });
String decodedPdu = Strings.dumpBytes(stream.array());
stream.flip();
// Allocate a LdapMessage Container
LdapMessageContainer<AddResponseDecorator> container = new LdapMessageContainer<AddResponseDecorator>(codec);
// Decode the AddResponse PDU
try {
ldapDecoder.decode(stream, container);
} catch (DecoderException de) {
de.printStackTrace();
fail(de.getMessage());
}
// Check the decoded AddResponse
AddResponse addResponse = container.getMessage();
assertEquals(1, addResponse.getMessageId());
assertEquals(ResultCodeEnum.REFERRAL, addResponse.getLdapResult().getResultCode());
assertEquals("", addResponse.getLdapResult().getMatchedDn().getName());
assertEquals("", addResponse.getLdapResult().getDiagnosticMessage());
Referral referral = addResponse.getLdapResult().getReferral();
assertNotNull(referral);
assertEquals(2, referral.getLdapUrls().size());
Collection<String> ldapUrls = referral.getLdapUrls();
for (String ldapUrl : ldapUrls) {
assertEquals("ldap:///", ldapUrl);
}
try {
ByteBuffer bb = encoder.encodeMessage(addResponse);
// Check the length
assertEquals(0x24, bb.limit());
String encodedPdu = Strings.dumpBytes(bb.array());
assertEquals(encodedPdu, decodedPdu);
} catch (EncoderException ee) {
ee.printStackTrace();
fail(ee.getMessage());
}
}
use of org.apache.directory.api.ldap.codec.decorators.AddResponseDecorator in project directory-ldap-api by apache.
the class LdapResultTest method testDecodeAddResponseEmptyResultCodeOK.
/**
* Test the decoding of a AddResponse with a valid LdapResult
*/
@Test
public void testDecodeAddResponseEmptyResultCodeOK() {
Asn1Decoder ldapDecoder = new Asn1Decoder();
ByteBuffer stream = ByteBuffer.allocate(0x0E);
stream.put(new byte[] { // LDAPMessage ::=SEQUENCE {
0x30, // LDAPMessage ::=SEQUENCE {
0x0C, 0x02, 0x01, // messageID MessageID
0x01, 0x69, // CHOICE { ..., addResponse AddResponse, ...
0x07, 0x0A, 0x01, // resultCode success
0x00, 0x04, // Empty matched Dn
0x00, 0x04, // Empty errorMessage
0x00 });
String decodedPdu = Strings.dumpBytes(stream.array());
stream.flip();
// Allocate a LdapMessage Container
LdapMessageContainer<AddResponseDecorator> container = new LdapMessageContainer<AddResponseDecorator>(codec);
// Decode the AddResponse PDU
try {
ldapDecoder.decode(stream, container);
} catch (DecoderException de) {
de.printStackTrace();
fail(de.getMessage());
}
// Check the decoded AddResponse
AddResponse addResponse = container.getMessage();
assertEquals(1, addResponse.getMessageId());
assertEquals(ResultCodeEnum.SUCCESS, addResponse.getLdapResult().getResultCode());
assertEquals("", addResponse.getLdapResult().getMatchedDn().getName());
assertEquals("", addResponse.getLdapResult().getDiagnosticMessage());
try {
ByteBuffer bb = encoder.encodeMessage(addResponse);
// Check the length
assertEquals(0x0E, bb.limit());
String encodedPdu = Strings.dumpBytes(bb.array());
assertEquals(encodedPdu, decodedPdu);
} catch (EncoderException ee) {
ee.printStackTrace();
fail(ee.getMessage());
}
}
use of org.apache.directory.api.ldap.codec.decorators.AddResponseDecorator in project directory-ldap-api by apache.
the class LdapResultTest method testDecodeAddResponseEmptyResultCodeEmptyReferral.
/**
* Test the decoding of a AddResponse with a valid LdapResult with referrals
* and an empty referral
*/
@Test
public void testDecodeAddResponseEmptyResultCodeEmptyReferral() {
Asn1Decoder ldapDecoder = new Asn1Decoder();
ByteBuffer stream = ByteBuffer.allocate(0x1C);
stream.put(new byte[] { // LDAPMessage ::=SEQUENCE {
0x30, // LDAPMessage ::=SEQUENCE {
0x1A, 0x02, 0x01, // messageID MessageID
0x01, 0x69, // CHOICE { ..., addResponse AddResponse, ...
0x15, 0x0A, 0x01, // resultCode success (Referral)
0x0A, 0x04, // Empty matched Dn
0x00, 0x04, // Empty errorMessage
0x00, (byte) 0xA3, 0x0C, 0x04, 0x08, 'l', 'd', 'a', 'p', ':', '/', '/', '/', 0x04, 0x00 });
String decodedPdu = Strings.dumpBytes(stream.array());
stream.flip();
// Allocate a LdapMessage Container
LdapMessageContainer<AddResponseDecorator> container = new LdapMessageContainer<AddResponseDecorator>(codec);
// Decode the AddResponse PDU
try {
ldapDecoder.decode(stream, container);
} catch (DecoderException de) {
de.printStackTrace();
fail(de.getMessage());
}
// Check the decoded AddResponse
AddResponse addResponse = container.getMessage();
assertEquals(1, addResponse.getMessageId());
assertEquals(ResultCodeEnum.REFERRAL, addResponse.getLdapResult().getResultCode());
assertEquals("", addResponse.getLdapResult().getMatchedDn().getName());
assertEquals("", addResponse.getLdapResult().getDiagnosticMessage());
Referral referral = addResponse.getLdapResult().getReferral();
assertNotNull(referral);
assertEquals(2, referral.getLdapUrls().size());
Collection<String> ldapUrls = referral.getLdapUrls();
String[] expected = new String[] { "ldap:///", "" };
int i = 0;
for (String ldapUrl : ldapUrls) {
assertEquals(expected[i], ldapUrl);
i++;
}
try {
ByteBuffer bb = encoder.encodeMessage(addResponse);
// Check the length
assertEquals(0x1C, bb.limit());
String encodedPdu = Strings.dumpBytes(bb.array());
assertEquals(encodedPdu, decodedPdu);
} catch (EncoderException ee) {
ee.printStackTrace();
fail(ee.getMessage());
}
}
Aggregations