X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Ftest%2Fkotlin%2Fnet%2Fpterodactylus%2Fsone%2Fmain%2FSonePluginTest.kt;h=23c679bf0eabfb2a50df2630743429ef768b4911;hb=b2952fda6d34528489d7fa4e26e09133099c978f;hp=9388cb06598c445b4e9baf8db03eebf4468e74d9;hpb=18ada47554280f444bb829dafc4d40926312066e;p=Sone.git diff --git a/src/test/kotlin/net/pterodactylus/sone/main/SonePluginTest.kt b/src/test/kotlin/net/pterodactylus/sone/main/SonePluginTest.kt index 9388cb0..23c679b 100644 --- a/src/test/kotlin/net/pterodactylus/sone/main/SonePluginTest.kt +++ b/src/test/kotlin/net/pterodactylus/sone/main/SonePluginTest.kt @@ -10,6 +10,7 @@ import net.pterodactylus.sone.fcp.* import net.pterodactylus.sone.freenet.wot.* import net.pterodactylus.sone.test.* import net.pterodactylus.sone.web.* +import net.pterodactylus.sone.web.notification.* import org.hamcrest.MatcherAssert.* import org.hamcrest.Matchers.* import org.mockito.Mockito.* @@ -21,7 +22,6 @@ import kotlin.test.* @Dirty class SonePluginTest { - private var injector = mockInjector() private val sonePlugin by lazy { SonePlugin { injector } } private val pluginRespirator = deepMock() private val node = deepMock() @@ -64,6 +64,12 @@ class SonePluginTest { assertThat(injector.getInstance(), notNullValue()) } + @Test + fun `notification handler can be created`() { + val injector: Injector = runSonePluginWithRealInjector() + assertThat(injector.getInstance(), notNullValue()) + } + private fun runSonePluginWithRealInjector(): Injector { lateinit var injector: Injector val sonePlugin = SonePlugin { @@ -83,21 +89,32 @@ class SonePluginTest { verify(core).start() } -} + @Test + fun `notification handler is being requested`() { + sonePlugin.runPlugin(pluginRespirator) + assertThat(getInjected(NotificationHandler::class.java), notNullValue()) + } + + private fun getInjected(clazz: Class, annotation: Annotation? = null): T? = + injected[TypeLiteral.get(clazz) to annotation] as? T -private fun mockInjector() = mock().apply { - val injected = mutableMapOf, Annotation?>, Any>() - fun mockValue(clazz: Class<*>) = false.takeIf { clazz.name == java.lang.Boolean::class.java.name } ?: mock(clazz) - whenever(getInstance(any>())).then { - injected.getOrPut((it.getArgument(0) as Key<*>).let { it.typeLiteral to it.annotation }) { - it.getArgument>(0).typeLiteral.type.typeName.toClass().let(::mockValue) + private val injected = + mutableMapOf, Annotation?>, Any>() + + private val injector = mock().apply { + fun mockValue(clazz: Class<*>) = false.takeIf { clazz.name == java.lang.Boolean::class.java.name } ?: mock(clazz) + whenever(getInstance(any>())).then { + injected.getOrPut((it.getArgument(0) as Key<*>).let { it.typeLiteral to it.annotation }) { + it.getArgument>(0).typeLiteral.type.typeName.toClass().let(::mockValue) + } } - } - whenever(getInstance(any>())).then { - injected.getOrPut(TypeLiteral.get(it.getArgument(0) as Class<*>) to null) { - it.getArgument>(0).let(::mockValue) + whenever(getInstance(any>())).then { + injected.getOrPut(TypeLiteral.get(it.getArgument(0) as Class<*>) to null) { + it.getArgument>(0).let(::mockValue) + } } } + } private fun String.toClass(): Class<*> = SonePlugin::class.java.classLoader.loadClass(this)