From 684830f9e78326aba7a0140444c0e41dcfaff809 Mon Sep 17 00:00:00 2001
From: Jean-Noël Rouvignac <jean-noel.rouvignac@forgerock.com>
Date: Thu, 25 Feb 2016 09:44:28 +0000
Subject: [PATCH] Code cleanup: - Replaced use of Socket by RemoteConnection - Replaced use of the various InternalClientConnection.processModify() methods by InternalClientConnection.processModify(ModifyRequest) everywhere it is not critical and perfs will be equivalent

---
 opendj-server-legacy/src/test/java/org/opends/server/protocols/ldap/LDAPBinaryOptionTestCase.java |   94 ++++++++++++++---------------------------------
 1 files changed, 28 insertions(+), 66 deletions(-)

diff --git a/opendj-server-legacy/src/test/java/org/opends/server/protocols/ldap/LDAPBinaryOptionTestCase.java b/opendj-server-legacy/src/test/java/org/opends/server/protocols/ldap/LDAPBinaryOptionTestCase.java
index f78f7be..f22f8e2 100644
--- a/opendj-server-legacy/src/test/java/org/opends/server/protocols/ldap/LDAPBinaryOptionTestCase.java
+++ b/opendj-server-legacy/src/test/java/org/opends/server/protocols/ldap/LDAPBinaryOptionTestCase.java
@@ -17,6 +17,7 @@
 package org.opends.server.protocols.ldap;
 
 import static org.assertj.core.api.Assertions.*;
+import static org.forgerock.opendj.ldap.SearchScope.*;
 import static org.opends.server.protocols.internal.InternalClientConnection.*;
 import static org.opends.server.protocols.internal.Requests.*;
 import static org.testng.Assert.*;
@@ -24,15 +25,14 @@
 import java.io.BufferedReader;
 import java.io.File;
 import java.io.FileReader;
-import java.net.Socket;
-import java.util.ArrayList;
-import java.util.LinkedHashSet;
+import java.io.IOException;
 import java.util.List;
 
 import org.forgerock.opendj.ldap.ByteString;
-import org.forgerock.opendj.ldap.DereferenceAliasesPolicy;
 import org.forgerock.opendj.ldap.ResultCode;
 import org.forgerock.opendj.ldap.SearchScope;
+import org.forgerock.opendj.ldap.requests.AddRequest;
+import org.forgerock.opendj.ldap.requests.Requests;
 import org.opends.server.TestCaseUtils;
 import org.opends.server.api.Backend;
 import org.opends.server.core.DirectoryServer;
@@ -40,11 +40,12 @@
 import org.opends.server.protocols.internal.SearchRequest;
 import org.opends.server.tools.LDAPModify;
 import org.opends.server.tools.LDAPSearch;
+import org.opends.server.tools.RemoteConnection;
 import org.opends.server.types.Attribute;
 import org.opends.server.types.ExistingFileBehavior;
+import org.opends.server.types.LDAPException;
 import org.opends.server.types.LDIFExportConfig;
 import org.opends.server.types.LDIFImportConfig;
-import org.opends.server.types.RawAttribute;
 import org.opends.server.types.SearchResultEntry;
 import org.opends.server.util.Base64;
 import org.testng.annotations.BeforeClass;
