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 [13/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/ArgumentTest.java
URL: http://svn.apache.org/viewvc/commons/proper/cli/trunk/src/test/org/apache/commons/cli2/option/ArgumentTest.java?rev=639943&r1=639942&r2=639943&view=diff
==============================================================================
--- commons/proper/cli/trunk/src/test/org/apache/commons/cli2/option/ArgumentTest.java (original)
+++ commons/proper/cli/trunk/src/test/org/apache/commons/cli2/option/ArgumentTest.java Fri Mar 21 20:08:23 2008
@@ -1 +1,646 @@
-/* * 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.text.ParseException;import java.util.ArrayList;import java.util.Arrays;import java.util.Collections;import java.util.HashSet;import java.util.Iterator;i
mport java.util.List;import java.util.ListIterator;import java.util.Set;import org.apache.commons.cli2.Argument;import org.apache.commons.cli2.DisplaySetting;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.ArgumentBuilder;import org.apache.commons.cli2.builder.GroupBuilder;import org.apache.commons.cli2.commandline.WriteableCommandLineImpl;import org.apache.commons.cli2.resource.ResourceConstants;import org.apache.commons.cli2.resource.ResourceHelper;import org.apache.commons.cli2.validation.DateValidator;import org.apache.commons.cli2.validation.DateValidatorTest;/** * @author Rob Oxspring */public class ArgumentTest extends ArgumentTestCase { private ResourceHelper resources = ResourceHelper.getResourceHelper(); public static Argument buildUsernameArgument() { return new ArgumentImpl("usernam
e", "The user to connect as", 1, 1, '\0', '\0', null, ArgumentImpl.DEFAULT_CONSUME_REMAINING, null, 0); } public static Argument buildHostArgument() { return new ArgumentImpl("host", "The host name", 2, 3, '\0', ',', null, null, null, 0); } public static Argument buildPathArgument() { return new ArgumentImpl("path", "The place to look for files", 1, Integer.MAX_VALUE, '=', ';', null, ArgumentImpl.DEFAULT_CONSUME_REMAINING, null, 0); } public static Argument buildDateLimitArgument() { return new ArgumentImpl("limit", "the last acceptable date", 0, 1, '=', '\0', new DateValidator(DateValidatorTest.YYYY_MM_DD), null, null, 0); } public static Argument buildTargetsArgument() { return new ArgumentImpl("target", "The targets ant should build", 0, Integer.MAX_VALUE, '\0', ',', null, null, null, 0); } pu
blic static Argument buildSizeArgument() { List defaults = new ArrayList(); defaults.add("10"); return new ArgumentImpl("size", "The number of units", 1, 1, '\0', '\0', null, ArgumentImpl.DEFAULT_CONSUME_REMAINING, defaults, 0); } public static Argument buildBoundsArgument() { List defaults = new ArrayList(); defaults.add("5"); defaults.add("10"); return new ArgumentImpl("size", "The number of units", 2, 2, '\0', '\0', null, ArgumentImpl.DEFAULT_CONSUME_REMAINING, defaults, 0); } public void testNew() { try { new ArgumentImpl("limit", "the last acceptable date", 10, 5, '=', '\0', new DateValidator(DateValidatorTest.YYYY_MM_DD), null, null, 0); } catch (IllegalArgumentException e) { assertEquals(resources.getMessage("Argument.minimum.exceeds.maximum"), e.getMessage()); } {
ArgumentImpl arg = new ArgumentImpl(null, "the last acceptable date", 5, 5, '=', '\0', new DateValidator(DateValidatorTest.YYYY_MM_DD), null, null, 0); assertEquals("wrong arg name", "arg", arg.getPreferredName()); } { List defaults = new ArrayList(); try { new ArgumentImpl(null, "the last acceptable date", 1, 1, '=', '\0', new DateValidator(DateValidatorTest.YYYY_MM_DD), null, defaults, 0); } catch (IllegalArgumentException exp) { assertEquals(resources.getMessage("Argument.too.few.defaults"), exp.getMessage()); } } try { List defaults = new ArrayList(); defaults.add("1"); defaults.add("2"); new ArgumentImpl(null, "the last acceptable date", 1, 1, '=', '\0', new DateValidator(DateValidatorTest.YYYY_MM_DD), nu
ll, defaults, 0); } catch (IllegalArgumentException exp) { assertEquals(resources.getMessage("Argument.too.many.defaults"), exp.getMessage()); } } /* * (non-Javadoc) * * @see org.apache.commons.cli2.ArgumentTestCase#testProcessValues() */ public void testProcessValues() throws OptionException { final Argument option = buildUsernameArgument(); final List args = list("rob"); final WriteableCommandLine commandLine = commandLine(option, args); final ListIterator iterator = args.listIterator(); option.processValues(commandLine, iterator, option); assertFalse(iterator.hasNext()); assertTrue(commandLine.hasOption(option)); assertTrue(commandLine.hasOption("username")); assertEquals("rob", commandLine.getValue(option)); } public void testProcessValues_BoundaryQuotes() throws OptionException { final Argument option = buildUsernameArgument();
final List args = list("\"rob\""); final WriteableCommandLine commandLine = commandLine(option, args); final ListIterator iterator = args.listIterator(); option.processValues(commandLine, iterator, option); assertFalse(iterator.hasNext()); assertTrue(commandLine.hasOption(option)); assertTrue(commandLine.hasOption("username")); assertEquals("rob", commandLine.getValue(option)); } public void testProcessValues_SpareValues() throws OptionException { final Argument option = buildUsernameArgument(); final List args = list("rob", "secret"); final WriteableCommandLine commandLine = commandLine(option, args); final ListIterator iterator = args.listIterator(); option.processValues(commandLine, iterator, option); assertTrue(iterator.hasNext()); assertTrue(commandLine.hasOption(option)); assertTrue(commandLine.hasOption("username")); assertEquals("rob", comma
ndLine.getValue(option)); } public void testProcessValues_Optional() { final Argument option = buildTargetsArgument(); final List args = list(); final WriteableCommandLine commandLine = commandLine(option, args); final ListIterator iterator = args.listIterator(); try { option.processValues(commandLine, iterator, option); } catch (final OptionException mve) { assertEquals(option, mve.getOption()); assertEquals("Missing value(s) target [target ...]", mve.getMessage()); } assertFalse(iterator.hasNext()); assertFalse(commandLine.hasOption(option)); assertFalse(commandLine.hasOption("username")); assertTrue(commandLine.getValues(option).isEmpty()); } public void testProcessValues_Multiple() throws OptionException { final Argument option = buildTargetsArgument(); final List args = list("compile", "test", "docs"); final WriteableComma
ndLine commandLine = commandLine(option, args); final ListIterator iterator = args.listIterator(); option.processValues(commandLine, iterator, option); assertFalse(iterator.hasNext()); assertTrue(commandLine.hasOption(option)); assertTrue(commandLine.hasOption("target")); assertFalse(commandLine.getValues(option).isEmpty()); assertListContentsEqual(args, commandLine.getValues(option)); } public void testProcessValues_Contracted() throws OptionException { final Argument option = buildTargetsArgument(); final List args = list("compile,test,javadoc", "checkstyle,jdepend"); final WriteableCommandLine commandLine = commandLine(option, args); final ListIterator iterator = args.listIterator(); option.processValues(commandLine, iterator, option); assertFalse(iterator.hasNext()); assertTrue(commandLine.hasOption(option)); assertTrue(commandLine.hasOption("target"));
assertListContentsEqual(list("compile", "test", "javadoc", "checkstyle", "jdepend"), commandLine.getValues(option)); } public void testProcessValues_ContractedTooFew() { final Argument option = buildHostArgument(); final List args = list("box1"); final WriteableCommandLine commandLine = commandLine(option, args); final ListIterator iterator = args.listIterator(); try { option.processValues(commandLine, iterator, option); option.validate(commandLine); fail("Expected MissingValueException"); } catch (OptionException mve) { assertSame(option, mve.getOption()); } } public void testProcessValues_ContractedTooMany() { final Argument option = buildHostArgument(); final List args = list("box1,box2,box3,box4"); final WriteableCommandLine commandLine = commandLine(option, args); final ListIterator iterator = args.list
Iterator(); try { option.processValues(commandLine, iterator, option); option.validate(commandLine); fail("Expected MissingValueException"); } catch (OptionException mve) { assertSame(option, mve.getOption()); } } /* * (non-Javadoc) * * @see org.apache.commons.cli2.OptionTestCase#testCanProcess() */ public void testCanProcess() { final Argument option = buildTargetsArgument(); assertTrue(option.canProcess(new WriteableCommandLineImpl(option, null), "any value")); } /* * (non-Javadoc) * * @see org.apache.commons.cli2.OptionTestCase#testPrefixes() */ public void testPrefixes() { final Argument option = buildTargetsArgument(); assertTrue(option.getPrefixes().isEmpty()); } /* * (non-Javadoc) * * @see org.apache.commons.cli2.OptionTestCase#testProcess() */ public void testProcess() throws OptionException {
final Argument option = buildPathArgument(); final List args = list("-path=/lib;/usr/lib;/usr/local/lib"); final WriteableCommandLine commandLine = commandLine(option, args); final ListIterator iterator = args.listIterator(); option.process(commandLine, iterator); assertFalse(iterator.hasNext()); assertTrue(commandLine.hasOption(option)); assertTrue(commandLine.hasOption("path")); assertListContentsEqual(list("-path=/lib", "/usr/lib", "/usr/local/lib"), commandLine.getValues(option)); } /* * (non-Javadoc) * * @see org.apache.commons.cli2.OptionTestCase#testTriggers() */ public void testTriggers() { final Argument option = buildTargetsArgument(); assertTrue(option.getTriggers().isEmpty()); } /* * (non-Javadoc) * * @see org.apache.commons.cli2.OptionTestCase#testValidate() */ public void testValidate() throws Option
Exception { final Argument option = buildUsernameArgument(); final WriteableCommandLine commandLine = commandLine(option, list()); commandLine.addValue(option, "rob"); option.validate(commandLine); } public void testValidate_Minimum() { final Argument option = buildUsernameArgument(); final WriteableCommandLine commandLine = commandLine(option, list()); try { option.validate(commandLine); fail("UnexpectedValue"); } catch (OptionException mve) { assertEquals(option, mve.getOption()); } } public void testRequired() { { final Argument arg = buildBoundsArgument(); assertTrue("not required", arg.isRequired()); } { final Argument arg = buildTargetsArgument(); assertFalse("should not be required", arg.isRequired()); } } public void testValidate_Maximum() { final Argument option = buildUsernam
eArgument(); final WriteableCommandLine commandLine = commandLine(option, list()); commandLine.addValue(option, "rob"); commandLine.addValue(option, "oxspring"); try { option.validate(commandLine); fail("UnexpectedValue"); } catch (OptionException uve) { assertEquals(option, uve.getOption()); } } public void testValidate_Validator() throws OptionException, ParseException { final Argument option = buildDateLimitArgument(); final WriteableCommandLine commandLine = commandLine(option, list()); commandLine.addValue(option, "2004-01-01"); option.validate(commandLine, option); assertContentsEqual(Arrays.asList(new Object[] { DateValidatorTest.YYYY_MM_DD.parse("2004-01-01") }), commandLine.getValues(option)); } public void testValidate_ValidatorInvalidDate() throw
s OptionException, ParseException { final Argument option = buildDateLimitArgument(); final WriteableCommandLine commandLine = commandLine(option, list()); commandLine.addValue(option, "12-12-2004"); try { option.validate(commandLine, option); } catch (OptionException exp) { OptionException e = new OptionException(option, ResourceConstants.ARGUMENT_UNEXPECTED_VALUE, "12-12-2004"); assertEquals("wrong exception message", e.getMessage(), exp.getMessage()); } } /* * (non-Javadoc) * * @see org.apache.commons.cli2.OptionTestCase#testAppendUsage() */ public void testAppendUsage() { final Option option = buildUsernameArgument(); final StringBuffer buffer = new StringBuffer(); option.appendUsage(buffer, DisplaySetting.ALL, null); assertEquals("<username>", buffer.toString()); } public void testAppendUs
age_Infinite() { final Option option = buildTargetsArgument(); final StringBuffer buffer = new StringBuffer(); option.appendUsage(buffer, DisplaySetting.ALL, null); assertEquals("[<target1> [<target2> ...]]", buffer.toString()); } public void testAppendUsage_InfiniteNoOptional() { final Option option = buildTargetsArgument(); final StringBuffer buffer = new StringBuffer(); final Set settings = new HashSet(DisplaySetting.ALL); settings.remove(DisplaySetting.DISPLAY_OPTIONAL); option.appendUsage(buffer, settings, null); assertEquals("<target1> [<target2> ...]", buffer.toString()); } public void testAppendUsage_InfiniteNoNumbering() { final Option option = buildTargetsArgument(); final StringBuffer buffer = new StringBuffer(); final Set settings = new HashSet(DisplaySetting.ALL); settings.remove(DisplaySetting.DISPLAY_ARGUMENT_NUMBERED); option.appendUsage(buffer
, settings, null); assertEquals("[<target> [<target> ...]]", buffer.toString()); } public void testAppendUsage_Minimum() { final Option option = buildHostArgument(); final StringBuffer buffer = new StringBuffer(); option.appendUsage(buffer, DisplaySetting.ALL, null); assertEquals("<host1> <host2> [<host3>]", buffer.toString()); } /* * (non-Javadoc) * * @see org.apache.commons.cli2.OptionTestCase#testGetPreferredName() */ public void testGetPreferredName() { final Option option = buildPathArgument(); assertEquals("path", option.getPreferredName()); } /* * (non-Javadoc) * * @see org.apache.commons.cli2.OptionTestCase#testGetDescription() */ public void testGetDescription() { final Option option = buildHostArgument(); assertEquals("The host name", option.getDescription()); } /* * (non-Javadoc) * * @see org.apache.commons.cli2.OptionTestCase#te
stHelpLines() */ public void testHelpLines() { final Option option = buildHostArgument(); 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()); assertFalse(i.hasNext()); } public void testCanProcess_ConsumeRemaining() { final Option option = buildUsernameArgument(); assertTrue(option.canProcess(new WriteableCommandLineImpl(option, null), "--")); } public void testProcess_ConsumeRemaining() throws OptionException { final Option option = buildPathArgument(); final List args = list("options", "--", "--ignored", "-Dprop=val"); final WriteableCommandLine commandLine = commandLine(option, args); final ListIterator iterator = args.listIterator(); option.process(commandLine, iterator); f
inal List values = commandLine.getValues(option); assertTrue(values.contains("options")); assertTrue(values.contains("--ignored")); assertTrue(values.contains("-Dprop=val")); assertEquals(3, values.size()); assertFalse(iterator.hasNext()); } public void testProcess_ConsumeNothing() { final Option option = buildPathArgument(); final List args = list("--"); final WriteableCommandLine commandLine = commandLine(option, args); final ListIterator iterator = args.listIterator(); try { option.process(commandLine, iterator); option.validate(commandLine); fail("Missing Value!"); } catch (OptionException mve) { assertEquals(option, mve.getOption()); assertEquals("Missing value(s) path [path ...]", mve.getMessage()); } assertTrue(commandLine.getValues(option).isEmpty()); assertFalse(iterator.hasNext()); } // public void t
estProcess_DefinedDefaultValue() throws OptionException { // final Option size = buildSizeArgument(); // final List args = list(); // final WriteableCommandLine commandLine = commandLine(size, args); // final ListIterator iterator = args.listIterator(); // // size.process(commandLine, iterator); // // assertEquals("10", commandLine.getValue(size)); // } // // public void testProcess_DefinedDefaultValues() throws OptionException { // final Option bounds = buildBoundsArgument(); // final List args = list(); // final WriteableCommandLine commandLine = commandLine(bounds, args); // final ListIterator iterator = args.listIterator(); // // bounds.process(commandLine, iterator); // // List values = new ArrayList(); // values.add("5"); // values.add("10"); // assertEquals(values, commandLine.getValues(bounds)
); // } public void testProcess_InterrogatedDefaultValue() throws OptionException { final Option size = buildSizeArgument(); final List args = list(); final WriteableCommandLine commandLine = commandLine(size, args); final ListIterator iterator = args.listIterator(); size.process(commandLine, iterator); assertEquals(new Integer(20), commandLine.getValue(size, new Integer(20))); } public void testTooFewDefaults() { List defaults = new ArrayList(); defaults.add("5"); try { new ArgumentImpl("size", "The number of units", 2, 2, '\0', '\0', null, ArgumentImpl.DEFAULT_CONSUME_REMAINING, defaults, 0); } catch (IllegalArgumentException exp) { assertEquals("wrong exception message", ResourceHelper.getResourceHelper().getMessage(ResourceConstants.ARGUMENT_TOO_FEW_DEFAULTS), exp.getMessage());
} } public void testTooManyDefaults() { List defaults = new ArrayList(); defaults.add("5"); defaults.add("10"); defaults.add("15"); try { new ArgumentImpl("size", "The number of units", 2, 2, '\0', '\0', null, ArgumentImpl.DEFAULT_CONSUME_REMAINING, defaults, 0); } catch (IllegalArgumentException exp) { assertEquals("wrong exception message", ResourceHelper.getResourceHelper().getMessage(ResourceConstants.ARGUMENT_TOO_MANY_DEFAULTS), exp.getMessage()); } } public void testProcess_InterrogatedDefaultValues() throws OptionException { final Option bounds = buildBoundsArgument(); final List args = list(); final WriteableCommandLine commandLine = commandLine(bounds, args); final ListIterator iterator = args.listIterator(); bounds.process(commandLine, iterator); // test with
values List values = new ArrayList(); values.add("50"); values.add("100"); assertEquals(values, commandLine.getValues(bounds, values)); // test without values assertEquals(Collections.EMPTY_LIST, commandLine.getValues(bounds, null)); } public void testProcess_StripBoundaryQuotes() throws OptionException { final Option bounds = buildBoundsArgument(); final List args = list(); final WriteableCommandLine commandLine = commandLine(bounds, args); final ListIterator iterator = args.listIterator(); bounds.process(commandLine, iterator); List values = new ArrayList(); values.add("50\""); values.add("\"100"); assertEquals(values, commandLine.getValues(bounds, values)); } public void testSourceDestArgument() { final ArgumentBuilder abuilder = new ArgumentBuilder(); final GroupBuilder gbuilder = new GroupBuilder(); final Argument inputfiles =
abuilder.withName("input").withMinimum(0).withMaximum(0).create(); final Argument bad_outputfile = abuilder.withName("output").withMinimum(1).withMaximum(2).create(); try { final Argument targets = new SourceDestArgument(inputfiles, bad_outputfile); } catch (final IllegalArgumentException exp) { assertEquals("wrong exception message", ResourceHelper.getResourceHelper().getMessage(ResourceConstants.SOURCE_DEST_MUST_ENFORCE_VALUES), exp.getMessage()); } final Argument outputfile = abuilder.withName("output").withMinimum(1).withMaximum(1).create(); final Argument targets = new SourceDestArgument(inputfiles, outputfile); final StringBuffer buffer = new StringBuffer("test content"); targets.appendUsage(buffer, Collections.EMPTY_SET, null); assertTrue("buffer not added", buffer.toString().startsWith("test content"));
assertFalse("space added", buffer.charAt(12) == ' '); }}
\ 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.text.ParseException;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
+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.Argument;
+import org.apache.commons.cli2.DisplaySetting;
+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.ArgumentBuilder;
+import org.apache.commons.cli2.builder.GroupBuilder;
+import org.apache.commons.cli2.commandline.WriteableCommandLineImpl;
+import org.apache.commons.cli2.resource.ResourceConstants;
+import org.apache.commons.cli2.resource.ResourceHelper;
+import org.apache.commons.cli2.validation.DateValidator;
+import org.apache.commons.cli2.validation.DateValidatorTest;
+
+/**
+ * @author Rob Oxspring
+ */
+public class ArgumentTest
+ extends ArgumentTestCase {
+ private ResourceHelper resources = ResourceHelper.getResourceHelper();
+
+ public static Argument buildUsernameArgument() {
+ return new ArgumentImpl("username", "The user to connect as", 1, 1, '\0', '\0', null,
+ ArgumentImpl.DEFAULT_CONSUME_REMAINING, null, 0);
+ }
+
+ public static Argument buildHostArgument() {
+ return new ArgumentImpl("host", "The host name", 2, 3, '\0', ',', null, null, null, 0);
+ }
+
+ public static Argument buildPathArgument() {
+ return new ArgumentImpl("path", "The place to look for files", 1, Integer.MAX_VALUE, '=',
+ ';', null, ArgumentImpl.DEFAULT_CONSUME_REMAINING, null, 0);
+ }
+
+ public static Argument buildDateLimitArgument() {
+ return new ArgumentImpl("limit", "the last acceptable date", 0, 1, '=', '\0',
+ new DateValidator(DateValidatorTest.YYYY_MM_DD), null, null, 0);
+ }
+
+ public static Argument buildTargetsArgument() {
+ return new ArgumentImpl("target", "The targets ant should build", 0, Integer.MAX_VALUE,
+ '\0', ',', null, null, null, 0);
+ }
+
+ public static Argument buildSizeArgument() {
+ List defaults = new ArrayList();
+ defaults.add("10");
+
+ return new ArgumentImpl("size", "The number of units", 1, 1, '\0', '\0', null,
+ ArgumentImpl.DEFAULT_CONSUME_REMAINING, defaults, 0);
+ }
+
+ public static Argument buildBoundsArgument() {
+ List defaults = new ArrayList();
+ defaults.add("5");
+ defaults.add("10");
+
+ return new ArgumentImpl("size", "The number of units", 2, 2, '\0', '\0', null,
+ ArgumentImpl.DEFAULT_CONSUME_REMAINING, defaults, 0);
+ }
+
+ public void testNew() {
+ try {
+ new ArgumentImpl("limit", "the last acceptable date", 10, 5, '=', '\0',
+ new DateValidator(DateValidatorTest.YYYY_MM_DD), null, null, 0);
+ } catch (IllegalArgumentException e) {
+ assertEquals(resources.getMessage("Argument.minimum.exceeds.maximum"), e.getMessage());
+ }
+
+ {
+ ArgumentImpl arg =
+ new ArgumentImpl(null, "the last acceptable date", 5, 5, '=', '\0',
+ new DateValidator(DateValidatorTest.YYYY_MM_DD), null, null, 0);
+ assertEquals("wrong arg name", "arg", arg.getPreferredName());
+ }
+
+ {
+ List defaults = new ArrayList();
+
+ try {
+ new ArgumentImpl(null, "the last acceptable date", 1, 1, '=', '\0',
+ new DateValidator(DateValidatorTest.YYYY_MM_DD), null, defaults, 0);
+ } catch (IllegalArgumentException exp) {
+ assertEquals(resources.getMessage("Argument.too.few.defaults"), exp.getMessage());
+ }
+ }
+
+ try {
+ List defaults = new ArrayList();
+ defaults.add("1");
+ defaults.add("2");
+
+ new ArgumentImpl(null, "the last acceptable date", 1, 1, '=', '\0',
+ new DateValidator(DateValidatorTest.YYYY_MM_DD), null, defaults, 0);
+ } catch (IllegalArgumentException exp) {
+ assertEquals(resources.getMessage("Argument.too.many.defaults"), exp.getMessage());
+ }
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.apache.commons.cli2.ArgumentTestCase#testProcessValues()
+ */
+ public void testProcessValues()
+ throws OptionException {
+ final Argument option = buildUsernameArgument();
+ final List args = list("rob");
+ final WriteableCommandLine commandLine = commandLine(option, args);
+ final ListIterator iterator = args.listIterator();
+ option.processValues(commandLine, iterator, option);
+
+ assertFalse(iterator.hasNext());
+ assertTrue(commandLine.hasOption(option));
+ assertTrue(commandLine.hasOption("username"));
+ assertEquals("rob", commandLine.getValue(option));
+ }
+
+ public void testProcessValues_BoundaryQuotes()
+ throws OptionException {
+ final Argument option = buildUsernameArgument();
+ final List args = list("\"rob\"");
+ final WriteableCommandLine commandLine = commandLine(option, args);
+ final ListIterator iterator = args.listIterator();
+ option.processValues(commandLine, iterator, option);
+
+ assertFalse(iterator.hasNext());
+ assertTrue(commandLine.hasOption(option));
+ assertTrue(commandLine.hasOption("username"));
+ assertEquals("rob", commandLine.getValue(option));
+ }
+
+ public void testProcessValues_SpareValues()
+ throws OptionException {
+ final Argument option = buildUsernameArgument();
+ final List args = list("rob", "secret");
+ final WriteableCommandLine commandLine = commandLine(option, args);
+ final ListIterator iterator = args.listIterator();
+ option.processValues(commandLine, iterator, option);
+
+ assertTrue(iterator.hasNext());
+ assertTrue(commandLine.hasOption(option));
+ assertTrue(commandLine.hasOption("username"));
+ assertEquals("rob", commandLine.getValue(option));
+ }
+
+ public void testProcessValues_Optional() {
+ final Argument option = buildTargetsArgument();
+ final List args = list();
+ final WriteableCommandLine commandLine = commandLine(option, args);
+ final ListIterator iterator = args.listIterator();
+
+ try {
+ option.processValues(commandLine, iterator, option);
+ } catch (final OptionException mve) {
+ assertEquals(option, mve.getOption());
+ assertEquals("Missing value(s) target [target ...]", mve.getMessage());
+ }
+
+ assertFalse(iterator.hasNext());
+ assertFalse(commandLine.hasOption(option));
+ assertFalse(commandLine.hasOption("username"));
+ assertTrue(commandLine.getValues(option).isEmpty());
+ }
+
+ public void testProcessValues_Multiple()
+ throws OptionException {
+ final Argument option = buildTargetsArgument();
+ final List args = list("compile", "test", "docs");
+ final WriteableCommandLine commandLine = commandLine(option, args);
+ final ListIterator iterator = args.listIterator();
+ option.processValues(commandLine, iterator, option);
+
+ assertFalse(iterator.hasNext());
+ assertTrue(commandLine.hasOption(option));
+ assertTrue(commandLine.hasOption("target"));
+ assertFalse(commandLine.getValues(option).isEmpty());
+ assertListContentsEqual(args, commandLine.getValues(option));
+ }
+
+ public void testProcessValues_Contracted()
+ throws OptionException {
+ final Argument option = buildTargetsArgument();
+ final List args = list("compile,test,javadoc", "checkstyle,jdepend");
+ final WriteableCommandLine commandLine = commandLine(option, args);
+ final ListIterator iterator = args.listIterator();
+ option.processValues(commandLine, iterator, option);
+
+ assertFalse(iterator.hasNext());
+ assertTrue(commandLine.hasOption(option));
+ assertTrue(commandLine.hasOption("target"));
+ assertListContentsEqual(list("compile", "test", "javadoc", "checkstyle", "jdepend"),
+ commandLine.getValues(option));
+ }
+
+ public void testProcessValues_ContractedTooFew() {
+ final Argument option = buildHostArgument();
+ final List args = list("box1");
+ final WriteableCommandLine commandLine = commandLine(option, args);
+ final ListIterator iterator = args.listIterator();
+
+ try {
+ option.processValues(commandLine, iterator, option);
+ option.validate(commandLine);
+ fail("Expected MissingValueException");
+ } catch (OptionException mve) {
+ assertSame(option, mve.getOption());
+ }
+ }
+
+ public void testProcessValues_ContractedTooMany() {
+ final Argument option = buildHostArgument();
+ final List args = list("box1,box2,box3,box4");
+ final WriteableCommandLine commandLine = commandLine(option, args);
+ final ListIterator iterator = args.listIterator();
+
+ try {
+ option.processValues(commandLine, iterator, option);
+ option.validate(commandLine);
+ fail("Expected MissingValueException");
+ } catch (OptionException mve) {
+ assertSame(option, mve.getOption());
+ }
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.apache.commons.cli2.OptionTestCase#testCanProcess()
+ */
+ public void testCanProcess() {
+ final Argument option = buildTargetsArgument();
+ assertTrue(option.canProcess(new WriteableCommandLineImpl(option, null), "any value"));
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.apache.commons.cli2.OptionTestCase#testPrefixes()
+ */
+ public void testPrefixes() {
+ final Argument option = buildTargetsArgument();
+ assertTrue(option.getPrefixes().isEmpty());
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.apache.commons.cli2.OptionTestCase#testProcess()
+ */
+ public void testProcess()
+ throws OptionException {
+ final Argument option = buildPathArgument();
+ final List args = list("-path=/lib;/usr/lib;/usr/local/lib");
+ final WriteableCommandLine commandLine = commandLine(option, args);
+ final ListIterator iterator = args.listIterator();
+ option.process(commandLine, iterator);
+
+ assertFalse(iterator.hasNext());
+ assertTrue(commandLine.hasOption(option));
+ assertTrue(commandLine.hasOption("path"));
+ assertListContentsEqual(list("-path=/lib", "/usr/lib", "/usr/local/lib"),
+ commandLine.getValues(option));
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.apache.commons.cli2.OptionTestCase#testTriggers()
+ */
+ public void testTriggers() {
+ final Argument option = buildTargetsArgument();
+ assertTrue(option.getTriggers().isEmpty());
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.apache.commons.cli2.OptionTestCase#testValidate()
+ */
+ public void testValidate()
+ throws OptionException {
+ final Argument option = buildUsernameArgument();
+ final WriteableCommandLine commandLine = commandLine(option, list());
+
+ commandLine.addValue(option, "rob");
+
+ option.validate(commandLine);
+ }
+
+ public void testValidate_Minimum() {
+ final Argument option = buildUsernameArgument();
+ final WriteableCommandLine commandLine = commandLine(option, list());
+
+ try {
+ option.validate(commandLine);
+ fail("UnexpectedValue");
+ } catch (OptionException mve) {
+ assertEquals(option, mve.getOption());
+ }
+ }
+
+ public void testRequired() {
+ {
+ final Argument arg = buildBoundsArgument();
+
+ assertTrue("not required", arg.isRequired());
+ }
+
+ {
+ final Argument arg = buildTargetsArgument();
+
+ assertFalse("should not be required", arg.isRequired());
+ }
+ }
+
+ public void testValidate_Maximum() {
+ final Argument option = buildUsernameArgument();
+ final WriteableCommandLine commandLine = commandLine(option, list());
+
+ commandLine.addValue(option, "rob");
+ commandLine.addValue(option, "oxspring");
+
+ try {
+ option.validate(commandLine);
+ fail("UnexpectedValue");
+ } catch (OptionException uve) {
+ assertEquals(option, uve.getOption());
+ }
+ }
+
+ public void testValidate_Validator()
+ throws OptionException, ParseException {
+ final Argument option = buildDateLimitArgument();
+ final WriteableCommandLine commandLine = commandLine(option, list());
+
+ commandLine.addValue(option, "2004-01-01");
+
+ option.validate(commandLine, option);
+ assertContentsEqual(Arrays.asList(new Object[] {
+ DateValidatorTest.YYYY_MM_DD.parse("2004-01-01")
+ }), commandLine.getValues(option));
+ }
+
+ public void testValidate_ValidatorInvalidDate()
+ throws OptionException, ParseException {
+ final Argument option = buildDateLimitArgument();
+ final WriteableCommandLine commandLine = commandLine(option, list());
+
+ commandLine.addValue(option, "12-12-2004");
+
+ try {
+ option.validate(commandLine, option);
+ } catch (OptionException exp) {
+ OptionException e =
+ new OptionException(option, ResourceConstants.ARGUMENT_UNEXPECTED_VALUE,
+ "12-12-2004");
+ assertEquals("wrong exception message", e.getMessage(), exp.getMessage());
+ }
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.apache.commons.cli2.OptionTestCase#testAppendUsage()
+ */
+ public void testAppendUsage() {
+ final Option option = buildUsernameArgument();
+ final StringBuffer buffer = new StringBuffer();
+ option.appendUsage(buffer, DisplaySetting.ALL, null);
+
+ assertEquals("<username>", buffer.toString());
+ }
+
+ public void testAppendUsage_Infinite() {
+ final Option option = buildTargetsArgument();
+ final StringBuffer buffer = new StringBuffer();
+ option.appendUsage(buffer, DisplaySetting.ALL, null);
+
+ assertEquals("[<target1> [<target2> ...]]", buffer.toString());
+ }
+
+ public void testAppendUsage_InfiniteNoOptional() {
+ final Option option = buildTargetsArgument();
+ final StringBuffer buffer = new StringBuffer();
+ final Set settings = new HashSet(DisplaySetting.ALL);
+ settings.remove(DisplaySetting.DISPLAY_OPTIONAL);
+ option.appendUsage(buffer, settings, null);
+
+ assertEquals("<target1> [<target2> ...]", buffer.toString());
+ }
+
+ public void testAppendUsage_InfiniteNoNumbering() {
+ final Option option = buildTargetsArgument();
+ final StringBuffer buffer = new StringBuffer();
+ final Set settings = new HashSet(DisplaySetting.ALL);
+ settings.remove(DisplaySetting.DISPLAY_ARGUMENT_NUMBERED);
+ option.appendUsage(buffer, settings, null);
+
+ assertEquals("[<target> [<target> ...]]", buffer.toString());
+ }
+
+ public void testAppendUsage_Minimum() {
+ final Option option = buildHostArgument();
+ final StringBuffer buffer = new StringBuffer();
+ option.appendUsage(buffer, DisplaySetting.ALL, null);
+
+ assertEquals("<host1> <host2> [<host3>]", buffer.toString());
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.apache.commons.cli2.OptionTestCase#testGetPreferredName()
+ */
+ public void testGetPreferredName() {
+ final Option option = buildPathArgument();
+ assertEquals("path", option.getPreferredName());
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.apache.commons.cli2.OptionTestCase#testGetDescription()
+ */
+ public void testGetDescription() {
+ final Option option = buildHostArgument();
+ assertEquals("The host name", option.getDescription());
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.apache.commons.cli2.OptionTestCase#testHelpLines()
+ */
+ public void testHelpLines() {
+ final Option option = buildHostArgument();
+ 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());
+
+ assertFalse(i.hasNext());
+ }
+
+ public void testCanProcess_ConsumeRemaining() {
+ final Option option = buildUsernameArgument();
+
+ assertTrue(option.canProcess(new WriteableCommandLineImpl(option, null), "--"));
+ }
+
+ public void testProcess_ConsumeRemaining()
+ throws OptionException {
+ final Option option = buildPathArgument();
+ final List args = list("options", "--", "--ignored", "-Dprop=val");
+ final WriteableCommandLine commandLine = commandLine(option, args);
+ final ListIterator iterator = args.listIterator();
+
+ option.process(commandLine, iterator);
+
+ final List values = commandLine.getValues(option);
+ assertTrue(values.contains("options"));
+ assertTrue(values.contains("--ignored"));
+ assertTrue(values.contains("-Dprop=val"));
+ assertEquals(3, values.size());
+ assertFalse(iterator.hasNext());
+ }
+
+ public void testProcess_ConsumeNothing() {
+ final Option option = buildPathArgument();
+ final List args = list("--");
+ final WriteableCommandLine commandLine = commandLine(option, args);
+ final ListIterator iterator = args.listIterator();
+
+ try {
+ option.process(commandLine, iterator);
+ option.validate(commandLine);
+ fail("Missing Value!");
+ } catch (OptionException mve) {
+ assertEquals(option, mve.getOption());
+ assertEquals("Missing value(s) path [path ...]", mve.getMessage());
+ }
+
+ assertTrue(commandLine.getValues(option).isEmpty());
+ assertFalse(iterator.hasNext());
+ }
+
+ // public void testProcess_DefinedDefaultValue() throws OptionException {
+ // final Option size = buildSizeArgument();
+ // final List args = list();
+ // final WriteableCommandLine commandLine = commandLine(size, args);
+ // final ListIterator iterator = args.listIterator();
+ //
+ // size.process(commandLine, iterator);
+ //
+ // assertEquals("10", commandLine.getValue(size));
+ // }
+ //
+ // public void testProcess_DefinedDefaultValues() throws OptionException {
+ // final Option bounds = buildBoundsArgument();
+ // final List args = list();
+ // final WriteableCommandLine commandLine = commandLine(bounds, args);
+ // final ListIterator iterator = args.listIterator();
+ //
+ // bounds.process(commandLine, iterator);
+ //
+ // List values = new ArrayList();
+ // values.add("5");
+ // values.add("10");
+ // assertEquals(values, commandLine.getValues(bounds));
+ // }
+ public void testProcess_InterrogatedDefaultValue()
+ throws OptionException {
+ final Option size = buildSizeArgument();
+ final List args = list();
+ final WriteableCommandLine commandLine = commandLine(size, args);
+ final ListIterator iterator = args.listIterator();
+
+ size.process(commandLine, iterator);
+
+ assertEquals(new Integer(20), commandLine.getValue(size, new Integer(20)));
+ }
+
+ public void testTooFewDefaults() {
+ List defaults = new ArrayList();
+ defaults.add("5");
+
+ try {
+ new ArgumentImpl("size", "The number of units", 2, 2, '\0', '\0', null,
+ ArgumentImpl.DEFAULT_CONSUME_REMAINING, defaults, 0);
+ } catch (IllegalArgumentException exp) {
+ assertEquals("wrong exception message",
+ ResourceHelper.getResourceHelper().getMessage(ResourceConstants.ARGUMENT_TOO_FEW_DEFAULTS),
+ exp.getMessage());
+ }
+ }
+
+ public void testTooManyDefaults() {
+ List defaults = new ArrayList();
+ defaults.add("5");
+ defaults.add("10");
+ defaults.add("15");
+
+ try {
+ new ArgumentImpl("size", "The number of units", 2, 2, '\0', '\0', null,
+ ArgumentImpl.DEFAULT_CONSUME_REMAINING, defaults, 0);
+ } catch (IllegalArgumentException exp) {
+ assertEquals("wrong exception message",
+ ResourceHelper.getResourceHelper().getMessage(ResourceConstants.ARGUMENT_TOO_MANY_DEFAULTS),
+ exp.getMessage());
+ }
+ }
+
+ public void testProcess_InterrogatedDefaultValues()
+ throws OptionException {
+ final Option bounds = buildBoundsArgument();
+ final List args = list();
+ final WriteableCommandLine commandLine = commandLine(bounds, args);
+ final ListIterator iterator = args.listIterator();
+
+ bounds.process(commandLine, iterator);
+
+ // test with values
+ List values = new ArrayList();
+ values.add("50");
+ values.add("100");
+ assertEquals(values, commandLine.getValues(bounds, values));
+
+ // test without values
+ assertEquals(Collections.EMPTY_LIST, commandLine.getValues(bounds, null));
+ }
+
+ public void testProcess_StripBoundaryQuotes()
+ throws OptionException {
+ final Option bounds = buildBoundsArgument();
+ final List args = list();
+ final WriteableCommandLine commandLine = commandLine(bounds, args);
+ final ListIterator iterator = args.listIterator();
+
+ bounds.process(commandLine, iterator);
+
+ List values = new ArrayList();
+ values.add("50\"");
+ values.add("\"100");
+ assertEquals(values, commandLine.getValues(bounds, values));
+ }
+
+ public void testSourceDestArgument() {
+ final ArgumentBuilder abuilder = new ArgumentBuilder();
+ final GroupBuilder gbuilder = new GroupBuilder();
+ final Argument inputfiles =
+ abuilder.withName("input").withMinimum(0).withMaximum(0).create();
+ final Argument bad_outputfile =
+ abuilder.withName("output").withMinimum(1).withMaximum(2).create();
+
+ try {
+ final Argument targets = new SourceDestArgument(inputfiles, bad_outputfile);
+ } catch (final IllegalArgumentException exp) {
+ assertEquals("wrong exception message",
+ ResourceHelper.getResourceHelper().getMessage(ResourceConstants.SOURCE_DEST_MUST_ENFORCE_VALUES),
+ exp.getMessage());
+ }
+
+ final Argument outputfile =
+ abuilder.withName("output").withMinimum(1).withMaximum(1).create();
+
+ final Argument targets = new SourceDestArgument(inputfiles, outputfile);
+ final StringBuffer buffer = new StringBuffer("test content");
+ targets.appendUsage(buffer, Collections.EMPTY_SET, null);
+
+ assertTrue("buffer not added", buffer.toString().startsWith("test content"));
+ assertFalse("space added", buffer.charAt(12) == ' ');
+ }
+}
Modified: commons/proper/cli/trunk/src/test/org/apache/commons/cli2/option/ArgumentTestCase.java
URL: http://svn.apache.org/viewvc/commons/proper/cli/trunk/src/test/org/apache/commons/cli2/option/ArgumentTestCase.java?rev=639943&r1=639942&r2=639943&view=diff
==============================================================================
--- commons/proper/cli/trunk/src/test/org/apache/commons/cli2/option/ArgumentTestCase.java (original)
+++ commons/proper/cli/trunk/src/test/org/apache/commons/cli2/option/ArgumentTestCase.java Fri Mar 21 20:08:23 2008
@@ -1 +1,28 @@
-/** * 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 ArgumentTestCase extends OptionTestCase { public abstract void
testProcessValues() 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 ArgumentTestCase extends OptionTestCase {
+
+ public abstract void testProcessValues() throws OptionException;
+
+}
Modified: commons/proper/cli/trunk/src/test/org/apache/commons/cli2/option/CommandTest.java
URL: http://svn.apache.org/viewvc/commons/proper/cli/trunk/src/test/org/apache/commons/cli2/option/CommandTest.java?rev=639943&r1=639942&r2=639943&view=diff
==============================================================================
--- commons/proper/cli/trunk/src/test/org/apache/commons/cli2/option/CommandTest.java (original)
+++ commons/proper/cli/trunk/src/test/org/apache/commons/cli2/option/CommandTest.java Fri Mar 21 20:08:23 2008
@@ -1 +1,249 @@
-/** * 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.Collections;import java.util.HashSet;import java.util.List;import java.util.ListIterator;import java.util.Set;import org.apache.commons.cli2.Displ
aySetting;import org.apache.commons.cli2.Option;import org.apache.commons.cli2.OptionException;import org.apache.commons.cli2.Parent;import org.apache.commons.cli2.WriteableCommandLine;import org.apache.commons.cli2.commandline.WriteableCommandLineImpl;import org.apache.commons.cli2.resource.ResourceConstants;import org.apache.commons.cli2.resource.ResourceHelper;/** * @author Rob Oxspring * * To change the template for this generated type comment go to * Window>Preferences>Java>Code Generation>Code and Comments */public class CommandTest extends ParentTestCase { public static Command buildStartCommand() { return new Command("start", "Begins the process", Collections.singleton("go"), false, null, null, 0); } public static Command buildCommitCommand() { return new Command("commit", "Commit the changes to the database", null, true, null, null, 0); } public static Command buildLoginCommand() { return new Command("
login", "Initiates a session for the user", null, false, ArgumentTest.buildUsernameArgument(), null, 0); } /* * (non-Javadoc) * * @see org.apache.commons.cli2.ParentTestCase#testProcessParent() */ public void testProcessParent() throws OptionException { final Command option = buildStartCommand(); final List args = list("go"); final WriteableCommandLine commandLine = commandLine(option, args); final ListIterator iterator = args.listIterator(); option.processParent(commandLine, iterator); assertFalse(iterator.hasNext()); assertTrue(commandLine.hasOption(option)); assertTrue(commandLine.hasOption("start")); assertTrue(commandLine.hasOption("go")); assertTrue(commandLine.getValues(option).isEmpty()); } public void testProcessParent_Spare() throws OptionException { final Command option = buildLoginCommand(); final List args = l
ist("login", "rob"); final WriteableCommandLine commandLine = commandLine(option, args); final ListIterator iterator = args.listIterator(); option.processParent(commandLine, iterator); assertEquals("rob", iterator.next()); assertFalse(iterator.hasNext()); assertTrue(commandLine.hasOption(option)); assertTrue(commandLine.hasOption("login")); assertTrue(commandLine.getValues(option).isEmpty()); } /* * (non-Javadoc) * * @see org.apache.commons.cli2.OptionTestCase#testCanProcess() */ public void testCanProcess() { final Command option = buildStartCommand(); assertTrue(option.canProcess(new WriteableCommandLineImpl(option, null), "start")); } public void testCanProcess_BadMatch() { final Command option = buildStartCommand(); assertFalse(option.canProcess(new WriteableCommandLineImpl(option, null), "stop")); } public void testCanProcess_Alias() { final Co
mmand option = buildStartCommand(); assertTrue(option.canProcess(new WriteableCommandLineImpl(option, null), "go")); } /* * (non-Javadoc) * * @see org.apache.commons.cli2.OptionTestCase#testPrefixes() */ public void testPrefixes() { final Command option = buildStartCommand(); assertTrue(option.getPrefixes().isEmpty()); } /* * (non-Javadoc) * * @see org.apache.commons.cli2.OptionTestCase#testProcess() */ public void testProcess() throws OptionException { final Command option = buildLoginCommand(); final List args = list("login", "rob"); final WriteableCommandLine commandLine = commandLine(option, args); final ListIterator iterator = args.listIterator(); option.process(commandLine, iterator); assertFalse(iterator.hasNext()); assertTrue(commandLine.hasOption(option)); assertTrue(commandLine.hasOption("login")); assertEquals("rob", commandL
ine.getValue(option)); } /* * (non-Javadoc) * * @see org.apache.commons.cli2.OptionTestCase#testTriggers() */ public void testTriggers() { final Command option = buildStartCommand(); final Set triggers = option.getTriggers(); assertContentsEqual(list("start", "go"), triggers); } /* * (non-Javadoc) * * @see org.apache.commons.cli2.OptionTestCase#testValidate() */ public void testValidate() { final Parent option = buildCommitCommand(); final WriteableCommandLine commandLine = commandLine(option, list()); try { option.validate(commandLine); fail("Missing an option"); } catch (OptionException moe) { assertSame(option, moe.getOption()); } } /* * (non-Javadoc) * * @see org.apache.commons.cli2.OptionTestCase#testAppendUsage() */ public void testAppendUsage() { final Option option = buildStartCommand(); fina
l StringBuffer buffer = new StringBuffer(); option.appendUsage(buffer, DisplaySetting.ALL, null); assertEquals("[start (go)]", buffer.toString()); } public void testNullPreferredName() { try { new Command(null, "", Collections.singleton("go"), false, null, null, 0); } catch (IllegalArgumentException exp) { assertEquals("wrong exception name", ResourceHelper.getResourceHelper().getMessage(ResourceConstants.COMMAND_PREFERRED_NAME_TOO_SHORT), exp.getMessage()); } } public void testEmotyPreferredName() { try { new Command("", "", Collections.singleton("go"), false, null, null, 0); } catch (IllegalArgumentException exp) { assertEquals("wrong exception name", ResourceHelper.getResourceHelper().getMessage(ResourceConstants.COMMAND_PREFERRED_NAME_TOO_SHORT), exp.getMessage()); }
} public void testAppendUsage_NoOptional() { final Option option = buildStartCommand(); final StringBuffer buffer = new StringBuffer(); final Set settings = new HashSet(DisplaySetting.ALL); settings.remove(DisplaySetting.DISPLAY_OPTIONAL); option.appendUsage(buffer, settings, null); assertEquals("start (go)", buffer.toString()); } public void testAppendUsage_NoAlias() { final Option option = buildStartCommand(); final StringBuffer buffer = new StringBuffer(); final Set settings = new HashSet(DisplaySetting.ALL); settings.remove(DisplaySetting.DISPLAY_ALIASES); option.appendUsage(buffer, settings, null); assertEquals("[start]", buffer.toString()); } /* * (non-Javadoc) * * @see org.apache.commons.cli2.OptionTestCase#testGetPreferredName() */ public void testGetPreferredName() { final Option option = buildStartCommand(); assertEquals("start", o
ption.getPreferredName()); } /* * (non-Javadoc) * * @see org.apache.commons.cli2.OptionTestCase#testGetDescription() */ public void testGetDescription() { final Option option = buildLoginCommand(); assertEquals("Initiates a session for the user", option.getDescription()); } /* * (non-Javadoc) * * @see org.apache.commons.cli2.OptionTestCase#testHelpLines() */ public void testHelpLines() { // TODO Auto-generated method stub }}
\ 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.Collections;
+import java.util.HashSet;
+import java.util.List;
+import java.util.ListIterator;
+import java.util.Set;
+
+import org.apache.commons.cli2.DisplaySetting;
+import org.apache.commons.cli2.Option;
+import org.apache.commons.cli2.OptionException;
+import org.apache.commons.cli2.Parent;
+import org.apache.commons.cli2.WriteableCommandLine;
+import org.apache.commons.cli2.commandline.WriteableCommandLineImpl;
+import org.apache.commons.cli2.resource.ResourceConstants;
+import org.apache.commons.cli2.resource.ResourceHelper;
+
+/**
+ * @author Rob Oxspring
+ *
+ * To change the template for this generated type comment go to
+ * Window>Preferences>Java>Code Generation>Code and Comments
+ */
+public class CommandTest
+ extends ParentTestCase {
+ public static Command buildStartCommand() {
+ return new Command("start", "Begins the process", Collections.singleton("go"), false, null,
+ null, 0);
+ }
+
+ public static Command buildCommitCommand() {
+ return new Command("commit", "Commit the changes to the database", null, true, null, null, 0);
+ }
+
+ public static Command buildLoginCommand() {
+ return new Command("login", "Initiates a session for the user", null, false,
+ ArgumentTest.buildUsernameArgument(), null, 0);
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.apache.commons.cli2.ParentTestCase#testProcessParent()
+ */
+ public void testProcessParent()
+ throws OptionException {
+ final Command option = buildStartCommand();
+ final List args = list("go");
+ final WriteableCommandLine commandLine = commandLine(option, args);
+ final ListIterator iterator = args.listIterator();
+ option.processParent(commandLine, iterator);
+
+ assertFalse(iterator.hasNext());
+ assertTrue(commandLine.hasOption(option));
+ assertTrue(commandLine.hasOption("start"));
+ assertTrue(commandLine.hasOption("go"));
+ assertTrue(commandLine.getValues(option).isEmpty());
+ }
+
+ public void testProcessParent_Spare()
+ throws OptionException {
+ final Command option = buildLoginCommand();
+ final List args = list("login", "rob");
+ final WriteableCommandLine commandLine = commandLine(option, args);
+ final ListIterator iterator = args.listIterator();
+ option.processParent(commandLine, iterator);
+
+ assertEquals("rob", iterator.next());
+ assertFalse(iterator.hasNext());
+ assertTrue(commandLine.hasOption(option));
+ assertTrue(commandLine.hasOption("login"));
+ assertTrue(commandLine.getValues(option).isEmpty());
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.apache.commons.cli2.OptionTestCase#testCanProcess()
+ */
+ public void testCanProcess() {
+ final Command option = buildStartCommand();
+ assertTrue(option.canProcess(new WriteableCommandLineImpl(option, null), "start"));
+ }
+
+ public void testCanProcess_BadMatch() {
+ final Command option = buildStartCommand();
+ assertFalse(option.canProcess(new WriteableCommandLineImpl(option, null), "stop"));
+ }
+
+ public void testCanProcess_Alias() {
+ final Command option = buildStartCommand();
+ assertTrue(option.canProcess(new WriteableCommandLineImpl(option, null), "go"));
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.apache.commons.cli2.OptionTestCase#testPrefixes()
+ */
+ public void testPrefixes() {
+ final Command option = buildStartCommand();
+ assertTrue(option.getPrefixes().isEmpty());
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.apache.commons.cli2.OptionTestCase#testProcess()
+ */
+ public void testProcess()
+ throws OptionException {
+ final Command option = buildLoginCommand();
+ final List args = list("login", "rob");
+ final WriteableCommandLine commandLine = commandLine(option, args);
+ final ListIterator iterator = args.listIterator();
+ option.process(commandLine, iterator);
+
+ assertFalse(iterator.hasNext());
+ assertTrue(commandLine.hasOption(option));
+ assertTrue(commandLine.hasOption("login"));
+ assertEquals("rob", commandLine.getValue(option));
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.apache.commons.cli2.OptionTestCase#testTriggers()
+ */
+ public void testTriggers() {
+ final Command option = buildStartCommand();
+ final Set triggers = option.getTriggers();
+ assertContentsEqual(list("start", "go"), triggers);
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.apache.commons.cli2.OptionTestCase#testValidate()
+ */
+ public void testValidate() {
+ final Parent option = buildCommitCommand();
+ final WriteableCommandLine commandLine = commandLine(option, list());
+
+ try {
+ option.validate(commandLine);
+ fail("Missing an option");
+ } catch (OptionException moe) {
+ assertSame(option, moe.getOption());
+ }
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.apache.commons.cli2.OptionTestCase#testAppendUsage()
+ */
+ public void testAppendUsage() {
+ final Option option = buildStartCommand();
+ final StringBuffer buffer = new StringBuffer();
+ option.appendUsage(buffer, DisplaySetting.ALL, null);
+
+ assertEquals("[start (go)]", buffer.toString());
+ }
+
+ public void testNullPreferredName() {
+ try {
+ new Command(null, "", Collections.singleton("go"), false, null, null, 0);
+ } catch (IllegalArgumentException exp) {
+ assertEquals("wrong exception name",
+ ResourceHelper.getResourceHelper().getMessage(ResourceConstants.COMMAND_PREFERRED_NAME_TOO_SHORT),
+ exp.getMessage());
+ }
+ }
+
+ public void testEmotyPreferredName() {
+ try {
+ new Command("", "", Collections.singleton("go"), false, null, null, 0);
+ } catch (IllegalArgumentException exp) {
+ assertEquals("wrong exception name",
+ ResourceHelper.getResourceHelper().getMessage(ResourceConstants.COMMAND_PREFERRED_NAME_TOO_SHORT),
+ exp.getMessage());
+ }
+ }
+
+ public void testAppendUsage_NoOptional() {
+ final Option option = buildStartCommand();
+ final StringBuffer buffer = new StringBuffer();
+ final Set settings = new HashSet(DisplaySetting.ALL);
+ settings.remove(DisplaySetting.DISPLAY_OPTIONAL);
+ option.appendUsage(buffer, settings, null);
+
+ assertEquals("start (go)", buffer.toString());
+ }
+
+ public void testAppendUsage_NoAlias() {
+ final Option option = buildStartCommand();
+ final StringBuffer buffer = new StringBuffer();
+ final Set settings = new HashSet(DisplaySetting.ALL);
+ settings.remove(DisplaySetting.DISPLAY_ALIASES);
+ option.appendUsage(buffer, settings, null);
+
+ assertEquals("[start]", buffer.toString());
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.apache.commons.cli2.OptionTestCase#testGetPreferredName()
+ */
+ public void testGetPreferredName() {
+ final Option option = buildStartCommand();
+ assertEquals("start", option.getPreferredName());
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.apache.commons.cli2.OptionTestCase#testGetDescription()
+ */
+ public void testGetDescription() {
+ final Option option = buildLoginCommand();
+ assertEquals("Initiates a session for the user", option.getDescription());
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.apache.commons.cli2.OptionTestCase#testHelpLines()
+ */
+ public void testHelpLines() {
+ // TODO Auto-generated method stub
+ }
+}
Modified: commons/proper/cli/trunk/src/test/org/apache/commons/cli2/option/DefaultOptionTest.java
URL: http://svn.apache.org/viewvc/commons/proper/cli/trunk/src/test/org/apache/commons/cli2/option/DefaultOptionTest.java?rev=639943&r1=639942&r2=639943&view=diff
==============================================================================
--- commons/proper/cli/trunk/src/test/org/apache/commons/cli2/option/DefaultOptionTest.java (original)
+++ commons/proper/cli/trunk/src/test/org/apache/commons/cli2/option/DefaultOptionTest.java Fri Mar 21 20:08:23 2008
@@ -1 +1,227 @@
-/** * 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.HashSet;import java.util.List;import java.util.ListIterator;import java.util.Set;import org.apache.commons.cli2.DisplaySetting;import org.apache.c
ommons.cli2.Option;import org.apache.commons.cli2.OptionException;import org.apache.commons.cli2.Parent;import org.apache.commons.cli2.WriteableCommandLine;import org.apache.commons.cli2.commandline.WriteableCommandLineImpl;/** * @author roberto * * To change the template for this generated type comment go to * Window>Preferences>Java>Code Generation>Code and Comments */public class DefaultOptionTest extends ParentTestCase { public static DefaultOption buildHelpOption() { final Set aliases = new HashSet(list("-h", "-?")); return new DefaultOption( "-", "--", true, "--help", "Displays the help", aliases, aliases, false, null, null, 'h'); } public static DefaultOption buildXOption() { return new DefaultOption( "-", "--", true, "-X", "This is needed", null,
null, true, null, null, 'X'); } /* * (non-Javadoc) * * @see org.apache.commons.cli2.ParentTestCase#testProcessParent() */ public void testProcessParent() throws OptionException { final DefaultOption option = buildHelpOption(); final List args = list("--help"); final WriteableCommandLine commandLine = commandLine(option, args); final ListIterator iterator = args.listIterator(); option.processParent(commandLine, iterator); assertFalse(iterator.hasNext()); assertTrue(commandLine.hasOption(option)); assertTrue(commandLine.hasOption("--help")); assertTrue(commandLine.hasOption("-?")); assertTrue(commandLine.getValues(option).isEmpty()); } public void testProcessParent_Burst() throws OptionException { final DefaultOption option = buildHelpOption(); final List args = list("-help"); final WriteableCommandLine comman
dLine = commandLine(option, args); final ListIterator iterator = args.listIterator(); option.processParent(commandLine, iterator); assertEquals("-elp", iterator.next()); assertFalse(iterator.hasNext()); assertTrue(commandLine.hasOption(option)); assertTrue(commandLine.hasOption("--help")); assertTrue(commandLine.hasOption("-?")); assertTrue(commandLine.getValues(option).isEmpty()); } /* * (non-Javadoc) * * @see org.apache.commons.cli2.OptionTestCase#testCanProcess() */ public void testCanProcess() { final DefaultOption option = buildHelpOption(); assertTrue(option.canProcess(new WriteableCommandLineImpl(option,null), "-?")); } public void testCanProcess_BadMatch() { final DefaultOption option = buildHelpOption(); assertFalse(option.canProcess(new WriteableCommandLineImpl(option,null), "-H")); } /* * (non-Javadoc) * * @see org.apache.commons.cli
2.OptionTestCase#testPrefixes() */ public void testPrefixes() { final DefaultOption option = buildHelpOption(); assertContentsEqual(list("-", "--"), option.getPrefixes()); } /* * (non-Javadoc) * * @see org.apache.commons.cli2.OptionTestCase#testProcess() */ public void testProcess() { // TODO Auto-generated method stub } /* * (non-Javadoc) * * @see org.apache.commons.cli2.OptionTestCase#testTriggers() */ public void testTriggers() { final DefaultOption option = buildHelpOption(); assertContentsEqual(list("-?", "-h", "--help"), option.getTriggers()); } /* * (non-Javadoc) * * @see org.apache.commons.cli2.OptionTestCase#testValidate() */ public void testValidate() { final Parent option = buildXOption(); final WriteableCommandLine commandLine = commandLine(option, list()); try { option.validate(commandLine); fail("Missing
an option"); } catch (OptionException moe) { assertSame(option, moe.getOption()); } } /* * (non-Javadoc) * * @see org.apache.commons.cli2.OptionTestCase#testAppendUsage() */ public void testAppendUsage() { final Option option = buildHelpOption(); final StringBuffer buffer = new StringBuffer(); option.appendUsage(buffer, DisplaySetting.ALL, null); assertEquals("[--help (-?,-h)]", buffer.toString()); } public void testAppendUsage_NoOptional() { final Option option = buildHelpOption(); final StringBuffer buffer = new StringBuffer(); final Set settings = new HashSet(DisplaySetting.ALL); settings.remove(DisplaySetting.DISPLAY_OPTIONAL); option.appendUsage(buffer, settings, null); assertEquals("--help (-?,-h)", buffer.toString()); } public void testAppendUsage_NoAlias() { final Option option = buildHelpOption(); final StringBuffe
r buffer = new StringBuffer(); final Set settings = new HashSet(DisplaySetting.ALL); settings.remove(DisplaySetting.DISPLAY_ALIASES); option.appendUsage(buffer, settings, null); assertEquals("[--help]", buffer.toString()); } /* * (non-Javadoc) * * @see org.apache.commons.cli2.OptionTestCase#testGetPreferredName() */ public void testGetPreferredName() { final Option option = buildHelpOption(); assertEquals("--help", option.getPreferredName()); } /* * (non-Javadoc) * * @see org.apache.commons.cli2.OptionTestCase#testGetDescription() */ public void testGetDescription() { final Option option = buildHelpOption(); assertEquals("Displays the help", option.getDescription()); } /* * (non-Javadoc) * * @see org.apache.commons.cli2.OptionTestCase#testHelpLines() */ public void testHelpLines() { // TODO Auto-generated method stub }}
\ 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.HashSet;
+import java.util.List;
+import java.util.ListIterator;
+import java.util.Set;
+
+import org.apache.commons.cli2.DisplaySetting;
+import org.apache.commons.cli2.Option;
+import org.apache.commons.cli2.OptionException;
+import org.apache.commons.cli2.Parent;
+import org.apache.commons.cli2.WriteableCommandLine;
+import org.apache.commons.cli2.commandline.WriteableCommandLineImpl;
+
+/**
+ * @author roberto
+ *
+ * To change the template for this generated type comment go to
+ * Window>Preferences>Java>Code Generation>Code and Comments
+ */
+public class DefaultOptionTest extends ParentTestCase {
+
+ public static DefaultOption buildHelpOption() {
+ final Set aliases = new HashSet(list("-h", "-?"));
+ return new DefaultOption(
+ "-",
+ "--",
+ true,
+ "--help",
+ "Displays the help",
+ aliases,
+ aliases,
+ false,
+ null,
+ null,
+ 'h');
+ }
+
+ public static DefaultOption buildXOption() {
+ return new DefaultOption(
+ "-",
+ "--",
+ true,
+ "-X",
+ "This is needed",
+ null,
+ null,
+ true,
+ null,
+ null,
+ 'X');
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.apache.commons.cli2.ParentTestCase#testProcessParent()
+ */
+ public void testProcessParent() throws OptionException {
+ final DefaultOption option = buildHelpOption();
+ final List args = list("--help");
+ final WriteableCommandLine commandLine = commandLine(option, args);
+ final ListIterator iterator = args.listIterator();
+ option.processParent(commandLine, iterator);
+
+ assertFalse(iterator.hasNext());
+ assertTrue(commandLine.hasOption(option));
+ assertTrue(commandLine.hasOption("--help"));
+ assertTrue(commandLine.hasOption("-?"));
+ assertTrue(commandLine.getValues(option).isEmpty());
+ }
+
+ public void testProcessParent_Burst() throws OptionException {
+ final DefaultOption option = buildHelpOption();
+ final List args = list("-help");
+ final WriteableCommandLine commandLine = commandLine(option, args);
+ final ListIterator iterator = args.listIterator();
+ option.processParent(commandLine, iterator);
+
+ assertEquals("-elp", iterator.next());
+ assertFalse(iterator.hasNext());
+ assertTrue(commandLine.hasOption(option));
+ assertTrue(commandLine.hasOption("--help"));
+ assertTrue(commandLine.hasOption("-?"));
+ assertTrue(commandLine.getValues(option).isEmpty());
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.apache.commons.cli2.OptionTestCase#testCanProcess()
+ */
+ public void testCanProcess() {
+ final DefaultOption option = buildHelpOption();
+ assertTrue(option.canProcess(new WriteableCommandLineImpl(option,null), "-?"));
+ }
+
+ public void testCanProcess_BadMatch() {
+ final DefaultOption option = buildHelpOption();
+ assertFalse(option.canProcess(new WriteableCommandLineImpl(option,null), "-H"));
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.apache.commons.cli2.OptionTestCase#testPrefixes()
+ */
+ public void testPrefixes() {
+ final DefaultOption option = buildHelpOption();
+ assertContentsEqual(list("-", "--"), option.getPrefixes());
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.apache.commons.cli2.OptionTestCase#testProcess()
+ */
+ public void testProcess() {
+ // TODO Auto-generated method stub
+
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.apache.commons.cli2.OptionTestCase#testTriggers()
+ */
+ public void testTriggers() {
+ final DefaultOption option = buildHelpOption();
+ assertContentsEqual(list("-?", "-h", "--help"), option.getTriggers());
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.apache.commons.cli2.OptionTestCase#testValidate()
+ */
+ public void testValidate() {
+ final Parent option = buildXOption();
+ final WriteableCommandLine commandLine = commandLine(option, list());
+
+ try {
+ option.validate(commandLine);
+ fail("Missing an option");
+ }
+ catch (OptionException moe) {
+ assertSame(option, moe.getOption());
+ }
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.apache.commons.cli2.OptionTestCase#testAppendUsage()
+ */
+ public void testAppendUsage() {
+ final Option option = buildHelpOption();
+ final StringBuffer buffer = new StringBuffer();
+ option.appendUsage(buffer, DisplaySetting.ALL, null);
+
+ assertEquals("[--help (-?,-h)]", buffer.toString());
+ }
+
+ public void testAppendUsage_NoOptional() {
+ final Option option = buildHelpOption();
+ final StringBuffer buffer = new StringBuffer();
+ final Set settings = new HashSet(DisplaySetting.ALL);
+ settings.remove(DisplaySetting.DISPLAY_OPTIONAL);
+ option.appendUsage(buffer, settings, null);
+
+ assertEquals("--help (-?,-h)", buffer.toString());
+ }
+
+ public void testAppendUsage_NoAlias() {
+ final Option option = buildHelpOption();
+ final StringBuffer buffer = new StringBuffer();
+ final Set settings = new HashSet(DisplaySetting.ALL);
+ settings.remove(DisplaySetting.DISPLAY_ALIASES);
+ option.appendUsage(buffer, settings, null);
+
+ assertEquals("[--help]", buffer.toString());
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.apache.commons.cli2.OptionTestCase#testGetPreferredName()
+ */
+ public void testGetPreferredName() {
+ final Option option = buildHelpOption();
+ assertEquals("--help", option.getPreferredName());
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.apache.commons.cli2.OptionTestCase#testGetDescription()
+ */
+ public void testGetDescription() {
+ final Option option = buildHelpOption();
+ assertEquals("Displays the help", option.getDescription());
+ }
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.apache.commons.cli2.OptionTestCase#testHelpLines()
+ */
+ public void testHelpLines() {
+ // TODO Auto-generated method stub
+ }
+}