[prev in list] [next in list] [prev in thread] [next in thread] 

List:       jakarta-commons-dev
Subject:    svn commit: r1669880 - /commons/proper/cli/trunk/src/test/java/org/apache/commons/cli/bug/BugCLI162T
From:       britter () apache ! org
Date:       2015-03-29 9:34:52
Message-ID: 20150329093452.B833CAC006E () hades ! apache ! org
[Download RAW message or body]

Author: britter
Date: Sun Mar 29 09:34:51 2015
New Revision: 1669880

URL: http://svn.apache.org/r1669880
Log:
Tests sould not write to std out, but instead should verify return values for \
correctness

Modified:
    commons/proper/cli/trunk/src/test/java/org/apache/commons/cli/bug/BugCLI162Test.java


Modified: commons/proper/cli/trunk/src/test/java/org/apache/commons/cli/bug/BugCLI162Test.java
                
URL: http://svn.apache.org/viewvc/commons/proper/cli/trunk/src/test/java/org/apache/commons/cli/bug/BugCLI162Test.java?rev=1669880&r1=1669879&r2=1669880&view=diff
 ==============================================================================
--- commons/proper/cli/trunk/src/test/java/org/apache/commons/cli/bug/BugCLI162Test.java \
                (original)
+++ commons/proper/cli/trunk/src/test/java/org/apache/commons/cli/bug/BugCLI162Test.java \
Sun Mar 29 09:34:51 2015 @@ -28,20 +28,39 @@ import org.apache.commons.cli.HelpFormat
 import org.apache.commons.cli.Option;
 import org.apache.commons.cli.OptionGroup;
 import org.apache.commons.cli.Options;
+import org.junit.Before;
 import org.junit.Test;
 
 public class BugCLI162Test
 {
     /** Constant for the line separator.*/
     private static final String CR = System.getProperty("line.separator");
+    
+    private HelpFormatter formatter;
+    private StringWriter sw;
+
+    @Before
+    public void setUp() throws Exception
+    {
+        formatter = new HelpFormatter();
+        sw = new StringWriter();
+    }
 
     @Test
     public void testInfiniteLoop() {
         Options options = new Options();
         options.addOption("h", "help", false, "This is a looooong description");
-        HelpFormatter formatter = new HelpFormatter();
-        formatter.setWidth(20);
-        formatter.printHelp("app", options); // used to hang & crash
+        // used to hang & crash
+        formatter.printHelp(new PrintWriter(sw), 20, "app", null, options, \
HelpFormatter.DEFAULT_LEFT_PAD, HelpFormatter.DEFAULT_DESC_PAD, null); +
+        String expected = "usage: app" + CR +
+                " -h,--help   This is" + CR +
+                "             a" + CR +
+                "             looooon" + CR +
+                "             g" + CR +
+                "             descrip" + CR +
+                "             tion" + CR;
+        assertEquals(expected, sw.toString());
     }
 
     @Test
@@ -229,7 +248,66 @@ public class BugCLI162Test
                 "Converts the JDBC file in the first argument to an SMFD file \
specified in the second argument.");  option.setArgs(2);
         commandLineOptions.addOption(option);
