X-Git-Url: https://git.pterodactylus.net/?p=Sone.git;a=blobdiff_plain;f=src%2Ftest%2Fkotlin%2Fnet%2Fpterodactylus%2Fsone%2Fmain%2FSoneModuleTest.kt;h=526c089fa865efb168b21b0fffc5e21fd91d0cb5;hp=83d3535e372d35590a8306800249595f8aaffd1b;hb=6b0144641bd6cbc74331a0bf2008661521713836;hpb=04709e23f38e9d447337682ba27201da5dc19bd9 diff --git a/src/test/kotlin/net/pterodactylus/sone/main/SoneModuleTest.kt b/src/test/kotlin/net/pterodactylus/sone/main/SoneModuleTest.kt index 83d3535..526c089 100644 --- a/src/test/kotlin/net/pterodactylus/sone/main/SoneModuleTest.kt +++ b/src/test/kotlin/net/pterodactylus/sone/main/SoneModuleTest.kt @@ -1,9 +1,13 @@ package net.pterodactylus.sone.main +import com.codahale.metrics.* import com.google.common.base.* import com.google.common.eventbus.* import com.google.inject.Guice.* import com.google.inject.name.Names.* +import freenet.l10n.* +import freenet.pluginmanager.* +import net.pterodactylus.sone.core.* import net.pterodactylus.sone.database.* import net.pterodactylus.sone.database.memory.* import net.pterodactylus.sone.freenet.wot.* @@ -12,25 +16,36 @@ import net.pterodactylus.util.config.* import net.pterodactylus.util.version.Version import org.hamcrest.MatcherAssert.* import org.hamcrest.Matchers.* -import org.junit.* +import org.mockito.Mockito.* import java.io.* import java.util.concurrent.atomic.* +import kotlin.test.* + +const val versionString = "v80" class SoneModuleTest { private val currentDir: File = File(".") - private val pluginVersion = Version("", 0, 1, 2) + private val pluginVersion = Version("", 80) private val pluginYear = 2019 private val pluginHomepage = "home://page" + private val l10n = deepMock() private val sonePlugin = mock().apply { - whenever(version).thenReturn(pluginVersion.toString()) + whenever(version).thenReturn(versionString) whenever(year).thenReturn(pluginYear) whenever(homepage).thenReturn(pluginHomepage) + whenever(l10n()).thenReturn(l10n) } - private val injector by lazy { createInjector(SoneModule(sonePlugin)) } + private val injector by lazy { + createInjector( + SoneModule(sonePlugin, EventBus()), + FreenetInterface::class.isProvidedByDeepMock(), + PluginRespirator::class.isProvidedByDeepMock() + ) + } - @After + @AfterTest fun removePropertiesFromCurrentDirectory() { File(currentDir, "sone.properties").delete() } @@ -87,6 +102,12 @@ class SoneModuleTest { } @Test + fun `show version information debug information flag is read from config`() { + File(currentDir, "sone.properties").writeText("Debug/ShowVersionInformation=true") + assertThat(injector.getInstance().debugInformation.showVersionInformation, equalTo(true)) + } + + @Test fun `event bus is bound`() { assertThat(injector.getInstance(), notNullValue()) } @@ -113,7 +134,7 @@ class SoneModuleTest { @Test fun `plugin version is bound`() { - assertThat(injector.getInstance(), equalTo(PluginVersion(pluginVersion.toString()))) + assertThat(injector.getInstance(), equalTo(PluginVersion(versionString))) } @Test @@ -132,6 +153,11 @@ class SoneModuleTest { } @Test + fun `base l10n is bound correctly`() { + assertThat(injector.getInstance(), sameInstance(l10n.base)) + } + + @Test fun `default loader is used without dev options`() { assertThat(injector.getInstance(), instanceOf(DefaultLoaders::class.java)) } @@ -165,4 +191,35 @@ class SoneModuleTest { assertThat(testObject.ref.get(), sameInstance(event)) } + @Test + fun `core is created as singleton`() { + val firstCore = injector.getInstance() + val secondCore = injector.getInstance() + assertThat(secondCore, sameInstance(firstCore)) + } + + @Test + fun `core is registered with event bus`() { + val eventBus = mock() + val injector = createInjector( + SoneModule(sonePlugin, eventBus), + FreenetInterface::class.isProvidedByDeepMock(), + PluginRespirator::class.isProvidedByDeepMock() + ) + val core = injector.getInstance() + verify(eventBus).register(core) + } + + @Test + fun `metrics registry can be created`() { + assertThat(injector.getInstance(), notNullValue()) + } + + @Test + fun `metrics registry is created as singleton`() { + val firstMetricRegistry = injector.getInstance() + val secondMetricRegistry = injector.getInstance() + assertThat(firstMetricRegistry, sameInstance(secondMetricRegistry)) + } + }