summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/main/java/com/beust/jcommander/JCommander.java5
-rw-r--r--src/test/java/com/beust/jcommander/JCommanderTest.java6
-rw-r--r--src/test/java/com/beust/jcommander/args/ArgsEnum.java2
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;