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.Argument;
22 import org.apache.commons.cli2.CommandLine;
23 import org.apache.commons.cli2.Group;
24 import org.apache.commons.cli2.Option;
25 import org.apache.commons.cli2.OptionException;
26 import org.apache.commons.cli2.builder.ArgumentBuilder;
27 import org.apache.commons.cli2.builder.DefaultOptionBuilder;
28 import org.apache.commons.cli2.builder.GroupBuilder;
29 import org.apache.commons.cli2.commandline.Parser;
30 import org.apache.commons.cli2.validation.NumberValidator;
31
32
33
34
35
36
37
38 public class BugCLI150Test extends TestCase
39 {
40 public void testNegativeNumber() throws OptionException
41 {
42 final DefaultOptionBuilder oBuilder = new DefaultOptionBuilder();
43 final ArgumentBuilder aBuilder = new ArgumentBuilder();
44 final GroupBuilder gBuilder = new GroupBuilder();
45
46 final Argument numArg = aBuilder.withValidator(
47 NumberValidator.getNumberInstance()).withMinimum(1)
48 .withMaximum(1).create();
49 final Option numOpt = oBuilder.withLongName("num").withArgument(numArg)
50 .create();
51 final Group options = gBuilder.withOption(numOpt).create();
52
53 final Parser parser = new Parser();
54 parser.setGroup(options);
55
56 CommandLine cl = parser.parse(new String[] {
57 "--num", "-42"
58 });
59 Number num = (Number) cl.getValue(numOpt);
60 assertEquals("Wrong option value", -42, num.intValue());
61 }
62 }