use of org.apache.directory.api.ldap.model.message.Referral in project directory-ldap-api by apache.
the class ReferralImplTest method testEqualsDifferentImpls.
@Test
public void testEqualsDifferentImpls() {
Referral refs0 = new Referral() {
public Collection<String> getLdapUrls() {
return Collections.emptyList();
}
public void addLdapUrl(String url) {
}
public void removeLdapUrl(String url) {
}
public void addLdapUrlBytes(byte[] urlBytes) {
}
public Collection<byte[]> getLdapUrlsBytes() {
return null;
}
public int getReferralLength() {
return 0;
}
public void setReferralLength(int referralLength) {
}
};
ReferralImpl refs1 = new ReferralImpl();
assertFalse("Object.equals() in effect because we did not redefine " + " equals for the new impl above", refs0.equals(refs1));
assertTrue("Empty Referrals should be equal even if they are different" + " implementation classes", refs1.equals(refs0));
}
use of org.apache.directory.api.ldap.model.message.Referral 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.model.message.Referral 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