-
Notifications
You must be signed in to change notification settings - Fork 3.2k
/
Copy pathtest_default_locale.rb
99 lines (68 loc) · 2.42 KB
/
test_default_locale.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
# frozen_string_literal: true
require_relative 'test_helper'
class TestDefaultLocale < Test::Unit::TestCase
def test_setting_default_locale
# if locale is not set, fallback is :en
assert_equal :en, Faker::Config.locale
# locale can be updated initially
# and it becomes the default value
# for new threads
Faker::Config.default_locale = :pt
assert_equal :pt, Faker::Config.locale
t1 = Thread.new do
# child thread has initial locale equal to
# latest locale set on main thread
# instead of the fallback value
assert_equal :pt, Faker::Config.locale
# child thread can set its own locale
Faker::Config.locale = :es
assert_equal :es, Faker::Config.locale
end
t1.join
# child thread won't change locale of other threads
assert_equal :pt, Faker::Config.locale
t2 = Thread.new do
# initial default locale is copied over to new thread
assert_equal :pt, Faker::Config.locale
Faker::Config.locale = :it
assert_equal :it, Faker::Config.locale
end
t2.join
assert_equal :pt, Faker::Config.locale
# setting this to reset the default locale for all tests
Faker::Config.default_locale = nil
assert_equal :en, Faker::Config.locale
end
def test_setting_default_locale_on_child_thread
# if locale is not set, fallback is :en
assert_equal :en, Faker::Config.locale
# locale can be updated initially
# and it becomes the default value
# for new threads
Faker::Config.default_locale = :pt
assert_equal :pt, Faker::Config.locale
t1 = Thread.new do
# child thread has initial locale equal to
# latest locale set on main thread
# instead of the fallback value
assert_equal :pt, Faker::Config.locale
# child thread can set the default locale
Faker::Config.default_locale = :es
assert_equal :es, Faker::Config.locale
end
t1.join
# all threads now will have the same default
assert_equal :es, Faker::Config.locale
t2 = Thread.new do
# initial default locale is copied over to new thread
assert_equal :es, Faker::Config.locale
Faker::Config.locale = :it
assert_equal :it, Faker::Config.locale
end
t2.join
assert_equal :es, Faker::Config.locale
# setting this to reset the default locale for all tests
Faker::Config.default_locale = nil
assert_equal :en, Faker::Config.locale
end
end