From 5d745a56a15b894ef0ca33538ea6e67170f96f96 Mon Sep 17 00:00:00 2001
From: Matthew Swift <matthew.swift@forgerock.com>
Date: Mon, 05 Dec 2011 17:47:17 +0000
Subject: [PATCH] Fix OPENDJ-376: Add isInScopeOf, localName, and rename methods to DN class
---
opendj3/opendj-ldap-sdk/src/test/java/org/forgerock/opendj/ldap/DNTestCase.java | 182 +++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 182 insertions(+), 0 deletions(-)
diff --git a/opendj3/opendj-ldap-sdk/src/test/java/org/forgerock/opendj/ldap/DNTestCase.java b/opendj3/opendj-ldap-sdk/src/test/java/org/forgerock/opendj/ldap/DNTestCase.java
index 654370a..ccfd20b 100644
--- a/opendj3/opendj-ldap-sdk/src/test/java/org/forgerock/opendj/ldap/DNTestCase.java
+++ b/opendj3/opendj-ldap-sdk/src/test/java/org/forgerock/opendj/ldap/DNTestCase.java
@@ -981,4 +981,186 @@
final DN string = DN.valueOf(stringDN);
assertEquals(raw, string);
}
+
+
+
+ /**
+ * Test data for testInScopeOf tests.
+ *
+ * @return Test data.
+ */
+ @DataProvider
+ public Object[][] createIsInScopeOfTestData()
+ {
+ // @formatter:off
+ return new Object[][]
+ {
+ { "dc=x,dc=y", "dc=x,dc=y", SearchScope.BASE_OBJECT, true },
+ { "dc=x,dc=y", "dc=z,dc=y", SearchScope.BASE_OBJECT, false },
+ { "dc=x,dc=z", "dc=x,dc=y", SearchScope.BASE_OBJECT, false },
+ { "dc=x,dc=y", "dc=y", SearchScope.BASE_OBJECT, false },
+ { "dc=y", "dc=x,dc=y", SearchScope.BASE_OBJECT, false },
+
+ { "dc=x,dc=y", "dc=x,dc=y", SearchScope.SINGLE_LEVEL, false },
+ { "dc=x,dc=y", "dc=y", SearchScope.SINGLE_LEVEL, true },
+ { "dc=z,dc=x,dc=y", "dc=y", SearchScope.SINGLE_LEVEL, false },
+ { "dc=y", "dc=x,dc=y", SearchScope.SINGLE_LEVEL, false },
+ { "dc=x,dc=z", "dc=y", SearchScope.SINGLE_LEVEL, false },
+
+ { "dc=x,dc=y", "dc=x,dc=y", SearchScope.SUBORDINATES, false },
+ { "dc=x,dc=y", "dc=y", SearchScope.SUBORDINATES, true },
+ { "dc=z,dc=x,dc=y", "dc=y", SearchScope.SUBORDINATES, true },
+ { "dc=y", "dc=x,dc=y", SearchScope.SUBORDINATES, false },
+ { "dc=x,dc=z", "dc=y", SearchScope.SUBORDINATES, false },
+
+ { "dc=x,dc=y", "dc=x,dc=y", SearchScope.WHOLE_SUBTREE, true },
+ { "dc=x,dc=y", "dc=y", SearchScope.WHOLE_SUBTREE, true },
+ { "dc=z,dc=x,dc=y", "dc=y", SearchScope.WHOLE_SUBTREE, true },
+ { "dc=y", "dc=x,dc=y", SearchScope.WHOLE_SUBTREE, false },
+ { "dc=x,dc=z", "dc=y", SearchScope.WHOLE_SUBTREE, false },
+ };
+ // @formatter:on
+ }
+
+
+
+ /**
+ * Tests {@link DN#isInScopeOf(String, SearchScope)}.
+ *
+ * @param dn
+ * The target DN.
+ * @param baseDN
+ * The scope base DN.
+ * @param scope
+ * The search scope.
+ * @param expectedResult
+ * The expected result.
+ */
+ @Test(dataProvider="createIsInScopeOfTestData")
+ public void testIsInScopeOfString(final String dn, final String baseDN,
+ final SearchScope scope, final boolean expectedResult)
+ {
+ assertEquals(DN.valueOf(dn).isInScopeOf(baseDN, scope), expectedResult);
+ }
+
+
+
+ /**
+ * Tests {@link DN#isInScopeOf(DN, SearchScope)}.
+ *
+ * @param dn
+ * The target DN.
+ * @param baseDN
+ * The scope base DN.
+ * @param scope
+ * The search scope.
+ * @param expectedResult
+ * The expected result.
+ */
+ @Test(dataProvider = "createIsInScopeOfTestData")
+ public void testIsInScopeOfDN(final String dn, final String baseDN,
+ final SearchScope scope, final boolean expectedResult)
+ {
+ assertEquals(DN.valueOf(dn).isInScopeOf(DN.valueOf(baseDN), scope),
+ expectedResult);
+ }
+
+
+
+ /**
+ * Test data for testLocalName tests.
+ *
+ * @return Test data.
+ */
+ @DataProvider
+ public Object[][] createLocalNameTestData()
+ {
+ // @formatter:off
+ return new Object[][]
+ {
+ { "", 0, "" },
+ { "", 1, "" },
+
+ { "dc=x", 0, "" },
+ { "dc=x", 1, "dc=x" },
+ { "dc=x", 2, "dc=x" },
+
+ { "dc=x,dc=y", 0, "" },
+ { "dc=x,dc=y", 1, "dc=x" },
+ { "dc=x,dc=y", 2, "dc=x,dc=y" },
+ { "dc=x,dc=y", 3, "dc=x,dc=y" },
+
+ { "dc=x,dc=y,dc=z", 0, "" },
+ { "dc=x,dc=y,dc=z", 1, "dc=x" },
+ { "dc=x,dc=y,dc=z", 2, "dc=x,dc=y" },
+ { "dc=x,dc=y,dc=z", 3, "dc=x,dc=y,dc=z" },
+ { "dc=x,dc=y,dc=z", 4, "dc=x,dc=y,dc=z" },
+ };
+ // @formatter:on
+ }
+
+
+
+ /**
+ * Tests {@link DN#localName(int)}.
+ *
+ * @param dn
+ * The DN whose local name is to be obtained.
+ * @param index
+ * The number of RDNs in the local name.
+ * @param expectedDN
+ * The expected local name.
+ */
+ @Test(dataProvider = "createLocalNameTestData")
+ public void testLocalName(final String dn, final int index,
+ final String expectedDN)
+ {
+ assertEquals(DN.valueOf(dn).localName(index), DN.valueOf(expectedDN));
+ }
+
+
+
+ /**
+ * Test data for testLocalName tests.
+ *
+ * @return Test data.
+ */
+ @DataProvider
+ public Object[][] createRenameTestData()
+ {
+ // @formatter:off
+ return new Object[][]
+ {
+ { "", "", "", "" },
+ { "", "", "dc=x", "dc=x" },
+ { "dc=x", "", "dc=y", "dc=x,dc=y" },
+ { "dc=x", "dc=x", "dc=y", "dc=y" },
+ { "dc=x,dc=y", "dc=y", "dc=z", "dc=x,dc=z" },
+ { "dc=x,dc=y", "dc=x,dc=y", "dc=z", "dc=z" },
+ { "dc=x,dc=y", "dc=x", "dc=z", "dc=x,dc=y" },
+ };
+ // @formatter:on
+ }
+
+
+
+ /**
+ * Tests {@link DN#rename(DN, DN)}.
+ *
+ * @param dn
+ * The DN to be renamed.
+ * @param fromDN
+ * The source DN.
+ * @param toDN
+ * The destination DN.
+ * @param expectedDN
+ * The expected result.
+ */
+ @Test(dataProvider = "createRenameTestData")
+ public void testRename(final String dn, final String fromDN,
+ final String toDN, final String expectedDN)
+ {
+ assertEquals(DN.valueOf(dn).rename(DN.valueOf(fromDN), DN.valueOf(toDN)),
+ DN.valueOf(expectedDN));
+ }
}
--
Gitblit v1.10.0