From 34ac48d938d5f3411505f7d0f883a585148ec716 Mon Sep 17 00:00:00 2001
From: matthew_swift <matthew_swift@localhost>
Date: Fri, 08 Jan 2010 18:13:58 +0000
Subject: [PATCH] * various minor code fixes * fix unit tests * remove TODOs from Javadoc (issues are now in Issue Tracker)

---
 sdk/tests/unit-tests-testng/src/org/opends/sdk/OpenDSTestCase.java |  166 +++++++++++++++++++++++++++++++++++-------------------
 1 files changed, 107 insertions(+), 59 deletions(-)

diff --git a/sdk/tests/unit-tests-testng/src/org/opends/sdk/OpenDSTestCase.java b/sdk/tests/unit-tests-testng/src/org/opends/sdk/OpenDSTestCase.java
index 633d487..54ff24c 100644
--- a/sdk/tests/unit-tests-testng/src/org/opends/sdk/OpenDSTestCase.java
+++ b/sdk/tests/unit-tests-testng/src/org/opends/sdk/OpenDSTestCase.java
@@ -1,15 +1,43 @@
+/*
+ * 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
+ *
+ *
+ *      Copyright 2009 Sun Microsystems, Inc.
+ */
+
 package org.opends.sdk;
 
-import org.testng.annotations.BeforeSuite;
-import org.testng.annotations.AfterSuite;
-import org.testng.annotations.AfterClass;
-import org.testng.annotations.Test;
-import org.opends.server.TestCaseUtils;
 
-import java.util.IdentityHashMap;
-import java.util.Set;
+
 import java.lang.reflect.Field;
 import java.lang.reflect.Modifier;
+import java.util.IdentityHashMap;
+import java.util.Set;
+
+import org.testng.annotations.AfterClass;
+import org.testng.annotations.Test;
+
+
 
 /**
  * This class defines a base test case that should be subclassed by all
@@ -18,75 +46,86 @@
  * This class adds the ability to print error messages and automatically
  * have them include the class name.
  */
