commons-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From roxspr...@apache.org
Subject cvs commit: jakarta-commons-sandbox/cli/src/test/org/apache/commons/cli2 DocumentationTest.java HelpFormatterTest.java
Date Wed, 22 Oct 2003 17:01:06 GMT
roxspring    2003/10/22 10:01:06

  Modified:    cli/src/java/org/apache/commons/cli2 HelpFormatter.java
                        CommandLineParser.java
               cli/src/test/org/apache/commons/cli2 DocumentationTest.java
                        HelpFormatterTest.java
  Log:
  Added PrintWriter attribute to HelpFormatter and removed the remaining
  argment from the print(..) method.
  
  A bonus ofthis is that none of the cli2 tests print to System.out any more
  
  Revision  Changes    Path
  1.3       +24 -4     jakarta-commons-sandbox/cli/src/java/org/apache/commons/cli2/HelpFormatter.java
  
  Index: HelpFormatter.java
  ===================================================================
  RCS file: /home/cvs/jakarta-commons-sandbox/cli/src/java/org/apache/commons/cli2/HelpFormatter.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- HelpFormatter.java	22 Oct 2003 16:32:14 -0000	1.2
  +++ HelpFormatter.java	22 Oct 2003 17:01:06 -0000	1.3
  @@ -113,6 +113,8 @@
   	private String footer = null;
   
   	private String shellCommand = "";
  +    
  +    private PrintWriter out = new PrintWriter(System.out);//or should this default to .err?
   
   	private final String gutterLeft;
   	private final String gutterCenter;
  @@ -156,8 +158,10 @@
   			throw new IllegalArgumentException("The gutter strings leave no space for output! Supply
shorter gutters or more width.");
   		}
   	}
  +    
  +    
   
  -	public void print(final PrintWriter out) throws IOException {
  +	public void print() throws IOException {
   		printHeader(out);
   		printException(out);
   		printUsage(out);
  @@ -516,5 +520,21 @@
   	public String getShellCommand() {
   		return shellCommand;
   	}
  +
  +    /**
  +     * @param out The out to set.
  +     */
  +    public void setPrintWriter(PrintWriter out)
  +    {
  +        this.out = out;
  +    }
  +
  +    /**
  +     * @return Returns the out.
  +     */
  +    public PrintWriter getPrintWriter()
  +    {
  +        return out;
  +    }
   
   }
  
  
  
  1.2       +4 -5      jakarta-commons-sandbox/cli/src/java/org/apache/commons/cli2/CommandLineParser.java
  
  Index: CommandLineParser.java
  ===================================================================
  RCS file: /home/cvs/jakarta-commons-sandbox/cli/src/java/org/apache/commons/cli2/CommandLineParser.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- CommandLineParser.java	18 Oct 2003 22:00:07 -0000	1.1
  +++ CommandLineParser.java	22 Oct 2003 17:01:06 -0000	1.2
  @@ -137,8 +137,7 @@
   		}
   
   		// print help 
  -		helpFormatter.print(
  -			new PrintWriter(new OutputStreamWriter(System.out)));
  +		helpFormatter.print();
   
   		return null;
   	}
  
  
  
  1.2       +313 -306  jakarta-commons-sandbox/cli/src/test/org/apache/commons/cli2/DocumentationTest.java
  
  Index: DocumentationTest.java
  ===================================================================
  RCS file: /home/cvs/jakarta-commons-sandbox/cli/src/test/org/apache/commons/cli2/DocumentationTest.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- DocumentationTest.java	18 Oct 2003 22:00:33 -0000	1.1
  +++ DocumentationTest.java	22 Oct 2003 17:01:06 -0000	1.2
  @@ -1,306 +1,313 @@
  -/*
  - * Created on 10-Aug-2003
  - *
  - * To change the template for this generated file go to
  - * Window - Preferences - Java - Code Generation - Code and Comments
  - */
  -package org.apache.commons.cli2;
  -
  -import java.io.IOException;
  -import java.io.OutputStreamWriter;
  -import java.io.PrintWriter;
  -
  -import junit.framework.TestCase;
  -
  -/**
  - * @author Rob
  - *
  - * To change the template for this generated type comment go to
  - * Window - Preferences - Java - Code Generation - Code and Comments
  - */
  -public class DocumentationTest extends TestCase {
  -
  -	public void testBasicUsage() throws IOException, OptionException {
  -		/*
  -		 * --version
  -		 * -? -h --help
  -		 * -log file
  -		 * -s|-q|-v|-d
  -		 * Bursting
  -		 * File/Num/Date validation
  -		 * Switches
  -		 * Commands
  -		 * Auto help
  -		 * Auto exception help
  -		 *  
  -		 */
  -		DefaultOptionBuilder obuilder = new DefaultOptionBuilder();
  -		Option version =
  -			obuilder
  -				.withLongName("version")
  -				.withDescription("Displays version information and then exits")
  -				.create();
  -
  -		Option help =
  -			obuilder
  -				.withShortName("h")
  -				.withShortName("?")
  -				.withLongName("help")
  -				.withDescription("Displays help on usage and then exits")
  -				.create();
  -
  -		ArgumentBuilder abuilder = new ArgumentBuilder();
  -		Argument logFile =
  -			abuilder
  -				.withDescription("The log file to write to")
  -				.withName("file")
  -				.withMinimum(1)
  -				.withMaximum(1)
  -				.create();
  -		Option log =
  -			obuilder
  -				.withArgument(logFile)
  -				.withShortName("log")
  -				.withDescription("Log progress information to a file")
  -				.create();
  -
  -		GroupBuilder gbuilder = new GroupBuilder();
  -		Group outputQuality =
  -			gbuilder
  -				.withName("quality")
  -				.withDescription("Controls the quality of console output")
  -				.withMaximum(1)
  -				.withOption(
  -					obuilder
  -						.withShortName("s")
  -						.withDescription("Silent")
  -						.create())
  -				.withOption(
  -					obuilder
  -						.withShortName("q")
  -						.withDescription("Quiet")
  -						.create())
  -				.withOption(
  -					obuilder
  -						.withShortName("n")
  -						.withDescription("Normal")
  -						.create())
  -				.withOption(
  -					obuilder
  -						.withShortName("v")
  -						.withDescription("Verbose")
  -						.create())
  -				.withOption(
  -					obuilder
  -						.withShortName("d")
  -						.withDescription("Debug")
  -						.create())
  -				.create();
  -
  -		Group options =
  -			new GroupBuilder()
  -				.withName("options")
  -				.withOption(version)
  -				.withOption(help)
  -				.withOption(log)
  -				.withOption(outputQuality)
  -				.create();
  -
  -		final String[] args = new String[] { "--bad-option" };
  -
  -		CommandLineParser parser = new CommandLineParser();
  -		parser.setGroup(options);
  -		parser.setHelpOption(help);
  -		CommandLine commandLine = parser.parseAndHelp(args);
  -		if (commandLine != null) {
  -			if (commandLine.hasOption(version)) {
  -				System.out.println("MyApp ver 1.0");
  -				return;
  -			}
  -			if (commandLine.hasOption("-log")) {
  -				String filename = (String) commandLine.getValue("-log");
  -				//...
  -			}
  -		}
  -
  -		try {
  -			commandLine = parser.parse(new String[] { "--bad-option" });
  -			fail("Unexpected Option!");
  -		} catch (UnexpectedOptionException uoe) {
  -			assertEquals(
  -				"Unexpected --bad-option while processing options",
  -				uoe.getMessage());
  -		}
  -	}
  -
  -	public void testExampleAnt() throws IOException {
  -		// Based on Ant 1.5.3
  -
  -		final DefaultOptionBuilder obuilder = new DefaultOptionBuilder();
  -		final ArgumentBuilder abuilder = new ArgumentBuilder();
  -		final GroupBuilder gbuilder = new GroupBuilder();
  -
  -		Option help =
  -			obuilder
  -				.withShortName("help")
  -				.withDescription("print this message")
  -				.create();
  -		Option projecthelp =
  -			obuilder
  -				.withShortName("projecthelp")
  -				.withDescription("print project help information")
  -				.create();
  -		Option version =
  -			obuilder
  -				.withShortName("version")
  -				.withDescription("print the version information and exit")
  -				.create();
  -		Option diagnostics =
  -			obuilder
  -				.withShortName("diagnostics")
  -				.withDescription("print information that might be helpful to diagnose or report problems.")
  -				.create();
  -		Option quiet =
  -			obuilder
  -				.withShortName("quiet")
  -				.withShortName("q")
  -				.withDescription("be extra quiet")
  -				.create();
  -		Option verbose =
  -			obuilder
  -				.withShortName("verbose")
  -				.withShortName("v")
  -				.withDescription("be extra verbose")
  -				.create();
  -		Option debug =
  -			obuilder
  -				.withShortName("debug")
  -				.withDescription("print debugging information")
  -				.create();
  -		Option emacs =
  -			obuilder
  -				.withShortName("emacs")
  -				.withDescription("produce logging information without adornments")
  -				.create();
  -		Option logfile =
  -			obuilder
  -				.withShortName("logfile")
  -				.withShortName("l")
  -				.withDescription("produce logging information without adornments")
  -				.withArgument(
  -					abuilder
  -						.withName("file")
  -						.withMinimum(1)
  -						.withMaximum(1)
  -						.create())
  -				.create();
  -		Option logger =
  -			obuilder
  -				.withShortName("logger")
  -				.withDescription("the class which is to perform logging")
  -				.withArgument(
  -					abuilder
  -						.withName("classname")
  -						.withMinimum(1)
  -						.withMaximum(1)
  -						.create())
  -				.create();
  -		Option listener =
  -			obuilder
  -				.withShortName("listener")
  -				.withDescription("add an instance of class as a project listener")
  -				.withArgument(
  -					abuilder
  -						.withName("classname")
  -						.withMinimum(1)
  -						.withMaximum(1)
  -						.create())
  -				.create();
  -		Option buildfile =
  -			obuilder
  -				.withShortName("buildfile")
  -				.withShortName("b")
  -				.withShortName("file")
  -				.withDescription("use given buildfile")
  -				.withArgument(
  -					abuilder
  -						.withName("file")
  -						.withMinimum(1)
  -						.withMaximum(1)
  -						.create())
  -				.create();
  -		Option property = new PropertyOption();
  -		Option propertyfile =
  -			obuilder
  -				.withShortName("propertyfile")
  -				.withDescription("load all properties from file with -D properties taking precedence")
  -				.withArgument(
  -					abuilder
  -						.withName("name")
  -						.withMinimum(1)
  -						.withMaximum(1)
  -						.create())
  -				.create();
  -		Option inputhandler =
  -			obuilder
  -				.withShortName("inputhandler")
  -				.withDescription("the class which will handle input requests")
  -				.withArgument(
  -					abuilder
  -						.withName("class")
  -						.withMinimum(1)
  -						.withMaximum(1)
  -						.create())
  -				.create();
  -		Option find =
  -			obuilder
  -				.withShortName("find")
  -				.withDescription("search for buildfile towards the root of the filesystem and use it")
  -				.withArgument(
  -					abuilder
  -						.withName("file")
  -						.withMinimum(1)
  -						.withMaximum(1)
  -						.create())
  -				.create();
  -		Option targets = abuilder.withName("target").create();
  -
  -		Group options =
  -			gbuilder
  -				.withName("options")
  -				.withOption(help)
  -				.withOption(projecthelp)
  -				.withOption(version)
  -				.withOption(diagnostics)
  -				.withOption(quiet)
  -				.withOption(verbose)
  -				.withOption(debug)
  -				.withOption(emacs)
  -				.withOption(logfile)
  -				.withOption(logger)
  -				.withOption(listener)
  -				.withOption(buildfile)
  -				.withOption(property)
  -				.withOption(propertyfile)
  -				.withOption(inputhandler)
  -				.withOption(find)
  -				.withOption(targets)
  -				.create();
  -
  -		HelpFormatter hf = new HelpFormatter();
  -		hf.setShellCommand("ant");
  -		hf.getFullUsageSettings().add(HelpSetting.DISPLAY_GROUP_NAME);
  -		hf.getFullUsageSettings().add(HelpSetting.DISPLAY_GROUP_ARGUMENT);
  -		hf.getFullUsageSettings().remove(HelpSetting.DISPLAY_GROUP_EXPANDED);
  -
  -		hf.getLineUsageSettings().add(HelpSetting.DISPLAY_PROPERTY_OPTION);
  -		hf.getLineUsageSettings().add(HelpSetting.DISPLAY_PARENT_ARGUMENT);
  -
  -		hf.getDisplaySettings().remove(HelpSetting.DISPLAY_GROUP_ARGUMENT);
  -
  -		hf.setGroup(options);
  -		hf.print(new PrintWriter(new OutputStreamWriter(System.out)));
  -
  -	}
  -
  -}
  +/*
  + * Created on 10-Aug-2003
  + *
  + * To change the template for this generated file go to
  + * Window - Preferences - Java - Code Generation - Code and Comments
  + */
  +package org.apache.commons.cli2;
  +
  +import java.io.IOException;
  +import java.io.PrintWriter;
  +import java.io.StringWriter;
  +
  +import junit.framework.TestCase;
  +
  +/**
  + * @author Rob
  + *
  + * To change the template for this generated type comment go to
  + * Window - Preferences - Java - Code Generation - Code and Comments
  + */
  +public class DocumentationTest extends TestCase {
  +
  +	public void testBasicUsage() throws IOException, OptionException {
  +        HelpFormatter helpFormatter = new HelpFormatter();
  +        //ignore all printed 
  +        helpFormatter.setPrintWriter(new PrintWriter(new StringWriter()));
  +        
  +		/*
  +		 * --version
  +		 * -? -h --help
  +		 * -log file
  +		 * -s|-q|-v|-d
  +		 * Bursting
  +		 * File/Num/Date validation
  +		 * Switches
  +		 * Commands
  +		 * Auto help
  +		 * Auto exception help
  +		 *  
  +		 */
  +		DefaultOptionBuilder obuilder = new DefaultOptionBuilder();
  +		Option version =
  +			obuilder
  +				.withLongName("version")
  +				.withDescription("Displays version information and then exits")
  +				.create();
  +
  +		Option help =
  +			obuilder
  +				.withShortName("h")
  +				.withShortName("?")
  +				.withLongName("help")
  +				.withDescription("Displays help on usage and then exits")
  +				.create();
  +
  +		ArgumentBuilder abuilder = new ArgumentBuilder();
  +		Argument logFile =
  +			abuilder
  +				.withDescription("The log file to write to")
  +				.withName("file")
  +				.withMinimum(1)
  +				.withMaximum(1)
  +				.create();
  +		Option log =
  +			obuilder
  +				.withArgument(logFile)
  +				.withShortName("log")
  +				.withDescription("Log progress information to a file")
  +				.create();
  +
  +		GroupBuilder gbuilder = new GroupBuilder();
  +		Group outputQuality =
  +			gbuilder
  +				.withName("quality")
  +				.withDescription("Controls the quality of console output")
  +				.withMaximum(1)
  +				.withOption(
  +					obuilder
  +						.withShortName("s")
  +						.withDescription("Silent")
  +						.create())
  +				.withOption(
  +					obuilder
  +						.withShortName("q")
  +						.withDescription("Quiet")
  +						.create())
  +				.withOption(
  +					obuilder
  +						.withShortName("n")
  +						.withDescription("Normal")
  +						.create())
  +				.withOption(
  +					obuilder
  +						.withShortName("v")
  +						.withDescription("Verbose")
  +						.create())
  +				.withOption(
  +					obuilder
  +						.withShortName("d")
  +						.withDescription("Debug")
  +						.create())
  +				.create();
  +
  +		Group options =
  +			new GroupBuilder()
  +				.withName("options")
  +				.withOption(version)
  +				.withOption(help)
  +				.withOption(log)
  +				.withOption(outputQuality)
  +				.create();
  +
  +		final String[] args = new String[] { "--bad-option" };
  +
  +		CommandLineParser parser = new CommandLineParser();
  +        parser.setHelpFormatter(helpFormatter);
  +		parser.setGroup(options);
  +		parser.setHelpOption(help);
  +		CommandLine commandLine = parser.parseAndHelp(args);
  +		if (commandLine != null) {
  +			if (commandLine.hasOption(version)) {
  +				System.out.println("MyApp ver 1.0");
  +				return;
  +			}
  +			if (commandLine.hasOption("-log")) {
  +				String filename = (String) commandLine.getValue("-log");
  +				//...
  +			}
  +		}
  +
  +		try {
  +			commandLine = parser.parse(args);
  +			fail("Unexpected Option!");
  +		} catch (UnexpectedOptionException uoe) {
  +			assertEquals(
  +				"Unexpected --bad-option while processing options",
  +				uoe.getMessage());
  +		}
  +	}
  +
  +	public void testExampleAnt() throws IOException {
  +		// Based on Ant 1.5.3
  +
  +		final DefaultOptionBuilder obuilder = new DefaultOptionBuilder();
  +		final ArgumentBuilder abuilder = new ArgumentBuilder();
  +		final GroupBuilder gbuilder = new GroupBuilder();
  +
  +		Option help =
  +			obuilder
  +				.withShortName("help")
  +				.withDescription("print this message")
  +				.create();
  +		Option projecthelp =
  +			obuilder
  +				.withShortName("projecthelp")
  +				.withDescription("print project help information")
  +				.create();
  +		Option version =
  +			obuilder
  +				.withShortName("version")
  +				.withDescription("print the version information and exit")
  +				.create();
  +		Option diagnostics =
  +			obuilder
  +				.withShortName("diagnostics")
  +				.withDescription("print information that might be helpful to diagnose or report problems.")
  +				.create();
  +		Option quiet =
  +			obuilder
  +				.withShortName("quiet")
  +				.withShortName("q")
  +				.withDescription("be extra quiet")
  +				.create();
  +		Option verbose =
  +			obuilder
  +				.withShortName("verbose")
  +				.withShortName("v")
  +				.withDescription("be extra verbose")
  +				.create();
  +		Option debug =
  +			obuilder
  +				.withShortName("debug")
  +				.withDescription("print debugging information")
  +				.create();
  +		Option emacs =
  +			obuilder
  +				.withShortName("emacs")
  +				.withDescription("produce logging information without adornments")
  +				.create();
  +		Option logfile =
  +			obuilder
  +				.withShortName("logfile")
  +				.withShortName("l")
  +				.withDescription("produce logging information without adornments")
  +				.withArgument(
  +					abuilder
  +						.withName("file")
  +						.withMinimum(1)
  +						.withMaximum(1)
  +						.create())
  +				.create();
  +		Option logger =
  +			obuilder
  +				.withShortName("logger")
  +				.withDescription("the class which is to perform logging")
  +				.withArgument(
  +					abuilder
  +						.withName("classname")
  +						.withMinimum(1)
  +						.withMaximum(1)
  +						.create())
  +				.create();
  +		Option listener =
  +			obuilder
  +				.withShortName("listener")
  +				.withDescription("add an instance of class as a project listener")
  +				.withArgument(
  +					abuilder
  +						.withName("classname")
  +						.withMinimum(1)
  +						.withMaximum(1)
  +						.create())
  +				.create();
  +		Option buildfile =
  +			obuilder
  +				.withShortName("buildfile")
  +				.withShortName("b")
  +				.withShortName("file")
  +				.withDescription("use given buildfile")
  +				.withArgument(
  +					abuilder
  +						.withName("file")
  +						.withMinimum(1)
  +						.withMaximum(1)
  +						.create())
  +				.create();
  +		Option property = new PropertyOption();
  +		Option propertyfile =
  +			obuilder
  +				.withShortName("propertyfile")
  +				.withDescription("load all properties from file with -D properties taking precedence")
  +				.withArgument(
  +					abuilder
  +						.withName("name")
  +						.withMinimum(1)
  +						.withMaximum(1)
  +						.create())
  +				.create();
  +		Option inputhandler =
  +			obuilder
  +				.withShortName("inputhandler")
  +				.withDescription("the class which will handle input requests")
  +				.withArgument(
  +					abuilder
  +						.withName("class")
  +						.withMinimum(1)
  +						.withMaximum(1)
  +						.create())
  +				.create();
  +		Option find =
  +			obuilder
  +				.withShortName("find")
  +				.withDescription("search for buildfile towards the root of the filesystem and use it")
  +				.withArgument(
  +					abuilder
  +						.withName("file")
  +						.withMinimum(1)
  +						.withMaximum(1)
  +						.create())
  +				.create();
  +		Option targets = abuilder.withName("target").create();
  +
  +		Group options =
  +			gbuilder
  +				.withName("options")
  +				.withOption(help)
  +				.withOption(projecthelp)
  +				.withOption(version)
  +				.withOption(diagnostics)
  +				.withOption(quiet)
  +				.withOption(verbose)
  +				.withOption(debug)
  +				.withOption(emacs)
  +				.withOption(logfile)
  +				.withOption(logger)
  +				.withOption(listener)
  +				.withOption(buildfile)
  +				.withOption(property)
  +				.withOption(propertyfile)
  +				.withOption(inputhandler)
  +				.withOption(find)
  +				.withOption(targets)
  +				.create();
  +
  +		HelpFormatter hf = new HelpFormatter();
  +		hf.setShellCommand("ant");
  +		hf.getFullUsageSettings().add(HelpSetting.DISPLAY_GROUP_NAME);
  +		hf.getFullUsageSettings().add(HelpSetting.DISPLAY_GROUP_ARGUMENT);
  +		hf.getFullUsageSettings().remove(HelpSetting.DISPLAY_GROUP_EXPANDED);
  +
  +		hf.getLineUsageSettings().add(HelpSetting.DISPLAY_PROPERTY_OPTION);
  +		hf.getLineUsageSettings().add(HelpSetting.DISPLAY_PARENT_ARGUMENT);
  +
  +		hf.getDisplaySettings().remove(HelpSetting.DISPLAY_GROUP_ARGUMENT);
  +
  +		hf.setGroup(options);
  +        // redirect printed stuff to a string
  +        hf.setPrintWriter(new PrintWriter(new StringWriter()));
  +		hf.print();
  +
  +	}
  +
  +}
  
  
  
  1.3       +2 -1      jakarta-commons-sandbox/cli/src/test/org/apache/commons/cli2/HelpFormatterTest.java
  
  Index: HelpFormatterTest.java
  ===================================================================
  RCS file: /home/cvs/jakarta-commons-sandbox/cli/src/test/org/apache/commons/cli2/HelpFormatterTest.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- HelpFormatterTest.java	22 Oct 2003 16:32:14 -0000	1.2
  +++ HelpFormatterTest.java	22 Oct 2003 17:01:06 -0000	1.3
  @@ -60,7 +60,8 @@
   
   	public void testPrint() throws IOException {
   		final StringWriter writer = new StringWriter();
  -		helpFormatter.print(new PrintWriter(writer));
  +        helpFormatter.setPrintWriter(new PrintWriter(writer));
  +		helpFormatter.print();
   
   		//System.out.println(writer.toString());
   
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: commons-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-dev-help@jakarta.apache.org


Mime
View raw message