You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@commons.apache.org by "Brian A. Egge" <br...@yahoo.com> on 2007/08/01 02:25:14 UTC

Re: [CLI2] Writing source code unit tests (CvsTest)

Hi Karl,

I think you need to add the update options to the update command as children.  I.e.,

optionBuildDirectories = obuilder.withShortName("d")
                .withDescription("Build directories, like checkout does.")
                .withId(BUILD_DIRECTORIES_ID)
                .create();
        final Command updateCommand = cbuilder
                .withName("update")
                .withName("up")
                .withName("upd")
                .withDescription("Bring work tree in sync with repository")
                .withChildren(new GroupBuilder().withOption(
                        optionBuildDirectories)
                        .create()
                )
                .create();

...

    public void testChildCommandOptions() throws OptionException {
        Parser parser = new Parser();
        parser.setGroup(options);
        CommandLine commandLine = parser.parse(new String[]{
                "-d", "\"Parameter\"", "-nq", "update", "-d"
        });

        assertTrue(commandLine.hasOption(optionBuildDirectories));
        List list = commandLine.getValues(optionCvsRoot);
        assertEquals(1, list.size());
        assertEquals("Parameter", list.get(0));
    }

The only way I could figure out how to get the correct options out of the command line object was be explicitly specifying the option objects, and not using a string lookup.

I think there should be a get by id lookup, as you can assign numeric ids to options.

Attached is a patch to CvsTest which includes above test.

-Brian

Karl Heinz Marbaise <kh...@gmx.de> wrote: Hi there,

i have begun to write some Unit Tests (CvsTest in the Source-Code) to
understand the CLI2 correctly but now i have reached a point where i
can't get out....

May be someone can give me hint:

Ok.

I would like to simulate the following command line of CVS:

cvs -d "Parameter" -nq update -d

The "-nq" global options are working, but the second "-d" seemed not to be.
Here extracted some parts of the Code to create the command and it's
options:

//Global option
optiond = new DefaultOptionBuilder()
    .withName("d")
    .withArgument(new ArgumentBuilder()
    .withName("CVS_ROOT").create())
    .create();

updateCommand = new CommandBuilder().withName("update").create();
//update Command - Options
updateOptiond = new DefaultOptionBuilder().withName("d").create();

Group updateCommandOptions = GroupBuilder()
   .withName("Update-Options")
   .withOption(optionUpdated)
   .withOption(updateCommand)
   .create();

I'm not sure if i'm doing this correct...

Kind regards
Karl Heinz Marbaise
-- 
SoftwareEntwicklung Beratung Schulung    Tel.: +49 (0) 2405 / 415 893
Dipl.Ing.(FH) Karl Heinz Marbaise        ICQ#: 135949029
Hauptstrasse 177                         USt.IdNr: DE191347579
52146 Würselen                           http://www.soebes.de

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@commons.apache.org
For additional commands, e-mail: dev-help@commons.apache.org