From f79303bf69a28350e3ff2af463f1cf1a17f3157f Mon Sep 17 00:00:00 2001
From: neil_a_wilson <neil_a_wilson@localhost>
Date: Mon, 30 Oct 2006 23:30:39 +0000
Subject: [PATCH] Update the test cases for the LDAP tools so that the tests providing invalid arguments include a message with the reason that each argument set was invalid. This can be used to help identify which particular set of arguments caused a problem if any of the associated unit tests fail.

---
 opends/tests/unit-tests-testng/src/server/org/opends/server/tools/LDAPDeleteTestCase.java         |   91 ++++++---
 opends/tests/unit-tests-testng/src/server/org/opends/server/tools/LDAPPasswordModifyTestCase.java |   95 ++++++---
 opends/tests/unit-tests-testng/src/server/org/opends/server/tools/LDAPCompareTestCase.java        |  110 +++++++---
 opends/tests/unit-tests-testng/src/server/org/opends/server/tools/LDAPSearchTestCase.java         |  183 ++++++++++-------
 opends/tests/unit-tests-testng/src/server/org/opends/server/tools/LDAPModifyTestCase.java         |   98 ++++++---
 5 files changed, 368 insertions(+), 209 deletions(-)

diff --git a/opends/tests/unit-tests-testng/src/server/org/opends/server/tools/LDAPCompareTestCase.java b/opends/tests/unit-tests-testng/src/server/org/opends/server/tools/LDAPCompareTestCase.java
index 0efe18b..da03e95 100644
--- a/opends/tests/unit-tests-testng/src/server/org/opends/server/tools/LDAPCompareTestCase.java
+++ b/opends/tests/unit-tests-testng/src/server/org/opends/server/tools/LDAPCompareTestCase.java
@@ -104,116 +104,135 @@
   @DataProvider(name = "invalidArgs")
   public Object[][] getInvalidArgumentLists()
   {
-    ArrayList<String[]> argLists = new ArrayList<String[]>();
+    ArrayList<String[]> argLists   = new ArrayList<String[]>();
+    ArrayList<String>   reasonList = new ArrayList<String>();
 
-    String[] args = {}; // No arguments
+    String[] args = {};
     argLists.add(args);
+    reasonList.add("No arguments");
 
-    args = new String[] // No value for "-D" argument.
+    args = new String[]
     {
       "-D",
     };
     argLists.add(args);
+    reasonList.add("No value for '-D' argument");
 
-    args = new String[] // No value for "-w" argument.
+    args = new String[]
     {
       "-w",
     };
     argLists.add(args);
+    reasonList.add("No value for '-w' argument");
 
-    args = new String[] // No value for "-j" argument.
+    args = new String[]
     {
       "-j",
     };
     argLists.add(args);
+    reasonList.add("No value for '-j' argument");
 
-    args = new String[] // No value for "-i" argument.
+    args = new String[]
     {
       "-i",
     };
     argLists.add(args);
+    reasonList.add("No value for '-i' argument");
 
-    args = new String[] // No value for "-K" argument.
+    args = new String[]
     {
       "-K",
     };
     argLists.add(args);
+    reasonList.add("No value for '-K' argument");
 
-    args = new String[] // No value for "-P" argument.
+    args = new String[]
     {
       "-P",
     };
     argLists.add(args);
+    reasonList.add("No value for '-P' argument");
 
-    args = new String[] // No value for "-W" argument.
+    args = new String[]
     {
       "-W",
     };
     argLists.add(args);
+    reasonList.add("No value for '-W' argument");
 
-    args = new String[] // No value for "-h" argument.
+    args = new String[]
     {
       "-h",
     };
     argLists.add(args);
+    reasonList.add("No value for '-h' argument");
 
-    args = new String[] // No value for "-p" argument.
+    args = new String[]
     {
       "-p",
     };
     argLists.add(args);
+    reasonList.add("No value for '-p' argument");
 
-    args = new String[] // No value for "-V" argument.
+    args = new String[]
     {
       "-V",
     };
     argLists.add(args);
+    reasonList.add("No value for '-V' argument");
 
-    args = new String[] // No value for "-f" argument.
+    args = new String[]
     {
       "-f",
     };
     argLists.add(args);
+    reasonList.add("No value for '-f' argument");
 
-    args = new String[] // No value for "-J" argument.
+    args = new String[]
     {
       "-J",
     };
     argLists.add(args);
+    reasonList.add("No value for '-J' argument");
 
-    args = new String[] // No value for "-o" argument.
+    args = new String[]
     {
       "-o",
     };
     argLists.add(args);
+    reasonList.add("No value for '-o' argument");
 
-    args = new String[] // No value for "--assertionFilter" argument.
+    args = new String[]
     {
       "--assertionFilter",
     };
     argLists.add(args);
+    reasonList.add("No value for '--assertionFilter' argument");
 
-    args = new String[] // Invalid short argument
+    args = new String[]
     {
       "-I"
     };
     argLists.add(args);
+    reasonList.add("Invalid short argument");
 
-    args = new String[] // Invalid long argument
+    args = new String[]
     {
       "--invalidLongArgument"
     };
     argLists.add(args);
+    reasonList.add("Invalid long argument");
 
-    args = new String[] // Invalid assertion filter
+    args = new String[]
     {
       "--assertionFilter", "(invalidfilter)",
       "uid:test.user",
       "uid=test.user,o=test"
     };
     argLists.add(args);
+    reasonList.add("Invalid assertion filter");
 
-    args = new String[] // Invalid bind password file path
+    args = new String[]
     {
       "-D", "cn=Directory Manager",
       "-j", "no.such.file",
@@ -221,8 +240,9 @@
       "uid=test.user,o=test"
     };
     argLists.add(args);
+    reasonList.add("Invalid bind password file path");
 
-    args = new String[] // Both bind password and password file
+    args = new String[]
     {
       "-D", "cn=Directory Manager",
       "-w", "password",
@@ -231,56 +251,63 @@
       "uid=test.user,o=test"
     };
     argLists.add(args);
+    reasonList.add("Both bind password and password file");
 
-    args = new String[] // Non-numeric LDAP version.
+    args = new String[]
     {
       "-V", "nonnumeric",
       "uid:test.user",
       "uid=test.user,o=test"
     };
     argLists.add(args);
+    reasonList.add("Non-numeric LDAP version");
 
-    args = new String[] // Invalid LDAP version.
+    args = new String[]
     {
       "-V", "1",
       "uid:test.user",
       "uid=test.user,o=test"
     };
     argLists.add(args);
+    reasonList.add("Invalid LDAP version");
 
-    args = new String[] // Invalid DN file path.
+    args = new String[]
     {
       "-f", "no.such.file",
       "uid:test.user",
       "uid=test.user,o=test"
     };
     argLists.add(args);
+    reasonList.add("Invalid DN file path");
 
-    args = new String[] // Invalid control criticality
+    args = new String[]
     {
       "-J", "1.2.3.4:invalidcriticality",
       "uid:test.user",
       "uid=test.user,o=test"
     };
     argLists.add(args);
+    reasonList.add("Invalid control criticality");
 
-    args = new String[] // Non-numeric port
+    args = new String[]
     {
       "-p", "nonnumeric",
       "uid:test.user",
       "uid=test.user,o=test"
     };
     argLists.add(args);
+    reasonList.add("Non-numeric port");
 
-    args = new String[] // Port value out of range.
+    args = new String[]
     {
       "-p", "999999",
       "uid:test.user",
       "uid=test.user,o=test"
     };
     argLists.add(args);
+    reasonList.add("Port value out of range");
 
-    args = new String[] // SASL external without SSL or StartTLS
+    args = new String[]
     {
       "-r",
       "-K", "key.store.file",
@@ -288,8 +315,9 @@
       "uid=test.user,o=test"
     };
     argLists.add(args);
+    reasonList.add("SASL external without SSL or StartTLS");
 
-    args = new String[] // SASL external without keystore file
+    args = new String[]
     {
       "-Z",
       "-r",
@@ -297,23 +325,26 @@
       "uid=test.user,o=test"
     };
     argLists.add(args);
+    reasonList.add("SASL external without keystore file");
 
-    args = new String[] // No trailing arguments
+    args = new String[]
     {
       "-D", "cn=Directory Manager",
       "-w", "password"
     };
     argLists.add(args);
+    reasonList.add("No trailing arguments");
 
-    args = new String[] // Only one trailing argument.
+    args = new String[]
     {
       "-D", "cn=Directory Manager",
       "-w", "password",
-      "uid:test.user",
+      "uid:test.user"
     };
     argLists.add(args);
+    reasonList.add("Only one trailing argument");
 
-    args = new String[] // Malformed attribute-value assertion
+    args = new String[]
     {
       "-D", "cn=Directory Manager",
       "-w", "password",
@@ -321,12 +352,14 @@
       "uid=test.user,o=test"
     };
     argLists.add(args);
+    reasonList.add("Malformed attribute-value assertion");
 
 
-    Object[][] returnArray = new Object[argLists.size()][1];
+    Object[][] returnArray = new Object[argLists.size()][2];
     for (int i=0; i < argLists.size(); i++)
     {
       returnArray[i][0] = argLists.get(i);
+      returnArray[i][1] = reasonList.get(i);
     }
     return returnArray;
   }
