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 import org.apache.commons.cli2.*;
21 import org.apache.commons.cli2.builder.ArgumentBuilder;
22 import org.apache.commons.cli2.builder.DefaultOptionBuilder;
23 import org.apache.commons.cli2.builder.GroupBuilder;
24 import org.apache.commons.cli2.commandline.Parser;
25 import org.apache.commons.cli2.validation.FileValidator;
26
27
28
29
30 public class BugCLI122Test extends TestCase {
31 public void testArgumentWhichStartsWithDash() throws OptionException {
32 Argument wdArg = new ArgumentBuilder()
33 .withName("anything")
34 .withMaximum(1)
35 .withMinimum(1)
36 .withInitialSeparator('=')
37 .create();
38
39 Option wdOpt = new DefaultOptionBuilder().withArgument(wdArg)
40 .withDescription("anything, foo or -foo")
41 .withLongName("argument")
42 .withShortName("a")
43 .create();
44
45 Group group = new GroupBuilder().withOption(wdOpt).create();
46
47 Parser p = new Parser();
48 p.setGroup(group);
49 CommandLine normal = p.parse (new String[]{"-a", "foo"});
50 assertNotNull(normal);
51 assertEquals(normal.getValue(wdOpt), "foo");
52
53 CommandLine withDash = p.parse (new String[]{"--argument", "\"-foo\""});
54 assertNotNull(withDash);
55 assertEquals("-foo", withDash.getValue(wdOpt));
56
57 CommandLine withDashAndEquals = p.parse (new String[]{"--argument=-foo"});
58 assertNotNull(withDashAndEquals);
59 assertEquals("-foo", withDashAndEquals.getValue(wdOpt));
60 }
61 }