diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/main/java/com/beust/jcommander/JCommander.java | 5 | ||||
-rw-r--r-- | src/test/java/com/beust/jcommander/JCommanderTest.java | 6 | ||||
-rw-r--r-- | src/test/java/com/beust/jcommander/args/ArgsEnum.java | 2 |
3 files changed, 8 insertions, 5 deletions
diff --git a/src/main/java/com/beust/jcommander/JCommander.java b/src/main/java/com/beust/jcommander/JCommander.java index efde39e..4f2929e 100644 --- a/src/main/java/com/beust/jcommander/JCommander.java +++ b/src/main/java/com/beust/jcommander/JCommander.java @@ -1263,7 +1263,10 @@ public class JCommander { String optionName = names.length > 0 ? names[0] : "[Main class]"; if (converterClass != null && converterClass.isEnum()) { try { - result = Enum.valueOf((Class<? extends Enum>) converterClass, value.toUpperCase()); + result = Enum.valueOf((Class<? extends Enum>) converterClass, value); + if (result == null) { + result = Enum.valueOf((Class<? extends Enum>) converterClass, value.toUpperCase()); + } } catch (Exception e) { throw new ParameterException("Invalid value for " + optionName + " parameter. Allowed values:" + EnumSet.allOf((Class<? extends Enum>) converterClass)); diff --git a/src/test/java/com/beust/jcommander/JCommanderTest.java b/src/test/java/com/beust/jcommander/JCommanderTest.java index a5caca0..4a84496 100644 --- a/src/test/java/com/beust/jcommander/JCommanderTest.java +++ b/src/test/java/com/beust/jcommander/JCommanderTest.java @@ -562,12 +562,12 @@ public class JCommanderTest { public void enumArgs() { ArgsEnum args = new ArgsEnum(); - String[] argv = { "-choice", "ONE", "-choices", "ONE", "TWO" }; + String[] argv = { "-choice", "ONE", "-choices", "ONE", "Two" }; JCommander jc = new JCommander(args, argv); Assert.assertEquals(args.choice, ArgsEnum.ChoiceType.ONE); - List<ChoiceType> expected = Arrays.asList(ChoiceType.ONE, ChoiceType.TWO); + List<ChoiceType> expected = Arrays.asList(ChoiceType.ONE, ChoiceType.Two); Assert.assertEquals(expected, args.choices); Assert.assertEquals(jc.getParameters().get(0).getDescription(), "Options: " + EnumSet.allOf((Class<? extends Enum>) ArgsEnum.ChoiceType.class)); @@ -966,7 +966,7 @@ public class JCommanderTest { @Test(enabled = false) public static void main(String[] args) throws Exception { - new JCommanderTest().parameterWithOneDoubleQuote(); + new JCommanderTest().enumArgs(); // class A { // @Parameter(names = "-short", required = true) // List<String> parameters; diff --git a/src/test/java/com/beust/jcommander/args/ArgsEnum.java b/src/test/java/com/beust/jcommander/args/ArgsEnum.java index c6b0c08..bef663b 100644 --- a/src/test/java/com/beust/jcommander/args/ArgsEnum.java +++ b/src/test/java/com/beust/jcommander/args/ArgsEnum.java @@ -34,7 +34,7 @@ import com.beust.jcommander.Parameter; */ public class ArgsEnum { - public enum ChoiceType { ONE, TWO, THREE }; + public enum ChoiceType { ONE, Two, THREE }; @Parameter(names = "-choice") public ChoiceType choice = ChoiceType.ONE; |