• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 package com.beust.jcommander;
2 
3 import com.beust.jcommander.JCommanderTest.BaseArgs;
4 import com.beust.jcommander.JCommanderTest.ConfigureArgs;
5 
6 import org.testng.Assert;
7 import org.testng.annotations.Test;
8 
9 @Test
10 public class FinderTest {
caseInsensitiveOption()11   public void caseInsensitiveOption() {
12     class Arg {
13 
14       @Parameter(names = { "-p", "--param" })
15       private String param;
16     }
17     Arg a = new Arg();
18     JCommander jc = new JCommander(a);
19     jc.setCaseSensitiveOptions(false);
20     jc.parse("--PARAM", "foo");
21     Assert.assertEquals(a.param, "foo");
22   }
23 
caseInsensitiveCommand()24   public void caseInsensitiveCommand() {
25     BaseArgs a = new BaseArgs();
26     ConfigureArgs conf = new ConfigureArgs();
27     JCommander jc = new JCommander(a);
28     jc.addCommand(conf);
29     jc.setCaseSensitiveOptions(false);
30     jc.parse("--CONFIGURE");
31     String command = jc.getParsedCommand();
32     Assert.assertEquals(command, "--configure");
33   }
34 
abbreviatedOptions()35   public void abbreviatedOptions() {
36     class Arg {
37       @Parameter(names = { "-p", "--param" })
38       private String param;
39     }
40     Arg a = new Arg();
41     JCommander jc = new JCommander(a);
42     jc.setAllowAbbreviatedOptions(true);
43     jc.parse("--par", "foo");
44     Assert.assertEquals(a.param, "foo");
45   }
46 
abbreviatedOptionsCaseInsensitive()47   public void abbreviatedOptionsCaseInsensitive() {
48     class Arg {
49       @Parameter(names = { "-p", "--param" })
50       private String param;
51     }
52     Arg a = new Arg();
53     JCommander jc = new JCommander(a);
54     jc.setCaseSensitiveOptions(false);
55     jc.setAllowAbbreviatedOptions(true);
56     jc.parse("--PAR", "foo");
57     Assert.assertEquals(a.param, "foo");
58   }
59 
60   @Test(expectedExceptions = ParameterException.class)
ambiguousAbbreviatedOptions()61   public void ambiguousAbbreviatedOptions() {
62     class Arg {
63       @Parameter(names = { "--param" })
64       private String param;
65       @Parameter(names = { "--parb" })
66       private String parb;
67     }
68     Arg a = new Arg();
69     JCommander jc = new JCommander(a);
70     jc.setAllowAbbreviatedOptions(true);
71     jc.parse("--par", "foo");
72     Assert.assertEquals(a.param, "foo");
73   }
74 
75   @Test(expectedExceptions = ParameterException.class)
ambiguousAbbreviatedOptionsCaseInsensitive()76   public void ambiguousAbbreviatedOptionsCaseInsensitive() {
77     class Arg {
78       @Parameter(names = { "--param" })
79       private String param;
80       @Parameter(names = { "--parb" })
81       private String parb;
82     }
83     Arg a = new Arg();
84     JCommander jc = new JCommander(a);
85     jc.setCaseSensitiveOptions(false);
86     jc.setAllowAbbreviatedOptions(true);
87     jc.parse("--PAR", "foo");
88     Assert.assertEquals(a.param, "foo");
89   }
90 
91   @Test(enabled = false)
main(String[] args)92   public static void main(String[] args) throws Exception {
93     new FinderTest().ambiguousAbbreviatedOptionsCaseInsensitive();
94   }
95 
96 }
97