Skip to content

Commit 4aec37c

Browse files
committed
make enum parser case-insensitve fix #409
1 parent 4a69db8 commit 4aec37c

2 files changed

Lines changed: 27 additions & 2 deletions

File tree

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
package org.jooby.issues;
2+
3+
import org.jooby.test.ServerFeature;
4+
import org.junit.Test;
5+
6+
public class Issue409 extends ServerFeature {
7+
8+
public enum Letter {A, B, C}
9+
10+
{
11+
get("/409/:letter", req -> req.param("letter").toEnum(Letter.class));
12+
}
13+
14+
@Test
15+
public void caseInsensitveEnumParser() throws Exception {
16+
request()
17+
.get("/409/a")
18+
.expect("A");
19+
20+
request()
21+
.get("/409/A")
22+
.expect("A");
23+
}
24+
25+
}

jooby/src/main/java/org/jooby/internal/BuiltinParser.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -195,9 +195,9 @@ public Object parse(final TypeLiteral<?> type, final Parser.Context ctx)
195195
if (Enum.class.isAssignableFrom(rawType)) {
196196
return ctx
197197
.param(values ->
198-
java.lang.Enum.valueOf(rawType, values.get(0))
198+
java.lang.Enum.valueOf(rawType, values.get(0).toUpperCase())
199199
).body(body ->
200-
java.lang.Enum.valueOf(rawType, body.text())
200+
java.lang.Enum.valueOf(rawType, body.text().toUpperCase())
201201
);
202202
} else {
203203
return ctx.next();

0 commit comments

Comments
 (0)