You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by ba...@apache.org on 2008/03/22 03:49:46 UTC
svn commit: r639941 [16/17] - in /commons/proper/cli/trunk: ./
src/java/org/apache/commons/cli2/ src/java/org/apache/commons/cli2/builder/
src/java/org/apache/commons/cli2/commandline/
src/java/org/apache/commons/cli2/option/ src/java/org/apache/common...
Modified: commons/proper/cli/trunk/src/test/org/apache/commons/cli2/util/ComparatorsTest.java
URL: http://svn.apache.org/viewvc/commons/proper/cli/trunk/src/test/org/apache/commons/cli2/util/ComparatorsTest.java?rev=639941&r1=639940&r2=639941&view=diff
==============================================================================
--- commons/proper/cli/trunk/src/test/org/apache/commons/cli2/util/ComparatorsTest.java (original)
+++ commons/proper/cli/trunk/src/test/org/apache/commons/cli2/util/ComparatorsTest.java Fri Mar 21 19:49:41 2008
@@ -1,221 +1 @@
-/**
- * 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.cli2.util;
-
-import java.util.Collections;
-import java.util.List;
-
-import junit.framework.TestCase;
-
-import org.apache.commons.cli2.CLITestCase;
-import org.apache.commons.cli2.Option;
-import org.apache.commons.cli2.option.CommandTest;
-import org.apache.commons.cli2.option.DefaultOptionTest;
-import org.apache.commons.cli2.option.GroupTest;
-import org.apache.commons.cli2.option.ParentTest;
-import org.apache.commons.cli2.option.SwitchTest;
-
-/**
- * @author Rob Oxspring
- */
-public class ComparatorsTest extends TestCase {
- public void testGroupFirst() {
- final Option o1 = GroupTest.buildAntGroup();
- final Option o2 = ParentTest.buildLibParent();
- final List list = CLITestCase.list(o1, o2);
-
- Collections.sort(list, Comparators.groupFirst());
-
- CLITestCase.assertListContentsEqual(
- CLITestCase.list(o1, o2),
- list);
- }
-
- public void testGroupLast() {
- final Option o1 = GroupTest.buildAntGroup();
- final Option o2 = ParentTest.buildLibParent();
- final List list = CLITestCase.list(o1, o2);
-
- Collections.sort(list, Comparators.groupLast());
-
- CLITestCase.assertListContentsEqual(
- CLITestCase.list(o2, o1),
- list);
- }
-
- public void testSwitchFirst() {
- final Option o1 = SwitchTest.buildDisplaySwitch();
- final Option o2 = ParentTest.buildLibParent();
- final List list = CLITestCase.list(o1, o2);
-
- Collections.sort(list, Comparators.switchFirst());
-
- CLITestCase.assertListContentsEqual(
- CLITestCase.list(o1, o2),
- list);
- }
-
- public void testSwitchLast() {
- final Option o1 = SwitchTest.buildDisplaySwitch();
- final Option o2 = ParentTest.buildLibParent();
- //final Option o3 = new SwitchBuilder().withName("hidden").create();
- final List list = CLITestCase.list(o1, o2);
-
- Collections.sort(list, Comparators.switchLast());
-
- CLITestCase.assertListContentsEqual(
- CLITestCase.list(o2, o1),
- list);
- }
-
- public void testCommandFirst() {
- final Option o1 = CommandTest.buildCommitCommand();
- final Option o2 = ParentTest.buildLibParent();
- final List list = CLITestCase.list(o1, o2);
-
- Collections.sort(list, Comparators.commandFirst());
-
- CLITestCase.assertListContentsEqual(
- CLITestCase.list(o1, o2),
- list);
- }
-
- public void testCommandLast() {
- final Option o1 = CommandTest.buildCommitCommand();
- final Option o2 = ParentTest.buildLibParent();
- final List list = CLITestCase.list(o1, o2);
-
- Collections.sort(list, Comparators.commandLast());
-
- CLITestCase.assertListContentsEqual(
- CLITestCase.list(o2, o1),
- list);
- }
-
- public void testDefaultOptionFirst() {
- final Option o1 = DefaultOptionTest.buildHelpOption();
- final Option o2 = CommandTest.buildCommitCommand();
- final List list = CLITestCase.list(o1, o2);
-
- Collections.sort(list, Comparators.defaultOptionFirst());
-
- CLITestCase.assertListContentsEqual(
- CLITestCase.list(o1, o2),
- list);
- }
-
- public void testDefaultOptionLast() {
- final Option o1 = DefaultOptionTest.buildHelpOption();
- final Option o2 = CommandTest.buildCommitCommand();
- final List list = CLITestCase.list(o1, o2);
-
- Collections.sort(list, Comparators.defaultOptionLast());
-
- CLITestCase.assertListContentsEqual(
- CLITestCase.list(o2, o1),
- list);
- }
-
- public void testNamedFirst() {
- final Option o1 = DefaultOptionTest.buildHelpOption();
- final Option o2 = ParentTest.buildLibParent();
- final List list = CLITestCase.list(o1, o2);
-
- Collections.sort(list, Comparators.namedFirst("--help"));
-
- CLITestCase.assertListContentsEqual(
- CLITestCase.list(o1, o2),
- list);
- }
-
- public void testNamedLast() {
- final Option o1 = DefaultOptionTest.buildHelpOption();
- final Option o2 = ParentTest.buildLibParent();
- final List list = CLITestCase.list(o1, o2);
-
- Collections.sort(list, Comparators.namedLast("--help"));
-
- CLITestCase.assertListContentsEqual(
- CLITestCase.list(o2, o1),
- list);
- }
-
- public void testPreferredNameFirst() {
- final Option o1 = DefaultOptionTest.buildHelpOption();
- final Option o2 = ParentTest.buildLibParent();
- final List list = CLITestCase.list(o1, o2);
-
- Collections.sort(list, Comparators.preferredNameFirst());
-
- CLITestCase.assertListContentsEqual(
- CLITestCase.list(o1, o2),
- list);
- }
-
- public void testPreferredNameLast() {
- final Option o1 = DefaultOptionTest.buildHelpOption();
- final Option o2 = ParentTest.buildLibParent();
- final List list = CLITestCase.list(o1, o2);
-
- Collections.sort(list, Comparators.preferredNameLast());
-
- CLITestCase.assertListContentsEqual(
- CLITestCase.list(o2, o1),
- list);
- }
-
- public void testRequiredFirst() {
- final Option o1 = DefaultOptionTest.buildHelpOption();
- final Option o2 = DefaultOptionTest.buildXOption();
- final List list = CLITestCase.list(o1, o2);
-
- Collections.sort(list, Comparators.requiredFirst());
-
- CLITestCase.assertListContentsEqual(
- CLITestCase.list(o2, o1),
- list);
- }
-
- public void testRequiredLast() {
- final Option o1 = DefaultOptionTest.buildHelpOption();
- final Option o2 = DefaultOptionTest.buildXOption();
- final List list = CLITestCase.list(o1, o2);
-
- Collections.sort(list, Comparators.requiredLast());
-
- CLITestCase.assertListContentsEqual(
- CLITestCase.list(o1, o2),
- list);
- }
-
- public void testChained() {
- final Option o1 = CommandTest.buildCommitCommand();
- final Option o2 = SwitchTest.buildDisplaySwitch();
- final Option o3 = DefaultOptionTest.buildHelpOption();
- final List list = CLITestCase.list(o1, o2, o3);
-
- Collections.sort(
- list,
- Comparators.chain(
- Comparators.namedFirst("--help"),
- Comparators.commandFirst()));
-
- CLITestCase.assertListContentsEqual(
- CLITestCase.list(o3, o1, o2),
- list);
- }
-}
+/** * 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.cli2.util;import java.util.Collections;import java.util.List;import junit.framework.TestCase;import org.apache.commons.cli2.CLITestCase;import org.apache.commons.cli2.Option;i
mport org.apache.commons.cli2.option.CommandTest;import org.apache.commons.cli2.option.DefaultOptionTest;import org.apache.commons.cli2.option.GroupTest;import org.apache.commons.cli2.option.ParentTest;import org.apache.commons.cli2.option.SwitchTest;/** * @author Rob Oxspring */public class ComparatorsTest extends TestCase { public void testGroupFirst() { final Option o1 = GroupTest.buildAntGroup(); final Option o2 = ParentTest.buildLibParent(); final List list = CLITestCase.list(o1, o2); Collections.sort(list, Comparators.groupFirst()); CLITestCase.assertListContentsEqual( CLITestCase.list(o1, o2), list); } public void testGroupLast() { final Option o1 = GroupTest.buildAntGroup(); final Option o2 = ParentTest.buildLibParent(); final List list = CLITestCase.list(o1, o2); Collections.sort(list, Comparators.groupLast()); CLITestCase.assertListContentsEqual( CLITestC
ase.list(o2, o1), list); } public void testSwitchFirst() { final Option o1 = SwitchTest.buildDisplaySwitch(); final Option o2 = ParentTest.buildLibParent(); final List list = CLITestCase.list(o1, o2); Collections.sort(list, Comparators.switchFirst()); CLITestCase.assertListContentsEqual( CLITestCase.list(o1, o2), list); } public void testSwitchLast() { final Option o1 = SwitchTest.buildDisplaySwitch(); final Option o2 = ParentTest.buildLibParent(); //final Option o3 = new SwitchBuilder().withName("hidden").create(); final List list = CLITestCase.list(o1, o2); Collections.sort(list, Comparators.switchLast()); CLITestCase.assertListContentsEqual( CLITestCase.list(o2, o1), list); } public void testCommandFirst() { final Option o1 = CommandTest.buildCommitCommand(); final Option o2 = ParentTest.buildLibParent();
final List list = CLITestCase.list(o1, o2); Collections.sort(list, Comparators.commandFirst()); CLITestCase.assertListContentsEqual( CLITestCase.list(o1, o2), list); } public void testCommandLast() { final Option o1 = CommandTest.buildCommitCommand(); final Option o2 = ParentTest.buildLibParent(); final List list = CLITestCase.list(o1, o2); Collections.sort(list, Comparators.commandLast()); CLITestCase.assertListContentsEqual( CLITestCase.list(o2, o1), list); } public void testDefaultOptionFirst() { final Option o1 = DefaultOptionTest.buildHelpOption(); final Option o2 = CommandTest.buildCommitCommand(); final List list = CLITestCase.list(o1, o2); Collections.sort(list, Comparators.defaultOptionFirst()); CLITestCase.assertListContentsEqual( CLITestCase.list(o1, o2), list); } public void testDefaultOptionLast
() { final Option o1 = DefaultOptionTest.buildHelpOption(); final Option o2 = CommandTest.buildCommitCommand(); final List list = CLITestCase.list(o1, o2); Collections.sort(list, Comparators.defaultOptionLast()); CLITestCase.assertListContentsEqual( CLITestCase.list(o2, o1), list); } public void testNamedFirst() { final Option o1 = DefaultOptionTest.buildHelpOption(); final Option o2 = ParentTest.buildLibParent(); final List list = CLITestCase.list(o1, o2); Collections.sort(list, Comparators.namedFirst("--help")); CLITestCase.assertListContentsEqual( CLITestCase.list(o1, o2), list); } public void testNamedLast() { final Option o1 = DefaultOptionTest.buildHelpOption(); final Option o2 = ParentTest.buildLibParent(); final List list = CLITestCase.list(o1, o2); Collections.sort(list, Comparators.namedLast("--help")); CLI
TestCase.assertListContentsEqual( CLITestCase.list(o2, o1), list); } public void testPreferredNameFirst() { final Option o1 = DefaultOptionTest.buildHelpOption(); final Option o2 = ParentTest.buildLibParent(); final List list = CLITestCase.list(o1, o2); Collections.sort(list, Comparators.preferredNameFirst()); CLITestCase.assertListContentsEqual( CLITestCase.list(o1, o2), list); } public void testPreferredNameLast() { final Option o1 = DefaultOptionTest.buildHelpOption(); final Option o2 = ParentTest.buildLibParent(); final List list = CLITestCase.list(o1, o2); Collections.sort(list, Comparators.preferredNameLast()); CLITestCase.assertListContentsEqual( CLITestCase.list(o2, o1), list); } public void testRequiredFirst() { final Option o1 = DefaultOptionTest.buildHelpOption(); final Option o2 = DefaultOptionTest
.buildXOption(); final List list = CLITestCase.list(o1, o2); Collections.sort(list, Comparators.requiredFirst()); CLITestCase.assertListContentsEqual( CLITestCase.list(o2, o1), list); } public void testRequiredLast() { final Option o1 = DefaultOptionTest.buildHelpOption(); final Option o2 = DefaultOptionTest.buildXOption(); final List list = CLITestCase.list(o1, o2); Collections.sort(list, Comparators.requiredLast()); CLITestCase.assertListContentsEqual( CLITestCase.list(o1, o2), list); } public void testChained() { final Option o1 = CommandTest.buildCommitCommand(); final Option o2 = SwitchTest.buildDisplaySwitch(); final Option o3 = DefaultOptionTest.buildHelpOption(); final List list = CLITestCase.list(o1, o2, o3); Collections.sort( list, Comparators.chain( Comparators.namedFirst("--help"),
Comparators.commandFirst())); CLITestCase.assertListContentsEqual( CLITestCase.list(o3, o1, o2), list); }}
\ No newline at end of file
Modified: commons/proper/cli/trunk/src/test/org/apache/commons/cli2/util/HelpFormatterTest.java
URL: http://svn.apache.org/viewvc/commons/proper/cli/trunk/src/test/org/apache/commons/cli2/util/HelpFormatterTest.java?rev=639941&r1=639940&r2=639941&view=diff
==============================================================================
--- commons/proper/cli/trunk/src/test/org/apache/commons/cli2/util/HelpFormatterTest.java (original)
+++ commons/proper/cli/trunk/src/test/org/apache/commons/cli2/util/HelpFormatterTest.java Fri Mar 21 19:49:41 2008
@@ -1,545 +1 @@
-/*
- * 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.cli2.util;
-
-import java.io.BufferedReader;
-import java.io.IOException;
-import java.io.PrintWriter;
-import java.io.StringReader;
-import java.io.StringWriter;
-
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Set;
-
-import junit.framework.TestCase;
-
-import org.apache.commons.cli2.DisplaySetting;
-import org.apache.commons.cli2.Group;
-import org.apache.commons.cli2.Option;
-import org.apache.commons.cli2.OptionException;
-import org.apache.commons.cli2.builder.DefaultOptionBuilder;
-import org.apache.commons.cli2.builder.GroupBuilder;
-import org.apache.commons.cli2.option.ArgumentTest;
-import org.apache.commons.cli2.option.DefaultOptionTest;
-import org.apache.commons.cli2.resource.ResourceConstants;
-import org.apache.commons.cli2.resource.ResourceHelper;
-
-public class HelpFormatterTest
- extends TestCase {
- private ResourceHelper resources = ResourceHelper.getResourceHelper();
- private HelpFormatter helpFormatter;
- private Option verbose;
- private Group options;
-
- public void setUp() {
- helpFormatter = new HelpFormatter("|*", "*-*", "*|", 80);
- helpFormatter.setDivider("+------------------------------------------------------------------------------+");
- helpFormatter.setHeader("Apache Commons CLI");
- helpFormatter.setFooter("Copyright 2003\nApache Software Foundation");
- helpFormatter.setShellCommand("ant");
-
- verbose =
- new DefaultOptionBuilder().withLongName("verbose")
- .withDescription("print the version information and exit")
- .create();
-
- options =
- new GroupBuilder().withName("options").withOption(DefaultOptionTest.buildHelpOption())
- .withOption(ArgumentTest.buildTargetsArgument())
- .withOption(new DefaultOptionBuilder().withLongName("diagnostics")
- .withDescription("print information that might be helpful to diagnose or report problems.")
- .create())
- .withOption(new DefaultOptionBuilder().withLongName("projecthelp")
- .withDescription("print project help information")
- .create()).withOption(verbose)
- .create();
-
- helpFormatter.setGroup(options);
- }
-
- public void testPrint()
- throws IOException {
- final StringWriter writer = new StringWriter();
- final PrintWriter pw = new PrintWriter(writer);
- helpFormatter.setPrintWriter(pw);
- helpFormatter.print();
-
- // test shell
- assertEquals("incorrect shell command", "ant", helpFormatter.getShellCommand());
-
- // test group
- assertEquals("incorrect group", this.options, helpFormatter.getGroup());
-
- // test pagewidth
- assertEquals("incorrect page width", 76, helpFormatter.getPageWidth());
-
- // test pw
- assertEquals("incorrect print writer", pw, helpFormatter.getPrintWriter());
-
- // test divider
- assertEquals("incorrect divider",
- "+------------------------------------------------------------------------------+",
- helpFormatter.getDivider());
-
- // test header
- assertEquals("incorrect header", "Apache Commons CLI", helpFormatter.getHeader());
-
- // test footer
- assertEquals("incorrect footer", "Copyright 2003\nApache Software Foundation",
- helpFormatter.getFooter());
-
- // test gutters
- assertEquals("incorrect left gutter", "|*", helpFormatter.getGutterLeft());
- assertEquals("incorrect right gutter", "*|", helpFormatter.getGutterRight());
- assertEquals("incorrect center gutter", "*-*", helpFormatter.getGutterCenter());
-
- final BufferedReader reader = new BufferedReader(new StringReader(writer.toString()));
- assertEquals("+------------------------------------------------------------------------------+",
- reader.readLine());
- assertEquals("|*Apache Commons CLI *|",
- reader.readLine());
- assertEquals("+------------------------------------------------------------------------------+",
- reader.readLine());
- assertEquals("|*Usage: *|",
- reader.readLine());
- assertEquals("|*ant [--help --diagnostics --projecthelp --verbose] [<target1> [<target2> *|",
- reader.readLine());
- assertEquals("|*...]] *|",
- reader.readLine());
- assertEquals("+------------------------------------------------------------------------------+",
- reader.readLine());
- assertEquals("|*options *-* *|",
- reader.readLine());
- assertEquals("|* --help (-?,-h) *-*Displays the help *|",
- reader.readLine());
- assertEquals("|* --diagnostics *-*print information that might be helpful to diagnose *|",
- reader.readLine());
- assertEquals("|* *-*or report problems. *|",
- reader.readLine());
- assertEquals("|* --projecthelp *-*print project help information *|",
- reader.readLine());
- assertEquals("|* --verbose *-*print the version information and exit *|",
- reader.readLine());
- assertEquals("|* target [target ...]*-*The targets ant should build *|",
- reader.readLine());
- assertEquals("+------------------------------------------------------------------------------+",
- reader.readLine());
- assertEquals("|*Copyright 2003 *|",
- reader.readLine());
- assertEquals("|*Apache Software Foundation *|",
- reader.readLine());
- assertEquals("+------------------------------------------------------------------------------+",
- reader.readLine());
- assertNull(reader.readLine());
- }
-
- public void testComparator()
- throws IOException {
- final StringWriter writer = new StringWriter();
- final PrintWriter pw = new PrintWriter(writer);
- helpFormatter.setPrintWriter(pw);
-
- final Comparator comparator = new OptionComparator();
- helpFormatter.setComparator(comparator);
- helpFormatter.print();
-
- // test comparator
- assertEquals("invalid comparator", comparator, helpFormatter.getComparator());
-
- final BufferedReader reader = new BufferedReader(new StringReader(writer.toString()));
- assertEquals("+------------------------------------------------------------------------------+",
- reader.readLine());
- assertEquals("|*Apache Commons CLI *|",
- reader.readLine());
- assertEquals("+------------------------------------------------------------------------------+",
- reader.readLine());
- assertEquals("|*Usage: *|",
- reader.readLine());
- assertEquals("|*ant [--verbose --projecthelp --help --diagnostics] [<target1> [<target2> *|",
- reader.readLine());
- assertEquals("|*...]] *|",
- reader.readLine());
- assertEquals("+------------------------------------------------------------------------------+",
- reader.readLine());
- assertEquals("|*options *-* *|",
- reader.readLine());
- assertEquals("|* --verbose *-*print the version information and exit *|",
- reader.readLine());
- assertEquals("|* --projecthelp *-*print project help information *|",
- reader.readLine());
- assertEquals("|* --help (-?,-h) *-*Displays the help *|",
- reader.readLine());
- assertEquals("|* --diagnostics *-*print information that might be helpful to diagnose *|",
- reader.readLine());
- assertEquals("|* *-*or report problems. *|",
- reader.readLine());
- assertEquals("|* target [target ...]*-*The targets ant should build *|",
- reader.readLine());
- assertEquals("+------------------------------------------------------------------------------+",
- reader.readLine());
- assertEquals("|*Copyright 2003 *|",
- reader.readLine());
- assertEquals("|*Apache Software Foundation *|",
- reader.readLine());
- assertEquals("+------------------------------------------------------------------------------+",
- reader.readLine());
- assertNull(reader.readLine());
- }
-
- public void testPrintHelp()
- throws IOException {
- final StringWriter writer = new StringWriter();
- helpFormatter.setPrintWriter(new PrintWriter(writer));
- helpFormatter.printHelp();
-
- final BufferedReader reader = new BufferedReader(new StringReader(writer.toString()));
- assertEquals("+------------------------------------------------------------------------------+",
- reader.readLine());
- assertEquals("|*options *-* *|",
- reader.readLine());
- assertEquals("|* --help (-?,-h) *-*Displays the help *|",
- reader.readLine());
- assertEquals("|* --diagnostics *-*print information that might be helpful to diagnose *|",
- reader.readLine());
- assertEquals("|* *-*or report problems. *|",
- reader.readLine());
- assertEquals("|* --projecthelp *-*print project help information *|",
- reader.readLine());
- assertEquals("|* --verbose *-*print the version information and exit *|",
- reader.readLine());
- assertEquals("|* target [target ...]*-*The targets ant should build *|",
- reader.readLine());
- assertEquals("+------------------------------------------------------------------------------+",
- reader.readLine());
- assertNull(reader.readLine());
- }
-
- public void testPrintHelp_WithException()
- throws IOException {
- final StringWriter writer = new StringWriter();
- helpFormatter.setPrintWriter(new PrintWriter(writer));
- helpFormatter.setException(new OptionException(verbose));
- helpFormatter.printHelp();
-
- //System.out.println(writer);
- final BufferedReader reader = new BufferedReader(new StringReader(writer.toString()));
- assertEquals("+------------------------------------------------------------------------------+",
- reader.readLine());
- assertEquals("|*--verbose*-*print the version information and exit *|",
- reader.readLine());
- assertEquals("+------------------------------------------------------------------------------+",
- reader.readLine());
- assertNull(reader.readLine());
- }
-
- public void testPrintHelp_TooNarrow()
- throws IOException {
- final StringWriter writer = new StringWriter();
- helpFormatter = new HelpFormatter("<", "=", ">", 4);
- helpFormatter.setGroup(options);
- helpFormatter.setPrintWriter(new PrintWriter(writer));
- helpFormatter.printHelp();
-
- final BufferedReader reader = new BufferedReader(new StringReader(writer.toString()));
- assertEquals("<options = >", reader.readLine());
- assertEquals("< --help (-?,-h) =D>", reader.readLine());
- assertEquals("< =i>", reader.readLine());
-
- // lots more lines unchecked
- }
-
- public void testPrintException()
- throws IOException {
- final StringWriter writer = new StringWriter();
- helpFormatter.setPrintWriter(new PrintWriter(writer));
- helpFormatter.setException(new OptionException(verbose, ResourceConstants.MISSING_OPTION));
- helpFormatter.printException();
-
- //System.out.println(writer);
- final BufferedReader reader = new BufferedReader(new StringReader(writer.toString()));
- assertEquals("+------------------------------------------------------------------------------+",
- reader.readLine());
- assertEquals("|*Missing option --verbose *|",
- reader.readLine());
- assertNull(reader.readLine());
- }
-
- public void testPrintUsage()
- throws IOException {
- final StringWriter writer = new StringWriter();
- helpFormatter.setPrintWriter(new PrintWriter(writer));
- helpFormatter.printUsage();
-
- final BufferedReader reader = new BufferedReader(new StringReader(writer.toString()));
- assertEquals("+------------------------------------------------------------------------------+",
- reader.readLine());
- assertEquals("|*Usage: *|",
- reader.readLine());
- assertEquals("|*ant [--help --diagnostics --projecthelp --verbose] [<target1> [<target2> *|",
- reader.readLine());
- assertEquals("|*...]] *|",
- reader.readLine());
- assertNull(reader.readLine());
- }
-
- public void testPrintHeader()
- throws IOException {
- final StringWriter writer = new StringWriter();
- helpFormatter.setPrintWriter(new PrintWriter(writer));
- helpFormatter.printHeader();
-
- final BufferedReader reader = new BufferedReader(new StringReader(writer.toString()));
- assertEquals("+------------------------------------------------------------------------------+",
- reader.readLine());
- assertEquals("|*Apache Commons CLI *|",
- reader.readLine());
- assertNull(reader.readLine());
- }
-
- public void testPrintFooter()
- throws IOException {
- final StringWriter writer = new StringWriter();
- helpFormatter.setPrintWriter(new PrintWriter(writer));
- helpFormatter.printFooter();
-
- final BufferedReader reader = new BufferedReader(new StringReader(writer.toString()));
- assertEquals("|*Copyright 2003 *|",
- reader.readLine());
- assertEquals("|*Apache Software Foundation *|",
- reader.readLine());
- assertEquals("+------------------------------------------------------------------------------+",
- reader.readLine());
- assertNull(reader.readLine());
- }
-
- public void testPrintDivider()
- throws IOException {
- final StringWriter writer = new StringWriter();
- helpFormatter.setPrintWriter(new PrintWriter(writer));
- helpFormatter.printDivider();
-
- final BufferedReader reader = new BufferedReader(new StringReader(writer.toString()));
- assertEquals("+------------------------------------------------------------------------------+",
- reader.readLine());
- assertNull(reader.readLine());
- }
-
- public void testWrap() {
- final Iterator i = HelpFormatter.wrap("Apache Software Foundation", 30).iterator();
- assertEquals("Apache Software Foundation", i.next());
- assertFalse(i.hasNext());
- }
-
- public void testWrap_WrapNeeded() {
- final Iterator i = HelpFormatter.wrap("Apache Software Foundation", 20).iterator();
- assertEquals("Apache Software", i.next());
- assertEquals("Foundation", i.next());
- assertFalse(i.hasNext());
- }
-
- public void testWrap_BeforeSpace() {
- final Iterator i = HelpFormatter.wrap("Apache Software Foundation", 16).iterator();
- assertEquals("Apache Software", i.next());
- assertEquals("Foundation", i.next());
- assertFalse(i.hasNext());
- }
-
- public void testWrap_AfterSpace() {
- final Iterator i = HelpFormatter.wrap("Apache Software Foundation", 17).iterator();
- assertEquals("Apache Software", i.next());
- assertEquals("Foundation", i.next());
- assertFalse(i.hasNext());
- }
-
- public void testWrap_InWord() {
- final Iterator i = HelpFormatter.wrap("Apache Software Foundation", 8).iterator();
- assertEquals("Apache", i.next());
- assertEquals("Software", i.next());
- assertEquals("Foundati", i.next());
- assertEquals("on", i.next());
- assertFalse(i.hasNext());
- }
-
- public void testWrap_NewLine() {
- final Iterator i = HelpFormatter.wrap("\nApache Software Foundation\n", 30).iterator();
- assertEquals("", i.next());
- assertEquals("Apache Software Foundation", i.next());
- assertEquals("", i.next());
- assertFalse(i.hasNext());
- }
-
- public void testWrap_NewLine2() {
- List wrapped =
- HelpFormatter.wrap("A really quite long general description of the option with specific alternatives documented:\n" +
- " Indented special case\n" + " Alternative scenario", 30);
-
- final Iterator i = wrapped.iterator();
-
- assertEquals("A really quite long general", i.next());
- assertEquals("description of the option", i.next());
- assertEquals("with specific alternatives", i.next());
- assertEquals("documented:", i.next());
- assertEquals(" Indented special case", i.next());
- assertEquals(" Alternative scenario", i.next());
- assertFalse(i.hasNext());
- }
-
- public void testWrap_Below1Length() {
- try {
- HelpFormatter.wrap("Apache Software Foundation", -1);
- fail("IllegalArgumentException");
- } catch (IllegalArgumentException e) {
- assertEquals(resources.getMessage(ResourceConstants.HELPFORMATTER_WIDTH_TOO_NARROW,
- new Object[] { new Integer(-1) }), e.getMessage());
- }
- }
-
- public void testPad()
- throws IOException {
- final StringWriter writer = new StringWriter();
- HelpFormatter.pad("hello", 10, new PrintWriter(writer));
- assertEquals("hello ", writer.toString());
- }
-
- public void testPad_Null()
- throws IOException {
- final StringWriter writer = new StringWriter();
- HelpFormatter.pad(null, 10, new PrintWriter(writer));
- assertEquals(" ", writer.toString());
- }
-
- public void testPad_TooLong()
- throws IOException {
- final StringWriter writer = new StringWriter();
- HelpFormatter.pad("hello world", 10, new PrintWriter(writer));
- assertEquals("hello world", writer.toString());
- }
-
- public void testPad_TooShort()
- throws IOException {
- final StringWriter writer = new StringWriter();
- HelpFormatter.pad("hello world", -5, new PrintWriter(writer));
- assertEquals("hello world", writer.toString());
- }
-
- public void testGutters()
- throws IOException {
- helpFormatter = new HelpFormatter(null, null, null, 80);
- helpFormatter.setShellCommand("ant");
-
- final Set lusage = new HashSet();
- lusage.add(DisplaySetting.DISPLAY_ALIASES);
- lusage.add(DisplaySetting.DISPLAY_GROUP_NAME);
- helpFormatter.setLineUsageSettings(lusage);
-
- // test line usage
- assertEquals("incorrect line usage", lusage, helpFormatter.getLineUsageSettings());
-
- final Set fusage = new HashSet();
- fusage.add(DisplaySetting.DISPLAY_PARENT_CHILDREN);
- fusage.add(DisplaySetting.DISPLAY_GROUP_ARGUMENT);
- fusage.add(DisplaySetting.DISPLAY_GROUP_OUTER);
- fusage.add(DisplaySetting.DISPLAY_GROUP_EXPANDED);
- fusage.add(DisplaySetting.DISPLAY_ARGUMENT_BRACKETED);
- fusage.add(DisplaySetting.DISPLAY_ARGUMENT_NUMBERED);
- fusage.add(DisplaySetting.DISPLAY_SWITCH_ENABLED);
- fusage.add(DisplaySetting.DISPLAY_SWITCH_DISABLED);
- fusage.add(DisplaySetting.DISPLAY_PROPERTY_OPTION);
- fusage.add(DisplaySetting.DISPLAY_PARENT_CHILDREN);
- fusage.add(DisplaySetting.DISPLAY_PARENT_ARGUMENT);
- fusage.add(DisplaySetting.DISPLAY_OPTIONAL);
- helpFormatter.setFullUsageSettings(fusage);
-
- // test line usage
- assertEquals("incorrect full usage", fusage, helpFormatter.getFullUsageSettings());
-
- final Set dsettings = new HashSet();
- dsettings.add(DisplaySetting.DISPLAY_GROUP_NAME);
- dsettings.add(DisplaySetting.DISPLAY_GROUP_EXPANDED);
- dsettings.add(DisplaySetting.DISPLAY_GROUP_ARGUMENT);
-
- helpFormatter.setDisplaySettings(dsettings);
-
- verbose =
- new DefaultOptionBuilder().withLongName("verbose")
- .withDescription("print the version information and exit")
- .create();
-
- options =
- new GroupBuilder().withName("options").withOption(DefaultOptionTest.buildHelpOption())
- .withOption(ArgumentTest.buildTargetsArgument())
- .withOption(new DefaultOptionBuilder().withLongName("diagnostics")
- .withDescription("print information that might be helpful to diagnose or report problems.")
- .create())
- .withOption(new DefaultOptionBuilder().withLongName("projecthelp")
- .withDescription("print project help information")
- .create()).withOption(verbose)
- .create();
-
- helpFormatter.setGroup(options);
-
- // test default gutters
- assertEquals("incorrect left gutter", HelpFormatter.DEFAULT_GUTTER_LEFT,
- helpFormatter.getGutterLeft());
- assertEquals("incorrect right gutter", HelpFormatter.DEFAULT_GUTTER_RIGHT,
- helpFormatter.getGutterRight());
- assertEquals("incorrect center gutter", HelpFormatter.DEFAULT_GUTTER_CENTER,
- helpFormatter.getGutterCenter());
-
- final StringWriter writer = new StringWriter();
- helpFormatter.setPrintWriter(new PrintWriter(writer));
- helpFormatter.print();
-
- final BufferedReader reader = new BufferedReader(new StringReader(writer.toString()));
- assertEquals("Usage: ",
- reader.readLine());
- assertEquals("ant [--help --diagnostics --projecthelp --verbose] [<target1> [<target2> ...]] ",
- reader.readLine());
- assertEquals("options ",
- reader.readLine());
- assertEquals(" --help (-?,-h) Displays the help ",
- reader.readLine());
- assertEquals(" --diagnostics print information that might be helpful to diagnose or ",
- reader.readLine());
- assertEquals(" report problems. ",
- reader.readLine());
- assertEquals(" --projecthelp print project help information ",
- reader.readLine());
- assertEquals(" --verbose print the version information and exit ",
- reader.readLine());
- assertEquals(" target [target ...] The targets ant should build ",
- reader.readLine());
- assertNull(reader.readLine());
- }
-}
-
-
-class OptionComparator implements Comparator {
- public int compare(Object o1,
- Object o2) {
- Option opt1 = (Option) o1;
- Option opt2 = (Option) o2;
-
- return -opt1.getPreferredName().compareTo(opt2.getPreferredName());
- }
-}
+/* * 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.cli2.util;import java.io.BufferedReader;import java.io.IOException;import java.io.PrintWriter;import java.io.StringReader;import java.io.StringWriter;import java.util.Collect
ions;import java.util.Comparator;import java.util.HashSet;import java.util.Iterator;import java.util.List;import java.util.Set;import junit.framework.TestCase;import org.apache.commons.cli2.DisplaySetting;import org.apache.commons.cli2.Group;import org.apache.commons.cli2.Option;import org.apache.commons.cli2.OptionException;import org.apache.commons.cli2.builder.DefaultOptionBuilder;import org.apache.commons.cli2.builder.GroupBuilder;import org.apache.commons.cli2.option.ArgumentTest;import org.apache.commons.cli2.option.DefaultOptionTest;import org.apache.commons.cli2.resource.ResourceConstants;import org.apache.commons.cli2.resource.ResourceHelper;public class HelpFormatterTest extends TestCase { private ResourceHelper resources = ResourceHelper.getResourceHelper(); private HelpFormatter helpFormatter; private Option verbose; private Group options; public void setUp() { helpFormatter = new HelpFormatter("|*", "*-*", "*|", 80); helpFormatter
.setDivider("+------------------------------------------------------------------------------+"); helpFormatter.setHeader("Apache Commons CLI"); helpFormatter.setFooter("Copyright 2003\nApache Software Foundation"); helpFormatter.setShellCommand("ant"); verbose = new DefaultOptionBuilder().withLongName("verbose") .withDescription("print the version information and exit") .create(); options = new GroupBuilder().withName("options").withOption(DefaultOptionTest.buildHelpOption()) .withOption(ArgumentTest.buildTargetsArgument()) .withOption(new DefaultOptionBuilder().withLongName("diagnostics") .withDescription("print information that might be helpful to diagnose or report problems.")
.create()) .withOption(new DefaultOptionBuilder().withLongName("projecthelp") .withDescription("print project help information") .create()).withOption(verbose) .create(); helpFormatter.setGroup(options); } public void testPrint() throws IOException { final StringWriter writer = new StringWriter(); final PrintWriter pw = new PrintWriter(writer); helpFormatter.setPrintWriter(pw); helpFormatter.print(); // test shell assertEquals("incorrect shell command", "ant", helpFormatter.getShellCommand()); // test group assertEquals("incorrect group", this.options, helpFormatter.getGroup()); // test pagewidth assertEquals("incorrect page width", 76, helpFormatter.getPageWidth()); /
/ test pw assertEquals("incorrect print writer", pw, helpFormatter.getPrintWriter()); // test divider assertEquals("incorrect divider", "+------------------------------------------------------------------------------+", helpFormatter.getDivider()); // test header assertEquals("incorrect header", "Apache Commons CLI", helpFormatter.getHeader()); // test footer assertEquals("incorrect footer", "Copyright 2003\nApache Software Foundation", helpFormatter.getFooter()); // test gutters assertEquals("incorrect left gutter", "|*", helpFormatter.getGutterLeft()); assertEquals("incorrect right gutter", "*|", helpFormatter.getGutterRight()); assertEquals("incorrect center gutter", "*-*", helpFormatter.getGutterCenter()); final BufferedReader reader = new BufferedReader(new StringReader(writer.toString())); assertEquals("+----------------
--------------------------------------------------------------+", reader.readLine()); assertEquals("|*Apache Commons CLI *|", reader.readLine()); assertEquals("+------------------------------------------------------------------------------+", reader.readLine()); assertEquals("|*Usage: *|", reader.readLine()); assertEquals("|*ant [--help --diagnostics --projecthelp --verbose] [<target1> [<target2> *|", reader.readLine()); assertEquals("|*...]] *|", reader.readLine()); assertEquals("+------------------------------------------------------------------------------+", reader.readLine()); assertEquals
("|*options *-* *|", reader.readLine()); assertEquals("|* --help (-?,-h) *-*Displays the help *|", reader.readLine()); assertEquals("|* --diagnostics *-*print information that might be helpful to diagnose *|", reader.readLine()); assertEquals("|* *-*or report problems. *|", reader.readLine()); assertEquals("|* --projecthelp *-*print project help information *|", reader.readLine()); assertEquals("|* --verbose *-*print the version information and exit *|", reader.readLine()); assertEquals("|* target [target ...]*-*The targets ant should build *|", reader.readLine());
assertEquals("+------------------------------------------------------------------------------+", reader.readLine()); assertEquals("|*Copyright 2003 *|", reader.readLine()); assertEquals("|*Apache Software Foundation *|", reader.readLine()); assertEquals("+------------------------------------------------------------------------------+", reader.readLine()); assertNull(reader.readLine()); } public void testComparator() throws IOException { final StringWriter writer = new StringWriter(); final PrintWriter pw = new PrintWriter(writer); helpFormatter.setPrintWriter(pw); final Comparator comparator = new OptionComparator(); helpFormatter.setComparator(comparator); helpFormatter.print(); // test compa
rator assertEquals("invalid comparator", comparator, helpFormatter.getComparator()); final BufferedReader reader = new BufferedReader(new StringReader(writer.toString())); assertEquals("+------------------------------------------------------------------------------+", reader.readLine()); assertEquals("|*Apache Commons CLI *|", reader.readLine()); assertEquals("+------------------------------------------------------------------------------+", reader.readLine()); assertEquals("|*Usage: *|", reader.readLine()); assertEquals("|*ant [--verbose --projecthelp --help --diagnostics] [<target1> [<target2> *|", reader.readLine()); assertEquals("|*...]]
*|", reader.readLine()); assertEquals("+------------------------------------------------------------------------------+", reader.readLine()); assertEquals("|*options *-* *|", reader.readLine()); assertEquals("|* --verbose *-*print the version information and exit *|", reader.readLine()); assertEquals("|* --projecthelp *-*print project help information *|", reader.readLine()); assertEquals("|* --help (-?,-h) *-*Displays the help *|", reader.readLine()); assertEquals("|* --diagnostics *-*print information that might be helpful to diagnose *|", reader.readLine()); assertEquals("|* *-*or report problem
s. *|", reader.readLine()); assertEquals("|* target [target ...]*-*The targets ant should build *|", reader.readLine()); assertEquals("+------------------------------------------------------------------------------+", reader.readLine()); assertEquals("|*Copyright 2003 *|", reader.readLine()); assertEquals("|*Apache Software Foundation *|", reader.readLine()); assertEquals("+------------------------------------------------------------------------------+", reader.readLine()); assertNull(reader.readLine()); } public void testPrintHelp() throws IOException { final StringWriter writer = new StringWriter(); helpFormatter.setPrintWri
ter(new PrintWriter(writer)); helpFormatter.printHelp(); final BufferedReader reader = new BufferedReader(new StringReader(writer.toString())); assertEquals("+------------------------------------------------------------------------------+", reader.readLine()); assertEquals("|*options *-* *|", reader.readLine()); assertEquals("|* --help (-?,-h) *-*Displays the help *|", reader.readLine()); assertEquals("|* --diagnostics *-*print information that might be helpful to diagnose *|", reader.readLine()); assertEquals("|* *-*or report problems. *|", reader.readLine()); assertEquals("|* --projecthelp *-*print project help information *|",
reader.readLine()); assertEquals("|* --verbose *-*print the version information and exit *|", reader.readLine()); assertEquals("|* target [target ...]*-*The targets ant should build *|", reader.readLine()); assertEquals("+------------------------------------------------------------------------------+", reader.readLine()); assertNull(reader.readLine()); } public void testPrintHelp_WithException() throws IOException { final StringWriter writer = new StringWriter(); helpFormatter.setPrintWriter(new PrintWriter(writer)); helpFormatter.setException(new OptionException(verbose)); helpFormatter.printHelp(); //System.out.println(writer); final BufferedReader reader = new BufferedReader(new StringReader(writer.toString())); assertEquals("+---------------------------------------
---------------------------------------+", reader.readLine()); assertEquals("|*--verbose*-*print the version information and exit *|", reader.readLine()); assertEquals("+------------------------------------------------------------------------------+", reader.readLine()); assertNull(reader.readLine()); } public void testPrintHelp_TooNarrow() throws IOException { final StringWriter writer = new StringWriter(); helpFormatter = new HelpFormatter("<", "=", ">", 4); helpFormatter.setGroup(options); helpFormatter.setPrintWriter(new PrintWriter(writer)); helpFormatter.printHelp(); final BufferedReader reader = new BufferedReader(new StringReader(writer.toString())); assertEquals("<options = >", reader.readLine()); assertEquals("< --help (-?,-h) =D>", reader.readLine()); assertEquals("<
=i>", reader.readLine()); // lots more lines unchecked } public void testPrintException() throws IOException { final StringWriter writer = new StringWriter(); helpFormatter.setPrintWriter(new PrintWriter(writer)); helpFormatter.setException(new OptionException(verbose, ResourceConstants.MISSING_OPTION)); helpFormatter.printException(); //System.out.println(writer); final BufferedReader reader = new BufferedReader(new StringReader(writer.toString())); assertEquals("+------------------------------------------------------------------------------+", reader.readLine()); assertEquals("|*Missing option --verbose *|", reader.readLine()); assertNull(reader.readLine()); } public void testPrintUsage() throws IOException { final StringWriter writer = new StringWriter();
helpFormatter.setPrintWriter(new PrintWriter(writer)); helpFormatter.printUsage(); final BufferedReader reader = new BufferedReader(new StringReader(writer.toString())); assertEquals("+------------------------------------------------------------------------------+", reader.readLine()); assertEquals("|*Usage: *|", reader.readLine()); assertEquals("|*ant [--help --diagnostics --projecthelp --verbose] [<target1> [<target2> *|", reader.readLine()); assertEquals("|*...]] *|", reader.readLine()); assertNull(reader.readLine()); } public void testPrintHeader() throws IOException { final StringWriter writer = new StringWriter(); helpFormatter.setPrintWriter(new PrintWriter(writer));
helpFormatter.printHeader(); final BufferedReader reader = new BufferedReader(new StringReader(writer.toString())); assertEquals("+------------------------------------------------------------------------------+", reader.readLine()); assertEquals("|*Apache Commons CLI *|", reader.readLine()); assertNull(reader.readLine()); } public void testPrintFooter() throws IOException { final StringWriter writer = new StringWriter(); helpFormatter.setPrintWriter(new PrintWriter(writer)); helpFormatter.printFooter(); final BufferedReader reader = new BufferedReader(new StringReader(writer.toString())); assertEquals("|*Copyright 2003 *|", reader.readLine()); assertEquals("|*Apache Software Foundation
*|", reader.readLine()); assertEquals("+------------------------------------------------------------------------------+", reader.readLine()); assertNull(reader.readLine()); } public void testPrintDivider() throws IOException { final StringWriter writer = new StringWriter(); helpFormatter.setPrintWriter(new PrintWriter(writer)); helpFormatter.printDivider(); final BufferedReader reader = new BufferedReader(new StringReader(writer.toString())); assertEquals("+------------------------------------------------------------------------------+", reader.readLine()); assertNull(reader.readLine()); } public void testWrap() { final Iterator i = HelpFormatter.wrap("Apache Software Foundation", 30).iterator(); assertEquals("Apache Software Foundation", i.next()); assertFalse(i.hasNext()); } public void testWrap_Wr
apNeeded() { final Iterator i = HelpFormatter.wrap("Apache Software Foundation", 20).iterator(); assertEquals("Apache Software", i.next()); assertEquals("Foundation", i.next()); assertFalse(i.hasNext()); } public void testWrap_BeforeSpace() { final Iterator i = HelpFormatter.wrap("Apache Software Foundation", 16).iterator(); assertEquals("Apache Software", i.next()); assertEquals("Foundation", i.next()); assertFalse(i.hasNext()); } public void testWrap_AfterSpace() { final Iterator i = HelpFormatter.wrap("Apache Software Foundation", 17).iterator(); assertEquals("Apache Software", i.next()); assertEquals("Foundation", i.next()); assertFalse(i.hasNext()); } public void testWrap_InWord() { final Iterator i = HelpFormatter.wrap("Apache Software Foundation", 8).iterator(); assertEquals("Apache", i.next()); assertEquals("Software", i.next()); assertEqu
als("Foundati", i.next()); assertEquals("on", i.next()); assertFalse(i.hasNext()); } public void testWrap_NewLine() { final Iterator i = HelpFormatter.wrap("\nApache Software Foundation\n", 30).iterator(); assertEquals("", i.next()); assertEquals("Apache Software Foundation", i.next()); assertEquals("", i.next()); assertFalse(i.hasNext()); } public void testWrap_NewLine2() { List wrapped = HelpFormatter.wrap("A really quite long general description of the option with specific alternatives documented:\n" + " Indented special case\n" + " Alternative scenario", 30); final Iterator i = wrapped.iterator(); assertEquals("A really quite long general", i.next()); assertEquals("description of the option", i.next()); assertEquals("with specific alternatives", i.next()); assertEquals("documented:", i.next()); assertEquals(" Indented s
pecial case", i.next()); assertEquals(" Alternative scenario", i.next()); assertFalse(i.hasNext()); } public void testWrap_Below1Length() { try { HelpFormatter.wrap("Apache Software Foundation", -1); fail("IllegalArgumentException"); } catch (IllegalArgumentException e) { assertEquals(resources.getMessage(ResourceConstants.HELPFORMATTER_WIDTH_TOO_NARROW, new Object[] { new Integer(-1) }), e.getMessage()); } } public void testPad() throws IOException { final StringWriter writer = new StringWriter(); HelpFormatter.pad("hello", 10, new PrintWriter(writer)); assertEquals("hello ", writer.toString()); } public void testPad_Null() throws IOException { final StringWriter writer = new StringWriter(); HelpFormatter.pad(null, 10, new PrintWriter(writer)); assertEquals(" ", writer.toStrin
g()); } public void testPad_TooLong() throws IOException { final StringWriter writer = new StringWriter(); HelpFormatter.pad("hello world", 10, new PrintWriter(writer)); assertEquals("hello world", writer.toString()); } public void testPad_TooShort() throws IOException { final StringWriter writer = new StringWriter(); HelpFormatter.pad("hello world", -5, new PrintWriter(writer)); assertEquals("hello world", writer.toString()); } public void testGutters() throws IOException { helpFormatter = new HelpFormatter(null, null, null, 80); helpFormatter.setShellCommand("ant"); final Set lusage = new HashSet(); lusage.add(DisplaySetting.DISPLAY_ALIASES); lusage.add(DisplaySetting.DISPLAY_GROUP_NAME); helpFormatter.setLineUsageSettings(lusage); // test line usage assertEquals("incorrect line usage", lusage, helpFormatter.getLineUsageSettings());
final Set fusage = new HashSet(); fusage.add(DisplaySetting.DISPLAY_PARENT_CHILDREN); fusage.add(DisplaySetting.DISPLAY_GROUP_ARGUMENT); fusage.add(DisplaySetting.DISPLAY_GROUP_OUTER); fusage.add(DisplaySetting.DISPLAY_GROUP_EXPANDED); fusage.add(DisplaySetting.DISPLAY_ARGUMENT_BRACKETED); fusage.add(DisplaySetting.DISPLAY_ARGUMENT_NUMBERED); fusage.add(DisplaySetting.DISPLAY_SWITCH_ENABLED); fusage.add(DisplaySetting.DISPLAY_SWITCH_DISABLED); fusage.add(DisplaySetting.DISPLAY_PROPERTY_OPTION); fusage.add(DisplaySetting.DISPLAY_PARENT_CHILDREN); fusage.add(DisplaySetting.DISPLAY_PARENT_ARGUMENT); fusage.add(DisplaySetting.DISPLAY_OPTIONAL); helpFormatter.setFullUsageSettings(fusage); // test line usage assertEquals("incorrect full usage", fusage, helpFormatter.getFullUsageSettings()); final Set dsettings = new HashSet(); dsettings.add(DisplaySetting.DISPLA
Y_GROUP_NAME); dsettings.add(DisplaySetting.DISPLAY_GROUP_EXPANDED); dsettings.add(DisplaySetting.DISPLAY_GROUP_ARGUMENT); helpFormatter.setDisplaySettings(dsettings); verbose = new DefaultOptionBuilder().withLongName("verbose") .withDescription("print the version information and exit") .create(); options = new GroupBuilder().withName("options").withOption(DefaultOptionTest.buildHelpOption()) .withOption(ArgumentTest.buildTargetsArgument()) .withOption(new DefaultOptionBuilder().withLongName("diagnostics") .withDescription("print information that might be helpful to diagnose or report problems.") .create()) .withOption(new Defaul
tOptionBuilder().withLongName("projecthelp") .withDescription("print project help information") .create()).withOption(verbose) .create(); helpFormatter.setGroup(options); // test default gutters assertEquals("incorrect left gutter", HelpFormatter.DEFAULT_GUTTER_LEFT, helpFormatter.getGutterLeft()); assertEquals("incorrect right gutter", HelpFormatter.DEFAULT_GUTTER_RIGHT, helpFormatter.getGutterRight()); assertEquals("incorrect center gutter", HelpFormatter.DEFAULT_GUTTER_CENTER, helpFormatter.getGutterCenter()); final StringWriter writer = new StringWriter(); helpFormatter.setPrintWriter(new PrintWriter(writer)); helpFormatter.print(); final BufferedReader reader = new BufferedReader(new Strin
gReader(writer.toString())); assertEquals("Usage: ", reader.readLine()); assertEquals("ant [--help --diagnostics --projecthelp --verbose] [<target1> [<target2> ...]] ", reader.readLine()); assertEquals("options ", reader.readLine()); assertEquals(" --help (-?,-h) Displays the help ", reader.readLine()); assertEquals(" --diagnostics print information that might be helpful to diagnose or ", reader.readLine()); assertEquals(" report problems. ", reader.readLine()); assertEquals(" --projecthelp print project help information
", reader.readLine()); assertEquals(" --verbose print the version information and exit ", reader.readLine()); assertEquals(" target [target ...] The targets ant should build ", reader.readLine()); assertNull(reader.readLine()); }}class OptionComparator implements Comparator { public int compare(Object o1, Object o2) { Option opt1 = (Option) o1; Option opt2 = (Option) o2; return -opt1.getPreferredName().compareTo(opt2.getPreferredName()); }}
\ No newline at end of file
Modified: commons/proper/cli/trunk/src/test/org/apache/commons/cli2/validation/ClassValidatorTest.java
URL: http://svn.apache.org/viewvc/commons/proper/cli/trunk/src/test/org/apache/commons/cli2/validation/ClassValidatorTest.java?rev=639941&r1=639940&r2=639941&view=diff
==============================================================================
--- commons/proper/cli/trunk/src/test/org/apache/commons/cli2/validation/ClassValidatorTest.java (original)
+++ commons/proper/cli/trunk/src/test/org/apache/commons/cli2/validation/ClassValidatorTest.java Fri Mar 21 19:49:41 2008
@@ -1,248 +1 @@
-/*
- * 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.cli2.validation;
-
-import java.net.URL;
-import java.net.URLClassLoader;
-import java.util.Arrays;
-import java.util.Iterator;
-import java.util.List;
-
-import junit.framework.TestCase;
-
-import org.apache.commons.cli2.resource.ResourceHelper;
-
-public class ClassValidatorTest extends TestCase {
-
- private final static ResourceHelper resources =
- ResourceHelper.getResourceHelper();
-
- private ClassValidator validator;
-
- protected void setUp() {
- validator = new ClassValidator();
- }
-
- public void testValidName() throws InvalidArgumentException {
- final Object[] array = new Object[] { "MyApp", "org.apache.ant.Main" };
- final List list = Arrays.asList(array);
-
- validator.validate(list);
-
- assertEquals("Name is incorrect", "MyApp", list.get(0));
- assertEquals("Name is incorrect", "org.apache.ant.Main", list.get(1));
- }
-
- public void testNameBadStart() {
- final String className = "1stClass";
- final Object[] array = new Object[] { className };
- final List list = Arrays.asList(array);
-
- try {
- validator.validate(list);
- fail("Class name cannot start with a number.");
- } catch (InvalidArgumentException ive) {
- assertEquals(
- resources.getMessage(
- "ClassValidator.bad.classname",
- className),
- ive.getMessage());
- }
- }
-
- public void testNameBadEnd() {
- final String className = "My.Class.";
-
- final Object[] array = new Object[] { className };
- final List list = Arrays.asList(array);
-
- try {
- validator.validate(list);
- fail("Trailing period not permitted.");
- } catch (InvalidArgumentException ive) {
- assertEquals(
- resources.getMessage(
- "ClassValidator.bad.classname",
- className),
- ive.getMessage());
- }
- }
-
- public void testNameBadMiddle() {
- final String className = "My..Class";
-
- final Object[] array = new Object[] { className };
- final List list = Arrays.asList(array);
-
- try {
- validator.validate(list);
- fail("Two consecutive periods is not permitted.");
- } catch (InvalidArgumentException ive) {
- assertEquals(
- resources.getMessage(
- "ClassValidator.bad.classname",
- className),
- ive.getMessage());
- }
- }
-
- public void testIllegalNameChar() {
- final String className = "My?Class";
-
- final Object[] array = new Object[] { className };
- final List list = Arrays.asList(array);
-
- try {
- validator.validate(list);
- fail("Illegal character not allowed in Class name.");
- } catch (InvalidArgumentException ive) {
- assertEquals(
- resources.getMessage(
- "ClassValidator.bad.classname",
- className),
- ive.getMessage());
- }
- }
-
- public void testLoadable() {
- assertFalse("Validator is loadable", validator.isLoadable());
- validator.setLoadable(true);
- assertTrue("Validator is NOT loadable", validator.isLoadable());
- validator.setLoadable(false);
- assertFalse("Validator is loadable", validator.isLoadable());
- }
-
- public void testLoadValid() throws InvalidArgumentException {
- final Object[] array =
- new Object[] {
- "org.apache.commons.cli2.Option",
- "java.util.Vector" };
- final List list = Arrays.asList(array);
-
- validator.setLoadable(true);
- validator.validate(list);
-
- final Iterator i = list.iterator();
- assertEquals(
- "org.apache.commons.cli2.Option",
- ((Class) i.next()).getName());
- assertEquals("java.util.Vector", ((Class) i.next()).getName());
- assertFalse(i.hasNext());
- }
-
- public void testLoadInvalid() {
- final String className = "org.apache.commons.cli2.NonOption";
-
- final Object[] array = new Object[] { className, "java.util.Vectors" };
- final List list = Arrays.asList(array);
-
- validator.setLoadable(true);
-
- try {
- validator.validate(list);
- fail("Class Not Found");
- } catch (InvalidArgumentException ive) {
- assertEquals(
- resources.getMessage(
- "ClassValidator.class.notfound",
- className),
- ive.getMessage());
- }
- }
-
- public void testInstantiate() {
- assertFalse("Validator creates instances", validator.isInstance());
- validator.setInstance(true);
- assertTrue(
- "Validator does NOT create instances",
- validator.isInstance());
- validator.setInstance(false);
- assertFalse("Validator creates instances", validator.isInstance());
- }
-
- public void testCreateClassInstance() throws InvalidArgumentException {
- final Object[] array = new Object[] { "java.util.Vector" };
- final List list = Arrays.asList(array);
-
- validator.setInstance(true);
-
- validator.validate(list);
- assertTrue(
- "Vector instance NOT found",
- list.get(0) instanceof java.util.Vector);
- }
-
- public void testCreateInterfaceInstance() {
- final String className = "java.util.Map";
- final Object[] array = new Object[] { className };
- final List list = Arrays.asList(array);
-
- validator.setInstance(true);
-
- try {
- validator.validate(list);
- fail("It's not possible to create a '" + className + "'");
- }
- catch (final InvalidArgumentException ive) {
- assertEquals(
- resources.getMessage(
- "ClassValidator.class.create",
- className),
- ive.getMessage());
- }
- }
-
- public void testCreateProtectedInstance() {
- final String className = "org.apache.commons.cli2.validation.protect.ProtectedClass";
- final Object[] array = new Object[] { className };
- final List list = Arrays.asList(array);
-
- validator.setInstance(true);
-
- try {
- validator.validate(list);
- fail("It's not possible to create a '" + className + "'");
- }
- catch (final InvalidArgumentException ive) {
- assertEquals(
- resources.getMessage(
- "ClassValidator.class.access",
- className,
- "Class org.apache.commons.cli2.validation.ClassValidator " +
- "can not access a member of class " +
- "org.apache.commons.cli2.validation.protect.ProtectedClass " +
- "with modifiers \"protected\""),
- ive.getMessage());
- }
- }
-
- public void testClassloader() {
- assertEquals(
- "Wrong classloader found",
- validator.getClass().getClassLoader(),
- validator.getClassLoader());
-
- URLClassLoader classloader = new URLClassLoader(new URL[] {
- });
- validator.setClassLoader(classloader);
-
- assertEquals(
- "Wrong classloader found",
- classloader,
- validator.getClassLoader());
- }
-}
+/* * 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.cli2.validation;import java.net.URL;import java.net.URLClassLoader;import java.util.Arrays;import java.util.Iterator;import java.util.List;import junit.framework.TestCase;impor
t org.apache.commons.cli2.resource.ResourceHelper;public class ClassValidatorTest extends TestCase { private final static ResourceHelper resources = ResourceHelper.getResourceHelper(); private ClassValidator validator; protected void setUp() { validator = new ClassValidator(); } public void testValidName() throws InvalidArgumentException { final Object[] array = new Object[] { "MyApp", "org.apache.ant.Main" }; final List list = Arrays.asList(array); validator.validate(list); assertEquals("Name is incorrect", "MyApp", list.get(0)); assertEquals("Name is incorrect", "org.apache.ant.Main", list.get(1)); } public void testNameBadStart() { final String className = "1stClass"; final Object[] array = new Object[] { className }; final List list = Arrays.asList(array); try { validator.validate(list); fail("Class name cannot start with a number."); } catch (In
validArgumentException ive) { assertEquals( resources.getMessage( "ClassValidator.bad.classname", className), ive.getMessage()); } } public void testNameBadEnd() { final String className = "My.Class."; final Object[] array = new Object[] { className }; final List list = Arrays.asList(array); try { validator.validate(list); fail("Trailing period not permitted."); } catch (InvalidArgumentException ive) { assertEquals( resources.getMessage( "ClassValidator.bad.classname", className), ive.getMessage()); } } public void testNameBadMiddle() { final String className = "My..Class"; final Object[] array = new Object[] { className }; final List list = Arrays.asList(array); try { validator.validate(list);
fail("Two consecutive periods is not permitted."); } catch (InvalidArgumentException ive) { assertEquals( resources.getMessage( "ClassValidator.bad.classname", className), ive.getMessage()); } } public void testIllegalNameChar() { final String className = "My?Class"; final Object[] array = new Object[] { className }; final List list = Arrays.asList(array); try { validator.validate(list); fail("Illegal character not allowed in Class name."); } catch (InvalidArgumentException ive) { assertEquals( resources.getMessage( "ClassValidator.bad.classname", className), ive.getMessage()); } } public void testLoadable() { assertFalse("Validator is loadable", validator.isLoadable()); validator.setLoadable(true); asser
tTrue("Validator is NOT loadable", validator.isLoadable()); validator.setLoadable(false); assertFalse("Validator is loadable", validator.isLoadable()); } public void testLoadValid() throws InvalidArgumentException { final Object[] array = new Object[] { "org.apache.commons.cli2.Option", "java.util.Vector" }; final List list = Arrays.asList(array); validator.setLoadable(true); validator.validate(list); final Iterator i = list.iterator(); assertEquals( "org.apache.commons.cli2.Option", ((Class) i.next()).getName()); assertEquals("java.util.Vector", ((Class) i.next()).getName()); assertFalse(i.hasNext()); } public void testLoadInvalid() { final String className = "org.apache.commons.cli2.NonOption"; final Object[] array = new Object[] { className, "java.util.Vectors" }; final List list = Arrays.asList(array);
validator.setLoadable(true); try { validator.validate(list); fail("Class Not Found"); } catch (InvalidArgumentException ive) { assertEquals( resources.getMessage( "ClassValidator.class.notfound", className), ive.getMessage()); } } public void testInstantiate() { assertFalse("Validator creates instances", validator.isInstance()); validator.setInstance(true); assertTrue( "Validator does NOT create instances", validator.isInstance()); validator.setInstance(false); assertFalse("Validator creates instances", validator.isInstance()); } public void testCreateClassInstance() throws InvalidArgumentException { final Object[] array = new Object[] { "java.util.Vector" }; final List list = Arrays.asList(array); validator.setInstance(true); validator.validate(list);
assertTrue( "Vector instance NOT found", list.get(0) instanceof java.util.Vector); } public void testCreateInterfaceInstance() { final String className = "java.util.Map"; final Object[] array = new Object[] { className }; final List list = Arrays.asList(array); validator.setInstance(true); try { validator.validate(list); fail("It's not possible to create a '" + className + "'"); } catch (final InvalidArgumentException ive) { assertEquals( resources.getMessage( "ClassValidator.class.create", className), ive.getMessage()); } } public void testCreateProtectedInstance() { final String className = "org.apache.commons.cli2.validation.protect.ProtectedClass"; final Object[] array = new Object[] { className }; final List list = Arrays.asList
(array); validator.setInstance(true); try { validator.validate(list); fail("It's not possible to create a '" + className + "'"); } catch (final InvalidArgumentException ive) { assertEquals( resources.getMessage( "ClassValidator.class.access", className, "Class org.apache.commons.cli2.validation.ClassValidator " + "can not access a member of class " + "org.apache.commons.cli2.validation.protect.ProtectedClass " + "with modifiers \"protected\""), ive.getMessage()); } } public void testClassloader() { assertEquals( "Wrong classloader found", validator.getClass().getClassLoader(), validator.getClassLoader()); URLClassLoader classloader = new URLClassLoader
(new URL[] { }); validator.setClassLoader(classloader); assertEquals( "Wrong classloader found", classloader, validator.getClassLoader()); }}
\ No newline at end of file