X-Git-Url: https://git.pterodactylus.net/?p=Sone.git;a=blobdiff_plain;f=src%2Ftest%2Fkotlin%2Fnet%2Fpterodactylus%2Fsone%2Ffreenet%2Fplugin%2FPluginRespiratorFacadeTest.kt;fp=src%2Ftest%2Fkotlin%2Fnet%2Fpterodactylus%2Fsone%2Ffreenet%2Fplugin%2FPluginRespiratorFacadeTest.kt;h=4e44d5d1b63c0b31ca2f66bd75b2b195a638475e;hp=0000000000000000000000000000000000000000;hb=d50730f6a330439e0e7ef97ca9329dffe72d5640;hpb=97fe04482ebb8a08e43294acde041c2975cbd8ee diff --git a/src/test/kotlin/net/pterodactylus/sone/freenet/plugin/PluginRespiratorFacadeTest.kt b/src/test/kotlin/net/pterodactylus/sone/freenet/plugin/PluginRespiratorFacadeTest.kt new file mode 100644 index 0000000..4e44d5d --- /dev/null +++ b/src/test/kotlin/net/pterodactylus/sone/freenet/plugin/PluginRespiratorFacadeTest.kt @@ -0,0 +1,46 @@ +package net.pterodactylus.sone.freenet.plugin + +import freenet.pluginmanager.* +import freenet.support.* +import freenet.support.api.* +import freenet.support.io.* +import net.pterodactylus.sone.freenet.* +import net.pterodactylus.sone.test.* +import org.hamcrest.MatcherAssert.* +import org.hamcrest.Matchers.* +import org.mockito.ArgumentMatchers.* +import kotlin.test.* + +/** + * Unit test for [FredPluginRespiratorFacade] and [FredPluginTalkerFacade]. + */ +@Suppress("DEPRECATION") +class PluginRespiratorFacadeTest { + + @Test + fun `respirator facade creates correct plugin talker facade`() { + val pluginTalkerSendParameters = mutableListOf() + val originalPluginTalker = mock().apply { + whenever(send(any(), any())).then { invocation -> + pluginTalkerSendParameters += PluginTalkerSendParameters(invocation.getArgument(0), invocation.getArgument(1)) + Unit + } + } + val fredPluginTalker = FredPluginTalker { _, _, _, _ -> } + val pluginRespirator = mock().apply { + whenever(getPluginTalker(fredPluginTalker, "test.plugin", "test-request-1")).thenReturn(originalPluginTalker) + } + val pluginRespiratorFacade = FredPluginRespiratorFacade(pluginRespirator) + val pluginTalker = pluginRespiratorFacade.getPluginTalker(fredPluginTalker, "test.plugin", "test-request-1") + pluginTalker.send(fields, data) + assertThat(pluginTalkerSendParameters, hasSize(1)) + assertThat(pluginTalkerSendParameters[0].parameter, equalTo(fields)) + assertThat(pluginTalkerSendParameters[0].data, equalTo(data)) + } + +} + +private val fields = SimpleFieldSetBuilder().put("foo", "bar").get() +private val data: Bucket? = ArrayBucket(byteArrayOf(1, 2)) + +private data class PluginTalkerSendParameters(val parameter: SimpleFieldSet, val data: Bucket?)