consumer, new AddToListHandler<List<TestEnum>>()) .build();
/** * Tests correct parsing of enum. */ @Test public void testEnum() { final List<TestEnum> consumer = new ArrayList<>(); final Menu m = Menu.builder() .addHelpOption("h", "help", "Hi") .add(Option.builder("e", ArgumentParser.enumParser("testenum", TestEnum.class)).build(), consumer, new AddToListHandler<TestEnum>()) .build(); m.execute("-e", "A"); assertThat(consumer) .containsExactly(TestEnum.A); consumer.clear(); m.execute("-e", "B"); assertThat(consumer) .containsExactly(TestEnum.B); consumer.clear(); testFail(m, "e", CauseType.INVALID_ARG_FORMAT, "-e", "a"); testFail(m, "e", CauseType.INVALID_ARG_FORMAT, "-e", "NON_EXISTING_ENUM"); assertThat(consumer).isEmpty(); }
/** * Test for adding an entire sub menu. */ @Test public void testAddSubMenu() { final Menu m = Menu.builder() .addSubMenu("l", "list.", menu) .addHelpOption("d", "delp", "Help") .build(); // help options are not copied assertFalse(m.containsOption("h")); assertFalse(m.containsOption("lh")); assertEquals(m.getOptionNames().size(), menu.getOptionNames().size()); }
.header("This is the header") .commandLineSyntax("ctrl-alt-del") .build();
/** * Creates the default {@link com.github.rinde.rinsim.cli.Menu.Builder} for * creating the {@link Menu} instances. * @param builder The {@link FileProvider.Builder} that should be controlled * via CLI. * @return The new menu builder. */ public static Menu createDefaultMenu( FileProvider.Builder builder) { final Map<String, Path> pathMap = createPathMap(builder); final Menu.Builder cliBuilder = Menu.builder() .addHelpOption("h", "help", "Print this message") .add(createAddOption(), builder, ADD) .add(createFilterOption(builder), builder, FILTER); if (!pathMap.isEmpty()) { cliBuilder .openGroup() .add(createIncludeOption(pathMap, builder), builder, new IncludeHandler(pathMap)) .add(createExcludeOption(pathMap, builder), builder, new ExcludeHandler(pathMap)) .closeGroup(); } return cliBuilder.build(); }
/** * Creates the default {@link com.github.rinde.rinsim.cli.Menu.Builder} for * creating the {@link Menu} instances. * @param builder The {@link FileProvider.Builder} that should be controlled * via CLI. * @return The new menu builder. */ public static Menu createDefaultMenu( FileProvider.Builder builder) { final Map<String, Path> pathMap = createPathMap(builder); final Menu.Builder cliBuilder = Menu.builder() .addHelpOption("h", "help", "Print this message") .add(createAddOption(), builder, ADD) .add(createFilterOption(builder), builder, FILTER); if (!pathMap.isEmpty()) { cliBuilder .openGroup() .add(createIncludeOption(pathMap, builder), builder, new IncludeHandler(pathMap)) .add(createExcludeOption(pathMap, builder), builder, new ExcludeHandler(pathMap)) .closeGroup(); } return cliBuilder.build(); }
/** * 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"); }
/** * Test for setting a custom help formatter. */ @Test public void testCustomHelpFormatter() { final HelpFormatter defaultFormatter = DefaultHelpFormatter.INSTANCE; final HelpFormatter customFormatter = new DummyHelpFormatter(); final Menu m = Menu.builder() .addHelpOption("h", "help", "help") .commandLineSyntax("") .helpFormatter(customFormatter) .build(); assertEquals(" -h,--help help\n", defaultFormatter.format(m)); assertEquals("[h, help]", customFormatter.format(m)); assertNotEquals(defaultFormatter.format(m), m.printHelp()); assertEquals(customFormatter.format(m), m.printHelp()); }
/** * Creates a {@link Menu} for a {@link Experiment.Builder} instance. * @param builder The instance to create a {@link Menu} for. * @return A newly constructed {@link Menu}. */ public static Menu createMenu(Experiment.Builder builder) { return createMenuBuilder(builder).build(); }
/** * Creates a {@link Menu} for a {@link Experiment.Builder} instance. * @param builder The instance to create a {@link Menu} for. * @return A newly constructed {@link Menu}. */ public static Menu createMenu(Experiment.Builder builder) { return createMenuBuilder(builder).build(); }