X-Git-Url: https://git.pterodactylus.net/?p=Sone.git;a=blobdiff_plain;f=src%2Ftest%2Fkotlin%2Fnet%2Fpterodactylus%2Fsone%2Fcore%2FPreferencesLoaderTest.kt;fp=src%2Ftest%2Fkotlin%2Fnet%2Fpterodactylus%2Fsone%2Fcore%2FPreferencesLoaderTest.kt;h=0cd7e6dc7aed416d5c2637c3a5aefffabff7f055;hp=0000000000000000000000000000000000000000;hb=72e43af1e442398e304167c1e18e229d254fba7b;hpb=389a44126f3005c5423993afa588a18ae8df566d diff --git a/src/test/kotlin/net/pterodactylus/sone/core/PreferencesLoaderTest.kt b/src/test/kotlin/net/pterodactylus/sone/core/PreferencesLoaderTest.kt new file mode 100644 index 0000000..0cd7e6d --- /dev/null +++ b/src/test/kotlin/net/pterodactylus/sone/core/PreferencesLoaderTest.kt @@ -0,0 +1,61 @@ +package net.pterodactylus.sone.core + +import com.google.common.eventbus.* +import net.pterodactylus.sone.fcp.FcpInterface.* +import net.pterodactylus.util.config.* +import org.hamcrest.MatcherAssert.* +import org.hamcrest.Matchers.* +import org.junit.* + +/** + * Unit test for [PreferencesLoader]. + */ +class PreferencesLoaderTest { + + @Suppress("UnstableApiUsage") + private val eventBus = EventBus() + private val preferences = Preferences(eventBus) + private val configuration = Configuration(MapConfigurationBackend()) + private val preferencesLoader = PreferencesLoader(preferences) + + @Before + fun setupConfiguration() { + setupIntValue("InsertionDelay", 15) + setupIntValue("PostsPerPage", 25) + setupIntValue("ImagesPerPage", 12) + setupIntValue("CharactersPerPost", 150) + setupIntValue("PostCutOffLength", 300) + setupBooleanValue("RequireFullAccess", true) + setupBooleanValue("ActivateFcpInterface", true) + setupIntValue("FcpFullAccessRequired", 1) + } + + private fun setupIntValue(optionName: String, value: Int) { + configuration.getIntValue("Option/$optionName").value = value + } + + private fun setupBooleanValue(optionName: String, value: Boolean) { + configuration.getBooleanValue("Option/$optionName").value = value + } + + @Test + fun `configuration is loaded correctly`() { + preferencesLoader.loadFrom(configuration) + assertThat(preferences.insertionDelay, equalTo(15)) + assertThat(preferences.postsPerPage, equalTo(25)) + assertThat(preferences.imagesPerPage, equalTo(12)) + assertThat(preferences.charactersPerPost, equalTo(150)) + assertThat(preferences.postCutOffLength, equalTo(300)) + assertThat(preferences.requireFullAccess, equalTo(true)) + assertThat(preferences.fcpInterfaceActive, equalTo(true)) + assertThat(preferences.fcpFullAccessRequired, equalTo(FullAccessRequired.WRITING)) + } + + @Test + fun `configuration is loaded correctly with cut off length minus one`() { + setupIntValue("PostCutOffLength", -1) + preferencesLoader.loadFrom(configuration) + assertThat(preferences.postCutOffLength, not(equalTo(-1))) + } + +}