From fc70f16d1ddd336812a78b4eaf873346c84aef1b Mon Sep 17 00:00:00 2001
From: Jean-Noël Rouvignac <jean-noel.rouvignac@forgerock.com>
Date: Wed, 16 Nov 2016 09:17:11 +0000
Subject: [PATCH] Prep work for OPENDJ-3424 Replace RemoteConnection by SDK's Connection

---
 opendj-server-legacy/src/test/java/org/opends/server/crypto/CryptoManagerTestCase.java |   52 +++++++++++++++++++++++++++++++---------------------
 1 files changed, 31 insertions(+), 21 deletions(-)

diff --git a/opendj-server-legacy/src/test/java/org/opends/server/crypto/CryptoManagerTestCase.java b/opendj-server-legacy/src/test/java/org/opends/server/crypto/CryptoManagerTestCase.java
index 7220505..14a1116 100644
--- a/opendj-server-legacy/src/test/java/org/opends/server/crypto/CryptoManagerTestCase.java
+++ b/opendj-server-legacy/src/test/java/org/opends/server/crypto/CryptoManagerTestCase.java
@@ -23,26 +23,30 @@
 import java.io.OutputStream;
 import java.security.MessageDigest;
 import java.util.Arrays;
-import java.util.List;
 import java.util.UUID;
 
 import javax.crypto.Mac;
 
 import org.forgerock.i18n.LocalizableMessage;
+import org.forgerock.opendj.ldap.Attribute;
 import org.forgerock.opendj.ldap.ByteString;
+import org.forgerock.opendj.ldap.Connection;
+import org.forgerock.opendj.ldap.DN;
+import org.forgerock.opendj.ldap.LDAPConnectionFactory;
+import org.forgerock.opendj.ldap.SSLContextBuilder;
 import org.forgerock.opendj.ldap.SearchScope;
+import org.forgerock.opendj.ldap.responses.SearchResultEntry;
+import org.forgerock.opendj.ldif.ConnectionEntryReader;
+import org.forgerock.util.Options;
 import org.opends.admin.ads.ADSContext;
+import org.opends.admin.ads.util.BlindTrustManager;
 import org.opends.server.TestCaseUtils;
 import org.opends.server.core.DirectoryServer;
 import org.opends.server.protocols.internal.InternalClientConnection;
 import org.opends.server.protocols.internal.InternalSearchOperation;
 import org.opends.server.protocols.internal.SearchRequest;
-import org.opends.server.protocols.ldap.LDAPAttribute;
-import org.opends.server.protocols.ldap.SearchResultEntryProtocolOp;
-import org.opends.server.tools.RemoteConnection;
 import org.opends.server.types.CryptoManager;
 import org.opends.server.types.CryptoManagerException;
-import org.forgerock.opendj.ldap.DN;
 import org.opends.server.types.DirectoryException;
 import org.opends.server.types.Entry;
 import org.opends.server.types.Modification;
@@ -54,11 +58,14 @@
 import org.testng.annotations.Test;
 
 import static org.assertj.core.api.Assertions.*;
+import static org.forgerock.opendj.ldap.LDAPConnectionFactory.*;
 import static org.forgerock.opendj.ldap.ModificationType.*;
+import static org.forgerock.opendj.ldap.SearchScope.*;
+import static org.opends.server.TestCaseUtils.*;
 import static org.opends.server.config.ConfigConstants.*;
 import static org.opends.server.protocols.internal.InternalClientConnection.*;
 import static org.opends.server.protocols.internal.Requests.*;
-import static org.opends.server.types.Attributes.create;
+import static org.opends.server.types.Attributes.*;
 import static org.testng.Assert.*;
 
 /**
@@ -114,26 +121,29 @@
 
     // The certificate should now be accessible in the truststore backend via LDAP.
     ByteString ldapCert;
-    try (RemoteConnection conn = new RemoteConnection("localhost", TestCaseUtils.getServerAdminPort(), true))
+    Options options = Options.defaultOptions()
+        .set(SSL_CONTEXT, new SSLContextBuilder()
+                          .setTrustManager(new BlindTrustManager())
+                          .getSSLContext());
+    try (LDAPConnectionFactory factory = new LDAPConnectionFactory("localhost", getServerAdminPort(), options);
+        Connection conn = factory.getConnection())
     {
-      conn.bind("cn=Directory Manager", "password");
+      conn.bind("cn=Directory Manager", "password".toCharArray());
 
       // TODO: should the below dn be in ConfigConstants?
       final String dnStr = "ds-cfg-key-id=ads-certificate,cn=ads-truststore";
-      conn.search(dnStr, SearchScope.BASE_OBJECT, "(objectclass=ds-cfg-instance-key)",
+      ConnectionEntryReader entryReader = conn.search(dnStr, BASE_OBJECT, "(objectclass=ds-cfg-instance-key)",
           "ds-cfg-public-key-certificate;binary");
-      List<SearchResultEntryProtocolOp> searchEntries = conn.readEntries();
-      assertThat(searchEntries).hasSize(1);
-      SearchResultEntryProtocolOp searchEntry = searchEntries.get(0);
-      List<LDAPAttribute> attributes = searchEntry.getAttributes();
-      assertThat(attributes).hasSize(1);
-      LDAPAttribute certAttr = attributes.get(0);
-      /* attribute ds-cfg-public-key-certificate is a MUST in the schema */
-      assertNotNull(certAttr);
-      List<ByteString> values = certAttr.getValues();
-      assertThat(values).hasSize(1);
-      ldapCert = values.get(0);
-      // Compare the certificate values.
+
+      assertThat(entryReader.hasNext()).isTrue();
+      SearchResultEntry searchEntry = entryReader.readEntry();
+      assertThat(entryReader.hasNext()).isFalse();
+      assertThat(searchEntry.getAttributeCount()).isEqualTo(1);
+
+      final Attribute certAttr = searchEntry.getAllAttributes().iterator().next();
+      // attribute ds-cfg-public-key-certificate is a MUST in the schema
+      assertThat(certAttr).hasSize(1);
+      ldapCert = certAttr.iterator().next();
       assertEquals(ldapCert.toByteArray(), cert);
     }
 

--
Gitblit v1.10.0