1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 package org.apache.commons.cli;
19
20 import static org.junit.jupiter.api.Assertions.assertFalse;
21 import static org.junit.jupiter.api.Assertions.assertTrue;
22
23 import org.junit.jupiter.api.Test;
24
25 public class DisablePartialMatchingTest {
26 @Test
27 public void testDisablePartialMatching() throws Exception {
28 final CommandLineParser parser = new DefaultParser(false);
29
30 final Options options = new Options();
31
32 options.addOption(new Option("d", "debug", false, "Turn on debug."));
33 options.addOption(new Option("e", "extract", false, "Turn on extract."));
34 options.addOption(new Option("o", "option", true, "Turn on option with argument."));
35
36 final CommandLine line = parser.parse(options, new String[] {"-de", "--option=foobar"});
37
38 assertTrue(line.hasOption("debug"), "There should be an option debug in any case...");
39 assertTrue(line.hasOption("extract"), "There should be an extract option because partial matching is off");
40 assertTrue(line.hasOption("option"), "There should be an option option with a argument value");
41 }
42
43 @Test
44 public void testRegularPartialMatching() throws Exception {
45 final CommandLineParser parser = new DefaultParser();
46
47 final Options options = new Options();
48
49 options.addOption(new Option("d", "debug", false, "Turn on debug."));
50 options.addOption(new Option("e", "extract", false, "Turn on extract."));
51 options.addOption(new Option("o", "option", true, "Turn on option with argument."));
52
53 final CommandLine line = parser.parse(options, new String[] {"-de", "--option=foobar"});
54
55 assertTrue(line.hasOption("debug"), "There should be an option debug in any case...");
56 assertFalse(line.hasOption("extract"), "There should not be an extract option because partial matching only selects debug");
57 assertTrue(line.hasOption("option"), "There should be an option option with a argument value");
58 }
59 }