opt.setLongName(option.longName()) .setShortName(option.shortName()) .setMultiValued(option.acceptMultipleValues()) .setSingleValued(option.acceptValue()) .setArgName(option.argName()) opt .setType(ReflectionUtils.getComponentType(method.getParameters()[0])) .setMultiValued(true); } else { final Class<?> type = method.getParameters()[0].getType();
@Test public void testPropertiesOption1() throws Exception { String[] args = new String[]{"-Jsource=1.5", "-J", "target", "1.5", "foo"}; TypedOption<String> f = new TypedOption<String>().setShortName("J") .setType(String.class) .setMultiValued(true); cli.addOption(f); CommandLine evaluated = cli.parse(Arrays.asList(args)); List<String> values = evaluated.getOptionValues("J"); assertThat(values).hasSize(4).containsExactly("source=1.5", "target", "1.5", "foo"); }
@Test public void testMultiValues() throws Exception { String[] args = new String[]{"-e", "one", "two", "-f", "1"}; TypedOption<String> e = new TypedOption<String>().setShortName("e") .setMultiValued(true).setType(String.class); TypedOption<Integer> f = new TypedOption<Integer>().setShortName("f") .setMultiValued(true).setType(Integer.class); cli.addOption(e).addOption(f); CommandLine evaluated = cli.parse(Arrays.asList(args)); assertThat(evaluated.getOptionValues("e")).contains("one", "two").hasSize(2); assertThat(evaluated.getOptionValues("f")).contains(1).hasSize(1); }
@Test public void testWithDashD() throws CLIException { CLI cli = new DefaultCLI().setName("test"); Option[] options = new Option[]{ new TypedOption<String>().setShortName("D").setLongName("systemProperty") .setMultiValued(true).setType(String.class), new TypedOption<Boolean>().setShortName("F").setLongName("flag") .setFlag(true) .setType(Boolean.class) }; cli.addOptions(Arrays.asList(options)); CommandLine evaluated = cli.parse(Arrays.asList("-Dx=y", "-F")); assertThat(evaluated.cli().getOptions()).hasSize(2); assertThat(evaluated.getRawValueForOption(evaluated.cli().getOption("systemProperty"))) .isEqualTo("x=y"); assertThat((boolean) evaluated.getOptionValue("flag")).isTrue(); }
opt.setLongName(option.longName()) .setShortName(option.shortName()) .setMultiValued(option.acceptMultipleValues()) .setSingleValued(option.acceptValue()) .setArgName(option.argName()) opt .setType(ReflectionUtils.getComponentType(method.getParameters()[0])) .setMultiValued(true); } else { final Class<?> type = method.getParameters()[0].getType();
@Test public void testPropertiesOption1() throws Exception { String[] args = new String[]{"-Jsource=1.5", "-J", "target", "1.5", "foo"}; TypedOption<String> f = new TypedOption<String>().setShortName("J") .setType(String.class) .setMultiValued(true); cli.addOption(f); CommandLine evaluated = cli.parse(Arrays.asList(args)); List<String> values = evaluated.getOptionValues("J"); assertThat(values).hasSize(4).containsExactly("source=1.5", "target", "1.5", "foo"); }
@Test public void testMultiValues() throws Exception { String[] args = new String[]{"-e", "one", "two", "-f", "1"}; TypedOption<String> e = new TypedOption<String>().setShortName("e") .setMultiValued(true).setType(String.class); TypedOption<Integer> f = new TypedOption<Integer>().setShortName("f") .setMultiValued(true).setType(Integer.class); cli.addOption(e).addOption(f); CommandLine evaluated = cli.parse(Arrays.asList(args)); assertThat(evaluated.getOptionValues("e")).contains("one", "two").hasSize(2); assertThat(evaluated.getOptionValues("f")).contains(1).hasSize(1); }
@Test public void testWithDashD() throws CLIException { CLI cli = new DefaultCLI().setName("test"); Option[] options = new Option[]{ new TypedOption<String>().setShortName("D").setLongName("systemProperty") .setMultiValued(true).setType(String.class), new TypedOption<Boolean>().setShortName("F").setLongName("flag") .setFlag(true) .setType(Boolean.class) }; cli.addOptions(Arrays.asList(options)); CommandLine evaluated = cli.parse(Arrays.asList("-Dx=y", "-F")); assertThat(evaluated.cli().getOptions()).hasSize(2); assertThat(evaluated.getRawValueForOption(evaluated.cli().getOption("systemProperty"))) .isEqualTo("x=y"); assertThat((boolean) evaluated.getOptionValue("flag")).isTrue(); }