TestDN.java revision 1213c76646ee52dee5230cb219a7af951e8433b9
/*
* CDDL HEADER START
*
* The contents of this file are subject to the terms of the
* Common Development and Distribution License, Version 1.0 only
* (the "License"). You may not use this file except in compliance
* with the License.
*
* You can obtain a copy of the license at
* See the License for the specific language governing permissions
* and limitations under the License.
*
* When distributing Covered Code, include this CDDL HEADER in each
* file and include the License file at
* trunk/opends/resource/legal-notices/OpenDS.LICENSE. If applicable,
* add the following below this CDDL HEADER, with the fields enclosed
* by brackets "[]" replaced with your own identifying information:
* Portions Copyright [yyyy] [name of copyright owner]
*
* CDDL HEADER END
*
*
* Copyright 2006-2009 Sun Microsystems, Inc.
* Portions Copyright 2012 ForgeRock AS
*/
/**
* This class defines a set of tests for the org.opends.server.core.DN
* class.
*/
public class TestDN extends TypesTestCase {
/**
* DN test data provider.
*
* @return The array of test DN strings.
*/
public Object[][] createData() {
return new Object[][] {
{ "", "", "" },
{ " ", "", "" },
{ "cn=", "cn=", "cn=" },
{ "cn= ", "cn=", "cn=" },
{ "cn =", "cn=", "cn=" },
{ "cn = ", "cn=", "cn=" },
{ "dc=com", "dc=com", "dc=com" },
{ "dc=com+o=com", "dc=com+o=com", "dc=com+o=com" },
{ "DC=COM", "dc=com", "DC=COM" },
{ "dc = com", "dc=com", "dc=com" },
{ " dc = com ", "dc=com", "dc=com" },
{ "dc=example,dc=com", "dc=example,dc=com",
"dc=example,dc=com" },
{ "dc=example, dc=com", "dc=example,dc=com",
"dc=example,dc=com" },
{ "dc=example ,dc=com", "dc=example,dc=com",
"dc=example,dc=com" },
{ "dc =example , dc = com", "dc=example,dc=com",
"dc=example,dc=com" },
{ "givenName=John+cn=Doe,ou=People,dc=example,dc=com",
"cn=doe+givenname=john,ou=people,dc=example,dc=com",
"givenName=John+cn=Doe,ou=People,dc=example,dc=com" },
{ "givenName=John\\+cn=Doe,ou=People,dc=example,dc=com",
"givenname=john\\+cn=doe,ou=people,dc=example,dc=com",
"givenName=John\\+cn=Doe,ou=People,dc=example,dc=com" },
{ "cn=Doe\\, John,ou=People,dc=example,dc=com",
"cn=doe\\, john,ou=people,dc=example,dc=com",
"cn=Doe\\, John,ou=People,dc=example,dc=com" },
{ "UID=jsmith,DC=example,DC=net",
"uid=jsmith,dc=example,dc=net",
"UID=jsmith,DC=example,DC=net" },
{ "OU=Sales+CN=J. Smith,DC=example,DC=net",
"cn=j. smith+ou=sales,dc=example,dc=net",
"OU=Sales+CN=J. Smith,DC=example,DC=net" },
{ "CN=James \\\"Jim\\\" Smith\\, III,DC=example,DC=net",
"cn=james \\\"jim\\\" smith\\, iii,dc=example,dc=net",
"CN=James \\\"Jim\\\" Smith\\, III,DC=example,DC=net" },
{ "CN=John Smith\\2C III,DC=example,DC=net",
"cn=john smith\\, iii,dc=example,dc=net",
"CN=John Smith\\, III,DC=example,DC=net" },
{ "CN=\\23John Smith\\20,DC=example,DC=net",
"cn=\\#john smith,dc=example,dc=net",
"CN=\\#John Smith\\ ,DC=example,DC=net" },
{ "CN=Before\\0dAfter,DC=example,DC=net",
//\0d is a hex representation of Carriage return. It is mapped
//to a SPACE as defined in the MAP ( RFC 4518)
"cn=before after,dc=example,dc=net",
"CN=Before\\0dAfter,DC=example,DC=net" },
{ "1.3.6.1.4.1.1466.0=#04024869",
//Unicode codepoints from 0000-0008 are mapped to nothing.
"1.3.6.1.4.1.1466.0=hi",
"1.3.6.1.4.1.1466.0=\\04\\02Hi" },
{ "1.1.1=", "1.1.1=", "1.1.1=" },
{ "CN=Lu\\C4\\8Di\\C4\\87", "cn=lu\u010di\u0107",
"CN=Lu\u010di\u0107" },
{ "ou=\\e5\\96\\b6\\e6\\a5\\ad\\e9\\83\\a8,o=Airius",
"ou=\u55b6\u696d\u90e8,o=airius",
"ou=\u55b6\u696d\u90e8,o=Airius" },
{ "photo=\\ john \\ ,dc=com", "photo=\\ john \\ ,dc=com",
"photo=\\ john \\ ,dc=com" },
{ "AB-global=", "ab-global=", "AB-global=" },
{ "OU= Sales + CN = J. Smith ,DC=example,DC=net",
"cn=j. smith+ou=sales,dc=example,dc=net",
"OU=Sales+CN=J. Smith,DC=example,DC=net" },
{ "cn=John+a=", "a=+cn=john", "cn=John+a=" },
{ "OID.1.3.6.1.4.1.1466.0=#04024869",
//Unicode codepoints from 0000-0008 are mapped to nothing.
"1.3.6.1.4.1.1466.0=hi",
"1.3.6.1.4.1.1466.0=\\04\\02Hi" },
{ "O=\"Sue, Grabbit and Runn\",C=US",
"o=sue\\, grabbit and runn,c=us",
"O=Sue\\, Grabbit and Runn,C=US" }, };
}
/**
* Illegal DN test data provider.
*
* @return The array of illegal test DN strings.
*/
public Object[][] createIllegalData() {
{ " =Jim" }, { "= Jim" }, { " = Jim" }, { "cn+Jim" }, { "cn + Jim" },
{ "cn=Jim+" }, { "cn=Jim+manager" }, { "cn=Jim+manager " },
{ "cn=Jim+manager," }, { "cn=Jim," }, { "cn=Jim, " }, { "c[n]=Jim" },
{ "_cn=Jim" }, { "c_n=Jim" }, { "cn\"=Jim" }, { "c\"n=Jim" },
{ "1cn=Jim" }, { "cn+uid=Jim" }, { "-cn=Jim" }, { "/tmp=a" },
{ "\\tmp=a" }, { "cn;lang-en=Jim" }, { "@cn=Jim" }, { "_name_=Jim" },
{ "\u03c0=pi" }, { "v1.0=buggy" }, { "1.=buggy" }, { ".1=buggy" },
{ "oid.1." }, { "1.3.6.1.4.1.1466..0=#04024869" },
{ "cn=#a" }, { "cn=#ag" }, { "cn=#ga" }, { "cn=#abcdefgh" },
{ "cn=a\\b" }, { "cn=a\\bg" }, { "cn=\"hello" },
{"cn=+mail=,dc=example,dc=com"},{"cn=xyz+sn=,dc=example,dc=com"},
{"cn=,dc=example,dc=com"},
// {"cn=a+cn=b,dc=example,dc=com"}
};
}
/**
* Set up the environment for performing the tests in this suite.
*
* @throws Exception
* If the environment could not be set up.
*/
// This test suite depends on having the schema available, so
// we'll start the server.
"x-test-integer-type", DirectoryServer
}
/**
* Tests the create method.
*
* @throws Exception
* If the test failed unexpectedly.
*/
@Test
public void testCreateNullDN1() throws Exception {
}
/**
* Tests the create method.
*
* @throws Exception
* If the test failed unexpectedly.
*/
@Test
public void testCreateNullDN2() throws Exception {
}
/**
* Tests the create method.
*
* @throws Exception
* If the test failed unexpectedly.
*/
@Test
public void testCreateNullDN3() throws Exception {
}
/**
* Tests the create method.
*
* @throws Exception
* If the test failed unexpectedly.
*/
@Test
public void testCreateNullDN4() throws Exception {
}
/**
* Tests the create method.
*
* @throws Exception
* If the test failed unexpectedly.
*/
@Test
public void testCreateWithSingleRDN1() throws Exception {
}
/**
* Tests the create method.
*
* @throws Exception
* If the test failed unexpectedly.
*/
@Test
public void testCreateWithMultipleRDNs1() throws Exception {
}
/**
* Tests the create method.
*
* @throws Exception
* If the test failed unexpectedly.
*/
@Test
public void testCreateWithMultipleRDNs2() throws Exception {
}
/**
* Tests the <CODE>decode</CODE> method which takes a String
* argument.
*
* @param rawDN
* Raw DN string representation.
* @param normDN
* Normalized DN string representation.
* @param stringDN
* String representation.
* @throws Exception
* If the test failed unexpectedly.
*/
}
/**
* Tests the <CODE>decode</CODE> method which takes a String
* argument.
*
* @param rawDN
* Raw DN string representation.
* @param normDN
* Normalized DN string representation.
* @param stringDN
* String representation.
* @throws Exception
* If the test failed unexpectedly.
*/
}
/**
* Tests the toNoramlizedString methods.
*
* @throws Exception
* If the test failed unexpectedly.
*/
@Test
public void testToNormalizedString() throws Exception {
}
/**
* Tests both variants of the {@code decode} method with null arguments.
*
* @throws Exception
* If the test failed unexpectedly.
*/
@Test
public void testDecodeNull() throws Exception {
}
/**
* Test that decoding an illegal DN as a String throws an exception.
*
* @param dn
* The illegal DN to be tested.
* @throws Exception
* If the test failed unexpectedly.
*/
try {
} catch (DirectoryException e) {
throw e;
} catch (Exception e) {
+ "> threw the wrong type of exception");
throw e;
}
+ "> did not throw an exception");
}
/**
* Test that decoding an illegal DN as an octet string throws an
* exception.
*
* @param dn
* The illegal DN to be tested.
* @throws Exception
* If the test failed unexpectedly.
*/
try {
} catch (DirectoryException e) {
throw e;
} catch (Exception e) {
+ "> threw the wrong type of exception");
throw e;
}
+ "> did not throw an exception");
}
/**
* Test the nullDN method.
*
* @throws Exception
* If the test failed unexpectedly.
*/
@Test
public void testNullDN() throws Exception {
}
/**
* Test the isNullDN method.
*
* @throws Exception
* If the test failed unexpectedly.
*/
@Test
public void testIsNullDNWithNullDN() throws Exception {
}
/**
* Test the isNullDN method.
*
* @throws Exception
* If the test failed unexpectedly.
*/
@Test
public void testIsNullDNWithNonNullDN() throws Exception {
}
/**
* DN test data provider.
*
* @return The array of test DN strings.
*/
public Object[][] createNumComponentsTestData() {
{ "dc=opends,dc=com", 2 },
{ "dc=world,dc=opends,dc=com", 3 },
{ "dc=hello,dc=world,dc=opends,dc=com", 4 }, };
}
/**
* Test the getNumComponents method.
*
* @param s
* The test DN string.
* @param sz
* The expected number of RDNs.
* @throws Exception
* If the test failed unexpectedly.
*/
}
/**
* DN test data provider.
*
* @return The array of test DN strings.
*/
public Object[][] createParentAndRDNTestData() {
return new Object[][] {
{ "dc=opends,dc=com", "dc=com", "dc=opends" },
{ "dc=world,dc=opends,dc=com", "dc=opends,dc=com", "dc=world" },
{ "dc=hello,dc=world,dc=opends,dc=com",
"dc=world,dc=opends,dc=com", "dc=hello" }, };
}
/**
* Test the getParent method.
*
* @param s
* The test DN string.
* @param p
* The expected parent.
* @param r
* The expected rdn.
* @throws Exception
* If the test failed unexpectedly.
*/
throws Exception {
}
/**
* Retrieves the naming contexts defined in the server.
*/
public Object[][] getNamingContexts() {
{
}
{
}
{
}
return contextArray;
}
/**
* Tests the getParentDNInSuffix method.
*
* @throws Exception
* If the test failed unexpectedly.
*/
}
/**
* Test the getParent method's interaction with other methods.
*
* @throws Exception
* If the test failed unexpectedly.
*/
@Test
public void testGetParentInteraction() throws Exception {
assertFalse(p.isNullDN());
assertTrue(p.isAncestorOf(c));
assertFalse(c.isAncestorOf(p));
assertTrue(c.isDescendantOf(p));
assertFalse(p.isDescendantOf(c));
assertEquals(p, e);
.decode("dc=foo,dc=bar,dc=opends,dc=org"));
.decode("dc=xxx,dc=foo,dc=bar,dc=opends,dc=org"));
}
/**
* Test the getRDN method.
*
* @param s
* The test DN string.
* @param p
* The expected parent.
* @param r
* The expected rdn.
* @throws Exception
* If the test failed unexpectedly.
*/
throws Exception {
}
/**
* DN test data provider.
*
* @return The array of test DN strings.
*/
public Object[][] createRDNTestData() {
{ "dc=opends,dc=com", 0, "dc=opends" },
{ "dc=opends,dc=com", 1, "dc=com" },
{ "dc=hello,dc=world,dc=opends,dc=com", 0, "dc=hello" },
{ "dc=hello,dc=world,dc=opends,dc=com", 1, "dc=world" },
{ "dc=hello,dc=world,dc=opends,dc=com", 2, "dc=opends" },
{ "dc=hello,dc=world,dc=opends,dc=com", 3, "dc=com" }, };
}
/**
* Test the getRDN indexed method.
*
* @param s
* The test DN string.
* @param i
* The RDN index.
* @param r
* The expected rdn.
* @throws Exception
* If the test failed unexpectedly.
*/
throws Exception {
}
/**
* DN test data provider.
*
* @return The array of test DN strings.
*/
public Object[][] createRDNIllegalTestData() {
{ "dc=com", -1 }, { "dc=com", 1 },
{ "dc=opends,dc=com", -1 }, { "dc=opends,dc=com", 2 },
{ "dc=hello,dc=world,dc=opends,dc=com", -1 },
{ "dc=hello,dc=world,dc=opends,dc=com", 4 }, };
}
/**
* Test the getRDN indexed method with illegal indexes.
*
* @param s
* The test DN string.
* @param i
* The illegal RDN index.
* @throws Exception
* If the test failed unexpectedly.
*/
@Test(dataProvider = "createRDNIllegalTestData", expectedExceptions = IndexOutOfBoundsException.class)
public void testGetRDNIndexedException(String s, int i)
throws Exception {
// Shoudld throw.
}
/**
* Concat DN test data provider.
*
* @return The array of test data.
*/
public Object[][] createConcatDNTestData() {
return new Object[][] {
{ "", "", "" },
{ "", "dc=org", "dc=org" },
{ "", "dc=opends,dc=org", "dc=opends,dc=org" },
{ "dc=org", "", "dc=org" },
{ "dc=org", "dc=opends", "dc=opends,dc=org" },
{ "dc=org", "dc=foo,dc=opends", "dc=foo,dc=opends,dc=org" },
{ "dc=opends,dc=org", "", "dc=opends,dc=org" },
{ "dc=opends,dc=org", "dc=foo", "dc=foo,dc=opends,dc=org" },
{ "dc=opends,dc=org", "dc=bar,dc=foo",
"dc=bar,dc=foo,dc=opends,dc=org" }, };
}
/**
* Test the concat(DN) method.
*
* @param s
* The test DN string.
* @param l
* The local name to be appended.
* @param e
* The expected DN.
* @throws Exception
* If the test failed unexpectedly.
*/
throws Exception {
}
/**
* Test the concat(DN) method.
*
* @throws Exception
* If the test failed unexpectedly.
*/
AssertionError.class })
public void testConcatDNException() throws Exception {
}
/**
* Test the concat(DN) method's interaction with other methods.
*
* @throws Exception
* If the test failed unexpectedly.
*/
@Test
public void testConcatDNInteraction() throws Exception {
assertFalse(c.isNullDN());
assertTrue(p.isAncestorOf(c));
assertFalse(c.isAncestorOf(p));
assertTrue(c.isDescendantOf(p));
assertFalse(p.isDescendantOf(c));
assertEquals(c, e);
.decode("dc=xxx,dc=foo,dc=bar,dc=opends,dc=org"));
.decode("dc=xxx,dc=yyy,dc=foo,dc=bar,dc=opends,dc=org"));
}
/**
* Concat RDN test data provider.
*
* @return The array of test data.
*/
public Object[][] createConcatRDNTestData() {
{ "dc=org", "dc=opends", "dc=opends,dc=org" },
{ "dc=opends,dc=org", "dc=foo", "dc=foo,dc=opends,dc=org" }, };
}
/**
* Test the concat(RDN...) method.
*
* @param s
* The test DN string.
* @param r
* The RDN to be appended.
* @param e
* The expected DN.
* @throws Exception
* If the test failed unexpectedly.
*/
throws Exception {
}
/**
* Test the concat(RDN...) method.
*
* @throws Exception
* If the test failed unexpectedly.
*/
AssertionError.class })
public void testConcatRDNException() throws Exception {
}
/**
* Test the concat(RDN[]...) method.
*
* @param s
* The test DN string.
* @param l
* The local name to be appended.
* @param e
* The expected DN.
* @throws Exception
* If the test failed unexpectedly.
*/
throws Exception {
// Construct sequence.
}
}
/**
* Get local name test data provider.
*
* @return The array of test data.
*/
public Object[][] createGetLocalNameTestData() {
return new Object[][] {
{ "", 0, -1, "" },
{ "", 0, 0, "" },
{ "dc=org", 0, -1, "dc=org" },
{ "dc=org", 1, -1, "" },
{ "dc=org", 0, 0, "" },
{ "dc=org", 0, 1, "dc=org" },
{ "dc=org", 1, 1, "" },
{ "dc=opends,dc=org", 0, -1, "dc=opends,dc=org" },
{ "dc=opends,dc=org", 1, -1, "dc=opends" },
{ "dc=opends,dc=org", 2, -1, "" },
{ "dc=opends,dc=org", 0, 0, "" },
{ "dc=opends,dc=org", 0, 1, "dc=org" },
{ "dc=opends,dc=org", 0, 2, "dc=opends,dc=org" },
{ "dc=opends,dc=org", 1, 1, "" },
{ "dc=opends,dc=org", 1, 2, "dc=opends" },
{ "dc=opends,dc=org", 2, 2, "" },
{ "dc=foo,dc=opends,dc=org", 0, -1, "dc=foo,dc=opends,dc=org" },
{ "dc=foo,dc=opends,dc=org", 1, -1, "dc=foo,dc=opends" },
{ "dc=foo,dc=opends,dc=org", 2, -1, "dc=foo" },
{ "dc=foo,dc=opends,dc=org", 3, -1, "" },
{ "dc=foo,dc=opends,dc=org", 0, 0, "" },
{ "dc=foo,dc=opends,dc=org", 0, 1, "dc=org" },
{ "dc=foo,dc=opends,dc=org", 0, 2, "dc=opends,dc=org" },
{ "dc=foo,dc=opends,dc=org", 0, 3, "dc=foo,dc=opends,dc=org" },
{ "dc=foo,dc=opends,dc=org", 1, 1, "" },
{ "dc=foo,dc=opends,dc=org", 1, 2, "dc=opends" },
{ "dc=foo,dc=opends,dc=org", 1, 3, "dc=foo,dc=opends" },
{ "dc=foo,dc=opends,dc=org", 2, 2, "" },
{ "dc=foo,dc=opends,dc=org", 2, 3, "dc=foo" },
{ "dc=foo,dc=opends,dc=org", 3, 3, "" }, };
}
/**
* Is ancestor of test data provider.
*
* @return The array of test data.
*/
public Object[][] createIsAncestorOfTestData() {
return new Object[][] {
{ "", "", true },
{ "", "dc=org", true },
{ "", "dc=opends,dc=org", true },
{ "", "dc=foo,dc=opends,dc=org", true },
{ "dc=org", "", false },
{ "dc=org", "dc=org", true },
{ "dc=org", "dc=opends,dc=org", true },
{ "dc=org", "dc=foo,dc=opends,dc=org", true },
{ "dc=opends,dc=org", "", false },
{ "dc=opends,dc=org", "dc=org", false },
{ "dc=opends,dc=org", "dc=opends,dc=org", true },
{ "dc=opends,dc=org", "dc=foo,dc=opends,dc=org", true },
{ "dc=foo,dc=opends,dc=org", "", false },
{ "dc=foo,dc=opends,dc=org", "dc=org", false },
{ "dc=foo,dc=opends,dc=org", "dc=opends,dc=org", false },
{ "dc=foo,dc=opends,dc=org", "dc=foo,dc=opends,dc=org", true },
{ "dc=org", "dc=com", false },
{ "dc=opends,dc=org", "dc=foo,dc=org", false },
{ "dc=opends,dc=org", "dc=opends,dc=com", false }, };
}
/**
* Test the isAncestoryOf method.
*
* @param s
* The test DN string.
* @param d
* The dn parameter.
* @param e
* The expected result.
* @throws Exception
* If the test failed unexpectedly.
*/
throws Exception {
}
/**
* Test the isAncestorOf method.
*
* @throws Exception
* If the test failed unexpectedly.
*/
AssertionError.class })
public void testIsAncestorOfException() throws Exception {
}
/**
* Is descendant of test data provider.
*
* @return The array of test data.
*/
public Object[][] createIsDescendantOfTestData() {
return new Object[][] {
{ "", "", true },
{ "", "dc=org", false },
{ "", "dc=opends,dc=org", false },
{ "", "dc=foo,dc=opends,dc=org", false },
{ "dc=org", "", true },
{ "dc=org", "dc=org", true },
{ "dc=org", "dc=opends,dc=org", false },
{ "dc=org", "dc=foo,dc=opends,dc=org", false },
{ "dc=opends,dc=org", "", true },
{ "dc=opends,dc=org", "dc=org", true },
{ "dc=opends,dc=org", "dc=opends,dc=org", true },
{ "dc=opends,dc=org", "dc=foo,dc=opends,dc=org", false },
{ "dc=foo,dc=opends,dc=org", "", true },
{ "dc=foo,dc=opends,dc=org", "dc=org", true },
{ "dc=foo,dc=opends,dc=org", "dc=opends,dc=org", true },
{ "dc=foo,dc=opends,dc=org", "dc=foo,dc=opends,dc=org", true },
{ "dc=org", "dc=com", false },
{ "dc=opends,dc=org", "dc=foo,dc=org", false },
{ "dc=opends,dc=org", "dc=opends,dc=com", false }, };
}
/**
* Test the isDescendantOf method.
*
* @param s
* The test DN string.
* @param d
* The dn parameter.
* @param e
* The expected result.
* @throws Exception
* If the test failed unexpectedly.
*/
throws Exception {
+ d);
}
/**
* Test the isDescendantOf method.
*
* @throws Exception
* If the test failed unexpectedly.
*/
AssertionError.class })
public void testIsDescendantOfException() throws Exception {
}
/**
* DN equality test data provider.
*
* @return The array of test DN strings.
*/
public Object[][] createDNEqualityData() {
return new Object[][] {
{ "cn=hello world,dc=com", "cn=hello world,dc=com", 0 },
{ "cn=hello world,dc=com", "CN=hello world,dc=com", 0 },
{ "cn=hello world,dc=com", "cn=hello world,dc=com", 0 },
{ " cn = hello world ,dc=com", "cn=hello world,dc=com", 0 },
{ "cn=hello world\\ ,dc=com", "cn=hello world,dc=com", 0 },
{ "cn=HELLO WORLD,dc=com", "cn=hello world,dc=com", 0 },
{ "cn=HELLO+sn=WORLD,dc=com", "sn=world+cn=hello,dc=com", 0 },
{ "x-test-integer-type=10,dc=com",
"x-test-integer-type=9,dc=com", 1 },
{ "x-test-integer-type=999,dc=com",
"x-test-integer-type=1000,dc=com", -1 },
{ "x-test-integer-type=-1,dc=com",
"x-test-integer-type=0,dc=com", -1 },
{ "x-test-integer-type=0,dc=com",
"x-test-integer-type=-1,dc=com", 1 },
{ "cn=aaa,dc=com", "cn=aaaa,dc=com", -1 },
{ "cn=AAA,dc=com", "cn=aaaa,dc=com", -1 },
{ "cn=aaa,dc=com", "cn=AAAA,dc=com", -1 },
{ "cn=aaaa,dc=com", "cn=aaa,dc=com", 1 },
{ "cn=AAAA,dc=com", "cn=aaa,dc=com", 1 },
{ "cn=aaaa,dc=com", "cn=AAA,dc=com", 1 },
{ "cn=aaab,dc=com", "cn=aaaa,dc=com", 1 },
{ "cn=aaaa,dc=com", "cn=aaab,dc=com", -1 },
{ "dc=aaa,dc=aaa", "dc=bbb", -1 },
{ "dc=bbb,dc=aaa", "dc=bbb", -1 },
{ "dc=ccc,dc=aaa", "dc=bbb", -1 },
{ "dc=aaa,dc=bbb", "dc=bbb", 1 },
{ "dc=bbb,dc=bbb", "dc=bbb", 1 },
{ "dc=ccc,dc=bbb", "dc=bbb", 1 },
{ "dc=aaa,dc=ccc", "dc=bbb", 1 },
{ "dc=bbb,dc=ccc", "dc=bbb", 1 },
{ "dc=ccc,dc=ccc", "dc=bbb", 1 },
{ "", "dc=bbb", -1 },
{ "dc=bbb", "", 1 }
};
}
/**
* Test DN equality
*
* @param first
* First DN to compare.
* @param second
* Second DN to compare.
* @param result
* Expected comparison result.
* @throws Exception
* If the test failed unexpectedly.
*/
throws Exception {
if (result == 0) {
} else {
}
}
/**
* Tests the equals method with a value that's not a DN.
*
* @throws Exception
* If the test failed unexpectedly.
*/
@Test
public void testEqualsNonDN() throws Exception {
}
/**
* Test DN hashCode
*
* @param first
* First DN to compare.
* @param second
* Second DN to compare.
* @param result
* Expected comparison result.
* @throws Exception
* If the test failed unexpectedly.
*/
throws Exception {
if (result == 0) {
+ "> should be the same.");
}
} else {
+ "> should be the same.");
}
}
}
/**
* Test DN compareTo
*
* @param first
* First DN to compare.
* @param second
* Second DN to compare.
* @param result
* Expected comparison result.
* @throws Exception
* If the test failed unexpectedly.
*/
throws Exception {
// Normalize the result.
if (rc < 0) {
rc = -1;
} else if (rc > 0) {
rc = 1;
}
+ second + ">.");
}
/**
* Test DN string decoder.
*
* @param rawDN
* Raw DN string representation.
* @param normDN
* Normalized DN string representation.
* @param stringDN
* String representation.
* @throws Exception
* If the test failed unexpectedly.
*/
}
}