blob: 4f1d8615cd9b1e415d3209bd964ea386cc20ee3e [file] [log] [blame]
package ioc.specs
import org.apache.tapestry5.ioc.services.ThreadLocale
class ThreadLocaleImplSpec extends AbstractSharedRegistrySpecification {
ThreadLocale threadLocale = getService ThreadLocale
static final Locale FAKE_LOCALE1 = new Locale("klingon"),
FAKE_LOCALE2 = new Locale("ferrengi")
def cleanup() {
cleanupThread()
}
def "different threads track different values"() {
def initial = threadLocale.locale
def perthread
when:
threadLocale.locale = FAKE_LOCALE1
then:
threadLocale.locale.is(FAKE_LOCALE1)
when:
def thread = new Thread({
perthread = threadLocale.locale
})
thread.start()
thread.join()
then:
perthread.is(initial)
}
def "per-thread locale reverts after cleanup"() {
def initial = threadLocale.locale
threadLocale.locale = FAKE_LOCALE2
when:
cleanupThread()
then:
threadLocale.locale.is(initial)
}
}