diff options
Diffstat (limited to 'src/test/java/com/beust/jcommander/FinderTest.java')
-rw-r--r-- | src/test/java/com/beust/jcommander/FinderTest.java | 97 |
1 files changed, 97 insertions, 0 deletions
diff --git a/src/test/java/com/beust/jcommander/FinderTest.java b/src/test/java/com/beust/jcommander/FinderTest.java new file mode 100644 index 0000000..94bf812 --- /dev/null +++ b/src/test/java/com/beust/jcommander/FinderTest.java @@ -0,0 +1,97 @@ +package com.beust.jcommander; + +import com.beust.jcommander.JCommanderTest.BaseArgs; +import com.beust.jcommander.JCommanderTest.ConfigureArgs; + +import org.testng.Assert; +import org.testng.annotations.Test; + +@Test +public class FinderTest { + public void caseInsensitiveOption() { + class Arg { + + @Parameter(names = { "-p", "--param" }) + private String param; + } + Arg a = new Arg(); + JCommander jc = new JCommander(a); + jc.setCaseSensitiveOptions(false); + jc.parse(new String[] { "--PARAM", "foo" }); + Assert.assertEquals(a.param, "foo"); + } + + public void caseInsensitiveCommand() { + BaseArgs a = new BaseArgs(); + ConfigureArgs conf = new ConfigureArgs(); + JCommander jc = new JCommander(a); + jc.addCommand(conf); + jc.setCaseSensitiveOptions(false); +// jc.setCaseSensitiveCommands(false); + jc.parse("--CONFIGURE"); + String command = jc.getParsedCommand(); + Assert.assertEquals(command, "--configure"); + } + + public void abbreviatedOptions() { + class Arg { + @Parameter(names = { "-p", "--param" }) + private String param; + } + Arg a = new Arg(); + JCommander jc = new JCommander(a); + jc.setAllowAbbreviatedOptions(true); + jc.parse(new String[] { "--par", "foo" }); + Assert.assertEquals(a.param, "foo"); + } + + public void abbreviatedOptionsCaseInsensitive() { + class Arg { + @Parameter(names = { "-p", "--param" }) + private String param; + } + Arg a = new Arg(); + JCommander jc = new JCommander(a); + jc.setCaseSensitiveOptions(false); + jc.setAllowAbbreviatedOptions(true); + jc.parse(new String[] { "--PAR", "foo" }); + Assert.assertEquals(a.param, "foo"); + } + + @Test(expectedExceptions = ParameterException.class) + public void ambiguousAbbreviatedOptions() { + class Arg { + @Parameter(names = { "--param" }) + private String param; + @Parameter(names = { "--parb" }) + private String parb; + } + Arg a = new Arg(); + JCommander jc = new JCommander(a); + jc.setAllowAbbreviatedOptions(true); + jc.parse(new String[] { "--par", "foo" }); + Assert.assertEquals(a.param, "foo"); + } + + @Test(expectedExceptions = ParameterException.class) + public void ambiguousAbbreviatedOptionsCaseInsensitive() { + class Arg { + @Parameter(names = { "--param" }) + private String param; + @Parameter(names = { "--parb" }) + private String parb; + } + Arg a = new Arg(); + JCommander jc = new JCommander(a); + jc.setCaseSensitiveOptions(false); + jc.setAllowAbbreviatedOptions(true); + jc.parse(new String[] { "--PAR", "foo" }); + Assert.assertEquals(a.param, "foo"); + } + + @Test(enabled = false) + public static void main(String[] args) throws Exception { + new FinderTest().ambiguousAbbreviatedOptionsCaseInsensitive(); + } + +} |