🔀 Merge branch 'release/v82'
[Sone.git] / src / test / kotlin / net / pterodactylus / sone / freenet / L10nFilterTest.kt
index 39196c1..358d106 100644 (file)
@@ -1,67 +1,51 @@
 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
+import org.hamcrest.MatcherAssert.*
+import org.hamcrest.Matchers.*
+import org.junit.*
+import java.util.*
+import kotlin.collections.*
 
 /**
  * Unit test for [L10nFilter].
  */
 class L10nFilterTest {
 
-       private val webInterface = mock<WebInterface>()
-       private val filter = L10nFilter(webInterface)
-       private val templateContext = mock<TemplateContext>()
-       private val l10n = mock<BaseL10n>()
        private val translations = mutableMapOf<String, String>()
-
-       @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]] }
+       private val translation = object : Translation {
+               override val currentLocale = Locale.ENGLISH
+               override fun translate(key: String): String = translations[key] ?: ""
        }
+       private val filter = L10nFilter(translation)
 
        @Test
        fun `translation without parameters returns translated string`() {
                translations["data"] = "translated data"
-               assertThat(filter.format(templateContext, "data", emptyMap()), equalTo("translated data"))
+               assertThat(filter.format(null, "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"))
+               assertThat(filter.format(null, "data", mapOf("0" to 4.5, "1" to "data")), equalTo("translated 4.5 data"))
        }
 
        @Test
        fun `filter processes l10n text without parameters correctly`() {
                translations["data"] = "translated data"
-               assertThat(filter.format(templateContext, L10nText("data"), emptyMap()), equalTo("translated data"))
+               assertThat(filter.format(null, L10nText("data"), emptyMap()), equalTo("translated data"))
        }
 
        @Test
        fun `filter processes l10n text with parameters correctly`() {
                translations["data"] = "translated {0,number} {1}"
-               assertThat(filter.format(templateContext, L10nText("data", listOf(4.5, "data")), emptyMap()), equalTo("translated 4.5 data"))
+               assertThat(filter.format(null, L10nText("data", listOf(4.5, "data")), emptyMap()), equalTo("translated 4.5 data"))
        }
 
        @Test
        fun `filter does not replace values if there are no parameters`() {
                translations["data"] = "{link}"
-               assertThat(filter.format(templateContext, "data", emptyMap()), equalTo("{link}"));
+               assertThat(filter.format(null, "data", emptyMap()), equalTo("{link}"))
        }
 
 }