From caf74d75e44a4769e6d4489970838703eedb745f Mon Sep 17 00:00:00 2001
From: Gaetan Boismal <gaetan.boismal@forgerock.com>
Date: Mon, 31 Oct 2016 14:00:38 +0000
Subject: [PATCH] OPENDJ-2272 OPENDJ-2773 Tools unit tests migration
---
opendj-ldap-toolkit/src/test/java/com/forgerock/opendj/ldap/tools/ToolsTestCase.java | 66 +++++++++++++++++++++++++++++++-
1 files changed, 63 insertions(+), 3 deletions(-)
diff --git a/opendj-ldap-toolkit/src/test/java/com/forgerock/opendj/ldap/tools/ToolsTestCase.java b/opendj-ldap-toolkit/src/test/java/com/forgerock/opendj/ldap/tools/ToolsTestCase.java
index 2ea2c2e..eb7045f 100644
--- a/opendj-ldap-toolkit/src/test/java/com/forgerock/opendj/ldap/tools/ToolsTestCase.java
+++ b/opendj-ldap-toolkit/src/test/java/com/forgerock/opendj/ldap/tools/ToolsTestCase.java
@@ -12,19 +12,79 @@
* information: "Portions Copyright [year] [name of copyright owner]".
*
* Copyright 2010 Sun Microsystems, Inc.
- * Portions copyright 2012 ForgeRock AS.
+ * Portions copyright 2012-2016 ForgeRock AS.
*/
package com.forgerock.opendj.ldap.tools;
+import static org.fest.assertions.Assertions.assertThat;
+import static org.forgerock.util.Utils.closeSilently;
+
+import java.io.PrintStream;
+
+import org.forgerock.opendj.ldap.ByteStringBuilder;
+import org.forgerock.opendj.ldap.ResultCode;
import org.forgerock.testng.ForgeRockTestCase;
+import org.testng.annotations.AfterMethod;
+import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
/**
* An abstract class that all tools unit tests should extend. A tool represents
* the classes found directly under the package com.forgerock.opendj.ldap.tools.
*/
-
-@Test(groups = { "precommit", "tools", "sdk" })
+@Test
public abstract class ToolsTestCase extends ForgeRockTestCase {
+
+ ByteStringBuilder out;
+ ByteStringBuilder err;
+ PrintStream outStream;
+ PrintStream errStream;
+
+ @BeforeMethod
+ void refreshStream() {
+ out = new ByteStringBuilder();
+ err = new ByteStringBuilder();
+ outStream = new PrintStream(out.asOutputStream());
+ errStream = new PrintStream(err.asOutputStream());
+ }
+
+ @AfterMethod
+ void closeStream() {
+ closeSilently(outStream, errStream);
+ }
+
+ /**
+ * Tests the LDAPSearch tool with sets of invalid arguments.
+ *
+ * @param args
+ * The set of arguments to use for the LDAPDelete tool.
+ * @param invalidReason
+ * The reason the provided set of arguments is invalid.
+ */
+ @Test(dataProvider = "invalidArgs")
+ public void testInvalidArguments(String[] args, String invalidReason) throws Exception {
+ assertThat(runTool(args)).isEqualTo(ResultCode.CLIENT_SIDE_PARAM_ERROR.intValue());
+ assertThat(errOnSingleLine()).contains(invalidReason);
+ assertThat(out.toString()).isEmpty();
+ }
+
+ /** Tests the LDAPSearch tool with the "--help" option. */
+ @Test
+ public void testHelp() throws Exception {
+ final int success = ResultCode.SUCCESS.intValue();
+ assertThat(runTool("--help")).isEqualTo(success);
+ assertThat(runTool("-H")).isEqualTo(success);
+ assertThat(runTool("-?")).isEqualTo(success);
+ }
+
+ String errOnSingleLine() {
+ return err.toString().replace(System.lineSeparator(), " ");
+ }
+
+ int runTool(final String... args) {
+ return Utils.runTool(createInstance(), args);
+ }
+
+ abstract ToolConsoleApplication createInstance();
}
--
Gitblit v1.10.0