@@ -336,12 +369,15 @@
   /**
    * Tests the LDAPCompare tool with sets of invalid arguments.
    *
-   * @param  args  The set of arguments to use for the LDAPCompare tool.
+   * @param  args           The set of arguments to use for the LDAPCompare
+   *                        tool.
+   * @param  invalidReason  The reason the provided set of arguments is invalid.
    */
   @Test(dataProvider = "invalidArgs")
-  public void testInvalidArguments(String[] args)
+  public void testInvalidArguments(String[] args, String invalidReason)
   {
-    assertFalse(LDAPCompare.mainCompare(args, false, null, null) == 0);
+    assertFalse(LDAPCompare.mainCompare(args, false, null, null) == 0,
+                "Should have been invalid because:  " + invalidReason);
   }
 
 
diff --git a/opends/tests/unit-tests-testng/src/server/org/opends/server/tools/LDAPDeleteTestCase.java b/opends/tests/unit-tests-testng/src/server/org/opends/server/tools/LDAPDeleteTestCase.java
index 718daa6..735099f 100644
--- a/opends/tests/unit-tests-testng/src/server/org/opends/server/tools/LDAPDeleteTestCase.java
+++ b/opends/tests/unit-tests-testng/src/server/org/opends/server/tools/LDAPDeleteTestCase.java
@@ -104,108 +104,124 @@
   @DataProvider(name = "invalidArgs")
   public Object[][] getInvalidArgumentLists()
   {
-    ArrayList<String[]> argLists = new ArrayList<String[]>();
+    ArrayList<String[]> argLists   = new ArrayList<String[]>();
+    ArrayList<String>   reasonList = new ArrayList<String>();
 
-    String[] args = {}; // No arguments
-    args = new String[] // No value for "-D" argument.
+    String[] args = new String[]
     {
       "-D",
     };
     argLists.add(args);
+    reasonList.add("No value for '-D' argument");
 
-    args = new String[] // No value for "-w" argument.
+    args = new String[]
     {
       "-w",
     };
     argLists.add(args);
+    reasonList.add("No value for '-w' argument");
 
-    args = new String[] // No value for "-j" argument.
+    args = new String[]
     {
       "-j",
     };
     argLists.add(args);
+    reasonList.add("No value for '-j' argument");
 
-    args = new String[] // No value for "-i" argument.
+    args = new String[]
     {
       "-i",
     };
     argLists.add(args);
+    reasonList.add("No value for '-i' argument");
 
-    args = new String[] // No value for "-K" argument.
+    args = new String[]
     {
       "-K",
     };
     argLists.add(args);
+    reasonList.add("No value for '-K' argument");
 
-    args = new String[] // No value for "-P" argument.
+    args = new String[]
     {
       "-P",
     };
     argLists.add(args);
+    reasonList.add("No value for '-P' argument");
 
-    args = new String[] // No value for "-W" argument.
+    args = new String[]
     {
       "-W",
     };
     argLists.add(args);
+    reasonList.add("No value for '-W' argument");
 
-    args = new String[] // No value for "-h" argument.
+    args = new String[]
     {
       "-h",
     };
     argLists.add(args);
+    reasonList.add("No value for '-h' argument");
 
-    args = new String[] // No value for "-p" argument.
+    args = new String[]
     {
       "-p",
     };
     argLists.add(args);
+    reasonList.add("No value for '-p' argument");
 
-    args = new String[] // No value for "-V" argument.
+    args = new String[]
     {
       "-V",
     };
     argLists.add(args);
+    reasonList.add("No value for '-V' argument");
 
-    args = new String[] // No value for "-f" argument.
+    args = new String[]
     {
       "-f",
     };
     argLists.add(args);
+    reasonList.add("No value for '-f' argument");
 
-    args = new String[] // No value for "-J" argument.
+    args = new String[]
     {
       "-J",
     };
     argLists.add(args);
+    reasonList.add("No value for '-J' argument");
 
-    args = new String[] // No value for "-o" argument.
+    args = new String[]
     {
       "-o",
     };
     argLists.add(args);
+    reasonList.add("No value for '-o' argument");
 
-    args = new String[] // Invalid short argument
+    args = new String[]
     {
       "-I"
     };
     argLists.add(args);
+    reasonList.add("Invalid short argument");
 
-    args = new String[] // Invalid long argument
+    args = new String[]
     {
       "--invalidLongArgument"
     };
     argLists.add(args);
+    reasonList.add("Invalid long argument");
 
-    args = new String[] // Invalid bind password file path
+    args = new String[]
     {
       "-D", "cn=Directory Manager",
       "-j", "no.such.file",
       "o=test"
     };
     argLists.add(args);
+    reasonList.add("Invalid bind password file path");
 
-    args = new String[] // Both bind password and password file
+    args = new String[]
     {
       "-D", "cn=Directory Manager",
       "-w", "password",
@@ -213,70 +229,80 @@
       "o=test"
     };
     argLists.add(args);
+    reasonList.add("Both bind password and password file");
 
-    args = new String[] // Non-numeric LDAP version.
+    args = new String[]
     {
       "-V", "nonnumeric",
       "o=test"
     };
     argLists.add(args);
+    reasonList.add("Non-numeric LDAP version");
 
-    args = new String[] // Invalid LDAP version.
+    args = new String[]
     {
       "-V", "1",
       "o=test"
     };
     argLists.add(args);
+    reasonList.add("Invalid LDAP version");
 
-    args = new String[] // Invalid DN file path.
+    args = new String[]
     {
       "-f", "no.such.file",
       "o=test"
     };
     argLists.add(args);
+    reasonList.add("Invalid DN file path");
 
-    args = new String[] // Invalid control criticality
+    args = new String[]
     {
       "-J", "1.2.3.4:invalidcriticality",
       "o=test"
     };
     argLists.add(args);
+    reasonList.add("Invalid control criticality");
 
-    args = new String[] // Non-numeric port
+    args = new String[]
     {
       "-p", "nonnumeric",
       "o=test"
     };
     argLists.add(args);
+    reasonList.add("Non-numeric port");
 
-    args = new String[] // Port value out of range.
+    args = new String[]
     {
       "-p", "999999",
       "o=test"
     };
     argLists.add(args);
+    reasonList.add("Port value out of range");
 
-    args = new String[] // SASL external without SSL or StartTLS
+    args = new String[]
     {
       "-r",
       "-K", "key.store.file",
       "o=test"
     };
     argLists.add(args);
+    reasonList.add("SASL external without SSL or StartTLS");
 
-    args = new String[] // SASL external without keystore file
+    args = new String[]
     {
       "-Z",
       "-r",
       "o=test"
     };
     argLists.add(args);
+    reasonList.add("SASL external without keystore file");
 
 
-    Object[][] returnArray = new Object[argLists.size()][1];
+    Object[][] returnArray = new Object[argLists.size()][2];
     for (int i=0; i < argLists.size(); i++)
     {
       returnArray[i][0] = argLists.get(i);
+      returnArray[i][1] = reasonList.get(i);
     }
     return returnArray;
   }
