@Test public void testCompletionCandidatesPriority_forParameters() { class App { @Parameters(completionCandidates = MyAbcdCandidates.class) MyEfgEnum x; } App app = new App(); CommandLine cmd = new CommandLine(app); assertEquals(Arrays.asList("A", "B", "C", "D"), cmd.getCommandSpec().positionalParameters().get(0).completionCandidates()); } @Test
@Test public void testCompletionCandidatesEnumValues_forParameters() { class App { @Parameters MyEfgEnum x; } App app = new App(); CommandLine cmd = new CommandLine(app); assertEquals(Arrays.asList("E", "F", "G"), cmd.getCommandSpec().positionalParameters().get(0).completionCandidates()); } @Test
@Test public void testCompletionCandidatesValues_forParameters() { class App { @Parameters(completionCandidates = MyAbcdCandidates.class) String x; } CommandLine cmd = new CommandLine(new App()); assertEquals(Arrays.asList("A", "B", "C", "D"), extract(cmd.getCommandSpec().positionalParameters().get(0).completionCandidates())); } @Test
@Test public void testCompletionCandidatesPriority_forParameters() { class App { @Parameters(completionCandidates = MyAbcdCandidates.class) MyEfgEnum x; } App app = new App(); CommandLine cmd = new CommandLine(app); assertEquals(Arrays.asList("A", "B", "C", "D"), cmd.getCommandSpec().positionalParameters().get(0).completionCandidates()); } @Test
@Test public void testCompletionCandidatesValues_forPositionalParamSpec() { CommandSpec spec = CommandSpec.create(); spec.add(PositionalParamSpec.builder().completionCandidates(Arrays.asList("x", "y", "z")).build()); assertEquals(Arrays.asList("x", "y", "z"), extract(spec.positionalParameters().get(0).completionCandidates())); } private static Map<String, String> createLongMap() {
private static void addCandidatesForArgsFollowing(PositionalParamSpec positionalSpec, List<CharSequence> candidates) { if (positionalSpec != null) { addCompletionCandidates(positionalSpec.completionCandidates(), candidates); } } private static void addCompletionCandidates(Iterable<String> completionCandidates, List<CharSequence> candidates) {
@Test public void testCompletionCandidatesValues_forParameters() { class App { @Parameters(completionCandidates = MyAbcdCandidates.class) String x; } CommandLine cmd = new CommandLine(new App()); assertEquals(Arrays.asList("A", "B", "C", "D"), extract(cmd.getCommandSpec().positionalParameters().get(0).completionCandidates())); } @Test
@Test public void testCompletionCandidatesEnumValues_forParameters() { class App { @Parameters MyEfgEnum x; } App app = new App(); CommandLine cmd = new CommandLine(app); assertEquals(Arrays.asList("E", "F", "G"), cmd.getCommandSpec().positionalParameters().get(0).completionCandidates()); } @Test
@Test public void testCompletionCandidatesValues_forPositionalParamSpec() { CommandSpec spec = CommandSpec.create(); spec.add(PositionalParamSpec.builder().completionCandidates(Arrays.asList("x", "y", "z")).build()); assertEquals(Arrays.asList("x", "y", "z"), extract(spec.positionalParameters().get(0).completionCandidates())); } private static Map<String, String> createLongMap() {
private static void addCandidatesForArgsFollowing(PositionalParamSpec positionalSpec, List<CharSequence> candidates) { if (positionalSpec != null) { addCompletionCandidates(positionalSpec.completionCandidates(), candidates); } } private static void addCompletionCandidates(Iterable<String> completionCandidates, List<CharSequence> candidates) {