[
https://issues.apache.org/jira/browse/CLI-158?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Oliver Heger resolved CLI-158.
------------------------------
Resolution: Fixed
Patch applied. Many thanks!
> deafult arguments only works if no arguments are submitted
> ----------------------------------------------------------
>
> Key: CLI-158
> URL: https://issues.apache.org/jira/browse/CLI-158
> Project: Commons CLI
> Issue Type: Bug
> Components: CLI-2.x
> Affects Versions: 2.0
> Reporter: Andrew Oxenburgh
> Fix For: 2.0
>
> Attachments: cli_158.r676502.patch
>
> Original Estimate: 2h
> Remaining Estimate: 2h
>
> When using multple arguments and defaults, the behaviour is counter-intuitive
> and will only pick up a default if no args are passed in.
> For instance in the code below I have set up so 0, 1, or 2 args may bve
> accepted, with defaults 100 and 1000.
> I expect it to behave as follows.
> 1. for 2 args, 1 and 2 the values should be 1 and 2. This works as expected.
> 2. for 0 args passed in the values should be 100 and 1000, picking up both of
> the defaults. This works as expected
> 3. for 1 arg passed in the values should be 1 and 1000, so the second
> argument picks up the second default value. The valuse become just 1, which
> is not as expected..
> Currently, in the second case will only return 1 and ignore the defaults.
> public void testSingleOptionSingleArgument() throws Exception {
> String defaulValue1 = "100";
> String defaultValue2 = "1000";
> final DefaultOptionBuilder obuilder = new DefaultOptionBuilder();
> final ArgumentBuilder abuilder = new ArgumentBuilder();
> final GroupBuilder gbuilder = new GroupBuilder();
> DefaultOption bOption = obuilder.withShortName("b")
> .withLongName("b")
> .withArgument(abuilder.withName("b")
> .withMinimum(0)
> .withMaximum(2)
> .withDefault(defaulValue1)
> .withDefault(defaultValue2)
> .create())
> .create();
> Group options = gbuilder
> .withName("options")
> .withOption(bOption)
> .create();
> Parser parser = new Parser();
> parser.setHelpTrigger("--help");
> parser.setGroup(options);
> String enteredValue1 = "1";
> String[] args = new String[]{"-b", enteredValue1};
> CommandLine cl = parser.parse(args);
> CommandLine cmd = cl;
> assertNotNull(cmd);
> List b = cmd.getValues("-b");
> assertEquals("[" + enteredValue1 + "]", b + "");
> }
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.