@@ -286,12 +312,15 @@
   /**
    * Tests the LDAPDelete tool with sets of invalid arguments.
    *
-   * @param  args  The set of arguments to use for the LDAPDelete tool.
+   * @param  args           The set of arguments to use for the LDAPDelete tool.
+   * @param  invalidReason  The reason the provided set of arguments was
+   *                        invalid.
    */
   @Test(dataProvider = "invalidArgs")
-  public void testInvalidArguments(String[] args)
+  public void testInvalidArguments(String[] args, String invalidReason)
   {
-    assertFalse(LDAPDelete.mainDelete(args, false, null, null) == 0);
+    assertFalse(LDAPDelete.mainDelete(args, false, null, null) == 0,
+                "Should have been invalid because:  " + invalidReason);
   }
 
 
diff --git a/opends/tests/unit-tests-testng/src/server/org/opends/server/tools/LDAPModifyTestCase.java b/opends/tests/unit-tests-testng/src/server/org/opends/server/tools/LDAPModifyTestCase.java
index 50b6961..6641dd9 100644
--- a/opends/tests/unit-tests-testng/src/server/org/opends/server/tools/LDAPModifyTestCase.java
+++ b/opends/tests/unit-tests-testng/src/server/org/opends/server/tools/LDAPModifyTestCase.java
@@ -110,187 +110,217 @@
   @DataProvider(name = "invalidArgs")
   public Object[][] getInvalidArgumentLists()
   {
-    ArrayList<String[]> argLists = new ArrayList<String[]>();
+    ArrayList<String[]> argLists   = new ArrayList<String[]>();
+    ArrayList<String>   reasonList = new ArrayList<String>();
 
     String[] args;
-    args = new String[] // Missing value for -D argument.
+    args = new String[]
     {
       "-D"
     };
     argLists.add(args);
+    reasonList.add("No value for '-D' argument");
 
-    args = new String[] // Missing value for -w argument.
+    args = new String[]
     {
       "-w"
     };
     argLists.add(args);
+    reasonList.add("No value for '-w' argument");
 
-    args = new String[] // Missing value for -j argument.
+    args = new String[]
     {
       "-j"
     };
     argLists.add(args);
+    reasonList.add("No value for '-j' argument");
 
-    args = new String[] // Missing value for -Y argument.
+    args = new String[]
     {
       "-Y"
     };
     argLists.add(args);
+    reasonList.add("No value for '-Y' argument");
 
-    args = new String[] // Missing value for -i argument.
+    args = new String[]
     {
       "-i"
     };
     argLists.add(args);
+    reasonList.add("No value for '-i' argument");
 
-    args = new String[] // Missing value for -K argument.
+    args = new String[]
     {
       "-K"
     };
     argLists.add(args);
+    reasonList.add("No value for '-K' argument");
 
-    args = new String[] // Missing value for -P argument.
+    args = new String[]
     {
       "-P"
     };
     argLists.add(args);
+    reasonList.add("No value for '-P' argument");
 
-    args = new String[] // Missing value for -W argument.
+    args = new String[]
     {
       "-W"
     };
     argLists.add(args);
+    reasonList.add("No value for '-W' argument");
 
-    args = new String[] // Missing value for -h argument.
+    args = new String[]
     {
       "-h"
     };
     argLists.add(args);
+    reasonList.add("No value for '-h' argument");
 
-    args = new String[] // Missing value for -p argument.
+    args = new String[]
     {
       "-p"
     };
     argLists.add(args);
+    reasonList.add("No value for '-p' argument");
 
-    args = new String[] // Missing value for -V argument.
+    args = new String[]
     {
       "-V"
     };
     argLists.add(args);
+    reasonList.add("No value for '-V' argument");
 
-    args = new String[] // Missing value for -f argument.
+    args = new String[]
     {
       "-f"
     };
     argLists.add(args);
+    reasonList.add("No value for '-f' argument");
 
-    args = new String[] // Missing value for -J argument.
+    args = new String[]
     {
       "-J"
     };
     argLists.add(args);
+    reasonList.add("No value for '-J' argument");
 
-    args = new String[] // Missing value for -o argument.
+    args = new String[]
     {
       "-o"
     };
     argLists.add(args);
+    reasonList.add("No value for '-o' argument");
 
-    args = new String[] // Missing value for --assertionFilter argument.
+    args = new String[]
     {
       "-assertionFilter"
     };
     argLists.add(args);
+    reasonList.add("No value for '--assertionFilter' argument");
 
-    args = new String[] // Missing value for --preReadAttributes argument.
+    args = new String[]
     {
       "--preReadAttributes"
     };
     argLists.add(args);
+    reasonList.add("No value for '--preReadAttributes' argument");
 
-    args = new String[] // Missing value for --postReadAttributes argument.
+    args = new String[]
     {
       "--postReadAttributes"
     };
     argLists.add(args);
+    reasonList.add("No value for '--postReadAttributes' argument");
 
-    args = new String[] // Invalid bind password file path
+    args = new String[]
     {
       "-D", "cn=Directory Manager",
       "-j", "no.such.file",
     };
     argLists.add(args);
+    reasonList.add("Invalid bind password file path");
 
-    args = new String[] // Both bind password and password file
+    args = new String[]
     {
       "-D", "cn=Directory Manager",
       "-w", "password",
       "-j", validPasswordFile,
     };
     argLists.add(args);
+    reasonList.add("Both bind password and password file");
 
-    args = new String[] // Non-numeric LDAP version.
+    args = new String[]
     {
       "-V", "nonnumeric",
     };
     argLists.add(args);
+    reasonList.add("Non-numeric LDAP version");
 
-    args = new String[] // Invalid LDAP version.
+    args = new String[]
     {
       "-V", "1",
     };
     argLists.add(args);
+    reasonList.add("Invalid LDAP version");
 
-    args = new String[] // Invalid control criticality
+    args = new String[]
     {
       "-J", "1.2.3.4:invalidcriticality",
     };
     argLists.add(args);
+    reasonList.add("Invalid control criticality");
 
-    args = new String[] // Non-numeric port
+    args = new String[]
     {
       "-p", "nonnumeric",
     };
     argLists.add(args);
+    reasonList.add("Non-numeric port");
 
-    args = new String[] // Port value out of range.
+    args = new String[]
     {
       "-p", "999999",
     };
     argLists.add(args);
+    reasonList.add("Port value out of range");
 
-    args = new String[] // SASL external without SSL or StartTLS
+    args = new String[]
     {
       "-r",
       "-K", "key.store.file",
     };
     argLists.add(args);
+    reasonList.add("SASL external without SSL or StartTLS");
 
-    args = new String[] // SASL external without keystore file
+    args = new String[]
     {
       "-Z",
       "-r",
     };
     argLists.add(args);
+    reasonList.add("SASL external without keystore file");
 
-    args = new String[] // Invalid LDAP assertion filter
+    args = new String[]
     {
       "--assertionFilter", "(invalid)"
     };
     argLists.add(args);
+    reasonList.add("Invalid LDAP assertion filter");
 
-    args = new String[] // No such LDIF file
+    args = new String[]
     {
       "-f", "no.such.file"
     };
     argLists.add(args);
+    reasonList.add("No such LDIF file");
 
 
-    Object[][] returnArray = new Object[argLists.size()][1];
+    Object[][] returnArray = new Object[argLists.size()][2];
     for (int i=0; i < argLists.size(); i++)
     {
       returnArray[i][0] = argLists.get(i);
+      returnArray[i][1] = reasonList.get(i);
     }
     return returnArray;
   }