-@Test(sequential=true)
-public abstract class OpenDSTestCase 
+@Test(sequential = true)
+public abstract class OpenDSTestCase
 {
-   @BeforeSuite
-  public final void suppressOutput() {
-    TestCaseUtils.suppressOutput();
-  }
-
-  @AfterSuite
-  public final void shutdownServer() {
-    TestCaseUtils.unsupressOutput();
-  }
 
   //
   // This is all a HACK to reduce the amount of memory that's consumed.
   //
   // This could be a problem if a subclass references a @DataProvider in
-  // a super-class that provides static parameters, i.e. the parameters are
+  // a super-class that provides static parameters, i.e. the parameters
+  // are
   // not regenerated for each invocation of the DataProvider.
   //
 
-  /** A list of all parameters that were generated by a @DataProvider
-   *  and passed to a test method of this class.  TestListener helps us
-   *  keep this so that once all of the tests are finished, we can clear
-   *  it out in an @AfterClass method.  We can't just clear it out right
-   *  away in the TestListener because some methods share a @DataProvider.*/
-  private final IdentityHashMap<Object[],Object> successfulTestParams = new IdentityHashMap<Object[],Object>();
+  /**
+   * A list of all parameters that were generated by a @DataProvider and
+   * passed to a test method of this class. TestListener helps us keep
+   * this so that once all of the tests are finished, we can clear it
+   * out in an @AfterClass method. We can't just clear it out right away
+   * in the TestListener because some methods share a @DataProvider.
+   */
+  private final IdentityHashMap<Object[], Object> successfulTestParams = new IdentityHashMap<Object[], Object>();
 
-  /** These are test parameters from a test that has failed.  We need to
-   *  keep these around because the test report expects to find them when
-   *  printing out failures. */
-  private final IdentityHashMap<Object[],Object> failedTestParams = new IdentityHashMap<Object[],Object>();
+  /**
+   * These are test parameters from a test that has failed. We need to
+   * keep these around because the test report expects to find them when
+   * printing out failures.
+   */
+  private final IdentityHashMap<Object[], Object> failedTestParams = new IdentityHashMap<Object[], Object>();
+
+
 
   /**
    * Adds testParams to the list of all test parameters, so it can be
    * null'ed out later if it's not part.
    */
-  void addParamsFromSuccessfulTests(Object[] testParams) {
-    if (testParams != null) {
+  void addParamsFromSuccessfulTests(Object[] testParams)
+  {
+    if (testParams != null)
+    {
       successfulTestParams.put(testParams, testParams);
     }
   }
 
+
+
   /**
-   * Adds testParams to the list of all failed test parameters, so that we
-   * know to NOT null it out later.
+   * Adds testParams to the list of all failed test parameters, so that
+   * we know to NOT null it out later.
    */
-  void addParamsFromFailedTest(Object[] testParams) {
-    if (testParams != null) {
+  void addParamsFromFailedTest(Object[] testParams)
+  {
+    if (testParams != null)
+    {
       failedTestParams.put(testParams, testParams);
     }
   }
 
+
+
   /**
    * null out all test parameters except the ones used in failed tests
    * since we might need these again.
    */
   @AfterClass(alwaysRun = true)
-  public void clearSuccessfulTestParams() {
+  public void clearSuccessfulTestParams()
+  {
     Set<Object[]> paramsSet = successfulTestParams.keySet();
-    if (paramsSet == null) {  // Can this ever happen?
+    if (paramsSet == null)
+    { // Can this ever happen?
       return;
     }
-    for (Object[] params: paramsSet) {
-      if (failedTestParams.containsKey(params)) {
+    for (Object[] params : paramsSet)
+    {
+      if (failedTestParams.containsKey(params))
+      {
         continue;
       }
 
-      for (int i = 0; i < params.length; i++) {
+      for (int i = 0; i < params.length; i++)
+      {
         params[i] = null;
       }
     }
@@ -94,38 +133,47 @@
     failedTestParams.clear();
   }
 
+
+
   /**
-   * The member variables of a test class can prevent lots of memory from being
-   * reclaimed, so we use reflection to null out all of the member variables
-   * after the tests have run.  Since all tests must inherit from
-   * DirectoryServerTestCase, TestNG guarantees that this method runs after
-   * all of the subclass methods, so this isn't too dangerous.
+   * The member variables of a test class can prevent lots of memory
+   * from being reclaimed, so we use reflection to null out all of the
+   * member variables after the tests have run. Since all tests must
+   * inherit from DirectoryServerTestCase, TestNG guarantees that this
+   * method runs after all of the subclass methods, so this isn't too
+   * dangerous.
    */
   @AfterClass(alwaysRun = true)
-  public void nullMemberVariablesAfterTest() {
-    Class cls = this.getClass();
+  public void nullMemberVariablesAfterTest()
+  {
+    Class<?> cls = this.getClass();
     // Iterate through all of the fields in all subclasses of
     // DirectoryServerTestCase, but not DirectoryServerTestCase itself.
-    while (OpenDSTestCase.class.isAssignableFrom(cls) &&
-           !OpenDSTestCase.class.equals(cls))
+    while (OpenDSTestCase.class.isAssignableFrom(cls)
+        && !OpenDSTestCase.class.equals(cls))
     {
       Field fields[] = cls.getDeclaredFields();
-      for (int i = 0; i < fields.length; i++) {
+      for (int i = 0; i < fields.length; i++)
+      {
         Field field = fields[i];
         int modifiers = field.getModifiers();
-        Class fieldClass = field.getType();
-        // If it's a non-static non-final non-primitive type, then null it out
-        // so that the garbage collector can reclaim it and everything it
+        Class<?> fieldClass = field.getType();
+        // If it's a non-static non-final non-primitive type, then null
+        // it out
+        // so that the garbage collector can reclaim it and everything
+        // it
         // references.
-        if (!fieldClass.isPrimitive() &&
-            !fieldClass.isEnum()      &&
-            !Modifier.isFinal(modifiers) &&
-            !Modifier.isStatic(modifiers))
+        if (!fieldClass.isPrimitive() && !fieldClass.isEnum()
+            && !Modifier.isFinal(modifiers)
+            && !Modifier.isStatic(modifiers))
         {
           field.setAccessible(true);
-          try {
+          try
+          {
             field.set(this, null);
-          } catch (IllegalAccessException e) {
+          }
+          catch (IllegalAccessException e)
+          {
             // We're only doing this to save memory, so it's no big deal
             // if we can't set it.
           }

--
Gitblit v1.10.0