/** * Test for checking whether duplicate options are detected. */ @Test(expected = IllegalArgumentException.class) public void duplicateOptions() { final Object subject = new Object(); Menu .builder() .add(Option.builder("a").build(), subject, dummyHandler()) .add(Option.builder("aa", ArgumentParser.stringParser()) .longName("a") .build(), subject, CliTest.<Object, String>dummyArgHandler()); }
assertEquals("a.b.c-d", Option.builder("a.b.c-d").build().getShortName()); assertEquals("A", Option.builder("A").build().getShortName()); assertFalse(Option.builder("A").build().getLongName().isPresent()); final Option o = Option.builder("A-T").longName("APPLE-TREE").build(); assertEquals("A-T", o.getShortName()); assertEquals("APPLE-TREE", o.getLongName().get());
/** * Constructs a menu wilt multiple groups and tests the behavior. */ @Test public void multipleGroups() { final Menu m = Menu.builder() .openGroup() .add(Option.builder("a").build(), list, dummyHandler()) .add(Option.builder("b").build(), list, dummyHandler()) .openGroup() .add(Option.builder("c").build(), list, dummyHandler()) .add(Option.builder("d").build(), list, dummyHandler()) .add(Option.builder("e").build(), list, dummyHandler()) .closeGroup() .addHelpOption("h", "help", "Print me") .build(); assertFalse(m.execute("-a", "-c").isPresent()); assertFalse(m.execute("-b", "-d").isPresent()); testFail(m, "a", CauseType.ALREADY_SELECTED, "-b", "-a"); testFail(m, "b", CauseType.ALREADY_SELECTED, "-d", "-a", "-b"); testFail(m, "c", CauseType.ALREADY_SELECTED, "-d", "-a", "-c"); }
@SuppressWarnings({"unchecked", "rawtypes"}) static OptionParser adapt(OptionParser exec, String shortPrefix, String longPrefix) { final Option opt = exec.getOption(); if (opt instanceof OptionArg<?>) { final OptionArg<?> adapted = adaptNames( Option.builder((OptionArg<?>) opt), shortPrefix, longPrefix) .build(); return ((ArgParser) exec).newInstance(adapted); } final OptionNoArg adapted = adaptNames( Option.builder((OptionNoArg) opt), shortPrefix, longPrefix) .build(); return ((NoArgParser<?>) exec).newInstance(adapted); }
/** * Closing a group with just one option is not allowed. */ @Test(expected = IllegalArgumentException.class) public void failGroup2() { Menu.builder() .openGroup() .add(Option.builder("v").build(), list, dummyHandler()) .closeGroup(); }
static OptionNoArg createJppfOpt(Builder builder) { return Option.builder("j") .longName("jppf") .description( "Compute the experiment using the JPPF framework", builder.getComputer() == Computers.DISTRIBUTED ? DEFAULT_LABEL : "", ". This option can not be used together with the --local option.") .build(); }
static OptionNoArg createLocalOpt(Builder builder) { return Option.builder("l") .longName("local") .description( "Compute the experiment locally", builder.getComputer() == Computers.LOCAL ? DEFAULT_LABEL : "", ". This option can not be used together with the --jppf option.") .build(); }
static OptionNoArg createJppfOpt(Builder builder) { return Option.builder("j") .longName("jppf") .description( "Compute the experiment using the JPPF framework", builder.getComputer() == Computers.DISTRIBUTED ? DEFAULT_LABEL : "", ". This option can not be used together with the --local option.") .build(); }
static OptionNoArg createLocalOpt(Builder builder) { return Option.builder("l") .longName("local") .description( "Compute the experiment locally", builder.getComputer() == Computers.LOCAL ? DEFAULT_LABEL : "", ". This option can not be used together with the --jppf option.") .build(); }