package org.jooby.issues;
import org.jooby.json.Jackson;
import org.jooby.test.ServerFeature;
import org.junit.Test;
public class Issue616 extends ServerFeature {
public static class Person {
// mandatory fields
private final String name;
private final String surname;
// optional fields
private String nickname;
public Person(final String name, final String surname) {
this.name = name;
this.surname = surname;
}
public String getName() {
return name;
}
public String getSurname() {
return surname;
}
public String getNickname() {
return nickname;
}
public void setNickname(final String nickname) {
this.nickname = nickname;
}
@Override
public String toString() {
return name + " " + surname + "(" + nickname + ")";
}
}
{
use(new Jackson());
post("/616", req -> {
return req.body(Person.class).toString();
});
}
@Test
public void jacksonWithParamNamesModule() throws Exception {
request()
.post("/616")
.body("{\"name\":\"N\",\"surname\":\"S\"}", "application/json")
.expect("\"N S(null)\"");
request()
.post("/616")
.body("{\"name\":\"N\",\"surname\":\"S\",\"nickname\":\".\"}", "application/json")
.expect("\"N S(.)\"");
}
}