✅ Add JUnit Rule to override locales during tests
[Sone.git] / src / test / kotlin / net / pterodactylus / sone / test / OverrideLocale.kt
1 package net.pterodactylus.sone.test
2
3 import org.junit.rules.ExternalResource
4 import java.util.Locale
5
6 /**
7  * JUnit [test rule][org.junit.rules.TestRule] that overrides the
8  * [JVM’s default locale][Locale.getDefault] for the duration of a test,
9  * restoring it to its previous value after the test.
10  */
11 class OverrideLocale(private val locale: Locale) : ExternalResource() {
12
13         override fun before() {
14                 previousLocale = Locale.getDefault()
15                 Locale.setDefault(locale)
16         }
17
18         override fun after() {
19                 Locale.setDefault(previousLocale)
20         }
21
22         private var previousLocale: Locale? = null
23
24 }