[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