package org.jooby.issues;
import static javaslang.Predicates.is;
import org.jooby.Err;
import org.jooby.Status;
import org.jooby.test.ServerFeature;
import org.junit.Test;
public class Issue382b extends ServerFeature {
{
get("/err1", () -> {
throw new IllegalArgumentException("err1");
});
get("/err2", () -> {
throw new IllegalStateException("err2");
});
get("/400", () -> {
throw new Err(404);
});
get("/500", () -> {
throw new Err(500);
});
err(Status.NOT_FOUND, (req, rsp, err) -> {
rsp.send("Not found");
});
err(is(Status.BAD_REQUEST), (req, rsp, err) -> {
rsp.send(err.getCause().getClass().getSimpleName());
});
err((req, rsp, err) -> {
rsp.send("Fallback");
});
}
@Test
public void shouldHandleSpecificErrTypes() throws Exception {
request()
.get("/err1")
.expect("IllegalArgumentException");
request()
.get("/err2")
.expect("Fallback");
request()
.get("/400")
.expect("Not found");
request()
.get("/500")
.expect("Fallback");
}
}