Return-Path: Delivered-To: apmail-commons-commits-archive@locus.apache.org Received: (qmail 13168 invoked from network); 22 Mar 2008 02:51:19 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 22 Mar 2008 02:51:19 -0000 Received: (qmail 48836 invoked by uid 500); 22 Mar 2008 02:51:04 -0000 Delivered-To: apmail-commons-commits-archive@commons.apache.org Received: (qmail 48781 invoked by uid 500); 22 Mar 2008 02:51:04 -0000 Mailing-List: contact commits-help@commons.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@commons.apache.org Delivered-To: mailing list commits@commons.apache.org Received: (qmail 48768 invoked by uid 99); 22 Mar 2008 02:51:04 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 21 Mar 2008 19:51:04 -0700 X-ASF-Spam-Status: No, hits=-2000.0 required=10.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.3] (HELO eris.apache.org) (140.211.11.3) by apache.org (qpsmtpd/0.29) with ESMTP; Sat, 22 Mar 2008 02:50:32 +0000 Received: by eris.apache.org (Postfix, from userid 65534) id D850D1A9878; Fri, 21 Mar 2008 19:49:58 -0700 (PDT) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: 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... Date: Sat, 22 Mar 2008 02:49:46 -0000 To: commits@commons.apache.org From: bayard@apache.org X-Mailer: svnmailer-1.0.8 Message-Id: <20080322024958.D850D1A9878@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org 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] [ [ *|", - 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] [ [ *|", - 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("", 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] [ [ *|", - 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] [ [ ...]] ", - 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] [ [ *|", 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] [ [ *|", 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("", 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] [ [ *|", 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] [ [ ...]] ", 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