X-Git-Url: https://git.pterodactylus.net/?p=Sone.git;a=blobdiff_plain;f=src%2Ftest%2Fkotlin%2Fnet%2Fpterodactylus%2Fsone%2Ftest%2FGuice.kt;h=a5df14e1b374356c56b9af4b0aa46da8a6ce7f18;hp=5eca8fa7db7cc144ff41eee3389f5655261a7de9;hb=a1b3db7a8bb0c03d291371e0d15b5681f7ec0083;hpb=32ca1db3e092387c59ef351cf5bd75dee0494ec9 diff --git a/src/test/kotlin/net/pterodactylus/sone/test/Guice.kt b/src/test/kotlin/net/pterodactylus/sone/test/Guice.kt index 5eca8fa..a5df14e 100644 --- a/src/test/kotlin/net/pterodactylus/sone/test/Guice.kt +++ b/src/test/kotlin/net/pterodactylus/sone/test/Guice.kt @@ -8,3 +8,17 @@ fun KClass.isInstance(instance: T) = Module { it.bind(this.java).to fun KClass.isProvidedBy(instance: T) = Module { it.bind(this.java).toProvider { instance } } 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) } + +fun supply(javaClass: Class): Source = object : Source { + override fun fromInstance(instance: T) = Module { it.bind(javaClass).toInstance(instance) } + override fun byInstance(instance: T) = Module { it.bind(javaClass).toProvider { 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) } +} + +interface Source { + fun fromInstance(instance: T): Module + fun byInstance(instance: T): Module + fun byProvider(provider: com.google.inject.Provider): Module + fun byProvider(provider: Class>): Module +}