package org.jooby;
import static org.junit.Assert.assertEquals;
import javax.inject.Singleton;
import org.jooby.test.ServerFeature;
import org.junit.Test;
import com.google.inject.Key;
import com.google.inject.TypeLiteral;
public class ParamRequireFeature extends ServerFeature {
public static class ParamBean {
@Override
public String toString() {
return "OK";
}
}
@Singleton
public static class Dependency {
}
{
parser((type, ctx) -> {
if (type.getRawType() == ParamBean.class) {
Dependency dep1 = ctx.require(Dependency.class);
assertEquals(dep1, ctx.require(Key.get(Dependency.class)));
assertEquals(dep1, ctx.require(TypeLiteral.get(Dependency.class)));
return new ParamBean();
}
return ctx.next();
});
get("/require", req -> {
return req.params().to(ParamBean.class);
});
}
@Test
public void require() throws Exception {
request()
.get("/require")
.expect("OK");
}
}