@Override public TypedArgument<T> setDescription(String description) { super.setDescription(description); return this; }
case "description": if (member.getValue() instanceof String) { obj.setDescription((String)member.getValue());
@Test public void testWithArgumentReceivingMultipleValues() { CLI cli = new DefaultCLI().setName("test"); cli.addArgument(new Argument().setIndex(0).setArgName("arg").setDescription("argument1")); cli.addArgument(new Argument().setIndex(1).setMultiValued(true).setArgName("m").setDescription("multiple arg")); CommandLine cl = cli.parse(Arrays.asList("a", "b", "c")); assertThat((String) cl.getArgumentValue(0)).isEqualTo("a"); assertThat(cl.getArgumentValues(1)).containsExactly("b", "c"); assertThat((String) cl.getArgumentValue(1)).isEqualTo("b"); StringBuilder builder = new StringBuilder(); cli.usage(builder); assertThat(builder.toString()).contains("test arg m..."); }
@Test public void testUsageComputationWhenUsingRequiredOptionAndArgument() { final CLI cli = CLI.create("test") .addOption(new Option().setLongName("file").setShortName("f").setDescription("a file").setRequired(true)) .addArgument(new Argument().setArgName("foo").setDescription("foo").setRequired(true)); StringBuilder builder = new StringBuilder(); cli.usage(builder); assertThat(builder.toString()) .contains("test -f <value> foo") .contains(" -f,--file <value> a file") .contains("<foo> foo"); }
@Test public void testUsageComputationWithSeveralArguments() { final CLI cli = CLI.create("test") .addOption(new Option().setLongName("file").setShortName("f").setDescription("a file").setRequired(true)) .addArgument(new Argument().setIndex(0).setArgName("foo").setDescription("foo")) .addArgument(new Argument().setIndex(1)) .addArgument(new Argument().setIndex(2).setArgName("bar").setDescription("bar")); StringBuilder builder = new StringBuilder(); cli.usage(builder); assertThat(builder.toString()) .contains("test -f <value> foo value bar") .contains(" -f,--file <value> a file") .contains("<foo> foo") .contains("<value>") .contains("<bar> bar"); }
@Test public void testUsageComputationWithHiddenArguments() { final CLI cli = CLI.create("test") .addOption(new Option().setLongName("file").setShortName("f").setDescription("a file").setRequired(true)) .addArgument(new Argument().setIndex(0).setArgName("foo").setDescription("foo")) .addArgument(new Argument().setIndex(1)) .addArgument(new Argument().setIndex(2).setArgName("bar").setDescription("bar").setHidden(true)); StringBuilder builder = new StringBuilder(); cli.usage(builder); assertThat(builder.toString()) .contains("test -f <value> foo value") .contains(" -f,--file <value> a file") .contains("<foo> foo") .contains("<value>") .doesNotContain("bar"); }
@Override public TypedArgument<T> setDescription(String description) { super.setDescription(description); return this; }
addArgument(new Argument().setIndex(0).setArgName("http-url").setDescription("the HTTP uri to get"));
case "description": if (member.getValue() instanceof String) { obj.setDescription((String)member.getValue());
@Test public void testWithArgumentReceivingMultipleValues() { CLI cli = new DefaultCLI().setName("test"); cli.addArgument(new Argument().setIndex(0).setArgName("arg").setDescription("argument1")); cli.addArgument(new Argument().setIndex(1).setMultiValued(true).setArgName("m").setDescription("multiple arg")); CommandLine cl = cli.parse(Arrays.asList("a", "b", "c")); assertThat((String) cl.getArgumentValue(0)).isEqualTo("a"); assertThat(cl.getArgumentValues(1)).containsExactly("b", "c"); assertThat((String) cl.getArgumentValue(1)).isEqualTo("b"); StringBuilder builder = new StringBuilder(); cli.usage(builder); assertThat(builder.toString()).contains("test arg m..."); }
@Test public void testUsageComputationWhenUsingRequiredOptionAndArgument() { final CLI cli = CLI.create("test") .addOption(new Option().setLongName("file").setShortName("f").setDescription("a file").setRequired(true)) .addArgument(new Argument().setArgName("foo").setDescription("foo").setRequired(true)); StringBuilder builder = new StringBuilder(); cli.usage(builder); assertThat(builder.toString()) .contains("test -f <value> foo") .contains(" -f,--file <value> a file") .contains("<foo> foo"); }
@Test public void testUsageComputationWithSeveralArguments() { final CLI cli = CLI.create("test") .addOption(new Option().setLongName("file").setShortName("f").setDescription("a file").setRequired(true)) .addArgument(new Argument().setIndex(0).setArgName("foo").setDescription("foo")) .addArgument(new Argument().setIndex(1)) .addArgument(new Argument().setIndex(2).setArgName("bar").setDescription("bar")); StringBuilder builder = new StringBuilder(); cli.usage(builder); assertThat(builder.toString()) .contains("test -f <value> foo value bar") .contains(" -f,--file <value> a file") .contains("<foo> foo") .contains("<value>") .contains("<bar> bar"); }
@Test public void testUsageComputationWithHiddenArguments() { final CLI cli = CLI.create("test") .addOption(new Option().setLongName("file").setShortName("f").setDescription("a file").setRequired(true)) .addArgument(new Argument().setIndex(0).setArgName("foo").setDescription("foo")) .addArgument(new Argument().setIndex(1)) .addArgument(new Argument().setIndex(2).setArgName("bar").setDescription("bar").setHidden(true)); StringBuilder builder = new StringBuilder(); cli.usage(builder); assertThat(builder.toString()) .contains("test -f <value> foo value") .contains(" -f,--file <value> a file") .contains("<foo> foo") .contains("<value>") .doesNotContain("bar"); }