Author: bayard
Date: Wed Jun 6 01:02:57 2007
New Revision: 544763
URL: http://svn.apache.org/viewvc?view=rev&rev=544763
Log:
Renaming TestHelpFormatter to the more obvious HelpFormatterTest
Added:
jakarta/commons/proper/cli/branches/cli-1.0.x/src/test/org/apache/commons/cli/HelpFormatterTest.java
(with props)
Removed:
jakarta/commons/proper/cli/branches/cli-1.0.x/src/test/org/apache/commons/cli/TestHelpFormatter.java
Added:
jakarta/commons/proper/cli/branches/cli-1.0.x/src/test/org/apache/commons/cli/HelpFormatterTest.java
URL:
http://svn.apache.org/viewvc/jakarta/commons/proper/cli/branches/cli-1.0.x/src/test/org/apache/commons/cli/HelpFormatterTest.java?view=auto&rev=544763
==============================================================================
---
jakarta/commons/proper/cli/branches/cli-1.0.x/src/test/org/apache/commons/cli/HelpFormatterTest.java
(added)
+++
jakarta/commons/proper/cli/branches/cli-1.0.x/src/test/org/apache/commons/cli/HelpFormatterTest.java
Wed Jun 6 01:02:57 2007
@@ -0,0 +1,200 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.commons.cli;
+
+import java.io.ByteArrayOutputStream;
+import java.io.PrintWriter;
+
+import junit.framework.TestCase;
+import junit.framework.TestSuite;
+
+/**
+ * Test case for the HelpFormatter class
+ *
+ * @author Slawek Zachcial
+ * @author John Keyes ( john at integralsource.com )
+ * @author brianegge
+ **/
+public class HelpFormatterTest extends TestCase
+{
+
+ private static final String EOL = System.getProperty("line.separator");
+
+ public static void main( String[] args )
+ {
+ String[] testName = { HelpFormatterTest.class.getName() };
+ junit.textui.TestRunner.main(testName);
+ }
+
+ public static TestSuite suite()
+ {
+ return new TestSuite(HelpFormatterTest.class);
+ }
+
+ public HelpFormatterTest( String s )
+ {
+ super( s );
+ }
+
+ public void testFindWrapPos()
+ throws Exception
+ {
+ HelpFormatter hf = new HelpFormatter();
+
+ String text = "This is a test.";
+ //text width should be max 8; the wrap postition is 7
+ assertEquals("wrap position", 7, hf.findWrapPos(text, 8, 0));
+ //starting from 8 must give -1 - the wrap pos is after end
+ assertEquals("wrap position 2", -1, hf.findWrapPos(text, 8, 8));
+ //if there is no a good position before width to make a wrapping look
for the next one
+ text = "aaaa aa";
+ assertEquals("wrap position 3", 4, hf.findWrapPos(text, 3, 0));
+ }
+
+ public void testPrintWrapped()
+ throws Exception
+ {
+ StringBuffer sb = new StringBuffer();
+ HelpFormatter hf = new HelpFormatter();
+
+ String text = "This is a test.";
+ String expected;
+
+ expected = "This is a" + hf.getNewLine() + "test.";
+ hf.renderWrappedText(sb, 12, 0, text);
+ assertEquals("single line text", expected, sb.toString());
+
+ sb.setLength(0);
+ expected = "This is a" + hf.getNewLine() + " test.";
+ hf.renderWrappedText(sb, 12, 4, text);
+ assertEquals("single line padded text", expected, sb.toString());
+
+ text =
+ "aaaa aaaa aaaa" + hf.getNewLine() +
+ "aaaaaa" + hf.getNewLine() +
+ "aaaaa";
+
+ expected = text;
+ sb.setLength(0);
+ hf.renderWrappedText(sb, 16, 0, text);
+ assertEquals("multi line text", expected, sb.toString());
+
+ expected =
+ "aaaa aaaa aaaa" + hf.getNewLine() +
+ " aaaaaa" + hf.getNewLine() +
+ " aaaaa";
+ sb.setLength(0);
+ hf.renderWrappedText(sb, 16, 4, text);
+ assertEquals("multi-line padded text", expected, sb.toString());
+ }
+
+ public void testPrintOptions()
+ throws Exception
+ {
+ StringBuffer sb = new StringBuffer();
+ HelpFormatter hf = new HelpFormatter();
+ final int leftPad = 1;
+ final int descPad = 3;
+ final String lpad = hf.createPadding(leftPad);
+ final String dpad = hf.createPadding(descPad);
+ Options options = null;
+ String expected = null;
+
+ options = new Options().addOption("a", false, "aaaa aaaa aaaa aaaa
aaaa");
+ expected = lpad + "-a" + dpad + "aaaa aaaa aaaa aaaa aaaa";
+ hf.renderOptions(sb, 60, options, leftPad, descPad);
+ assertEquals("simple non-wrapped option", expected, sb.toString());
+
+ int nextLineTabStop = leftPad+descPad+"-a".length();
+ expected =
+ lpad + "-a" + dpad + "aaaa aaaa aaaa" + hf.getNewLine() +
+ hf.createPadding(nextLineTabStop) + "aaaa aaaa";
+ sb.setLength(0);
+ hf.renderOptions(sb, nextLineTabStop+17, options, leftPad, descPad);
+ assertEquals("simple wrapped option", expected, sb.toString());
+
+
+ options = new Options().addOption("a", "aaa", false, "dddd dddd dddd
dddd");
+ expected = lpad + "-a,--aaa" + dpad + "dddd dddd dddd dddd";
+ sb.setLength(0);
+ hf.renderOptions(sb, 60, options, leftPad, descPad);
+ assertEquals("long non-wrapped option", expected, sb.toString());
+
+ nextLineTabStop = leftPad+descPad+"-a,--aaa".length();
+ expected =
+ lpad + "-a,--aaa" + dpad + "dddd dddd" + hf.getNewLine() +
+ hf.createPadding(nextLineTabStop) + "dddd dddd";
+ sb.setLength(0);
+ hf.renderOptions(sb, 25, options, leftPad, descPad);
+ assertEquals("long wrapped option", expected, sb.toString());
+
+ options = new Options().
+ addOption("a", "aaa", false, "dddd dddd dddd dddd").
+ addOption("b", false, "feeee eeee eeee eeee");
+ expected =
+ lpad + "-a,--aaa" + dpad + "dddd dddd" + hf.getNewLine() +
+ hf.createPadding(nextLineTabStop) + "dddd dddd" + hf.getNewLine() +
+ lpad + "-b " + dpad + "feeee eeee" + hf.getNewLine() +
+ hf.createPadding(nextLineTabStop) + "eeee eeee";
+ sb.setLength(0);
+ hf.renderOptions(sb, 25, options, leftPad, descPad);
+ assertEquals("multiple wrapped options", expected, sb.toString());
+ }
+
+ public void testAutomaticUsage()
+ throws Exception
+ {
+ HelpFormatter hf = new HelpFormatter();
+ Options options = null;
+ String expected = "usage: app [-a]";
+ ByteArrayOutputStream out = new ByteArrayOutputStream( );
+ PrintWriter pw = new PrintWriter( out );
+
+ options = new Options().addOption("a", false, "aaaa aaaa aaaa aaaa
aaaa");
+ hf.printUsage( pw, 60, "app", options );
+ pw.flush();
+ assertEquals("simple auto usage", expected, out.toString().trim());
+ out.reset();
+
+ expected = "usage: app [-a] [-b]";
+ options = new Options().addOption("a", false, "aaaa aaaa aaaa aaaa
aaaa")
+ .addOption("b", false, "bbb" );
+ hf.printUsage( pw, 60, "app", options );
+ pw.flush();
+ assertEquals("simple auto usage", expected, out.toString().trim());
+ out.reset();
+ }
+
+ // This test ensures the options are properly sorted
+ // See https://issues.apache.org/jira/browse/CLI-131
+ public void testPrintUsage() {
+ Option optionA = new Option("a", "first");
+ Option optionB = new Option("b", "second");
+ Option optionC = new Option("c", "third");
+ Options opts = new Options();
+ opts.addOption(optionA);
+ opts.addOption(optionB);
+ opts.addOption(optionC);
+ HelpFormatter helpFormatter = new HelpFormatter();
+ ByteArrayOutputStream bytesOut = new ByteArrayOutputStream();
+ PrintWriter printWriter = new PrintWriter(bytesOut);
+ helpFormatter.printUsage(printWriter, 80, "app", opts);
+ printWriter.close();
+ assertEquals("usage: app [-a] [-b] [-c]" + EOL, bytesOut.toString());
+ }
+
+}
Propchange:
jakarta/commons/proper/cli/branches/cli-1.0.x/src/test/org/apache/commons/cli/HelpFormatterTest.java
------------------------------------------------------------------------------
svn:eol-style = native
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]