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 04:08:35 UTC
svn commit: r639943 [14/17] - in /commons/proper/cli/trunk/src:
java/org/apache/commons/cli2/ java/org/apache/commons/cli2/builder/
java/org/apache/commons/cli2/commandline/
java/org/apache/commons/cli2/option/ java/org/apache/commons/cli2/resource/
ja...
Modified: commons/proper/cli/trunk/src/test/org/apache/commons/cli2/option/GroupTest.java
URL: http://svn.apache.org/viewvc/commons/proper/cli/trunk/src/test/org/apache/commons/cli2/option/GroupTest.java?rev=639943&r1=639942&r2=639943&view=diff
==============================================================================
--- commons/proper/cli/trunk/src/test/org/apache/commons/cli2/option/GroupTest.java (original)
+++ commons/proper/cli/trunk/src/test/org/apache/commons/cli2/option/GroupTest.java Fri Mar 21 20:08:23 2008
@@ -1 +1,440 @@
-/* * 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.option;import java.util.ArrayList;import java.util.HashSet;import java.util.Iterator;import java.util.List;import java.util.ListIterator;import java.util.Set;import org.ap
ache.commons.cli2.DisplaySetting;import org.apache.commons.cli2.Group;import org.apache.commons.cli2.HelpLine;import org.apache.commons.cli2.Option;import org.apache.commons.cli2.OptionException;import org.apache.commons.cli2.WriteableCommandLine;import org.apache.commons.cli2.builder.DefaultOptionBuilder;import org.apache.commons.cli2.builder.GroupBuilder;import org.apache.commons.cli2.commandline.WriteableCommandLineImpl;/** * @author Rob Oxspring */public class GroupTest extends GroupTestCase { public static final Command COMMAND_START = new Command("start", "Starts the server", null, false, null, null, 0); public static final Command COMMAND_STOP = new Command("stop", "Stops the server", null, false, null, null, 0); public static final Command COMMAND_RESTART = new Command("restart", "Stops and starts the server", null, false, null, null, 0); public static final Command COMMAND_GRACEFUL = new Command("graceful", "Restarts the se
rver without interruption", null, false, null, null, 0); public static Group buildApacheCommandGroup() { final List options = new ArrayList(); options.add(COMMAND_GRACEFUL); options.add(COMMAND_RESTART); options.add(COMMAND_START); options.add(COMMAND_STOP); return new GroupImpl(options, "httpd-cmds", "The command to pass to the server", 1, 1); } public static Group buildApachectlGroup() { final List options = new ArrayList(); options.add(DefaultOptionTest.buildHelpOption()); options.add(ParentTest.buildKParent()); return new GroupImpl(options, "apachectl", "Controls the apache http deamon", 0, Integer.MAX_VALUE); } public static Group buildAntGroup() { final List options = new ArrayList(); options.add(DefaultOptionTest.buildHelpOption()); options.add(ArgumentTest.buildTargetsArgument()); return new GroupImpl(options,
"ant", "The options for ant", 0, Integer.MAX_VALUE); } /* * (non-Javadoc) * * @see org.apache.commons.cli2.GroupTestCase#testProcessAnonymousArguments() */ public void testProcessAnonymousArguments() throws OptionException { final Group option = buildAntGroup(); final List args = list("compile,test", "dist"); final ListIterator iterator = args.listIterator(); final WriteableCommandLine commandLine = commandLine(option, args); option.process(commandLine, iterator); assertFalse(iterator.hasNext()); assertTrue(commandLine.hasOption("target")); assertListContentsEqual(commandLine.getValues("target"), args); assertListContentsEqual(list("compile", "test", "dist"), args); } /* * (non-Javadoc) * * @see org.apache.commons.cli2.GroupTestCase#testProcessOptions() */ public void testProcessOptions() throws OptionException { final Group option = buildApa
chectlGroup(); final List args = list("-?", "-k"); final ListIterator iterator = args.listIterator(); final WriteableCommandLine commandLine = commandLine(option, args); option.process(commandLine, iterator); assertFalse(iterator.hasNext()); assertTrue(commandLine.hasOption("--help")); assertTrue(commandLine.hasOption("-k")); assertFalse(commandLine.hasOption("start")); assertListContentsEqual(list("--help", "-k"), args); } /* * (non-Javadoc) * * @see org.apache.commons.cli2.OptionTestCase#testCanProcess() */ public void testCanProcess() { final Group option = buildApacheCommandGroup(); assertTrue(option.canProcess(new WriteableCommandLineImpl(option, null), "start")); } public void testCanProcess_BadMatch() { final Group option = buildApacheCommandGroup(); assertFalse(option.canProcess(new WriteableCommandLineImpl(option, null), "begin")); } public
void testCanProcess_NullMatch() { final Group option = buildApacheCommandGroup(); assertFalse(option.canProcess(new WriteableCommandLineImpl(option, null), (String) null)); } /* * (non-Javadoc) * * @see org.apache.commons.cli2.OptionTestCase#testPrefixes() */ public void testPrefixes() { final Group option = buildApachectlGroup(); assertContentsEqual(list("-", "--"), option.getPrefixes()); } /* * (non-Javadoc) * * @see org.apache.commons.cli2.OptionTestCase#testProcess() */ public void testProcess() throws OptionException { final Group option = buildAntGroup(); final List args = list("--help", "compile,test", "dist"); final ListIterator iterator = args.listIterator(); final WriteableCommandLine commandLine = commandLine(option, args); option.process(commandLine, iterator); assertFalse(iterator.hasNext()); assertTrue(commandLine.hasOption("-?"
)); assertListContentsEqual(list("compile", "test", "dist"), commandLine.getValues("target")); } public void testProcess_Nested() throws OptionException { final Group option = buildApachectlGroup(); final List args = list("-h", "-k", "graceful"); final ListIterator iterator = args.listIterator(); final WriteableCommandLine commandLine = commandLine(option, args); option.process(commandLine, iterator); assertFalse(iterator.hasNext()); assertTrue(commandLine.hasOption("-?")); assertTrue(commandLine.hasOption("-k")); assertTrue(commandLine.hasOption("graceful")); assertFalse(commandLine.hasOption("stop")); assertTrue(commandLine.getValues("start").isEmpty()); assertListContentsEqual(list("--help", "-k", "graceful"), args); } /* * (non-Javadoc) * * @see org.apache.commons.cli2.OptionTestCase#testTriggers() */ public void testTriggers() { final G
roup option = buildApachectlGroup(); assertContentsEqual(list("--help", "-?", "-h", "-k"), option.getTriggers()); } /* * (non-Javadoc) * * @see org.apache.commons.cli2.OptionTestCase#testValidate() */ public void testValidate() throws OptionException { final Group option = buildApacheCommandGroup(); final WriteableCommandLine commandLine = commandLine(option, list()); commandLine.addOption(COMMAND_RESTART); option.validate(commandLine); } public void testValidate_UnexpectedOption() { final Group option = buildApacheCommandGroup(); final WriteableCommandLine commandLine = commandLine(option, list()); commandLine.addOption(COMMAND_RESTART); commandLine.addOption(COMMAND_GRACEFUL); try { option.validate(commandLine); fail("Too many options"); } catch (OptionException uoe) { assertEquals(option, uoe.getOption()); } } pub
lic void testValidate_MissingOption() { final Group option = buildApacheCommandGroup(); final WriteableCommandLine commandLine = commandLine(option, list()); try { option.validate(commandLine); fail("Missing an option"); } catch (OptionException moe) { assertEquals(option, moe.getOption()); } } public void testValidate_RequiredChild() throws OptionException { final Option required = new DefaultOptionBuilder().withLongName("required").withRequired(true).create(); final Option optional = new DefaultOptionBuilder().withLongName("optional").withRequired(false).create(); final Group group = new GroupBuilder().withOption(required).withOption(optional).withMinimum(1).create(); WriteableCommandLine commandLine; commandLine = commandLine(group, list()); try { group.validate(commandLine); fail("Missing option
'required'"); } catch (OptionException moe) { assertEquals(required, moe.getOption()); } commandLine = commandLine(group, list()); commandLine.addOption(optional); try { group.validate(commandLine); fail("Missing option 'required'"); } catch (OptionException moe) { assertEquals(required, moe.getOption()); } commandLine = commandLine(group, list()); commandLine.addOption(required); group.validate(commandLine); } /* * (non-Javadoc) * * @see org.apache.commons.cli2.OptionTestCase#testAppendUsage() */ public void testAppendUsage() { final Option option = buildApacheCommandGroup(); final StringBuffer buffer = new StringBuffer(); final Set settings = new HashSet(DisplaySetting.ALL); //settings.remove(DisplaySetting.DISPLAY_ARGUMENT_NUMBERED); option.appendUsage(buffer, settings, null); assertEquals("htt
pd-cmds (graceful|restart|start|stop)", buffer.toString()); } public void testAppendUsage_NoOptional() { final Option option = buildApacheCommandGroup(); final StringBuffer buffer = new StringBuffer(); final Set settings = new HashSet(DisplaySetting.ALL); settings.remove(DisplaySetting.DISPLAY_OPTIONAL); option.appendUsage(buffer, settings, null); assertEquals("httpd-cmds (graceful|restart|start|stop)", buffer.toString()); } public void testAppendUsage_NoExpand() { final Option option = buildApacheCommandGroup(); final StringBuffer buffer = new StringBuffer(); final Set settings = new HashSet(DisplaySetting.ALL); settings.remove(DisplaySetting.DISPLAY_GROUP_EXPANDED); option.appendUsage(buffer, settings, null); assertEquals("httpd-cmds", buffer.toString()); } public void testAppendUsage_NoExpandOrName() { final Option option = buildApacheCommandGroup(); final S
tringBuffer buffer = new StringBuffer(); final Set settings = new HashSet(DisplaySetting.ALL); settings.remove(DisplaySetting.DISPLAY_GROUP_EXPANDED); settings.remove(DisplaySetting.DISPLAY_GROUP_NAME); option.appendUsage(buffer, settings, null); assertEquals("httpd-cmds", buffer.toString()); } public void testAppendUsage_NoName() { final Option option = buildApacheCommandGroup(); final StringBuffer buffer = new StringBuffer(); final Set settings = new HashSet(DisplaySetting.ALL); settings.remove(DisplaySetting.DISPLAY_GROUP_NAME); option.appendUsage(buffer, settings, null); assertEquals("graceful|restart|start|stop", buffer.toString()); } public void testAppendUsage_WithArgs() { final Option option = buildAntGroup(); final StringBuffer buffer = new StringBuffer(); final Set settings = new HashSet(DisplaySetting.ALL); settings.remove(DisplaySetting.DISPLAY_GRO
UP_OUTER); option.appendUsage(buffer, settings, null); assertEquals("[ant (--help (-?,-h)) [<target1> [<target2> ...]]]", buffer.toString()); } /* * (non-Javadoc) * * @see org.apache.commons.cli2.OptionTestCase#testGetPreferredName() */ public void testGetPreferredName() { final Option option = buildAntGroup(); assertEquals("ant", option.getPreferredName()); } /* * (non-Javadoc) * * @see org.apache.commons.cli2.OptionTestCase#testGetDescription() */ public void testGetDescription() { final Option option = buildApachectlGroup(); assertEquals("Controls the apache http deamon", option.getDescription()); } /* * (non-Javadoc) * * @see org.apache.commons.cli2.OptionTestCase#testHelpLines() */ public void testHelpLines() { final Option option = buildApacheCommandGroup(); final List lines = option.helpLines(0, DisplaySetting.ALL, null); final Iter
ator i = lines.iterator(); final HelpLine line1 = (HelpLine) i.next(); assertEquals(0, line1.getIndent()); assertEquals(option, line1.getOption()); final HelpLine line2 = (HelpLine) i.next(); assertEquals(1, line2.getIndent()); assertEquals(COMMAND_GRACEFUL, line2.getOption()); final HelpLine line3 = (HelpLine) i.next(); assertEquals(1, line3.getIndent()); assertEquals(COMMAND_RESTART, line3.getOption()); final HelpLine line4 = (HelpLine) i.next(); assertEquals(1, line4.getIndent()); assertEquals(COMMAND_START, line4.getOption()); final HelpLine line5 = (HelpLine) i.next(); assertEquals(1, line5.getIndent()); assertEquals(COMMAND_STOP, line5.getOption()); assertFalse(i.hasNext()); } /* * (non-Javadoc) * * @see org.apache.commons.cli2.OptionTestCase#testHelpLines() */ public void testHelpLines_NoExpanded() { final Option option = buil
dApacheCommandGroup(); final Set settings = new HashSet(DisplaySetting.ALL); settings.remove(DisplaySetting.DISPLAY_GROUP_EXPANDED); final List lines = option.helpLines(0, settings, null); final Iterator i = lines.iterator(); final HelpLine line1 = (HelpLine) i.next(); assertEquals(0, line1.getIndent()); assertEquals(option, line1.getOption()); assertFalse(i.hasNext()); } /* * (non-Javadoc) * * @see org.apache.commons.cli2.OptionTestCase#testHelpLines() */ public void testHelpLines_NoName() { final Option option = buildApacheCommandGroup(); final Set settings = new HashSet(DisplaySetting.ALL); settings.remove(DisplaySetting.DISPLAY_GROUP_NAME); final List lines = option.helpLines(0, settings, null); final Iterator i = lines.iterator(); final HelpLine line2 = (HelpLine) i.next(); assertEquals(1, line2.getIndent()); assertEquals(COMMAND_GRACE
FUL, line2.getOption()); final HelpLine line3 = (HelpLine) i.next(); assertEquals(1, line3.getIndent()); assertEquals(COMMAND_RESTART, line3.getOption()); final HelpLine line4 = (HelpLine) i.next(); assertEquals(1, line4.getIndent()); assertEquals(COMMAND_START, line4.getOption()); final HelpLine line5 = (HelpLine) i.next(); assertEquals(1, line5.getIndent()); assertEquals(COMMAND_STOP, line5.getOption()); assertFalse(i.hasNext()); }}
\ No newline at end of file
+/*
+ * 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.option;
+
+import java.util.ArrayList;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.List;
+import java.util.ListIterator;
+import java.util.Set;
+
+import org.apache.commons.cli2.DisplaySetting;
+import org.apache.commons.cli2.Group;
+import org.apache.commons.cli2.HelpLine;
+import org.apache.commons.cli2.Option;
+import org.apache.commons.cli2.OptionException;
+import org.apache.commons.cli2.WriteableCommandLine;
+import org.apache.commons.cli2.builder.DefaultOptionBuilder;
+import org.apache.commons.cli2.builder.GroupBuilder;
+import org.apache.commons.cli2.commandline.WriteableCommandLineImpl;
+
+/**
+ * @author Rob Oxspring
+ */
+public class GroupTest
+ extends GroupTestCase {
+ public static final Command COMMAND_START =
+ new Command("start", "Starts the server", null, false, null, null, 0);
+ public static final Command COMMAND_STOP =
+ new Command("stop", "Stops the server", null, false, null, null, 0);
+ public static final Command COMMAND_RESTART =
+ new Command("restart", "Stops and starts the server", null, false, null, null, 0);
+ public static final Command COMMAND_GRACEFUL =
+ new Command("graceful", "Restarts the server without interruption", null, false, null,
+ null, 0);
+
+ public static Group buildApacheCommandGroup() {
+ final List options = new ArrayList();
+ options.add(COMMAND_GRACEFUL);
+ options.add(COMMAND_RESTART);
+ options.add(COMMAND_START);
+ options.add(COMMAND_STOP);
+
+ return new GroupImpl(options, "httpd-cmds", "The command to pass to the server", 1, 1);
+ }
+
+ public static Group buildApachectlGroup() {
+ final List options = new ArrayList();
+ options.add(DefaultOptionTest.buildHelpOption());
+ options.add(ParentTest.buildKParent());
+
+ return new GroupImpl(options, "apachectl", "Controls the apache http deamon", 0,
+ Integer.MAX_VALUE);
+ }
+
+ public static Group buildAntGroup() {
+ final List options = new ArrayList();
+ options.add(DefaultOptionTest.buildHelpOption());
+ options.add(ArgumentTest.buildTargetsArgument());
+
+ return new GroupImpl(options, "ant", "The options for ant", 0, Integer.MAX_VALUE);
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.apache.commons.cli2.GroupTestCase#testProcessAnonymousArguments()
+ */
+ public void testProcessAnonymousArguments()
+ throws OptionException {
+ final Group option = buildAntGroup();
+ final List args = list("compile,test", "dist");
+ final ListIterator iterator = args.listIterator();
+ final WriteableCommandLine commandLine = commandLine(option, args);
+ option.process(commandLine, iterator);
+
+ assertFalse(iterator.hasNext());
+ assertTrue(commandLine.hasOption("target"));
+ assertListContentsEqual(commandLine.getValues("target"), args);
+ assertListContentsEqual(list("compile", "test", "dist"), args);
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.apache.commons.cli2.GroupTestCase#testProcessOptions()
+ */
+ public void testProcessOptions()
+ throws OptionException {
+ final Group option = buildApachectlGroup();
+ final List args = list("-?", "-k");
+ final ListIterator iterator = args.listIterator();
+ final WriteableCommandLine commandLine = commandLine(option, args);
+ option.process(commandLine, iterator);
+
+ assertFalse(iterator.hasNext());
+ assertTrue(commandLine.hasOption("--help"));
+ assertTrue(commandLine.hasOption("-k"));
+ assertFalse(commandLine.hasOption("start"));
+ assertListContentsEqual(list("--help", "-k"), args);
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.apache.commons.cli2.OptionTestCase#testCanProcess()
+ */
+ public void testCanProcess() {
+ final Group option = buildApacheCommandGroup();
+ assertTrue(option.canProcess(new WriteableCommandLineImpl(option, null), "start"));
+ }
+
+ public void testCanProcess_BadMatch() {
+ final Group option = buildApacheCommandGroup();
+ assertFalse(option.canProcess(new WriteableCommandLineImpl(option, null), "begin"));
+ }
+
+ public void testCanProcess_NullMatch() {
+ final Group option = buildApacheCommandGroup();
+ assertFalse(option.canProcess(new WriteableCommandLineImpl(option, null), (String) null));
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.apache.commons.cli2.OptionTestCase#testPrefixes()
+ */
+ public void testPrefixes() {
+ final Group option = buildApachectlGroup();
+ assertContentsEqual(list("-", "--"), option.getPrefixes());
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.apache.commons.cli2.OptionTestCase#testProcess()
+ */
+ public void testProcess()
+ throws OptionException {
+ final Group option = buildAntGroup();
+ final List args = list("--help", "compile,test", "dist");
+ final ListIterator iterator = args.listIterator();
+ final WriteableCommandLine commandLine = commandLine(option, args);
+ option.process(commandLine, iterator);
+
+ assertFalse(iterator.hasNext());
+ assertTrue(commandLine.hasOption("-?"));
+ assertListContentsEqual(list("compile", "test", "dist"), commandLine.getValues("target"));
+ }
+
+ public void testProcess_Nested()
+ throws OptionException {
+ final Group option = buildApachectlGroup();
+ final List args = list("-h", "-k", "graceful");
+ final ListIterator iterator = args.listIterator();
+ final WriteableCommandLine commandLine = commandLine(option, args);
+ option.process(commandLine, iterator);
+
+ assertFalse(iterator.hasNext());
+ assertTrue(commandLine.hasOption("-?"));
+ assertTrue(commandLine.hasOption("-k"));
+ assertTrue(commandLine.hasOption("graceful"));
+ assertFalse(commandLine.hasOption("stop"));
+ assertTrue(commandLine.getValues("start").isEmpty());
+ assertListContentsEqual(list("--help", "-k", "graceful"), args);
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.apache.commons.cli2.OptionTestCase#testTriggers()
+ */
+ public void testTriggers() {
+ final Group option = buildApachectlGroup();
+ assertContentsEqual(list("--help", "-?", "-h", "-k"), option.getTriggers());
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.apache.commons.cli2.OptionTestCase#testValidate()
+ */
+ public void testValidate()
+ throws OptionException {
+ final Group option = buildApacheCommandGroup();
+ final WriteableCommandLine commandLine = commandLine(option, list());
+
+ commandLine.addOption(COMMAND_RESTART);
+
+ option.validate(commandLine);
+ }
+
+ public void testValidate_UnexpectedOption() {
+ final Group option = buildApacheCommandGroup();
+ final WriteableCommandLine commandLine = commandLine(option, list());
+
+ commandLine.addOption(COMMAND_RESTART);
+ commandLine.addOption(COMMAND_GRACEFUL);
+
+ try {
+ option.validate(commandLine);
+ fail("Too many options");
+ } catch (OptionException uoe) {
+ assertEquals(option, uoe.getOption());
+ }
+ }
+
+ public void testValidate_MissingOption() {
+ final Group option = buildApacheCommandGroup();
+ final WriteableCommandLine commandLine = commandLine(option, list());
+
+ try {
+ option.validate(commandLine);
+ fail("Missing an option");
+ } catch (OptionException moe) {
+ assertEquals(option, moe.getOption());
+ }
+ }
+
+ public void testValidate_RequiredChild()
+ throws OptionException {
+ final Option required =
+ new DefaultOptionBuilder().withLongName("required").withRequired(true).create();
+ final Option optional =
+ new DefaultOptionBuilder().withLongName("optional").withRequired(false).create();
+ final Group group =
+ new GroupBuilder().withOption(required).withOption(optional).withMinimum(1).create();
+
+ WriteableCommandLine commandLine;
+
+ commandLine = commandLine(group, list());
+
+ try {
+ group.validate(commandLine);
+ fail("Missing option 'required'");
+ } catch (OptionException moe) {
+ assertEquals(required, moe.getOption());
+ }
+
+ commandLine = commandLine(group, list());
+ commandLine.addOption(optional);
+
+ try {
+ group.validate(commandLine);
+ fail("Missing option 'required'");
+ } catch (OptionException moe) {
+ assertEquals(required, moe.getOption());
+ }
+
+ commandLine = commandLine(group, list());
+ commandLine.addOption(required);
+ group.validate(commandLine);
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.apache.commons.cli2.OptionTestCase#testAppendUsage()
+ */
+ public void testAppendUsage() {
+ final Option option = buildApacheCommandGroup();
+ final StringBuffer buffer = new StringBuffer();
+ final Set settings = new HashSet(DisplaySetting.ALL);
+
+ //settings.remove(DisplaySetting.DISPLAY_ARGUMENT_NUMBERED);
+ option.appendUsage(buffer, settings, null);
+
+ assertEquals("httpd-cmds (graceful|restart|start|stop)", buffer.toString());
+ }
+
+ public void testAppendUsage_NoOptional() {
+ final Option option = buildApacheCommandGroup();
+ final StringBuffer buffer = new StringBuffer();
+ final Set settings = new HashSet(DisplaySetting.ALL);
+ settings.remove(DisplaySetting.DISPLAY_OPTIONAL);
+ option.appendUsage(buffer, settings, null);
+
+ assertEquals("httpd-cmds (graceful|restart|start|stop)", buffer.toString());
+ }
+
+ public void testAppendUsage_NoExpand() {
+ final Option option = buildApacheCommandGroup();
+ final StringBuffer buffer = new StringBuffer();
+ final Set settings = new HashSet(DisplaySetting.ALL);
+ settings.remove(DisplaySetting.DISPLAY_GROUP_EXPANDED);
+ option.appendUsage(buffer, settings, null);
+
+ assertEquals("httpd-cmds", buffer.toString());
+ }
+
+ public void testAppendUsage_NoExpandOrName() {
+ final Option option = buildApacheCommandGroup();
+ final StringBuffer buffer = new StringBuffer();
+ final Set settings = new HashSet(DisplaySetting.ALL);
+ settings.remove(DisplaySetting.DISPLAY_GROUP_EXPANDED);
+ settings.remove(DisplaySetting.DISPLAY_GROUP_NAME);
+ option.appendUsage(buffer, settings, null);
+
+ assertEquals("httpd-cmds", buffer.toString());
+ }
+
+ public void testAppendUsage_NoName() {
+ final Option option = buildApacheCommandGroup();
+ final StringBuffer buffer = new StringBuffer();
+ final Set settings = new HashSet(DisplaySetting.ALL);
+ settings.remove(DisplaySetting.DISPLAY_GROUP_NAME);
+ option.appendUsage(buffer, settings, null);
+
+ assertEquals("graceful|restart|start|stop", buffer.toString());
+ }
+
+ public void testAppendUsage_WithArgs() {
+ final Option option = buildAntGroup();
+ final StringBuffer buffer = new StringBuffer();
+ final Set settings = new HashSet(DisplaySetting.ALL);
+ settings.remove(DisplaySetting.DISPLAY_GROUP_OUTER);
+ option.appendUsage(buffer, settings, null);
+
+ assertEquals("[ant (--help (-?,-h)) [<target1> [<target2> ...]]]", buffer.toString());
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.apache.commons.cli2.OptionTestCase#testGetPreferredName()
+ */
+ public void testGetPreferredName() {
+ final Option option = buildAntGroup();
+ assertEquals("ant", option.getPreferredName());
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.apache.commons.cli2.OptionTestCase#testGetDescription()
+ */
+ public void testGetDescription() {
+ final Option option = buildApachectlGroup();
+ assertEquals("Controls the apache http deamon", option.getDescription());
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.apache.commons.cli2.OptionTestCase#testHelpLines()
+ */
+ public void testHelpLines() {
+ final Option option = buildApacheCommandGroup();
+ final List lines = option.helpLines(0, DisplaySetting.ALL, null);
+ final Iterator i = lines.iterator();
+
+ final HelpLine line1 = (HelpLine) i.next();
+ assertEquals(0, line1.getIndent());
+ assertEquals(option, line1.getOption());
+
+ final HelpLine line2 = (HelpLine) i.next();
+ assertEquals(1, line2.getIndent());
+ assertEquals(COMMAND_GRACEFUL, line2.getOption());
+
+ final HelpLine line3 = (HelpLine) i.next();
+ assertEquals(1, line3.getIndent());
+ assertEquals(COMMAND_RESTART, line3.getOption());
+
+ final HelpLine line4 = (HelpLine) i.next();
+ assertEquals(1, line4.getIndent());
+ assertEquals(COMMAND_START, line4.getOption());
+
+ final HelpLine line5 = (HelpLine) i.next();
+ assertEquals(1, line5.getIndent());
+ assertEquals(COMMAND_STOP, line5.getOption());
+
+ assertFalse(i.hasNext());
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.apache.commons.cli2.OptionTestCase#testHelpLines()
+ */
+ public void testHelpLines_NoExpanded() {
+ final Option option = buildApacheCommandGroup();
+ final Set settings = new HashSet(DisplaySetting.ALL);
+ settings.remove(DisplaySetting.DISPLAY_GROUP_EXPANDED);
+
+ final List lines = option.helpLines(0, settings, null);
+ final Iterator i = lines.iterator();
+
+ final HelpLine line1 = (HelpLine) i.next();
+ assertEquals(0, line1.getIndent());
+ assertEquals(option, line1.getOption());
+
+ assertFalse(i.hasNext());
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.apache.commons.cli2.OptionTestCase#testHelpLines()
+ */
+ public void testHelpLines_NoName() {
+ final Option option = buildApacheCommandGroup();
+ final Set settings = new HashSet(DisplaySetting.ALL);
+ settings.remove(DisplaySetting.DISPLAY_GROUP_NAME);
+
+ final List lines = option.helpLines(0, settings, null);
+ final Iterator i = lines.iterator();
+
+ final HelpLine line2 = (HelpLine) i.next();
+ assertEquals(1, line2.getIndent());
+ assertEquals(COMMAND_GRACEFUL, line2.getOption());
+
+ final HelpLine line3 = (HelpLine) i.next();
+ assertEquals(1, line3.getIndent());
+ assertEquals(COMMAND_RESTART, line3.getOption());
+
+ final HelpLine line4 = (HelpLine) i.next();
+ assertEquals(1, line4.getIndent());
+ assertEquals(COMMAND_START, line4.getOption());
+
+ final HelpLine line5 = (HelpLine) i.next();
+ assertEquals(1, line5.getIndent());
+ assertEquals(COMMAND_STOP, line5.getOption());
+
+ assertFalse(i.hasNext());
+ }
+}
Modified: commons/proper/cli/trunk/src/test/org/apache/commons/cli2/option/GroupTestCase.java
URL: http://svn.apache.org/viewvc/commons/proper/cli/trunk/src/test/org/apache/commons/cli2/option/GroupTestCase.java?rev=639943&r1=639942&r2=639943&view=diff
==============================================================================
--- commons/proper/cli/trunk/src/test/org/apache/commons/cli2/option/GroupTestCase.java (original)
+++ commons/proper/cli/trunk/src/test/org/apache/commons/cli2/option/GroupTestCase.java Fri Mar 21 20:08:23 2008
@@ -1 +1,31 @@
-/* * 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.option;import org.apache.commons.cli2.OptionException;/** * @author Rob Oxspring */public abstract class GroupTestCase extends OptionTestCase { public abstract void
testProcessOptions() throws OptionException; public abstract void testProcessAnonymousArguments() throws OptionException;}
\ No newline at end of file
+/*
+ * 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.option;
+
+import org.apache.commons.cli2.OptionException;
+
+/**
+ * @author Rob Oxspring
+ */
+public abstract class GroupTestCase
+ extends OptionTestCase {
+ public abstract void testProcessOptions()
+ throws OptionException;
+
+ public abstract void testProcessAnonymousArguments()
+ throws OptionException;
+}
Modified: commons/proper/cli/trunk/src/test/org/apache/commons/cli2/option/NestedGroupTest.java
URL: http://svn.apache.org/viewvc/commons/proper/cli/trunk/src/test/org/apache/commons/cli2/option/NestedGroupTest.java?rev=639943&r1=639942&r2=639943&view=diff
==============================================================================
--- commons/proper/cli/trunk/src/test/org/apache/commons/cli2/option/NestedGroupTest.java (original)
+++ commons/proper/cli/trunk/src/test/org/apache/commons/cli2/option/NestedGroupTest.java Fri Mar 21 20:08:23 2008
@@ -1 +1,192 @@
-/** * 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.option;import org.apache.commons.cli2.CLITestCase;import org.apache.commons.cli2.CommandLine;import org.apache.commons.cli2.Group;import org.apache.commons.cli2.OptionExc
eption;import org.apache.commons.cli2.builder.ArgumentBuilder;import org.apache.commons.cli2.builder.DefaultOptionBuilder;import org.apache.commons.cli2.builder.GroupBuilder;import org.apache.commons.cli2.commandline.Parser;import org.apache.commons.cli2.util.HelpFormatter;import java.io.BufferedReader;import java.io.IOException;import java.io.PrintWriter;import java.io.StringReader;import java.io.StringWriter;import java.util.ArrayList;import java.util.List;/** * Test to exercise nested groups developed to demonstrate bug 32533 */public class NestedGroupTest extends CLITestCase { final static DefaultOptionBuilder obuilder = new DefaultOptionBuilder(); final static ArgumentBuilder abuilder = new ArgumentBuilder(); final static GroupBuilder gbuilder = new GroupBuilder(); static Group buildActionGroup() { return gbuilder.withName("Action").withDescription("Action") .withMinimum(1).withMaximum(1) .withOption(obuilde
r.withId(5).withShortName("e") .withLongName("encrypt") .withDescription("Encrypt input") .create()) .withOption(obuilder.withId(6).withShortName("d") .withLongName("decrypt") .withDescription("Decrypt input") .create()).create(); } static Group buildAlgorithmGroup() { return gbuilder.withName("Algorithm") .withDescription("Encryption Algorithm").withMaximum(1) .withOption(obuilder.withId(0).withShortName("b") .withLongName("blowfish") .withDescription("Blowfish").create()) .withOption(obuilder.withId(1).withShortName("3")
.withLongName("3DES") .withDescription("Triple DES") .create()).create(); } static Group buildInputGroup() { return gbuilder.withName("Input").withDescription("Input").withMinimum(1) .withMaximum(1) .withOption(obuilder.withId(2).withShortName("f") .withLongName("file") .withDescription("Input file") .withArgument(abuilder.withName( "file").withMinimum(1).withMaximum(1).create()).create()) .withOption(obuilder.withId(3).withShortName("s") .withLongName("string") .withDescription("Input string") .withArgument(abuilder.withName(
"string").withMinimum(1).withMaximum(1).create()).create()) .create(); } static Group buildEncryptionServiceGroup(Group[] nestedGroups) { gbuilder.withName("encryptionService") .withOption(obuilder.withId(4).withShortName("h") .withLongName("help") .withDescription("Print this message") .create()).withOption(obuilder.withShortName( "k").withLongName("key").withDescription("Encryption key") .create()); for (int i = 0; i < nestedGroups.length; i++) { gbuilder.withOption(nestedGroups[i]); } return gbuilder.create(); } public void testNestedGroup() throws OptionException { final String[] args = { "-eb", "--file", "/tmp/filename.txt"
}; Group[] nestedGroups = { buildActionGroup(), buildAlgorithmGroup(), buildInputGroup() }; Parser parser = new Parser(); parser.setGroup(buildEncryptionServiceGroup(nestedGroups)); CommandLine commandLine = parser.parse(args); assertTrue("/tmp/filename.txt".equals(commandLine.getValue("-f"))); assertTrue(commandLine.hasOption("-e")); assertTrue(commandLine.hasOption("-b")); assertFalse(commandLine.hasOption("-d")); } public void testNestedGroupHelp() { Group[] nestedGroups = { buildActionGroup(), buildAlgorithmGroup(), buildInputGroup() }; HelpFormatter helpFormatter = new HelpFormatter(); helpFormatter.setGroup(buildEncryptionServiceGroup(nestedGroups)); final StringWriter out = new StringWriter(); helpFormatter.setPrintWriter(new PrintWriter(out)); try
{ helpFormatter.print(); final BufferedReader bufferedReader = new BufferedReader(new StringReader( out.toString())); final String[] expected = new String[] { "Usage: ", " [-h -k -e|-d -b|-3 -f <file>|-s <string>] ", "encryptionService ", " -h (--help) Print this message ", " -k (--key) Encryption key ", " Action Action ", " -e (--encrypt) Encrypt input ", " -d (--decrypt) Decry
pt input ", " Algorithm Encryption Algorithm ", " -b (--blowfish) Blowfish ", " -3 (--3DES) Triple DES ", " Input Input ", " -f (--file) file Input file ", " -s (--string) string Input string " }; List actual = new ArrayList(expected.length); String input; while ((input = bufferedReader.readLine()) != null) { actual.add(input); } // Show they are the same number of lines assertEquals("Help text lines should be " + ex
pected.length, actual.size(), expected.length); for (int i = 0; i < expected.length; i++) { if (!expected[i].equals(actual.get(i))) { for (int x = 0; x < expected.length; i++) { System.out.println(" " + expected[i]); System.out.println((expected[i].equals(actual.get(i)) ? "== " : "!= ") + actual.get(i)); } } assertEquals(expected[i], actual.get(i)); } } catch (IOException e) { fail(e.getLocalizedMessage()); } }}
\ No newline at end of file
+/**
+ * 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.option;
+
+import org.apache.commons.cli2.CLITestCase;
+import org.apache.commons.cli2.CommandLine;
+import org.apache.commons.cli2.Group;
+import org.apache.commons.cli2.OptionException;
+import org.apache.commons.cli2.builder.ArgumentBuilder;
+import org.apache.commons.cli2.builder.DefaultOptionBuilder;
+import org.apache.commons.cli2.builder.GroupBuilder;
+import org.apache.commons.cli2.commandline.Parser;
+import org.apache.commons.cli2.util.HelpFormatter;
+
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.PrintWriter;
+import java.io.StringReader;
+import java.io.StringWriter;
+
+import java.util.ArrayList;
+import java.util.List;
+
+
+/**
+ * Test to exercise nested groups developed to demonstrate bug 32533
+ */
+public class NestedGroupTest extends CLITestCase {
+ final static DefaultOptionBuilder obuilder = new DefaultOptionBuilder();
+ final static ArgumentBuilder abuilder = new ArgumentBuilder();
+ final static GroupBuilder gbuilder = new GroupBuilder();
+
+ static Group buildActionGroup() {
+ return gbuilder.withName("Action").withDescription("Action")
+ .withMinimum(1).withMaximum(1)
+ .withOption(obuilder.withId(5).withShortName("e")
+ .withLongName("encrypt")
+ .withDescription("Encrypt input")
+ .create())
+ .withOption(obuilder.withId(6).withShortName("d")
+ .withLongName("decrypt")
+ .withDescription("Decrypt input")
+ .create()).create();
+ }
+
+ static Group buildAlgorithmGroup() {
+ return gbuilder.withName("Algorithm")
+ .withDescription("Encryption Algorithm").withMaximum(1)
+ .withOption(obuilder.withId(0).withShortName("b")
+ .withLongName("blowfish")
+ .withDescription("Blowfish").create())
+ .withOption(obuilder.withId(1).withShortName("3")
+ .withLongName("3DES")
+ .withDescription("Triple DES")
+ .create()).create();
+ }
+
+ static Group buildInputGroup() {
+ return gbuilder.withName("Input").withDescription("Input").withMinimum(1)
+ .withMaximum(1)
+ .withOption(obuilder.withId(2).withShortName("f")
+ .withLongName("file")
+ .withDescription("Input file")
+ .withArgument(abuilder.withName(
+ "file").withMinimum(1).withMaximum(1).create()).create())
+ .withOption(obuilder.withId(3).withShortName("s")
+ .withLongName("string")
+ .withDescription("Input string")
+ .withArgument(abuilder.withName(
+ "string").withMinimum(1).withMaximum(1).create()).create())
+ .create();
+ }
+
+ static Group buildEncryptionServiceGroup(Group[] nestedGroups) {
+ gbuilder.withName("encryptionService")
+ .withOption(obuilder.withId(4).withShortName("h")
+ .withLongName("help")
+ .withDescription("Print this message")
+ .create()).withOption(obuilder.withShortName(
+ "k").withLongName("key").withDescription("Encryption key")
+ .create());
+
+ for (int i = 0; i < nestedGroups.length; i++) {
+ gbuilder.withOption(nestedGroups[i]);
+ }
+
+ return gbuilder.create();
+ }
+
+ public void testNestedGroup()
+ throws OptionException {
+ final String[] args = {
+ "-eb",
+ "--file",
+ "/tmp/filename.txt"
+ };
+
+ Group[] nestedGroups = {
+ buildActionGroup(),
+ buildAlgorithmGroup(),
+ buildInputGroup()
+ };
+
+ Parser parser = new Parser();
+ parser.setGroup(buildEncryptionServiceGroup(nestedGroups));
+
+ CommandLine commandLine = parser.parse(args);
+
+ assertTrue("/tmp/filename.txt".equals(commandLine.getValue("-f")));
+ assertTrue(commandLine.hasOption("-e"));
+ assertTrue(commandLine.hasOption("-b"));
+ assertFalse(commandLine.hasOption("-d"));
+ }
+
+ public void testNestedGroupHelp() {
+ Group[] nestedGroups = {
+ buildActionGroup(),
+ buildAlgorithmGroup(),
+ buildInputGroup()
+ };
+
+ HelpFormatter helpFormatter = new HelpFormatter();
+ helpFormatter.setGroup(buildEncryptionServiceGroup(nestedGroups));
+
+ final StringWriter out = new StringWriter();
+ helpFormatter.setPrintWriter(new PrintWriter(out));
+
+ try {
+ helpFormatter.print();
+
+ final BufferedReader bufferedReader = new BufferedReader(new StringReader(
+ out.toString()));
+ final String[] expected = new String[] {
+ "Usage: ",
+ " [-h -k -e|-d -b|-3 -f <file>|-s <string>] ",
+ "encryptionService ",
+ " -h (--help) Print this message ",
+ " -k (--key) Encryption key ",
+ " Action Action ",
+ " -e (--encrypt) Encrypt input ",
+ " -d (--decrypt) Decrypt input ",
+ " Algorithm Encryption Algorithm ",
+ " -b (--blowfish) Blowfish ",
+ " -3 (--3DES) Triple DES ",
+ " Input Input ",
+ " -f (--file) file Input file ",
+ " -s (--string) string Input string "
+ };
+
+ List actual = new ArrayList(expected.length);
+ String input;
+
+ while ((input = bufferedReader.readLine()) != null) {
+ actual.add(input);
+ }
+
+ // Show they are the same number of lines
+ assertEquals("Help text lines should be " + expected.length,
+ actual.size(), expected.length);
+
+ for (int i = 0; i < expected.length; i++) {
+ if (!expected[i].equals(actual.get(i))) {
+ for (int x = 0; x < expected.length; i++) {
+ System.out.println(" " + expected[i]);
+ System.out.println((expected[i].equals(actual.get(i))
+ ? "== "
+ : "!= ") + actual.get(i));
+ }
+ }
+
+ assertEquals(expected[i], actual.get(i));
+ }
+ }
+ catch (IOException e) {
+ fail(e.getLocalizedMessage());
+ }
+ }
+}
Modified: commons/proper/cli/trunk/src/test/org/apache/commons/cli2/option/OptionTestCase.java
URL: http://svn.apache.org/viewvc/commons/proper/cli/trunk/src/test/org/apache/commons/cli2/option/OptionTestCase.java?rev=639943&r1=639942&r2=639943&view=diff
==============================================================================
--- commons/proper/cli/trunk/src/test/org/apache/commons/cli2/option/OptionTestCase.java (original)
+++ commons/proper/cli/trunk/src/test/org/apache/commons/cli2/option/OptionTestCase.java Fri Mar 21 20:08:23 2008
@@ -1 +1,55 @@
-/** * 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.option;import java.util.List;import org.apache.commons.cli2.CLITestCase;import org.apache.commons.cli2.Option;import org.apache.commons.cli2.OptionException;import org.ap
ache.commons.cli2.WriteableCommandLine;import org.apache.commons.cli2.commandline.WriteableCommandLineImpl;/** * @author Rob Oxspring */public abstract class OptionTestCase extends CLITestCase { public static WriteableCommandLine commandLine( final Option option, final List args) { return new WriteableCommandLineImpl(option, args); } public abstract void testTriggers(); public abstract void testPrefixes(); public abstract void testCanProcess(); public abstract void testProcess() throws OptionException; public abstract void testValidate() throws OptionException; public abstract void testAppendUsage() throws OptionException; public abstract void testGetPreferredName(); public abstract void testGetDescription(); public abstract void testHelpLines();}
\ No newline at end of file
+/**
+ * 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.option;
+
+import java.util.List;
+
+import org.apache.commons.cli2.CLITestCase;
+import org.apache.commons.cli2.Option;
+import org.apache.commons.cli2.OptionException;
+import org.apache.commons.cli2.WriteableCommandLine;
+import org.apache.commons.cli2.commandline.WriteableCommandLineImpl;
+
+/**
+ * @author Rob Oxspring
+ */
+public abstract class OptionTestCase extends CLITestCase {
+
+ public static WriteableCommandLine commandLine(
+ final Option option,
+ final List args) {
+ return new WriteableCommandLineImpl(option, args);
+ }
+
+ public abstract void testTriggers();
+
+ public abstract void testPrefixes();
+
+ public abstract void testCanProcess();
+
+ public abstract void testProcess() throws OptionException;
+
+ public abstract void testValidate() throws OptionException;
+
+ public abstract void testAppendUsage() throws OptionException;
+
+ public abstract void testGetPreferredName();
+
+ public abstract void testGetDescription();
+
+ public abstract void testHelpLines();
+}