import com.google.inject.Injector
import com.google.inject.Module
+import org.mockito.*
import javax.inject.Provider
import kotlin.reflect.KClass
override fun byInstance(instance: T) = Module { it.bind(javaClass).toProvider(Provider<T> { instance }) }
override fun byProvider(provider: com.google.inject.Provider<T>) = Module { it.bind(javaClass).toProvider(provider) }
override fun byProvider(provider: Class<Provider<T>>) = Module { it.bind(javaClass).toProvider(provider) }
+ override fun byMock() = Module { it.bind(javaClass).toInstance(Mockito.mock(javaClass)) }
}
interface Source<T : Any> {
fun byInstance(instance: T): Module
fun byProvider(provider: com.google.inject.Provider<T>): Module
fun byProvider(provider: Class<Provider<T>>): Module
+ fun byMock(): Module
}