@@ -300,12 +330,14 @@
   /**
    * Tests the LDAPModify tool with sets of invalid arguments.
    *
-   * @param  args  The set of arguments to use for the LDAPModify tool.
+   * @param  args           The set of arguments to use for the LDAPModify tool.
+   * @param  invalidReason  The reason the provided arguments were invalid.
    */
   @Test(dataProvider = "invalidArgs")
-  public void testInvalidArguments(String[] args)
+  public void testInvalidArguments(String[] args, String invalidReason)
   {
-    assertFalse(LDAPModify.mainModify(args, false, null, null) == 0);
+    assertFalse(LDAPModify.mainModify(args, false, null, null) == 0,
+                "Should have been invalid because:  " + invalidReason);
   }
 
 
diff --git a/opends/tests/unit-tests-testng/src/server/org/opends/server/tools/LDAPPasswordModifyTestCase.java b/opends/tests/unit-tests-testng/src/server/org/opends/server/tools/LDAPPasswordModifyTestCase.java
index 1fd6707..8be0307 100644
--- a/opends/tests/unit-tests-testng/src/server/org/opends/server/tools/LDAPPasswordModifyTestCase.java
+++ b/opends/tests/unit-tests-testng/src/server/org/opends/server/tools/LDAPPasswordModifyTestCase.java
@@ -102,180 +102,209 @@
   @DataProvider(name = "invalidArgs")
   public Object[][] getInvalidArgumentLists()
   {
-    ArrayList<String[]> argLists = new ArrayList<String[]>();
+    ArrayList<String[]> argLists   = new ArrayList<String[]>();
+    ArrayList<String>   reasonList = new ArrayList<String>();
 
-    String[] args = {}; // No arguments.
+    String[] args = {};
     argLists.add(args);
+    reasonList.add("No arguments were provided");
 
-    args = new String[] // Missing value for -h argument.
+    args = new String[]
     {
       "-h"
     };
     argLists.add(args);
+    reasonList.add("No value for '-h' argument");
 
-    args = new String[] // Missing value for -p argument.
+    args = new String[]
     {
       "-p"
     };
     argLists.add(args);
+    reasonList.add("No value for '-p' argument");
 
-    args = new String[] // Missing value for -D argument.
+    args = new String[]
     {
       "-D"
     };
     argLists.add(args);
+    reasonList.add("No value for '-D' argument");
 
-    args = new String[] // Missing value for -w argument.
+    args = new String[]
     {
       "-w"
     };
     argLists.add(args);
+    reasonList.add("No value for '-w' argument");
 
-    args = new String[] // Missing value for -W argument.
+    args = new String[]
     {
       "-W"
     };
     argLists.add(args);
+    reasonList.add("No value for '-W' argument");
 
-    args = new String[] // Missing value for -a argument.
+    args = new String[]
     {
       "-a"
     };
     argLists.add(args);
+    reasonList.add("No value for '-a' argument");
 
-    args = new String[] // Missing value for -n argument.
+    args = new String[]
     {
       "-n"
     };
     argLists.add(args);
+    reasonList.add("No value for '-n' argument");
 
-    args = new String[] // Missing value for -N argument.
+    args = new String[]
     {
       "-N"
     };
     argLists.add(args);
+    reasonList.add("No value for '-N' argument");
 
-    args = new String[] // Missing value for -c argument.
+    args = new String[]
     {
       "-c"
     };
     argLists.add(args);
+    reasonList.add("No value for '-c' argument");
 
-    args = new String[] // Missing value for -C argument.
+    args = new String[]
     {
       "-C"
     };
     argLists.add(args);
+    reasonList.add("No value for '-C' argument");
 
-    args = new String[] // Missing value for -k argument.
+    args = new String[]
     {
       "-k"
     };
     argLists.add(args);
+    reasonList.add("No value for '-k' argument");
 
-    args = new String[] // Missing value for -K argument.
+    args = new String[]
     {
       "-K"
     };
     argLists.add(args);
+    reasonList.add("No value for '-K' argument");
 
-    args = new String[] // Missing value for -t argument.
+    args = new String[]
     {
       "-t"
     };
     argLists.add(args);
+    reasonList.add("No value for '-t' argument");
 
-    args = new String[] // Missing value for -T argument.
+    args = new String[]
     {
       "-T"
     };
     argLists.add(args);
+    reasonList.add("No value for '-T' argument");
 
-    args = new String[] // Invalid bind password file path
+    args = new String[]
     {
       "-D", "cn=Directory Manager",
       "-W", "no.such.file"
     };
     argLists.add(args);
+    reasonList.add("Invalid bind password file path");
 
-    args = new String[] // Both bind password and password file
+    args = new String[]
     {
       "-D", "cn=Directory Manager",
       "-w", "password",
       "-W", currentPasswordFile
     };
     argLists.add(args);
+    reasonList.add("Both bind password and bind password file");
 
-    args = new String[] // Both current password and current password file
+    args = new String[]
     {
       "-D", "cn=Directory Manager",
       "-c", "password",
       "-C", currentPasswordFile
     };
     argLists.add(args);
+    reasonList.add("Both current password and current password file");
 
-    args = new String[] // Both new password and new password file
+    args = new String[]
     {
       "-D", "cn=Directory Manager",
       "-n", "password",
       "-N", newPasswordFile
     };
     argLists.add(args);
+    reasonList.add("Both new password and new password file");
 
-    args = new String[] // Both SSL and StartTLS
+    args = new String[]
     {
       "-Z",
       "-q"
     };
     argLists.add(args);
+    reasonList.add("Both SSL and StartTLS");
 
-    args = new String[] // Non-numeric port
+    args = new String[]
     {
       "-p", "nonnumeric"
     };
     argLists.add(args);
+    reasonList.add("Non-numeric port");
 
-    args = new String[] // Port value out of range.
+    args = new String[]
     {
       "-p", "999999"
     };
     argLists.add(args);
+    reasonList.add("Port value out of range");
 
-    args = new String[] // Bind DN without a password or password file
+    args = new String[]
     {
       "-D", "cn=Directory Manager"
     };
     argLists.add(args);
+    reasonList.add("Bind Dn without a password or password file");
 
-    args = new String[] // Bind password without a DN
+    args = new String[]
     {
       "-w", "password"
     };
     argLists.add(args);
+    reasonList.add("Bind password without a DN");
 
-    args = new String[] // Bind password file without a DN
+    args = new String[]
     {
       "-W", currentPasswordFile
     };
     argLists.add(args);
+    reasonList.add("Bind password file without a DN");
 
-    args = new String[] // No bind credentials, with authzID, no current PW
+    args = new String[]
     {
       "-a", "u:test.user"
     };
     argLists.add(args);
+    reasonList.add("No bind credentials, with authzID, no current PW");
 
-    args = new String[] // Provide DN for authzID without DN
+    args = new String[]
     {
       "-A"
     };
     argLists.add(args);
+    reasonList.add("Provide DN for authzID without DN");
 
 
-    Object[][] returnArray = new Object[argLists.size()][1];
+    Object[][] returnArray = new Object[argLists.size()][2];
     for (int i=0; i < argLists.size(); i++)
     {
       returnArray[i][0] = argLists.get(i);
+      returnArray[i][1] = reasonList.get(i);
     }
     return returnArray;
   }