@@ -232,76 +233,30 @@
   public void binaryOptionUsingV2() throws Exception
   {
     //Construct a V2 connection.
-    try (Socket s = new Socket("127.0.0.1", TestCaseUtils.getServerLdapPort());
-        org.opends.server.tools.LDAPReader r = new org.opends.server.tools.LDAPReader(s);
-        org.opends.server.tools.LDAPWriter w = new org.opends.server.tools.LDAPWriter(s))
+    try (RemoteConnection conn = new RemoteConnection("localhost", TestCaseUtils.getServerLdapPort()))
     {
-      BindRequestProtocolOp bindRequest =
-           new BindRequestProtocolOp(
-                    ByteString.valueOfUtf8("cn=Directory Manager"), 2,
-                    ByteString.valueOfUtf8("password"));
-      LDAPMessage message = new LDAPMessage(1, bindRequest);
-      w.writeMessage(message);
+      bindLdapV2(conn, "cn=Directory Manager", "password");
 
-      message = r.readMessage();
-      BindResponseProtocolOp bindResponse = message.getBindResponseProtocolOp();
-      assertEquals(bindResponse.getResultCode(), 0);
-      ArrayList<RawAttribute> addAttrs = new ArrayList<>();
-      addAttrs.add(RawAttribute.create("objectClass", "inetOrgPerson"));
-      addAttrs.add(RawAttribute.create("uid", "user.7"));
-      addAttrs.add(RawAttribute.create("cn", "user 7"));
-      addAttrs.add(RawAttribute.create("sn", "sn#1"));
-      addAttrs.add(RawAttribute.create("sn;x-foo", "sn#2"));
-      addAttrs.add(RawAttribute.create("sn;lang-fr", "sn#3"));
-      addAttrs.add(RawAttribute.create("userCertificate;binary",
-                                       ByteString.wrap(Base64.decode(CERT))));
-
-      AddRequestProtocolOp addRequest =
-           new AddRequestProtocolOp(ByteString.valueOfUtf8("uid=user.7,o=test"),
-                                    addAttrs);
-      message = new LDAPMessage(2, addRequest);
-      w.writeMessage(message);
-
-      message = r.readMessage();
+      AddRequest addRequest = Requests.newAddRequest("uid=user.7,o=test")
+          .addAttribute("objectClass", "inetOrgPerson")
+          .addAttribute("uid", "user.7")
+          .addAttribute("cn", "user 7")
+          .addAttribute("sn", "sn#1")
+          .addAttribute("sn;x-foo", "sn#2")
+          .addAttribute("sn;lang-fr", "sn#3")
+          .addAttribute("userCertificate;binary", ByteString.wrap(Base64.decode(CERT)));
+      LDAPMessage message = conn.add(addRequest);
       AddResponseProtocolOp addResponse = message.getAddResponseProtocolOp();
       assertEquals(addResponse.getResultCode(),0);
 
       //Create a SEARCH request to search for this added entry.
-      LinkedHashSet<String> attrs = new LinkedHashSet<>();
       //Request only the interesting attributes.
-      attrs.add("sn");
-      attrs.add("userCertificate;binary");
-      SearchRequestProtocolOp searchRequest =
-         new SearchRequestProtocolOp(ByteString.valueOfUtf8("o=test"),
-                                     SearchScope.WHOLE_SUBTREE,
-                                     DereferenceAliasesPolicy.NEVER, 0,
-                                     0, false,
-                                     LDAPFilter.decode("(uid=user.7)"),
-                                     attrs);
-      message = new LDAPMessage(2, searchRequest);
-      w.writeMessage(message);
-
-      SearchResultEntryProtocolOp searchResultEntry = null;
-      SearchResultDoneProtocolOp searchResultDone = null;
-      while (searchResultDone == null)
-      {
-        message = r.readMessage();
-        switch (message.getProtocolOpType())
-        {
-          case LDAPConstants.OP_TYPE_SEARCH_RESULT_ENTRY:
-            searchResultEntry = message.getSearchResultEntryProtocolOp();
-            break;
-          case LDAPConstants.OP_TYPE_SEARCH_RESULT_DONE:
-            searchResultDone = message.getSearchResultDoneProtocolOp();
-            assertEquals(searchResultDone.getResultCode(),
-                         LDAPResultCode.SUCCESS);
-            break;
-        }
-      }
-      assertNotNull(searchResultEntry);
+      conn.search(Requests.newSearchRequest("o=test", WHOLE_SUBTREE, "(uid=user.7)", "sn", "userCertificate;binary"));
+      List<SearchResultEntryProtocolOp> entries = conn.readEntries();
+      assertThat(entries).hasSize(1);
       boolean certWithNoOption = false;
       boolean snWithMultiVal = false;
-      for(LDAPAttribute a:searchResultEntry.getAttributes())
+      for (LDAPAttribute a : entries.get(0).getAttributes())
       {
         //Shouldn't be userCertificate;binary.
         if ("userCertificate".equalsIgnoreCase(a.getAttributeType()))
@@ -321,7 +276,14 @@
     }
   }
 
+  private void bindLdapV2(RemoteConnection conn, String bindDN, String bindPwd) throws IOException, LDAPException
+  {
+    conn.writeMessage(new BindRequestProtocolOp(ByteString.valueOfUtf8(bindDN), 2, ByteString.valueOfUtf8(bindPwd)));
 
+    LDAPMessage message = conn.readMessage();
+    BindResponseProtocolOp bindResponse = message.getBindResponseProtocolOp();
+    assertEquals(bindResponse.getResultCode(), LDAPResultCode.SUCCESS);
+  }
 
   /**
    * Test to verify that the DB stores the binary option by

--
Gitblit v1.10.0