package org.jooby;
import org.jooby.mvc.GET;
import org.jooby.mvc.Path;
import org.jooby.test.ServerFeature;
import org.junit.Test;
public class PathParamFeature extends ServerFeature {
@Path("/r")
public static class Resource {
@Path("/vars/:name/:age")
@GET
public String vars(final String name, final int age) {
return name + " " + age;
}
}
{
get("/vars/{name}/{age}", (req, resp) -> {
String name = req.param("name").value();
int age = req.param("age").intValue();
resp.send(name + " " + age);
});
get("/fancy/:name/:age", (req, resp) -> {
String name = req.param("name").value();
int age = req.param("age").intValue();
resp.send(name + " " + age);
});
use(Resource.class);
}
@Test
public void variables() throws Exception {
request()
.get("/vars/edgar/34")
.expect("edgar 34");
request()
.get("/r/vars/edgar/33")
.expect("edgar 33");
}
@Test
public void fancy() throws Exception {
request()
.get("/fancy/edgar/34")
.expect("edgar 34");
}
@Test
public void notFound() throws Exception {
request()
.get("/vars/edgar")
.expect(404);
request()
.get("/vars/edgar/1/2")
.expect(404);
}
}