package tc.oc.test.mockito; import javax.inject.Provider; import com.google.inject.TypeLiteral; import org.mockito.Mockito; public class MockProvider<T> implements Provider<T> { private final Class<T> type; private MockProvider(Class<T> type) { this.type = type; } public static <T> MockProvider<T> of(Class<T> type) { return new MockProvider<>(type); } public static <T> MockProvider<T> of(TypeLiteral<T> type) { return new MockProvider<>((Class<T>) type.getRawType()); } @Override public T get() { return Mockito.mock(type); } }