@Test public void testMatchedPositionalsByIndex() { class App { @Option(names = "-x") String x; @Parameters(index = "0", arity = "0..1") int index0 = -1; @Parameters(index = "1", arity = "0..1") int index1 = -1; @Parameters(index = "2", arity = "0..1") int index2 = -1; } CommandLine cmd = new CommandLine(new App()); ParseResult parseResult = cmd.parseArgs("-x", "xval", "0", "1"); List<PositionalParamSpec> all = cmd.getCommandSpec().positionalParameters(); assertEquals(3, all.size()); List<PositionalParamSpec> foundFirst = parseResult.matchedPositionals(0); assertEquals(1, foundFirst.size()); assertSame(all.get(0), foundFirst.get(0)); assertSame(parseResult.matchedPositional(0), foundFirst.get(0)); List<PositionalParamSpec> foundSecond = parseResult.matchedPositionals(1); assertEquals(1, foundSecond.size()); assertSame(all.get(1), foundSecond.get(0)); assertSame(parseResult.matchedPositional(1), foundSecond.get(0)); List<PositionalParamSpec> foundThird = parseResult.matchedPositionals(2); assertEquals(0, foundThird.size()); }
@Test public void testMatchedPositionals_ReturnsOnlyMatchedPositionals() { class App { @Option(names = "-x") String x; @Parameters(index = "0", arity = "0..1") int index0 = -1; @Parameters(index = "1", arity = "0..1") int index1 = -1; @Parameters(index = "2", arity = "0..1") int index2 = -1; } CommandLine cmd = new CommandLine(new App()); ParseResult parseResult = cmd.parseArgs("-x", "xval", "0", "1"); List<PositionalParamSpec> all = cmd.getCommandSpec().positionalParameters(); assertEquals(3, all.size()); List<PositionalParamSpec> found = parseResult.matchedPositionals(); assertEquals(2, found.size()); assertSame(all.get(0), found.get(0)); assertSame(all.get(1), found.get(1)); assertSame(parseResult.matchedPositional(0), found.get(0)); assertSame(parseResult.matchedPositional(1), found.get(1)); assertNull(parseResult.matchedPositional(2)); }
assertEquals(3, result.matchedPositionals().size()); assertEquals(Range.valueOf("0..1"), result.matchedPositionals().get(0).index()); assertEquals(Range.valueOf("0..*"), result.matchedPositionals().get(1).index()); assertEquals(Range.valueOf("1..*"), result.matchedPositionals().get(2).index()); assertArrayEquals(args, (String[]) result.matchedPositionals().get(1).getValue()); assertArrayEquals(new String[]{"a", "b"}, (String[]) result.matchedPositionals().get(0).getValue()); assertArrayEquals(new String[]{"b", "c", "d", "e"}, (String[]) result.matchedPositionals().get(2).getValue());
assertEquals(3, result.matchedPositionals().size()); assertEquals(Range.valueOf("0..1"), result.matchedPositionals().get(0).index()); assertEquals(Range.valueOf("0..*"), result.matchedPositionals().get(1).index()); assertEquals(Range.valueOf("1..*"), result.matchedPositionals().get(2).index()); assertArrayEquals(args, (String[]) result.matchedPositionals().get(1).getValue()); assertArrayEquals(new String[]{"a", "b"}, (String[]) result.matchedPositionals().get(0).getValue()); assertArrayEquals(new String[]{"b", "c", "d", "e"}, (String[]) result.matchedPositionals().get(2).getValue());
@Test public void testMatchedPositionalsByIndex() { class App { @Option(names = "-x") String x; @Parameters(index = "0", arity = "0..1") int index0 = -1; @Parameters(index = "1", arity = "0..1") int index1 = -1; @Parameters(index = "2", arity = "0..1") int index2 = -1; } CommandLine cmd = new CommandLine(new App()); ParseResult parseResult = cmd.parseArgs("-x", "xval", "0", "1"); List<PositionalParamSpec> all = cmd.getCommandSpec().positionalParameters(); assertEquals(3, all.size()); List<PositionalParamSpec> foundFirst = parseResult.matchedPositionals(0); assertEquals(1, foundFirst.size()); assertSame(all.get(0), foundFirst.get(0)); assertSame(parseResult.matchedPositional(0), foundFirst.get(0)); List<PositionalParamSpec> foundSecond = parseResult.matchedPositionals(1); assertEquals(1, foundSecond.size()); assertSame(all.get(1), foundSecond.get(0)); assertSame(parseResult.matchedPositional(1), foundSecond.get(0)); List<PositionalParamSpec> foundThird = parseResult.matchedPositionals(2); assertEquals(0, foundThird.size()); }
@Test public void testMatchedPositionals_ReturnsOnlyMatchedPositionals() { class App { @Option(names = "-x") String x; @Parameters(index = "0", arity = "0..1") int index0 = -1; @Parameters(index = "1", arity = "0..1") int index1 = -1; @Parameters(index = "2", arity = "0..1") int index2 = -1; } CommandLine cmd = new CommandLine(new App()); ParseResult parseResult = cmd.parseArgs("-x", "xval", "0", "1"); List<PositionalParamSpec> all = cmd.getCommandSpec().positionalParameters(); assertEquals(3, all.size()); List<PositionalParamSpec> found = parseResult.matchedPositionals(); assertEquals(2, found.size()); assertSame(all.get(0), found.get(0)); assertSame(all.get(1), found.get(1)); assertSame(parseResult.matchedPositional(0), found.get(0)); assertSame(parseResult.matchedPositional(1), found.get(1)); assertNull(parseResult.matchedPositional(2)); }
@Test public void testMatchedPositionalValue() { class App { @Parameters(index = "0", arity = "0..1") int index0 = -1; @Parameters(index = "1", arity = "0..1") int index1 = -1; @Parameters(index = "2", arity = "0..1") int index2 = -1; } App app = new App(); CommandLine cmd = new CommandLine(app); ParseResult parseResult = cmd.parseArgs("0", "1"); assertEquals( 0, app.index0); assertEquals( 1, app.index1); assertEquals(-1, app.index2); List<PositionalParamSpec> found = parseResult.matchedPositionals(); assertEquals(2, found.size()); assertEquals(Integer.valueOf(0), parseResult.matchedPositionalValue(0, 0)); assertEquals(Integer.valueOf(1), parseResult.matchedPositionalValue(1, 1)); assertNull(parseResult.matchedPositionalValue(2, null)); }
@Test public void testIsUsageHelpRequested() { @Command(mixinStandardHelpOptions = true) class App { @Option(names = "-x") String x; } CommandLine cmd = new CommandLine(new App()); ParseResult parseResult = cmd.parseArgs("-h"); assertTrue(parseResult.isUsageHelpRequested()); assertFalse(parseResult.isVersionHelpRequested()); assertSame(cmd.getCommandSpec().optionsMap().get("-h"), parseResult.matchedOption('h')); assertTrue(parseResult.unmatched().isEmpty()); assertTrue(parseResult.matchedPositionals().isEmpty()); }
@Test public void testMatchedPositionalValue() { class App { @Parameters(index = "0", arity = "0..1") int index0 = -1; @Parameters(index = "1", arity = "0..1") int index1 = -1; @Parameters(index = "2", arity = "0..1") int index2 = -1; } App app = new App(); CommandLine cmd = new CommandLine(app); ParseResult parseResult = cmd.parseArgs("0", "1"); assertEquals( 0, app.index0); assertEquals( 1, app.index1); assertEquals(-1, app.index2); List<PositionalParamSpec> found = parseResult.matchedPositionals(); assertEquals(2, found.size()); assertEquals(Integer.valueOf(0), parseResult.matchedPositionalValue(0, 0)); assertEquals(Integer.valueOf(1), parseResult.matchedPositionalValue(1, 1)); assertNull(parseResult.matchedPositionalValue(2, null)); }
@Test public void testIsUsageHelpRequested() { @Command(mixinStandardHelpOptions = true) class App { @Option(names = "-x") String x; } CommandLine cmd = new CommandLine(new App()); ParseResult parseResult = cmd.parseArgs("-h"); assertTrue(parseResult.isUsageHelpRequested()); assertFalse(parseResult.isVersionHelpRequested()); assertSame(cmd.getCommandSpec().optionsMap().get("-h"), parseResult.matchedOption('h')); assertTrue(parseResult.unmatched().isEmpty()); assertTrue(parseResult.matchedPositionals().isEmpty()); }