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