X-Git-Url: https://git.pterodactylus.net/?p=Sone.git;a=blobdiff_plain;f=src%2Ftest%2Fkotlin%2Fnet%2Fpterodactylus%2Fsone%2Ftest%2FGuice.kt;h=abf0476a2a3d03746fec5a45e96c6999489344d3;hp=360b0cd20f6d711e06091cd3f550310aec970a6d;hb=09e10dd6e554ce4af6b35e0f56251c6c26bc018e;hpb=da8b893e6fc024b7d9f5ed1fc7632138dcd129e7 diff --git a/src/test/kotlin/net/pterodactylus/sone/test/Guice.kt b/src/test/kotlin/net/pterodactylus/sone/test/Guice.kt index 360b0cd..abf0476 100644 --- a/src/test/kotlin/net/pterodactylus/sone/test/Guice.kt +++ b/src/test/kotlin/net/pterodactylus/sone/test/Guice.kt @@ -2,6 +2,7 @@ package net.pterodactylus.sone.test import com.google.inject.Injector import com.google.inject.Module +import org.mockito.* import javax.inject.Provider import kotlin.reflect.KClass @@ -9,6 +10,7 @@ fun KClass.isProvidedBy(instance: T) = Module { it.bind(this.java). fun KClass.isProvidedBy(provider: com.google.inject.Provider) = Module { it.bind(this.java).toProvider(provider) } fun KClass.isProvidedBy(provider: KClass>) = Module { it.bind(this.java).toProvider(provider.java) } inline fun KClass.isProvidedByMock() = Module { it.bind(this.java).toProvider(Provider { mock() }) } +inline fun KClass.isProvidedByDeepMock() = Module { it.bind(this.java).toProvider(Provider { deepMock() }) } inline fun Injector.getInstance() = getInstance(T::class.java)!! @@ -17,6 +19,7 @@ fun supply(javaClass: Class): Source = object : Source { override fun byInstance(instance: T) = Module { it.bind(javaClass).toProvider(Provider { instance }) } override fun byProvider(provider: com.google.inject.Provider) = Module { it.bind(javaClass).toProvider(provider) } override fun byProvider(provider: Class>) = Module { it.bind(javaClass).toProvider(provider) } + override fun byMock() = Module { it.bind(javaClass).toInstance(Mockito.mock(javaClass)) } } interface Source { @@ -24,4 +27,5 @@ interface Source { fun byInstance(instance: T): Module fun byProvider(provider: com.google.inject.Provider): Module fun byProvider(provider: Class>): Module + fun byMock(): Module }