@Test public void withDefaultNonOptionArgsNameAndNoNonOptionArgsPresent() { EnumerablePropertySource<?> ps = new SimpleCommandLinePropertySource("--o1=v1", "--o2"); assertThat(ps.containsProperty("nonOptionArgs"), is(false)); assertThat(ps.containsProperty("o1"), is(true)); assertThat(ps.containsProperty("o2"), is(true)); assertThat(ps.containsProperty("nonOptionArgs"), is(false)); assertThat(ps.getProperty("nonOptionArgs"), nullValue()); assertThat(ps.getPropertyNames().length, is(2)); }
@Test public void withDefaultNonOptionArgsNameAndNoNonOptionArgsPresent() { OptionParser parser = new OptionParser(); parser.acceptsAll(Arrays.asList("o1","option1")).withRequiredArg(); parser.accepts("o2"); OptionSet optionSet = parser.parse("--o1=v1", "--o2"); EnumerablePropertySource<?> ps = new JOptCommandLinePropertySource(optionSet); assertThat(ps.containsProperty("nonOptionArgs"), is(false)); assertThat(ps.containsProperty("o1"), is(true)); assertThat(ps.containsProperty("o2"), is(true)); assertThat(ps.containsProperty("nonOptionArgs"), is(false)); assertThat(ps.getProperty("nonOptionArgs"), nullValue()); assertThat(ps.getPropertyNames().length, is(2)); }
@Override public boolean containsProperty(String name) { return ps.containsProperty(prefix + name); } };
@Override public Object getProperty(String name) { // Resolve thru the module first Object result = moduleOptionsPropertySource.getProperty(name); if (result != null) { return result; } // If module could not resolve, but it is *known* to be // a valid module option name, do NOT delegate to the env // as it could end up in false positives if (moduleOptionsPropertySource.containsProperty(name)) { return null; } else { return parent == null ? null : parent.getProperty(name); } } };