commons-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Andrew Oxenburgh (JIRA)" <j...@apache.org>
Subject [jira] Created: (CLI-158) deafult arguments only works if no arguments are submitted
Date Wed, 04 Jun 2008 14:23:45 GMT
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


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.


Mime
View raw message