From 585d1bf2936de4197aaf3af84f07a5607e013a1e Mon Sep 17 00:00:00 2001
From: Jean-Noel Rouvignac <jean-noel.rouvignac@forgerock.com>
Date: Fri, 09 Aug 2013 08:34:00 +0000
Subject: [PATCH] *Test*.java: Used TestCaseUtils.findFreePort() instead of TestCaseUtils.bindFreePort(). Used StaticUtils.close().

---
 opends/tests/unit-tests-testng/src/server/org/opends/server/protocols/ldap/LdapTestCase.java |   85 ++++++++++++++++--------------------------
 1 files changed, 32 insertions(+), 53 deletions(-)

diff --git a/opends/tests/unit-tests-testng/src/server/org/opends/server/protocols/ldap/LdapTestCase.java b/opends/tests/unit-tests-testng/src/server/org/opends/server/protocols/ldap/LdapTestCase.java
index 74b6e00..5bda047 100644
--- a/opends/tests/unit-tests-testng/src/server/org/opends/server/protocols/ldap/LdapTestCase.java
+++ b/opends/tests/unit-tests-testng/src/server/org/opends/server/protocols/ldap/LdapTestCase.java
@@ -23,36 +23,33 @@
  *
  *
  *      Copyright 2006-2008 Sun Microsystems, Inc.
+ *      Portions copyright 2013 ForgeRock AS
  */
 package org.opends.server.protocols.ldap ;
 
-import static org.opends.server.config.ConfigConstants.ATTR_LISTEN_PORT;
+import static org.opends.server.config.ConfigConstants.*;
 
-import org.opends.server.types.Attributes;
-import org.opends.server.types.Entry;
+import java.util.Iterator;
+import java.util.List;
+
 import org.opends.server.DirectoryServerTestCase;
+import org.opends.server.TestCaseUtils;
 import org.opends.server.admin.server.AdminTestCaseUtils;
 import org.opends.server.admin.std.meta.LDAPConnectionHandlerCfgDefn;
 import org.opends.server.admin.std.server.LDAPConnectionHandlerCfg;
 import org.opends.server.config.ConfigException;
 import org.opends.server.types.Attribute;
+import org.opends.server.types.Attributes;
+import org.opends.server.types.Entry;
 import org.testng.annotations.Test;
 
-import java.net.InetSocketAddress;
-import java.net.ServerSocket;
-import java.util.LinkedList;
-import java.util.ListIterator;
-
 /**
  * An abstract class that all types  unit test should extend.
  */
-
 @Test(groups = { "precommit", "ldap" }, sequential = true)
 public abstract class LdapTestCase extends DirectoryServerTestCase
 {
-	
-	private static String localHost = "127.0.0.1";
-	
+
   /**
    * Determine whether one LDAPAttribute is equal to another.
    * The values of the attribute must be identical and in the same order.
@@ -62,11 +59,11 @@
    */
   static boolean testEqual(LDAPAttribute a1, LDAPAttribute a2)
   {
-    if (!a1.getAttributeType().equals(a2.getAttributeType()))
+    if (a1.getAttributeType().equals(a2.getAttributeType()))
     {
-      return false;
+      return a1.getValues().equals(a2.getValues());
     }
-    return a1.getValues().equals(a2.getValues());
+    return false;
   }
 
   /**
@@ -75,18 +72,17 @@
    * @param list2 The second list of LDAPAttribute.
    * @return true if the first list of LDAPAttribute is equal to the second.
    */
-  static boolean testEqual(LinkedList<LDAPAttribute> list1,
-                           LinkedList<LDAPAttribute> list2)
+  static boolean testEqual(List<LDAPAttribute> list1, List<LDAPAttribute> list2)
   {
-    ListIterator<LDAPAttribute> e1 = list1.listIterator();
-    ListIterator<LDAPAttribute> e2 = list2.listIterator();
+    Iterator<LDAPAttribute> e1 = list1.iterator();
+    Iterator<LDAPAttribute> e2 = list2.iterator();
     while(e1.hasNext() && e2.hasNext()) {
       LDAPAttribute o1 = e1.next();
       LDAPAttribute o2 = e2.next();
-      if (!(o1==null ? o2==null : testEqual(o1, o2)))
+      if (o1 == null ? o2 != null : !testEqual(o1, o2))
         return false;
     }
-    return !(e1.hasNext() || e2.hasNext());
+    return !e1.hasNext() && !e2.hasNext();
   }
 
   /**
@@ -94,41 +90,37 @@
    * @param op The op.
    * @throws Exception If the toString method fails.
    */
-  static void 
-  toString(ProtocolOp op) throws Exception {
+  static void toString(ProtocolOp op) throws Exception
+  {
 	  StringBuilder sb = new StringBuilder();
 	  op.toString(sb);
 	  op.toString(sb, 1);
   }
-  
+
   /**
    * Generate a LDAPConnectionHandler from a entry. The listen port is
    * determined automatically, so no ATTR_LISTEN_PORT should be in the
    * entry.
-   * 
+   *
    * @param handlerEntry The entry to be used to configure the handle.
    * @return Returns the new LDAP connection handler.
    * @throws Exception if the handler cannot be initialized.
    */
-  static LDAPConnectionHandler 
-  getLDAPHandlerInstance(Entry handlerEntry) throws Exception {
-	  ServerSocket serverLdapSocket = new ServerSocket();
-	  serverLdapSocket.setReuseAddress(true);
-	  serverLdapSocket.bind(new InetSocketAddress(localHost, 0));
-	  long serverLdapPort = serverLdapSocket.getLocalPort();
-    serverLdapSocket.close();
-	  Attribute a=Attributes.create(ATTR_LISTEN_PORT, String.valueOf(serverLdapPort));
-	  handlerEntry.addAttribute(a,null);
-    LDAPConnectionHandlerCfg config =
-      getConfiguration(handlerEntry);
+  static LDAPConnectionHandler getLDAPHandlerInstance(Entry handlerEntry)
+      throws Exception
+  {
+    long serverLdapPort = TestCaseUtils.findFreePort();
+    Attribute a = Attributes.create(ATTR_LISTEN_PORT, String.valueOf(serverLdapPort));
+    handlerEntry.addAttribute(a, null);
+    LDAPConnectionHandlerCfg config = getConfiguration(handlerEntry);
     LDAPConnectionHandler handler = new LDAPConnectionHandler();
     handler.initializeConnectionHandler(config);
-	  return handler;
+    return handler;
   }
 
   /**
    * Decode an LDAP connection handler configuration entry.
-   * 
+   *
    * @param handlerEntry
    *          The configuration entry.
    * @return Returns the decoded LDAP connection handler
@@ -139,20 +131,7 @@
   static LDAPConnectionHandlerCfg getConfiguration(
       Entry handlerEntry) throws ConfigException {
     return AdminTestCaseUtils.getConfiguration(
-        LDAPConnectionHandlerCfgDefn
-            .getInstance(), handlerEntry);
+        LDAPConnectionHandlerCfgDefn.getInstance(), handlerEntry);
   }
-  
-  /**
-   * @return A free port number.
-   * @throws Exception
-   *           if socket cannot be created or bound to.
-   */
-static long
-  getFreePort() throws Exception {
-	  ServerSocket serverLdapSocket = new ServerSocket();
-	  serverLdapSocket.setReuseAddress(true);
-	  serverLdapSocket.bind(new InetSocketAddress(localHost, 0));
-	  return serverLdapSocket.getLocalPort();
-  }
+
 }

--
Gitblit v1.10.0