sorry the attachment seems to have failed - here is the plain text: package org.apache.commons.cli2.application;
import java.io.*; import javax.swing.*; import junit.framework.TestCase; import org.apache.commons.cli2.*; import org.apache.commons.cli2.Group; import org.apache.commons.cli2.builder.ArgumentBuilder; import org.apache.commons.cli2.builder.CommandBuilder; import org.apache.commons.cli2.builder.DefaultOptionBuilder; import org.apache.commons.cli2.builder.GroupBuilder; import org.apache.commons.cli2.commandline.*; import org.apache.commons.cli2.option.*; import org.apache.commons.cli2.option.ArgumentTest; import org.apache.commons.cli2.util.*; public class RequiredWithinGroupTest extends TestCase { public void testRequiredIsHonoured() { Group commands = buildCLI(); Parser parser = new Parser(); parser.setGroup(commands); CommandLine line = null; String [] arg = {"command1"}; /* * We expect "command1" to say that the "--foo" option is required * */ try { line = parser.parse(arg); fail("/required/ Option within Group was allowed to be absent"); } catch (OptionException oe) { /* Expected failure */ } } static Group buildCLI() { GroupBuilder gBuilder = new GroupBuilder(); CommandBuilder cBuilder = new CommandBuilder(); DefaultOptionBuilder oBuilder = new DefaultOptionBuilder(); /* This is the top level of commands */ Group commands = gBuilder .withMinimum(1) .withMaximum(1) .withName("command name") .withOption(createCommand1()) .withOption( cBuilder .withName("command2") .withName("c2") .withDescription("command2 does ...") .create() ) .withOption( cBuilder .withName("help") .withDescription("Display the list of commands") .create() ) .withOption( cBuilder .withName("command3") .withName("c3") .withDescription("command3 does ...") .create() ).create(); return commands; } /* * Options common to a particular subset of commands */ static GroupBuilder createCommonGroupBuilder() { GroupBuilder gBuilder = new GroupBuilder(); DefaultOptionBuilder oBuilder = new DefaultOptionBuilder(); ArgumentBuilder aBuilder = new ArgumentBuilder(); Option product = oBuilder .withShortName("f") .withLongName("fuu") .withRequired(true) .withDescription("fuu is the option that does ...") .create(); Option variant = oBuilder .withShortName("b") .withLongName("bah") .withRequired(false) .withDescription("bah is the option that does ...") .create(); return gBuilder .withOption(product) .withOption(variant); } static Command createCommand1() { CommandBuilder cBuilder = new CommandBuilder(); DefaultOptionBuilder oBuilder = new DefaultOptionBuilder(); GroupBuilder gBuilder = createCommonGroupBuilder(); Group c1Args = gBuilder .withOption( oBuilder .withLongName("non-recursive") .withRequired(false) .withDescription("turn off recursion") .create() ).withOption( oBuilder .withLongName("help") .withRequired(false) .withDescription("show command1 help message") .create() ).create(); return cBuilder .withName("command1") .withName("c1") .withDescription("command1 does ...") .withChildren(c1Args) .create(); } } --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]