[ 
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.

Reply via email to