From 787a62c89cd05bdd68c391adb8b5c62f04257a4a Mon Sep 17 00:00:00 2001
From: Matthew Swift <matthew.swift@forgerock.com>
Date: Fri, 30 Nov 2012 00:34:59 +0000
Subject: [PATCH] Fix OPENDJ-656: Add support for generating LDAP filters and DNs from printf style templates

---
 opendj3/opendj-ldap-sdk/src/test/java/org/forgerock/opendj/ldap/DNTestCase.java |   31 +++++++++++++++++++++++++++++++
 1 files changed, 31 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 fef9be6..1c542b6 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
@@ -979,4 +979,35 @@
         assertEquals(DN.valueOf(dn).rename(DN.valueOf(fromDN), DN.valueOf(toDN)), DN
                 .valueOf(expectedDN));
     }
+
+    /**
+     * Tests the {@link DN#format(String, Object...)} method.
+     */
+    @Test
+    public void testFormatNoEscape() {
+        DN actual = DN.format("deviceId=%s,uid=%s,dc=test", 123, "bjensen");
+        DN expected = DN.valueOf("dc=test").child("uid", "bjensen").child("deviceId", 123);
+        assertEquals(actual, expected);
+        assertEquals(actual.toString(), "deviceId=123,uid=bjensen,dc=test");
+    }
+
+    /**
+     * Tests the {@link DN#format(String, Object...)} method.
+     */
+    @Test
+    public void testFormatEscape() {
+        DN actual = DN.format("uid=%s,dc=test", "#cn=foo+sn=bar");
+        DN expected = DN.valueOf("dc=test").child("uid", "#cn=foo+sn=bar");
+        assertEquals(actual, expected);
+        assertEquals(actual.toString(), "uid=\\#cn\\=foo\\+sn\\=bar,dc=test");
+    }
+
+    /**
+     * Tests the {@link DN#escapeAttributeValue(Object)} method.
+     */
+    @Test
+    public void testEscapeAttributeValue() {
+        String actual = DN.escapeAttributeValue("#cn=foo+sn=bar");
+        assertEquals(actual, "\\#cn\\=foo\\+sn\\=bar");
+    }
 }

--
Gitblit v1.10.0