package org.jooby.jackson;
import java.io.IOException;
import org.jooby.json.Jackson;
import org.jooby.test.ServerFeature;
import org.junit.Test;
import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.JsonSerializer;
import com.fasterxml.jackson.databind.SerializerProvider;
import com.fasterxml.jackson.databind.module.SimpleModule;
public class JacksonModuleTypeFeature extends ServerFeature {
@SuppressWarnings("serial")
public static class Mod extends SimpleModule {
public Mod() {
addSerializer(Integer.class, new JsonSerializer<Integer>() {
@Override
public void serialize(final Integer value, final JsonGenerator gen,
final SerializerProvider serializers) throws IOException, JsonProcessingException {
gen.writeRawValue(Integer.toString(value * 2));
}
});
}
}
{
use(new Jackson().module(Mod.class));
get("/jackson-mod", () -> 2);
}
@Test
public void shouldUseCustomModule() throws Exception {
request().get("/jackson-mod").expect("4");
}
}