-        new HelpFormatter().printHelp(this.getClass().getName(), \
commandLineOptions); +
+        formatter.printHelp(new PrintWriter(sw), HelpFormatter.DEFAULT_WIDTH, \
this.getClass().getName(), null, commandLineOptions, HelpFormatter.DEFAULT_LEFT_PAD, \
HelpFormatter.DEFAULT_DESC_PAD, null); +        String expected = "usage: \
org.apache.commons.cli.bug.BugCLI162Test" + CR + +                " -2,--jdbc2sfmd \
<arg>        Converts the JDBC file in the first argument" + CR + +                "  \
to an SMFD file specified in the second" + CR + +                "                    \
argument." + CR + +                " -a,--paramNames <arg>       Parameter XML names; \
default names are" + CR + +                "                             param1, \
param2, etc. Example: -a \"pname1" + CR + +                "                          \
pname2\"" + CR + +                " -b,--jdbc <arg>             Writes a JDBC binding \
node file for the given" + CR + +                "                             SQL" + \
CR + +                " -c,--url <arg>              Connection URL" + CR +
+                " -d,--driver <arg>           JDBC driver class name" + CR +
+                " -e,--description <arg>      SFMD description. A default \
description is" + CR + +                "                             used if omited. \
Example: -e \"Runs such and" + CR + +                "                             \
such\"" + CR + +                " -f,--sfmd <arg>             Writes a SFMD file for \
the given SQL" + CR + +                " -g,--printTiming            Prints timing \
information" + CR + +                " -h,--help                   Prints help and \
quits" + CR + +                " -i,--interactive            Runs in interactive \
mode, reading and writing" + CR + +                "                             from \
the console, 'go' or '/' sends a" + CR + +                "                           \
statement" + CR + +                " -j,--node <arg>             Writes a JDBC node \
file for the given SQL" + CR + +                "                             \
(internal debugging)" + CR + +                " -l,--columnNames <arg>      Column \
XML names; default names column" + CR + +                "                            \
labels. Example: -l \"cname1 cname2\"" + CR + +                " -m,--printMetaData   \
Prints metadata information" + CR + +                " -n,--info                   \
Prints driver information and properties. If" + CR + +                "               \
-c is not specified, all drivers on the" + CR + +                "                    \
classpath are displayed." + CR + +                " -o,--paramModes <arg>       \
Parameters modes (1=IN, 2=INOUT, 4=OUT," + CR + +                "                    \
0=Unknown). -o and -O are mutually exclusive." + CR + +                "              \
Example for 2 parameters, OUT and IN: -o \"4" + CR + +                "               \
1\"" + CR + +                " -O,--paramModeNames <arg>   Parameters mode names (IN, \
INOUT, OUT," + CR + +                "                             Unknown). -o and \
-O are mutually exclusive." + CR + +                "                             \
Example for 2 parameters, OUT and IN: -O \"OUT" + CR + +                "             \
IN\"" + CR + +                " -p,--password <arg>         The database password for \
the user specified" + CR + +                "                             with the -u \
option. You can obfuscate the" + CR + +                "                             \
password with" + CR + +                "                             \
org.mortbay.jetty.security.Password, see" + CR + +                "                   \
http://docs.codehaus.org/display/JETTY/Securi" + CR + +                "              \
ng+Passwords" + CR + +                " -s,--sql <arg>              Runs SQL or {call \
stored_procedure(?, ?)} or" + CR + +                "                             \
{?=call function(?, ?)}" + CR + +                " -t,--printStack             Prints \
stack traces on errors" + CR + +                "    --trim <arg>             Trims \
leading and trailing spaces from all" + CR + +                "                       \
column values. Column XML names can be" + CR + +                "                     \
optionally specified to set which columns to" + CR + +                "               \
trim." + CR + +                " -u,--user <arg>             A database user name" + \
CR + +                " -w,--outfile <arg>          Writes the SQL output to the \
given file" + CR + +                " -y,--paramTypes <arg>       Parameter types \
from java.sql.Types. -y and" + CR + +                "                             -Y \
are mutually exclusive. Example: -y \"-10" + CR + +                "                  \
12\"" + CR + +                " -Y,--paramTypeNames <arg>   Parameter java.sql.Types \
names. -y and -Y are" + CR + +                "                             mutually \
exclusive. Example: -Y \"CURSOR" + CR + +                "                            \
VARCHAR\"" + CR; +        assertEquals(expected, sw.toString());
     }
 
     @Test
@@ -239,8 +317,7 @@ public class BugCLI162Test
                                      "This description has \
                ReallyLongValuesThatAreLongerThanTheWidthOfTheColumns " +
                                      "and also other \
ReallyLongValuesThatAreHugerAndBiggerThanTheWidthOfTheColumnsBob, " +  "yes. ");
-        HelpFormatter formatter = new HelpFormatter();
-        StringWriter sw = new StringWriter();
+        
         formatter.printHelp(new PrintWriter(sw), 35, this.getClass().getName(), \
"Header", options, 0, 5, "Footer");  String expected = "usage:" + CR +
                           "       org.apache.commons.cli.bug.B" + CR +
@@ -269,10 +346,8 @@ public class BugCLI162Test
     public void testLongLineChunkingIndentIgnored() {
         Options options = new Options();
         options.addOption("x", "extralongarg", false, "This description is Long." );
-        HelpFormatter formatter = new HelpFormatter();
-        StringWriter sw = new StringWriter();
+
         formatter.printHelp(new PrintWriter(sw), 22, this.getClass().getName(), \
                "Header", options, 0, 5, "Footer");
-        System.err.println(sw.toString());
         String expected = "usage:" + CR +
                           "       org.apache.comm" + CR +
                           "       ons.cli.bug.Bug" + CR +


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic