1 package net.pterodactylus.sone.freenet
3 import org.hamcrest.MatcherAssert.*
4 import org.hamcrest.Matchers.*
7 import kotlin.collections.*
10 * Unit test for [L10nFilter].
12 class L10nFilterTest {
14 private val translations = mutableMapOf<String, String>()
15 private val translation = object : Translation {
16 override val currentLocale = Locale.ENGLISH
17 override fun translate(key: String): String = translations[key] ?: ""
19 private val filter = L10nFilter(translation)
22 fun `translation without parameters returns translated string`() {
23 translations["data"] = "translated data"
24 assertThat(filter.format(null, "data", emptyMap()), equalTo("translated data"))
28 fun `translation with parameters returned translated string`() {
29 translations["data"] = "translated {0,number} {1}"
30 assertThat(filter.format(null, "data", mapOf("0" to 4.5, "1" to "data")), equalTo("translated 4.5 data"))
34 fun `filter processes l10n text without parameters correctly`() {
35 translations["data"] = "translated data"
36 assertThat(filter.format(null, L10nText("data"), emptyMap()), equalTo("translated data"))
40 fun `filter processes l10n text with parameters correctly`() {
41 translations["data"] = "translated {0,number} {1}"
42 assertThat(filter.format(null, L10nText("data", listOf(4.5, "data")), emptyMap()), equalTo("translated 4.5 data"))
46 fun `filter does not replace values if there are no parameters`() {
47 translations["data"] = "{link}"
48 assertThat(filter.format(null, "data", emptyMap()), equalTo("{link}"))