From cbc5fe974288afb724eabbca7e6dd271d6624f3f Mon Sep 17 00:00:00 2001
From: Gaetan Boismal <gaetan.boismal@forgerock.com>
Date: Mon, 27 Jul 2015 09:01:26 +0000
Subject: [PATCH] OPENDJ-2027 Refactor MakeLDIF integration test

---
 opendj-sdk/opendj-ldap-toolkit/src/test/java/com/forgerock/opendj/ldap/tools/MakeLDIFITCase.java |  104 +++++++++++++++++++++++++++-------------------------
 1 files changed, 54 insertions(+), 50 deletions(-)

diff --git a/opendj-sdk/opendj-ldap-toolkit/src/test/java/com/forgerock/opendj/ldap/tools/MakeLDIFITCase.java b/opendj-sdk/opendj-ldap-toolkit/src/test/java/com/forgerock/opendj/ldap/tools/MakeLDIFITCase.java
index f6d6ed6..525af35 100644
--- a/opendj-sdk/opendj-ldap-toolkit/src/test/java/com/forgerock/opendj/ldap/tools/MakeLDIFITCase.java
+++ b/opendj-sdk/opendj-ldap-toolkit/src/test/java/com/forgerock/opendj/ldap/tools/MakeLDIFITCase.java
@@ -26,102 +26,106 @@
 package com.forgerock.opendj.ldap.tools;
 
 import static org.fest.assertions.Assertions.*;
-import static com.forgerock.opendj.ldap.tools.ToolsMessages.*;
-import static com.forgerock.opendj.cli.Utils.MAX_LINE_WIDTH;
-import static com.forgerock.opendj.cli.Utils.wrapText;
-import static org.forgerock.util.Utils.closeSilently;
+import static org.forgerock.util.Utils.*;
 
-import java.io.ByteArrayOutputStream;
+import static com.forgerock.opendj.ldap.tools.ToolsMessages.*;
+
 import java.io.PrintStream;
-import java.io.UnsupportedEncodingException;
 
 import org.forgerock.i18n.LocalizableMessage;
+import org.forgerock.opendj.ldap.ByteStringBuilder;
+import org.testng.annotations.AfterMethod;
+import org.testng.annotations.BeforeMethod;
 import org.testng.annotations.DataProvider;
 import org.testng.annotations.Test;
 
 @SuppressWarnings("javadoc")
-public class MakeLDIFTestCase extends ToolsTestCase {
+public class MakeLDIFITCase extends ToolsITCase {
 
-    @DataProvider(name = "validArguments")
-    Object[][] createValidArguments() throws Exception {
+    private ByteStringBuilder out;
+    private ByteStringBuilder err;
+    private PrintStream outStream;
+    private PrintStream errStream;
+
+    @BeforeMethod
+    private void refreshStreams() {
+        out = new ByteStringBuilder();
+        err = new ByteStringBuilder();
+        outStream = new PrintStream(out.asOutputStream());
+        errStream = new PrintStream(err.asOutputStream());
+    }
+
+    @AfterMethod
+    private void closeStreams() {
+        closeSilently(outStream, errStream);
+    }
+
+    @DataProvider
+    Object[][] validArguments() throws Exception {
         return new Object[][] {
+            { // check that help message is displayed
+              args("-H"),
+              expectedOutput(INFO_MAKELDIF_TOOL_DESCRIPTION.get()) },
+
             { args("-c", "numusers=1", "example.template"),
               // 2 base entries + users
-              expectedErrOutput(INFO_MAKELDIF_PROCESSING_COMPLETE.get(3)) },
+              expectedOutput(INFO_MAKELDIF_PROCESSING_COMPLETE.get(3)) },
 
             { args("-c", "numusers=5", "example.template"),
               // 2 base entries + users
-              expectedErrOutput(INFO_MAKELDIF_PROCESSING_COMPLETE.get(7)) },
+              expectedOutput(INFO_MAKELDIF_PROCESSING_COMPLETE.get(7)) },
         };
     }
 
-    @DataProvider(name = "invalidArguments")
-    Object[][] createInValidArguments() throws Exception {
+    @DataProvider
+    Object[][] invalidArguments() throws Exception {
         return new Object[][] {
             { // check that usage is written to output when arguments are invalid
               args(),
-              expectedErrOutput(INFO_MAKELDIF_TOOL_DESCRIPTION.get()) },
+              expectedOutput(INFO_MAKELDIF_TOOL_DESCRIPTION.get()) },
 
             { // check that there is an argument error when no arg provided
               args(),
-              expectedErrOutput(ERR_ERROR_PARSING_ARGS.get("")) },
+              expectedOutput(ERR_ERROR_PARSING_ARGS.get("")) },
 
             { args("-r", "unknown/path" , "example.template"),
-              expectedErrOutput(ERR_LDIF_GEN_TOOL_NO_SUCH_RESOURCE_DIRECTORY.get("unknown/path")) },
+              expectedOutput(ERR_LDIF_GEN_TOOL_NO_SUCH_RESOURCE_DIRECTORY.get("unknown/path")) },
 
             { args("-o", "unknown/path" , "example.template"),
-              expectedErrOutput(ERR_MAKELDIF_UNABLE_TO_CREATE_LDIF.get("unknown/path", "")) },
+              expectedOutput(ERR_MAKELDIF_UNABLE_TO_CREATE_LDIF.get("unknown/path", "")) },
 
             { args("-s", "non-numeric" , "example.template"),
-              expectedErrOutput(ERR_ERROR_PARSING_ARGS.get("")) },
+              expectedOutput(ERR_ERROR_PARSING_ARGS.get("")) },
         };
     }
 
     @Test(dataProvider = "validArguments")
