From 66afbc8adcc5f48027ea41c528b6ed0d61d6e2cb Mon Sep 17 00:00:00 2001
From: coulbeck <coulbeck@localhost>
Date: Mon, 18 Sep 2006 16:20:03 +0000
Subject: [PATCH] Test cases for entry transformations performed by SearchResultEntryProtocolOp.

---
 opendj-sdk/opends/tests/unit-tests-testng/src/server/org/opends/server/protocols/ldap/TestSearchResultEntryProtocolOp.java |  182 +++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 182 insertions(+), 0 deletions(-)

diff --git a/opendj-sdk/opends/tests/unit-tests-testng/src/server/org/opends/server/protocols/ldap/TestSearchResultEntryProtocolOp.java b/opendj-sdk/opends/tests/unit-tests-testng/src/server/org/opends/server/protocols/ldap/TestSearchResultEntryProtocolOp.java
new file mode 100644
index 0000000..56117d3
--- /dev/null
+++ b/opendj-sdk/opends/tests/unit-tests-testng/src/server/org/opends/server/protocols/ldap/TestSearchResultEntryProtocolOp.java
@@ -0,0 +1,182 @@
+/*
+ * 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
+ * trunk/opends/resource/legal-notices/OpenDS.LICENSE
+ * or https://OpenDS.dev.java.net/OpenDS.LICENSE.
+ * 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
+ *
+ *
+ *      Portions Copyright 2006 Sun Microsystems, Inc.
+ */
+
+
+package org.opends.server.protocols.ldap;
+
+import org.opends.server.types.Entry;
+import org.opends.server.types.SearchResultEntry;
+import org.opends.server.TestCaseUtils;
+import static org.testng.Assert.assertEquals;
+import static org.testng.Assert.fail;
+import org.testng.annotations.Test;
+import org.testng.annotations.BeforeClass;
+import org.testng.annotations.DataProvider;
+
+
+public class TestSearchResultEntryProtocolOp extends LdapTestCase
+{
+  @BeforeClass
+  public void setUp() throws Exception
+  {
+    TestCaseUtils.startServer();
+  }
+
+  @DataProvider(name = "entries")
+  public Object[][] createData() throws Exception
+  {
+    return new Object[][] {
+         {
+              TestCaseUtils.makeEntry(
+                   "dn:: dWlkPXJvZ2FzYXdhcmEsb3U95Za25qWt6YOoLG89QWlyaXVz",
+                   "userpassword: {SHA}O3HSv1MusyL4kTjP+HKI5uxuNoM=",
+                   "objectclass: top",
+                   "objectclass: person",
+                   "objectclass: organizationalPerson",
+                   "objectclass: inetOrgPerson",
+                   "uid: rogasawara",
+                   "mail: rogasawara@airius.co.jp",
+                   "givenname;lang-ja:: 44Ot44OJ44OL44O8",
+                   "sn;lang-ja:: 5bCP56yg5Y6f",
+                   "cn;lang-ja:: 5bCP56yg5Y6fIOODreODieODi+ODvA==",
+                   "title;lang-ja:: 5Za25qWt6YOoIOmDqOmVtw==",
+                   "preferredlanguage: ja",
+                   "givenname:: 44Ot44OJ44OL44O8",
+                   "sn:: 5bCP56yg5Y6f",
+                   "cn:: 5bCP56yg5Y6fIOODreODieODi+ODvA==",
+                   "title:: 5Za25qWt6YOoIOmDqOmVtw==",
+                   "givenname;lang-ja;phonetic:: 44KN44Gp44Gr44O8",
+                   "sn;lang-ja;phonetic:: 44GK44GM44GV44KP44KJ",
+                   "cn;lang-ja;phonetic:: " +
+                        "44GK44GM44GV44KP44KJIOOCjeOBqeOBq+ODvA==",
+                   "title;lang-ja;phonetic:: ",
+                   "createtimestamp: 20060915161843Z",
+                   "modifytimestamp: 20060915161843Z",
+                   "description:: LyoKI" +
+                        "CogQ0RETCBIRUFERVIgU1RBUlQKICoKICogVGhlIGNvbnRlbnRz" +
+                        "IG9mIHRoaXMgZmlsZSBhcmUgc3ViamVjdCB0byB0aGUgdGVybXM" +
+                        "gb2YgdGhlCiAqIENvbW1vbiBEZXZlbG9wbWVudCBhbmQgRGlzdH" +
+                        "JpYnV0aW9uIExpY2Vuc2UsIFZlcnNpb24gMS4wIG9ubHkKICogK" +
+                        "HRoZSAiTGljZW5zZSIpLiAgWW91IG1heSBub3QgdXNlIHRoaXMg" +
+                        "ZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZQogKiB3aXRoIHRoZSB" +
+                        "MaWNlbnNlLgogKgogKiBZb3UgY2FuIG9idGFpbiBhIGNvcHkgb2" +
+                        "YgdGhlIGxpY2Vuc2UgYXQKICogdHJ1bmsvb3BlbmRzL3Jlc291c" +
+                        "mNlL2xlZ2FsLW5vdGljZXMvT3BlbkRTLkxJQ0VOU0UKICogb3Ig" +
+                        "aHR0cHM6Ly9PcGVuRFMuZGV2LmphdmEubmV0L09wZW5EUy5MSUN" +
+                        "FTlNFLgogKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaW" +
+                        "ZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMKICogY" +
+                        "W5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgogKgog" +
+                        "KiBXaGVuIGRpc3RyaWJ1dGluZyBDb3ZlcmVkIENvZGUsIGluY2x" +
+                        "1ZGUgdGhpcyBDRERMIEhFQURFUiBpbiBlYWNoCiAqIGZpbGUgYW" +
+                        "5kIGluY2x1ZGUgdGhlIExpY2Vuc2UgZmlsZSBhdAogKiB0cnVua" +
+                        "y9vcGVuZHMvcmVzb3VyY2UvbGVnYWwtbm90aWNlcy9PcGVuRFMu" +
+                        "TElDRU5TRS4gIElmIGFwcGxpY2FibGUsCiAqIGFkZCB0aGUgZm9" +
+                        "sbG93aW5nIGJlbG93IHRoaXMgQ0RETCBIRUFERVIsIHdpdGggdG" +
+                        "hlIGZpZWxkcyBlbmNsb3NlZAogKiBieSBicmFja2V0cyAiW10iI" +
+                        "HJlcGxhY2VkIHdpdGggeW91ciBvd24gaWRlbnRpZnlpbmcgKiBp" +
+                        "bmZvcm1hdGlvbjoKICogICAgICBQb3J0aW9ucyBDb3B5cmlnaHQ" +
+                        "gW3l5eXldIFtuYW1lIG9mIGNvcHlyaWdodCBvd25lcl0KICoKIC" +
+                        "ogQ0RETCBIRUFERVIgRU5ECiAqCiAqCiAqICAgICAgUG9ydGlvb" +
+                        "nMgQ29weXJpZ2h0IDIwMDYgU3VuIE1pY3Jvc3lzdGVtcywgSW5j" +
+                        "LgogKi8K"
+              )
+         }
+    };
+  }
+
+
+
+  /**
+   * Test that going from SearchResultEntry to SearchResultEntryProtocolOp
+   * and back again preserves the entry contents.
+   *
+   * @param from The entry to undergo the transformation.
+   * @throws Exception On failure.
+   */
+  @Test(dataProvider = "entries")
+  public void testEntryTransformation(Entry from) throws Exception
+  {
+    SearchResultEntry searchResultEntry = new SearchResultEntry(from);
+    SearchResultEntryProtocolOp protocolOp =
+         new SearchResultEntryProtocolOp(searchResultEntry);
+    Entry to = protocolOp.toSearchResultEntry();
+
+    // FIXME Issue 660: Need to provide Entry.equals(Object)
+//    assertEquals(to, from);
+  }
+
+
+
+  /**
+   * Test that going from Entry to SearchResultEntryProtocolOp to LDIF and
+   * back to Entry preserves the entry contents.
+   *
+   * @param from The entry to undergo the transformation.
+   * @throws Exception On failure.
+   */
+  @Test(dataProvider = "entries")
+  public void testToLdif(Entry from) throws Exception
+  {
+    int wrapColumn = 80;
+    SearchResultEntry searchResultEntry = new SearchResultEntry(from);
+    SearchResultEntryProtocolOp protocolOp =
+         new SearchResultEntryProtocolOp(searchResultEntry);
+    StringBuilder builder = new StringBuilder();
+    protocolOp.toLDIF(builder, wrapColumn);
+    Entry to = TestCaseUtils.entryFromLdifString(builder.toString());
+
+    // FIXME Issue 660: Need to provide Entry.equals(Object)
+//    assertEquals(to, from);
+  }
+
+  @Test(dataProvider = "entries")
+  public void testToLdifWrapping(Entry from) throws Exception
+  {
+    int wrapColumn = 78;
+    SearchResultEntry searchResultEntry = new SearchResultEntry(from);
+    SearchResultEntryProtocolOp protocolOp =
+         new SearchResultEntryProtocolOp(searchResultEntry);
+    StringBuilder builder = new StringBuilder();
+    protocolOp.toLDIF(builder, wrapColumn);
+
+    // Test that lines were correctly wrapped.
+    String[] lines = builder.toString().split("[\r\n]+");
+    for (String line : lines)
+    {
+      if (line.length() > wrapColumn)
+      {
+        fail("LDIF line length " + line.length() +
+             " exceeds wrap column " + wrapColumn + " : " + line);
+      }
+    }
+
+    Entry to = TestCaseUtils.entryFromLdifString(builder.toString());
+
+    // FIXME Issue 660: Need to provide Entry.equals(Object)
+//    assertEquals(to, from);
+  }
+}

--
Gitblit v1.10.0