package org.jooby.issues;
import static org.easymock.EasyMock.expect;
import org.jooby.Env;
import org.jooby.Result;
import org.jooby.Results;
import org.jooby.internal.RouteMetadata;
import org.jooby.internal.mvc.MvcRoutes;
import org.jooby.mvc.GET;
import org.jooby.mvc.Path;
import org.jooby.test.MockUnit;
import org.junit.Test;
public class Issue372 {
public static class PingRoute {
@Path("/ping")
@GET
private Result ping() {
return Results.ok();
}
}
public static class Ext extends PingRoute {
}
@Test(expected = IllegalArgumentException.class)
public void shouldFailFastOnPrivateMvcRoutes() throws Exception {
new MockUnit(Env.class)
.expect(unit -> {
Env env = unit.get(Env.class);
expect(env.name()).andReturn("dev").times(2);
})
.run(unit -> {
Env env = unit.get(Env.class);
MvcRoutes.routes(env, new RouteMetadata(env), "", PingRoute.class);
});
}
@Test(expected = IllegalArgumentException.class)
public void shouldFailFastOnPrivateMvcRoutesExt() throws Exception {
new MockUnit(Env.class)
.expect(unit -> {
Env env = unit.get(Env.class);
expect(env.name()).andReturn("dev").times(2);
})
.run(unit -> {
Env env = unit.get(Env.class);
MvcRoutes.routes(env, new RouteMetadata(env), "", Ext.class);
});
}
}