1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.apache.commons.cli2.bug;
18
19 import junit.framework.TestCase;
20
21 import org.apache.commons.cli2.CommandLine;
22 import org.apache.commons.cli2.Group;
23 import org.apache.commons.cli2.Option;
24 import org.apache.commons.cli2.builder.ArgumentBuilder;
25 import org.apache.commons.cli2.builder.DefaultOptionBuilder;
26 import org.apache.commons.cli2.builder.GroupBuilder;
27 import org.apache.commons.cli2.commandline.Parser;
28
29
30
31
32 public class Bug15046Test extends TestCase {
33
34 public Bug15046Test(String name) {
35 super(name);
36 }
37
38 public void testParamNamedAsOption() throws Exception {
39 final String[] CLI_ARGS = new String[] { "-z", "c" };
40
41 DefaultOptionBuilder obuilder = new DefaultOptionBuilder();
42 ArgumentBuilder abuilder = new ArgumentBuilder();
43
44 Option option =
45 obuilder
46 .withShortName("z")
47 .withLongName("timezone")
48 .withDescription("affected option")
49 .withArgument(abuilder.withName("timezone").create())
50 .create();
51
52 GroupBuilder gbuilder = new GroupBuilder();
53 Group options =
54 gbuilder.withName("bug15046").withOption(option).create();
55
56 Parser parser = new Parser();
57 parser.setGroup(options);
58 CommandLine line = parser.parse(CLI_ARGS);
59
60 assertEquals("c", line.getValue("-z"));
61
62 Option c =
63 obuilder
64 .withShortName("c")
65 .withLongName("conflict")
66 .withDescription("conflicting option")
67 .withArgument(abuilder.withName("conflict").create())
68 .create();
69
70 options =
71 gbuilder
72 .withName("bug15046")
73 .withOption(option)
74 .withOption(c)
75 .create();
76
77 parser.setGroup(options);
78 line = parser.parse(CLI_ARGS);
79
80 assertEquals("c", line.getValue("-z"));
81 }
82 }