mirror of https://github.com/OpenIdentityPlatform/OpenDJ.git

neil_a_wilson
15.13.2007 4cb2749aff182db1da02dbda4e4c431d5ed14fc4
Update the LDAPSearch tool so that the "--noop" option works as expected.  If
it is provided, then the tool will verify that all of the arguments are valid
but will not actually attempt any network communication.

Fix Contributed By: Ales Novak
OpenDS Issue Number: 1014
2 files modified
60 ■■■■■ changed files
opends/src/server/org/opends/server/tools/LDAPSearch.java 10 ●●●●● patch | view | raw | blame | history
opends/tests/unit-tests-testng/src/server/org/opends/server/tools/LDAPSearchTestCase.java 50 ●●●●● patch | view | raw | blame | history
opends/src/server/org/opends/server/tools/LDAPSearch.java
@@ -1359,6 +1359,16 @@
        connectionOptions.setSSLConnectionFactory(sslConnectionFactory);
      }
      if (noop.isPresent())
      {
        // We don't actually need to open a connection or perform the search,
        // so we're done.  We should return 0 to either mean that the processing
        // was successful or that there were no matching entries, based on
        // countEntries.isPresent() (but in either case the return value should
        // be zero).
        return 0;
      }
      AtomicInteger nextMessageID = new AtomicInteger(1);
      connection = new LDAPConnection(hostNameValue, portNumber,
                                      connectionOptions, out, err);
opends/tests/unit-tests-testng/src/server/org/opends/server/tools/LDAPSearchTestCase.java
@@ -566,6 +566,56 @@
  /**
   * Tests a simple invocation using the "--noop" option with a valid argument
   * set.
   */
  @Test()
  public void testNoOpSearchValidArguments()
  {
    String[] args =
    {
      "-h", "doesnt.need.to.resolve",
      "-p", String.valueOf(TestCaseUtils.getServerLdapPort()),
      "-V", "3",
      "-D", "cn=Directory Manager",
      "-w", "password",
      "-b", "",
      "-s", "base",
      "--noop",
      "(objectClass=*)"
    };
    assertEquals(LDAPSearch.mainSearch(args, false, null, System.err), 0);
  }
  /**
   * Tests a simple invocation using the "--noop" option with an invalid
   * argument set.
   */
  @Test()
  public void testNoOpSearchInvalidArguments()
  {
    String[] args =
    {
      "-h", "doesnt.need.to.resolve",
      "-p", String.valueOf(TestCaseUtils.getServerLdapPort()),
      "-V", "3",
      "-D", "cn=Directory Manager",
      "-w", "password",
      "-b", "",
      "-s", "invalid",
      "--noop",
      "(objectClass=*)"
    };
    assertFalse(LDAPSearch.mainSearch(args, false, null, System.err) == 0);
  }
  /**
   * Tests a simple LDAP search over SSL using blind trust.
   */
  @Test()