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(new String[] { "--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.setCaseSensitiveCommands(false); 31 jc.parse("--CONFIGURE"); 32 String command = jc.getParsedCommand(); 33 Assert.assertEquals(command, "--configure"); 34 } 35 abbreviatedOptions()36 public void abbreviatedOptions() { 37 class Arg { 38 @Parameter(names = { "-p", "--param" }) 39 private String param; 40 } 41 Arg a = new Arg(); 42 JCommander jc = new JCommander(a); 43 jc.setAllowAbbreviatedOptions(true); 44 jc.parse(new String[] { "--par", "foo" }); 45 Assert.assertEquals(a.param, "foo"); 46 } 47 abbreviatedOptionsCaseInsensitive()48 public void abbreviatedOptionsCaseInsensitive() { 49 class Arg { 50 @Parameter(names = { "-p", "--param" }) 51 private String param; 52 } 53 Arg a = new Arg(); 54 JCommander jc = new JCommander(a); 55 jc.setCaseSensitiveOptions(false); 56 jc.setAllowAbbreviatedOptions(true); 57 jc.parse(new String[] { "--PAR", "foo" }); 58 Assert.assertEquals(a.param, "foo"); 59 } 60 61 @Test(expectedExceptions = ParameterException.class) ambiguousAbbreviatedOptions()62 public void ambiguousAbbreviatedOptions() { 63 class Arg { 64 @Parameter(names = { "--param" }) 65 private String param; 66 @Parameter(names = { "--parb" }) 67 private String parb; 68 } 69 Arg a = new Arg(); 70 JCommander jc = new JCommander(a); 71 jc.setAllowAbbreviatedOptions(true); 72 jc.parse(new String[] { "--par", "foo" }); 73 Assert.assertEquals(a.param, "foo"); 74 } 75 76 @Test(expectedExceptions = ParameterException.class) ambiguousAbbreviatedOptionsCaseInsensitive()77 public void ambiguousAbbreviatedOptionsCaseInsensitive() { 78 class Arg { 79 @Parameter(names = { "--param" }) 80 private String param; 81 @Parameter(names = { "--parb" }) 82 private String parb; 83 } 84 Arg a = new Arg(); 85 JCommander jc = new JCommander(a); 86 jc.setCaseSensitiveOptions(false); 87 jc.setAllowAbbreviatedOptions(true); 88 jc.parse(new String[] { "--PAR", "foo" }); 89 Assert.assertEquals(a.param, "foo"); 90 } 91 92 @Test(enabled = false) main(String[] args)93 public static void main(String[] args) throws Exception { 94 new FinderTest().ambiguousAbbreviatedOptionsCaseInsensitive(); 95 } 96 97 } 98