package org.jooby.jackson;
import java.net.URISyntaxException;
import org.jooby.Renderer;
import org.jooby.json.Jackson;
import org.jooby.test.ServerFeature;
import org.junit.Test;
import com.google.inject.Key;
import com.google.inject.name.Names;
public class JsonAccessFeature extends ServerFeature {
{
use(new Jackson());
get("/formatter", req -> req.require(Key.get(Renderer.class, Names.named("json"))));
get("/parser", req -> req.require(Key.get(Renderer.class, Names.named("json"))));
get("/err", () -> {throw new IllegalArgumentException("intentional err");});
}
@Test
public void formatter() throws URISyntaxException, Exception {
request()
.get("/formatter")
.expect("json");
}
@Test
public void parser() throws URISyntaxException, Exception {
request()
.get("/parser")
.expect("json");
}
@Test
public void err() throws URISyntaxException, Exception {
request()
.get("/err")
.header("Accept", "application/json")
.expect(400)
.header("Content-Type", "application/json;charset=utf-8")
.startsWith("{\"message\":\"intentional err\",\"stacktrace\":[");
}
}