@Test public void withOptionArgsOnly() { CommandLinePropertySource<?> ps = new SimpleCommandLinePropertySource("--o1=v1", "--o2"); assertThat(ps.containsProperty("o1"), is(true)); assertThat(ps.containsProperty("o2"), is(true)); assertThat(ps.containsProperty("o3"), is(false)); assertThat(ps.getProperty("o1"), equalTo("v1")); assertThat(ps.getProperty("o2"), equalTo("")); assertThat(ps.getProperty("o3"), nullValue()); }
@Test public void withDefaultNonOptionArgsNameAndNonOptionArgsPresent() { CommandLinePropertySource<?> ps = new SimpleCommandLinePropertySource("--o1=v1", "noa1", "--o2", "noa2"); assertThat(ps.containsProperty("nonOptionArgs"), is(true)); assertThat(ps.containsProperty("o1"), is(true)); assertThat(ps.containsProperty("o2"), is(true)); String nonOptionArgs = ps.getProperty("nonOptionArgs"); assertThat(nonOptionArgs, equalTo("noa1,noa2")); }
@Test public void withCustomNonOptionArgsNameAndNoNonOptionArgsPresent() { CommandLinePropertySource<?> ps = new SimpleCommandLinePropertySource("--o1=v1", "noa1", "--o2", "noa2"); ps.setNonOptionArgsPropertyName("NOA"); assertThat(ps.containsProperty("nonOptionArgs"), is(false)); assertThat(ps.containsProperty("NOA"), is(true)); assertThat(ps.containsProperty("o1"), is(true)); assertThat(ps.containsProperty("o2"), is(true)); String nonOptionArgs = ps.getProperty("NOA"); assertThat(nonOptionArgs, equalTo("noa1,noa2")); }
@Test public void withDottedOptionName() { OptionParser parser = new OptionParser(); parser.accepts("spring.profiles.active").withRequiredArg(); OptionSet options = parser.parse("--spring.profiles.active=p1"); CommandLinePropertySource<?> ps = new JOptCommandLinePropertySource(options); assertThat(ps.getProperty("spring.profiles.active"), equalTo("p1")); }
@Test public void withRequiredArg_andMultipleArgsPresent_usingDelimiter() { OptionParser parser = new OptionParser(); parser.accepts("foo").withRequiredArg().withValuesSeparatedBy(','); OptionSet options = parser.parse("--foo=bar,baz,biz"); CommandLinePropertySource<?> ps = new JOptCommandLinePropertySource(options); assertEquals(Arrays.asList("bar","baz","biz"), ps.getOptionValues("foo")); assertThat(ps.getProperty("foo"), equalTo("bar,baz,biz")); }
@Test public void withRequiredArg_andMultipleArgsPresent_usingRepeatedOption() { OptionParser parser = new OptionParser(); parser.accepts("foo").withRequiredArg().withValuesSeparatedBy(','); OptionSet options = parser.parse("--foo=bar", "--foo=baz", "--foo=biz"); CommandLinePropertySource<?> ps = new JOptCommandLinePropertySource(options); assertEquals(Arrays.asList("bar","baz","biz"), ps.getOptionValues("foo")); assertThat(ps.getProperty("foo"), equalTo("bar,baz,biz")); }
@Test public void withCustomNonOptionArgsNameAndNoNonOptionArgsPresent() { OptionParser parser = new OptionParser(); parser.accepts("o1").withRequiredArg(); parser.accepts("o2"); OptionSet optionSet = parser.parse("--o1=v1", "noa1", "--o2", "noa2"); CommandLinePropertySource<?> ps = new JOptCommandLinePropertySource(optionSet); ps.setNonOptionArgsPropertyName("NOA"); assertThat(ps.containsProperty("nonOptionArgs"), is(false)); assertThat(ps.containsProperty("NOA"), is(true)); assertThat(ps.containsProperty("o1"), is(true)); assertThat(ps.containsProperty("o2"), is(true)); String nonOptionArgs = ps.getProperty("NOA"); assertThat(nonOptionArgs, equalTo("noa1,noa2")); }