-    public void testRunValidArguments(String[] arguments, LocalizableMessage expectedErrOutput)
+    public void testMakeLDIFValidUseCases(final String[] arguments, final LocalizableMessage expectedOut)
             throws Exception {
-        run(arguments, true, expectedErrOutput);
+        run(arguments, true, expectedOut);
     }
 
     @Test(dataProvider = "invalidArguments")
-    public void testRunInvalidArguments(String[] arguments, LocalizableMessage expectedErrOutput)
+    public void testMakeLDIFInvalidUseCases(final String[] arguments, final LocalizableMessage expectedErr)
             throws Exception {
-        run(arguments, false, expectedErrOutput);
+        run(arguments, false, expectedErr);
     }
 
-    private void run(String[] arguments, boolean expectsResults, LocalizableMessage expectedErrOutput)
-            throws UnsupportedEncodingException {
-        PrintStream outStream = null;
-        PrintStream errStream = null;
-        try {
-            ByteArrayOutputStream out = new ByteArrayOutputStream();
-            outStream = new PrintStream(out);
-            ByteArrayOutputStream err = new ByteArrayOutputStream();
-            errStream = new PrintStream(err);
-
-            MakeLDIF makeLDIF = new MakeLDIF(outStream, errStream);
-            makeLDIF.run(arguments);
-
-            assertThat(out.size()).isGreaterThan(0);
-            if (!expectsResults) {
-                assertThat(err.size()).isEqualTo(0);
-            }
-            ByteArrayOutputStream std = expectsResults || makeLDIF.isInteractive() ? out : err;
-            assertThat(std.toString("UTF-8")).contains(wrapText(expectedErrOutput, MAX_LINE_WIDTH));
-        } finally {
-            closeSilently(outStream, errStream);
+    private void run(final String[] arguments, final boolean expectsSuccess, final LocalizableMessage expectedOutput)
+            throws Exception {
+        final MakeLDIF makeLDIF = new MakeLDIF(outStream, errStream);
+        int retCode = makeLDIF.run(arguments);
+        checkOuputStreams(out, err, expectedOutput, "");
+        if (expectsSuccess) {
+            assertThat(retCode).isEqualTo(0);
+        } else {
+            assertThat(retCode).isNotEqualTo(0);
         }
     }
 
-    /** Arguments passed to the command. */
-    private String[] args(String...arguments) {
-        return arguments;
-    }
-
     /** A message the error output is expected to contain. */
-    private LocalizableMessage expectedErrOutput(LocalizableMessage val) {
+    private LocalizableMessage expectedOutput(LocalizableMessage val) {
         return val;
     }
 
-
 }

--
Gitblit v1.10.0