@@ -285,13 +314,15 @@
   /**
    * Tests the LDAPModify tool with sets of invalid arguments.
    *
-   * @param  args  The set of arguments to use for the LDAPModify tool.
+   * @param  args           The set of arguments to use for the LDAPModify tool.
+   * @param  invalidReason  The reason the provided arguments were invalid.
    */
   @Test(dataProvider = "invalidArgs")
-  public void testInvalidArguments(String[] args)
+  public void testInvalidArguments(String[] args, String invalidReason)
   {
     assertFalse(LDAPPasswordModify.mainPasswordModify(args, false, null,
-                                                      null) == 0);
+                                                      null) == 0,
+                "Should have been invalid because:  " + invalidReason);
   }
 
 
diff --git a/opends/tests/unit-tests-testng/src/server/org/opends/server/tools/LDAPSearchTestCase.java b/opends/tests/unit-tests-testng/src/server/org/opends/server/tools/LDAPSearchTestCase.java
index c2a7e70..99a22f2 100644
--- a/opends/tests/unit-tests-testng/src/server/org/opends/server/tools/LDAPSearchTestCase.java
+++ b/opends/tests/unit-tests-testng/src/server/org/opends/server/tools/LDAPSearchTestCase.java
@@ -102,197 +102,222 @@
   @DataProvider(name = "invalidArgs")
   public Object[][] getInvalidArgumentLists()
   {
-    ArrayList<String[]> argLists = new ArrayList<String[]>();
+    ArrayList<String[]> argLists   = new ArrayList<String[]>();
+    ArrayList<String>   reasonList = new ArrayList<String>();
 
-    String[] args = {}; // No arguments
+    String[] args = {};
     argLists.add(args);
+    reasonList.add("No arguments");
 
-    args = new String[] // No value for '-b' argument
+    args = new String[]
     {
       "-b"
     };
     argLists.add(args);
+    reasonList.add("No value for '-b' argument");
 
-    args = new String[] // No value for '-D' argument
+    args = new String[]
     {
       "-D"
     };
     argLists.add(args);
+    reasonList.add("No value for '-D' argument");
 
-    args = new String[] // No value for '-w' argument
+    args = new String[]
     {
       "-w"
     };
     argLists.add(args);
+    reasonList.add("No value for '-w' argument");
 
-    args = new String[] // No value for '-j' argument
+    args = new String[]
     {
       "-j"
     };
     argLists.add(args);
+    reasonList.add("No value for '-j' argument");
 
-    args = new String[] // No value for '-Y' argument
+    args = new String[]
     {
       "-Y"
     };
     argLists.add(args);
+    reasonList.add("No value for '-Y' argument");
 
-    args = new String[] // No value for '-i' argument
+    args = new String[]
     {
       "-i"
     };
     argLists.add(args);
+    reasonList.add("No value for '-i' argument");
 
-    args = new String[] // No value for '-K' argument
+    args = new String[]
     {
       "-K"
     };
     argLists.add(args);
+    reasonList.add("No value for '-K' argument");
 
-    args = new String[] // No value for '-P' argument
+    args = new String[]
     {
       "-P"
     };
     argLists.add(args);
+    reasonList.add("No value for '-P' argument");
 
-    args = new String[] // No value for '-W' argument
+    args = new String[]
     {
       "-W"
     };
     argLists.add(args);
+    reasonList.add("No value for '-W' argument");
 
-    args = new String[] // No value for '-h' argument
+    args = new String[]
     {
       "-h"
     };
     argLists.add(args);
+    reasonList.add("No value for '-h' argument");
 
-    args = new String[] // No value for '-p' argument
+    args = new String[]
     {
       "-p"
     };
     argLists.add(args);
+    reasonList.add("No value for '-p' argument");
 
-    args = new String[] // No value for '-V' argument
+    args = new String[]
     {
       "-V"
     };
     argLists.add(args);
+    reasonList.add("No value for '-V' argument");
 
-    args = new String[] // No value for '-f' argument
+    args = new String[]
     {
       "-f"
     };
     argLists.add(args);
+    reasonList.add("No value for '-f' argument");
 
-    args = new String[] // No value for '-J' argument
+    args = new String[]
     {
       "-J"
     };
     argLists.add(args);
+    reasonList.add("No value for '-J' argument");
 
-    args = new String[] // No value for '-z' argument
+    args = new String[]
     {
       "-z"
     };
     argLists.add(args);
+    reasonList.add("No value for '-z' argument");
 
-    args = new String[] // No value for '-l' argument
+    args = new String[]
     {
       "-l"
     };
     argLists.add(args);
+    reasonList.add("No value for '-l' argument");
 
-    args = new String[] // No value for '-s' argument
+    args = new String[]
     {
       "-s"
     };
     argLists.add(args);
+    reasonList.add("No value for '-s' argument");
 
-    args = new String[] // No value for '-a' argument
+    args = new String[]
     {
       "-a"
     };
     argLists.add(args);
+    reasonList.add("No value for '-a' argument");
 
-    args = new String[] // No value for '-o' argument
+    args = new String[]
     {
       "-o"
     };
     argLists.add(args);
+    reasonList.add("No value for '-o' argument");
 
-    args = new String[] // No value for '-c' argument
+    args = new String[]
     {
       "-c"
     };
     argLists.add(args);
+    reasonList.add("No value for '-c' argument");
 
-    args = new String[] // No value for '--assertionFilter' argument
+    args = new String[]
     {
       "--assertionFilter"
     };
     argLists.add(args);
+    reasonList.add("No value for '--assertionFilter' argument");
 
-    args = new String[] // No value for '--matchedValuesFilter' argument
+    args = new String[]
     {
       "--matchedValuesFilter"
     };
     argLists.add(args);
+    reasonList.add("No value for '--matchedValuesFilter' argument");
 
-    args = new String[] // Invalid short argument
+    args = new String[]
     {
       "-I"
     };
     argLists.add(args);
+    reasonList.add("Invalid short argument");
 
-    args = new String[] // Invalid long argument
+    args = new String[]
     {
       "--invalidLongArgument"
     };
     argLists.add(args);
+    reasonList.add("Invalid long argument");
 
-    args = new String[] // No base DN
+    args = new String[]
     {
       "(objectClass=*)"
     };
     argLists.add(args);
+    reasonList.add("No base DN");
 
-    args = new String[] // Base DN with no value
-    {
-      "-b"
-    };
-    argLists.add(args);
-
-    args = new String[] // No filter
+    args = new String[]
     {
       "-b", ""
     };
     argLists.add(args);
+    reasonList.add("No filter");
 
-    args = new String[] // Invalid search filter
+    args = new String[]
     {
       "-b", "",
       "(invalidfilter)"
     };
     argLists.add(args);
+    reasonList.add("Invalid search filter");
 
-    args = new String[] // Invalid assertion filter
+    args = new String[]
     {
       "-b", "",
       "--assertionFilter", "(invalidfilter)",
       "(objectClass=*)"
     };
     argLists.add(args);
+    reasonList.add("Invalid assertion filter");
 
-    args = new String[] // Invalid matched values filter
+    args = new String[]
     {
       "-b", "",
       "--matchedValuesFilter", "(invalidfilter)",
       "(objectClass=*)"
     };
     argLists.add(args);
+    reasonList.add("Invalid matched values filter");
 
-    args = new String[] // Invalid bind password file path
+    args = new String[]
     {
       "-D", "cn=Directory Manager",
       "-j", "no.such.file",
@@ -300,8 +325,9 @@
       "(objectClass=*)"
     };
     argLists.add(args);
+    reasonList.add("Invalid bind password file path");
 
-    args = new String[] // Both bind password and password file
+    args = new String[]
     {
       "-D", "cn=Directory Manager",
       "-w", "password",
@@ -310,143 +336,143 @@
       "(objectClass=*)"
     };
     argLists.add(args);
+    reasonList.add("Both bind password and bind password file");
 
-    args = new String[] // Non-numeric LDAP version.
+    args = new String[]
     {
       "-b", "",
       "-V", "nonnumeric",
       "(objectClass=*)"
     };
     argLists.add(args);
+    reasonList.add("Non-numeric LDAP version");
 
-    args = new String[] // Invalid LDAP version.
+    args = new String[]
     {
       "-b", "",
       "-V", "1",
       "(objectClass=*)"
     };
     argLists.add(args);
+    reasonList.add("Invalid LDAP version");
 
-    args = new String[] // Invalid filter file path.
+    args = new String[]
     {
       "-b", "",
       "-f", "no.such.file"
     };
     argLists.add(args);
+    reasonList.add("Invalid filter file path");
 
-    args = new String[] // Invalid control criticality
+    args = new String[]
     {
       "-b", "",
       "-J", "1.2.3.4:invalidcriticality",
       "(objectClass=*)"
     };
     argLists.add(args);
+    reasonList.add("Invalid control criticality");
 
-    args = new String[] // Invalid scope
+    args = new String[]
     {
       "-b", "",
       "-s", "invalid",
       "(objectClass=*)"
     };
     argLists.add(args);
+    reasonList.add("Invalid scope");
 
-    args = new String[] // Invalid dereference policy
+    args = new String[]
     {
       "-b", "",
       "-a", "invalid",
       "(objectClass=*)"
     };
     argLists.add(args);
+    reasonList.add("Invalid dereference policy");
 
-    args = new String[] // Invalid psearch descriptor
+    args = new String[]
     {
       "-b", "",
       "-C", "invalid",
       "(objectClass=*)"
     };
     argLists.add(args);
+    reasonList.add("Invalid psearch descriptor");
 
-    args = new String[] // Invalid psearch changetype
+    args = new String[]
     {
       "-b", "",
       "-C", "ps:invalid",
       "(objectClass=*)"
     };
     argLists.add(args);
+    reasonList.add("Invalid psearch changetype");
 
-    args = new String[] // Invalid psearch changetype in list
+    args = new String[]
     {
       "-b", "",
       "-C", "ps:add,delete,modify,modifydn,invalid",
       "(objectClass=*)"
     };
     argLists.add(args);
+    reasonList.add("Invalid psearch changetype in list");
 
-    args = new String[] // Invalid psearch changesOnly
+    args = new String[]
     {
       "-b", "",
       "-C", "ps:all:invalid",
       "(objectClass=*)"
     };
     argLists.add(args);
+    reasonList.add("Invalid psearch changesOnly");
 
-    args = new String[] // Invalid psearch entryChangeControls
+    args = new String[]
     {
       "-b", "",
       "-C", "ps:all:1:invalid",
       "(objectClass=*)"
     };
     argLists.add(args);
+    reasonList.add("Invalid psearch entryChangeControls");
 
-    args = new String[] // Non-numeric port
+    args = new String[]
     {
       "-p", "nonnumeric",
       "-b", "",
       "(objectClass=*)"
     };
     argLists.add(args);
+    reasonList.add("Non-numeric port");
 
-    args = new String[] // Port value out of range.
+    args = new String[]
     {
       "-p", "999999",
       "-b", "",
       "(objectClass=*)"
     };
     argLists.add(args);
+    reasonList.add("Port value out of range");
 
-    args = new String[] // Non-numeric size limit
+    args = new String[]
     {
       "-z", "nonnumeric",
       "-b", "",
       "(objectClass=*)"
     };
     argLists.add(args);
+    reasonList.add("Non-numeric size limit");
 
-    args = new String[] // Size limit out of range.
-    {
-      "-z", "-1",
-      "-b", "",
-      "(objectClass=*)"
-    };
-    argLists.add(args);
-
-    args = new String[] // Non-numeric time limit
+    args = new String[]
     {
       "-l", "nonnumeric",
       "-b", "",
       "(objectClass=*)"
     };
     argLists.add(args);
+    reasonList.add("Non-numeric time limit");
 
-    args = new String[] // Time limit out of range.
-    {
-      "-l", "-1",
-      "-b", "",
-      "(objectClass=*)"
-    };
-    argLists.add(args);
-
-    args = new String[] // SASL external without SSL or StartTLS
+    args = new String[]
     {
       "-r",
       "-b", "",
@@ -454,8 +480,9 @@
       "(objectClass=*)"
     };
     argLists.add(args);
+    reasonList.add("SASL external without SSL or StartTLS");
 
-    args = new String[] // SASL external without keystore file
+    args = new String[]
     {
       "-Z",
       "-r",
@@ -463,12 +490,14 @@
       "(objectClass=*)"
     };
     argLists.add(args);
+    reasonList.add("SASL external without a keystore file");
 
 
-    Object[][] returnArray = new Object[argLists.size()][1];
+    Object[][] returnArray = new Object[argLists.size()][2];
     for (int i=0; i < argLists.size(); i++)
     {
       returnArray[i][0] = argLists.get(i);
+      returnArray[i][1] = reasonList.get(i);
     }
     return returnArray;
   }
@@ -478,12 +507,14 @@
   /**
    * Tests the LDAPSearch tool with sets of invalid arguments.
    *
-   * @param  args  The set of arguments to use for the LDAPSearch tool.
+   * @param  args           The set of arguments to use for the LDAPSearch tool.
+   * @param  invalidReason  The reason that the set of arguments is not valid.
    */
   @Test(dataProvider = "invalidArgs")
-  public void testInvalidArguments(String[] args)
+  public void testInvalidArguments(String[] args, String invalidReason)
   {
-    assertFalse(LDAPSearch.mainSearch(args, false, null, null) == 0);
+    assertFalse(LDAPSearch.mainSearch(args, false, null, null) == 0,
+                "Should have been invalid because:  " + invalidReason);
   }
 
 

--
Gitblit v1.10.0