package org.jooby.issues; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertTrue; import org.jooby.Deferred; import org.jooby.mvc.Path; import org.jooby.test.ServerFeature; import org.junit.Test; public class Issue498b extends ServerFeature { @Path("/mvc") public static class Controller { @Path("/498") public Deferred deferred() { return Deferred.deferred(() -> Thread.currentThread().getName()); } @Path("/498/0") public Deferred deferred1() { return Deferred.deferred(req -> { assertNotNull(req); return Thread.currentThread().getName(); }); } } { get("/498", deferred("direct", req -> { assertNotNull(req); return Thread.currentThread().getName(); })); get("/498/0", deferred("direct", () -> { return Thread.currentThread().getName(); })); use(Controller.class); err((req, rsp, x) -> { rsp.send(x.getCause().getMessage()); }); } @Test public void functionalDeferred() throws Exception { request() .get("/498") .expect(v -> { assertTrue(v.toLowerCase().contains("task")); }); request() .get("/498/0") .expect(v -> { assertTrue(v.toLowerCase().contains("task")); }); request() .get("/mvc/498") .expect(v -> { assertTrue(v.toLowerCase().contains("task")); }); request() .get("/mvc/498/0") .expect(v -> { assertTrue(v.toLowerCase().contains("task")); }); } }