Historically, ObjectProvider
comes with several default methods already but still requires concrete implementations to declare four methods. For unit testing purposes, it would be great to just declare the concrete method that a caller actually needs (such as getObject()
or getIfAvailable()
), or to provide a stream()
implementation with all other ObjectProvider
methods reacting to it, e.g.
new ObjectProvider<MyBean>() {
@Override
public Stream<MyBean> stream() {
return Stream.of(bean1, bean2);
}
};
or
new ObjectProvider<MyBean>() {
@Override
public Stream<MyBean> stream() {
return Stream.empty();
}
};
As of 6.2, a complete set of default methods in ObjectProvider
itself enables all kinds of such custom usage.