From 2972af51b28df3f46cea33e9ed3fe22dd1d5461d Mon Sep 17 00:00:00 2001 From: =?utf8?q?David=20=E2=80=98Bombe=E2=80=99=20Roden?= Date: Fri, 18 Nov 2016 20:12:10 +0100 Subject: [PATCH] Add unit test for l10n filter --- .../pterodactylus/sone/freenet/L10nFilterTest.kt | 49 ++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 src/test/kotlin/net/pterodactylus/sone/freenet/L10nFilterTest.kt diff --git a/src/test/kotlin/net/pterodactylus/sone/freenet/L10nFilterTest.kt b/src/test/kotlin/net/pterodactylus/sone/freenet/L10nFilterTest.kt new file mode 100644 index 0000000..f070df2 --- /dev/null +++ b/src/test/kotlin/net/pterodactylus/sone/freenet/L10nFilterTest.kt @@ -0,0 +1,49 @@ +package net.pterodactylus.sone.freenet + +import freenet.l10n.BaseL10n +import freenet.l10n.BaseL10n.LANGUAGE.ENGLISH +import net.pterodactylus.sone.test.mock +import net.pterodactylus.sone.test.whenever +import net.pterodactylus.sone.web.WebInterface +import net.pterodactylus.util.template.TemplateContext +import org.hamcrest.MatcherAssert.assertThat +import org.hamcrest.Matchers.equalTo +import org.junit.Before +import org.junit.Test +import org.mockito.ArgumentMatchers.anyString + +/** + * Unit test for [L10nFilter]. + */ +class L10nFilterTest { + + private val webInterface = mock() + private val filter = L10nFilter(webInterface) + private val templateContext = mock() + private val l10n = mock() + private val translations = mutableMapOf() + + @Before + fun setupWebInterface() { + whenever(webInterface.l10n).thenReturn(l10n) + } + + @Before + fun setupL10n() { + whenever(l10n.selectedLanguage).thenReturn(ENGLISH) + whenever(l10n.getString(anyString())).then { translations[it.arguments[0]] } + } + + @Test + fun `translation without parameters returns translated string`() { + translations["data"] = "translated data" + assertThat(filter.format(templateContext, "data", emptyMap()), equalTo("translated data")) + } + + @Test + fun `translation with parameters returned translated string`() { + translations["data"] = "translated {0,number} {1}" + assertThat(filter.format(templateContext, "data", mapOf("0" to 4.5, "1" to "data")), equalTo("translated 4.5 data")) + } + +} -- 2.7.4