factory-helper 1.7.5 → 1.7.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +5 -13
- data/lib/factory-helper/version.rb +1 -1
- data/spec/config_spec.rb +18 -0
- data/spec/factory_helper/my_sql_spec.rb +123 -0
- data/spec/factory_helper/string_spec.rb +55 -0
- data/spec/rspec_locale_hooks_spec.rb +28 -0
- data/spec/spec_helper.rb +92 -0
- data/test/legacy/test_array_sample_method_compat.rb +56 -0
- data/test/legacy/test_avatar.rb +36 -0
- data/test/legacy/test_en_au_ocker_locale.rb +23 -0
- data/test/legacy/test_en_ca_locale.rb +18 -0
- data/test/legacy/test_en_locale.rb +25 -0
- data/test/legacy/test_en_us_locale.rb +79 -0
- data/test/legacy/test_es_locale.rb +34 -0
- data/test/legacy/test_faker.rb +29 -0
- data/test/legacy/test_faker_app.rb +12 -0
- data/test/legacy/test_faker_bitcoin.rb +14 -0
- data/test/legacy/test_faker_business.rb +33 -0
- data/test/legacy/test_faker_city.rb +46 -0
- data/test/legacy/test_faker_code.rb +27 -0
- data/test/legacy/test_faker_commerce.rb +74 -0
- data/test/legacy/test_faker_company.rb +19 -0
- data/test/legacy/test_faker_date.rb +77 -0
- data/test/legacy/test_faker_hacker_talk.rb +37 -0
- data/test/legacy/test_faker_internet.rb +146 -0
- data/test/legacy/test_faker_lorem.rb +87 -0
- data/test/legacy/test_faker_name.rb +20 -0
- data/test/legacy/test_faker_number.rb +77 -0
- data/test/legacy/test_faker_street.rb +53 -0
- data/test/legacy/test_faker_team.rb +13 -0
- data/test/legacy/test_faker_time.rb +74 -0
- data/test/legacy/test_flexible.rb +57 -0
- data/test/legacy/test_locale.rb +45 -0
- data/test/legacy/test_pl_locale.rb +27 -0
- data/test/test_avatar.rb +36 -0
- data/test/test_determinism.rb +57 -0
- data/test/test_en_au_ocker_locale.rb +23 -0
- data/test/test_en_ca_locale.rb +18 -0
- data/test/test_en_locale.rb +25 -0
- data/test/test_en_us_locale.rb +79 -0
- data/test/test_es_locale.rb +34 -0
- data/test/test_factory_helper.rb +28 -0
- data/test/test_factory_helper_app.rb +12 -0
- data/test/test_factory_helper_bitcoin.rb +14 -0
- data/test/test_factory_helper_business.rb +33 -0
- data/test/test_factory_helper_city.rb +46 -0
- data/test/test_factory_helper_code.rb +27 -0
- data/test/test_factory_helper_commerce.rb +70 -0
- data/test/test_factory_helper_company.rb +23 -0
- data/test/test_factory_helper_date.rb +78 -0
- data/test/test_factory_helper_hacker_talk.rb +37 -0
- data/test/test_factory_helper_internet.rb +155 -0
- data/test/test_factory_helper_lorem.rb +87 -0
- data/test/test_factory_helper_name.rb +54 -0
- data/test/test_factory_helper_number.rb +77 -0
- data/test/test_factory_helper_slack_emoji.rb +45 -0
- data/test/test_factory_helper_street.rb +53 -0
- data/test/test_factory_helper_team.rb +13 -0
- data/test/test_factory_helper_time.rb +74 -0
- data/test/test_flexible.rb +57 -0
- data/test/test_fr_locale.rb +34 -0
- data/test/test_helper.rb +15 -0
- data/test/test_locale.rb +45 -0
- data/test/test_pl_locale.rb +27 -0
- metadata +144 -20
@@ -0,0 +1,37 @@
|
|
1
|
+
require File.expand_path(File.dirname(__FILE__) + '/../test_helper.rb')
|
2
|
+
|
3
|
+
class TestFakerHacker < Test::Unit::TestCase
|
4
|
+
def setup
|
5
|
+
@hacker = Faker::Hacker
|
6
|
+
@phrases = @hacker.phrases
|
7
|
+
end
|
8
|
+
|
9
|
+
def test_phrases
|
10
|
+
assert @phrases.size == 8
|
11
|
+
@phrases.each do |phrase|
|
12
|
+
assert !phrase.nil?
|
13
|
+
assert phrase != ""
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
def test_noun
|
18
|
+
assert @hacker.noun.match(/\w+/)
|
19
|
+
end
|
20
|
+
|
21
|
+
def test_abbreviation
|
22
|
+
assert @hacker.abbreviation.match(/\w+/)
|
23
|
+
end
|
24
|
+
|
25
|
+
def test_adjective
|
26
|
+
assert @hacker.adjective.match(/\w+/)
|
27
|
+
end
|
28
|
+
|
29
|
+
def test_verb
|
30
|
+
assert @hacker.verb.match(/\w+/)
|
31
|
+
end
|
32
|
+
|
33
|
+
def test_ingverb
|
34
|
+
assert @hacker.ingverb.match(/\w+/)
|
35
|
+
end
|
36
|
+
|
37
|
+
end
|
@@ -0,0 +1,146 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
require File.expand_path(File.dirname(__FILE__) + '/../test_helper.rb')
|
3
|
+
|
4
|
+
class TestFakerInternet < Test::Unit::TestCase
|
5
|
+
|
6
|
+
def setup
|
7
|
+
@tester = Faker::Internet
|
8
|
+
end
|
9
|
+
|
10
|
+
def test_email
|
11
|
+
assert @tester.email.match(/.+@.+\.\w+/)
|
12
|
+
end
|
13
|
+
|
14
|
+
def test_free_email
|
15
|
+
assert @tester.free_email.match(/.+@(gmail|hotmail|yahoo)\.com/)
|
16
|
+
end
|
17
|
+
|
18
|
+
def test_safe_email
|
19
|
+
assert @tester.safe_email.match(/.+@example.(com|net|org)/)
|
20
|
+
end
|
21
|
+
|
22
|
+
def test_user_name
|
23
|
+
assert @tester.user_name.match(/[a-z]+((_|\.)[a-z]+)?/)
|
24
|
+
end
|
25
|
+
|
26
|
+
def test_user_name_with_string_arg
|
27
|
+
assert @tester.user_name('bo peep').match(/(bo(_|\.)peep|peep(_|\.)bo)/)
|
28
|
+
end
|
29
|
+
|
30
|
+
def test_user_name_with_integer_arg
|
31
|
+
(1..32).each do |min_length|
|
32
|
+
assert @tester.user_name(min_length).length >= min_length
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
def test_user_name_with_closed_range_arg
|
37
|
+
(1..32).each do |min_length|
|
38
|
+
(min_length..32).each do |max_length|
|
39
|
+
l = @tester.user_name((min_length..max_length)).length
|
40
|
+
assert l >= min_length
|
41
|
+
assert l <= max_length
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
def test_user_name_with_open_range_arg
|
47
|
+
(1..32).each do |min_length|
|
48
|
+
(min_length+1..33).each do |max_length|
|
49
|
+
l = @tester.user_name((min_length...max_length)).length
|
50
|
+
assert l >= min_length
|
51
|
+
assert l <= max_length-1
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
55
|
+
|
56
|
+
def test_user_name_with_range_and_separators
|
57
|
+
(1..32).each do |min_length|
|
58
|
+
(min_length+1..33).each do |max_length|
|
59
|
+
u = @tester.user_name((min_length...max_length), %w(=))
|
60
|
+
assert u.length.between? min_length, max_length-1
|
61
|
+
assert u.match(/\A[a-z]+((=)?[a-z]*)*\z/)
|
62
|
+
end
|
63
|
+
end
|
64
|
+
end
|
65
|
+
|
66
|
+
def test_password
|
67
|
+
assert @tester.password.match(/\w{3}/)
|
68
|
+
end
|
69
|
+
|
70
|
+
def test_password_with_integer_arg
|
71
|
+
(1..32).each do |min_length|
|
72
|
+
assert @tester.password(min_length).length >= min_length
|
73
|
+
end
|
74
|
+
end
|
75
|
+
|
76
|
+
def test_password_max_with_integer_arg
|
77
|
+
(1..32).each do |min_length|
|
78
|
+
max_length = min_length + 4
|
79
|
+
assert @tester.password(min_length, max_length).length <= max_length
|
80
|
+
end
|
81
|
+
end
|
82
|
+
|
83
|
+
def test_domain_name
|
84
|
+
assert @tester.domain_name.match(/\w+\.\w+/)
|
85
|
+
end
|
86
|
+
|
87
|
+
def test_domain_word
|
88
|
+
assert @tester.domain_word.match(/^\w+$/)
|
89
|
+
end
|
90
|
+
|
91
|
+
def test_domain_suffix
|
92
|
+
assert @tester.domain_suffix.match(/^\w+(\.\w+)?/)
|
93
|
+
end
|
94
|
+
|
95
|
+
def test_ip_v4_address
|
96
|
+
assert_equal 3, @tester.ip_v4_address.count('.')
|
97
|
+
|
98
|
+
1000.times do
|
99
|
+
assert @tester.ip_v4_address.split('.').map{|octet| octet.to_i}.max <= 255
|
100
|
+
end
|
101
|
+
end
|
102
|
+
|
103
|
+
def test_mac_address
|
104
|
+
assert_equal 5, @tester.mac_address.count(':')
|
105
|
+
assert_equal 5, @tester.mac_address("").count(':')
|
106
|
+
|
107
|
+
1000.times do
|
108
|
+
assert @tester.mac_address.split(':').map{|d| d.to_i(16)}.max <= 255
|
109
|
+
end
|
110
|
+
|
111
|
+
assert @tester.mac_address("fa:fa:fa").start_with?("fa:fa:fa")
|
112
|
+
assert @tester.mac_address("01:02").start_with?("01:02")
|
113
|
+
end
|
114
|
+
|
115
|
+
def test_ip_v6_address
|
116
|
+
assert_equal 7, @tester.ip_v6_address.count(':')
|
117
|
+
|
118
|
+
1000.times do
|
119
|
+
assert @tester.ip_v6_address.split('.').map{|h| "0x#{h}".hex}.max <= 65535
|
120
|
+
end
|
121
|
+
end
|
122
|
+
|
123
|
+
def test_slug
|
124
|
+
assert @tester.slug.match(/^[a-z]+(_|\.|\-)[a-z]+$/)
|
125
|
+
end
|
126
|
+
|
127
|
+
def test_slug_with_content_arg
|
128
|
+
assert @tester.slug('Foo bAr baZ').match(/^foo(_|\.|\-)bar(_|\.|\-)baz$/)
|
129
|
+
end
|
130
|
+
|
131
|
+
def test_slug_with_glue_arg
|
132
|
+
assert @tester.slug(nil, '+').match(/^[a-z]+\+[a-z]+$/)
|
133
|
+
end
|
134
|
+
|
135
|
+
def test_url
|
136
|
+
assert @tester.url('domain.com', '/username').match(/^http:\/\/domain\.com\/username$/)
|
137
|
+
end
|
138
|
+
|
139
|
+
def test_device_token
|
140
|
+
assert_equal 64, @tester.device_token.size
|
141
|
+
end
|
142
|
+
|
143
|
+
def test_fix_umlauts
|
144
|
+
assert_equal "aeoeuess", FactoryHelper::Internet.fix_umlauts('äöüß')
|
145
|
+
end
|
146
|
+
end
|
@@ -0,0 +1,87 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../test_helper.rb'
|
2
|
+
|
3
|
+
class TestFakerLorem < Test::Unit::TestCase
|
4
|
+
|
5
|
+
def setup
|
6
|
+
@tester = Faker::Lorem
|
7
|
+
@standard_wordlist = I18n.translate('factory_helper.lorem.words')
|
8
|
+
@complete_wordlist =
|
9
|
+
@standard_wordlist + I18n.translate('factory_helper.lorem.supplemental')
|
10
|
+
end
|
11
|
+
|
12
|
+
def test_character
|
13
|
+
assert @tester.character.length == 1
|
14
|
+
end
|
15
|
+
|
16
|
+
def test_character_type
|
17
|
+
assert @tester.character.class == String
|
18
|
+
end
|
19
|
+
|
20
|
+
def test_characters
|
21
|
+
assert @tester.characters.length == 255
|
22
|
+
end
|
23
|
+
|
24
|
+
def test_characters_with_args
|
25
|
+
1000.times { assert @tester.characters(500).length == 500 }
|
26
|
+
end
|
27
|
+
|
28
|
+
# Words delivered by a standard request should be on the standard wordlist.
|
29
|
+
def test_standard_words
|
30
|
+
@words = @tester.words(1000)
|
31
|
+
@words.each {|w| assert @standard_wordlist.include?(w) }
|
32
|
+
end
|
33
|
+
|
34
|
+
# Words requested from the supplemental list should all be in that list.
|
35
|
+
def test_supplemental_words
|
36
|
+
@words = @tester.words(10000, true)
|
37
|
+
@words.each {|w| assert @complete_wordlist.include?(w) }
|
38
|
+
end
|
39
|
+
|
40
|
+
# Faker::Lorem.word generates random word from standart wordlist
|
41
|
+
def test_word
|
42
|
+
@tester = Faker::Lorem
|
43
|
+
@standard_wordlist = I18n.translate('factory_helper.lorem.words')
|
44
|
+
1000.times { assert @standard_wordlist.include?(@tester.word) }
|
45
|
+
end
|
46
|
+
|
47
|
+
def test_exact_count_param
|
48
|
+
assert(@tester.characters(2).length == 2)
|
49
|
+
assert(@tester.words(2).length == 2)
|
50
|
+
assert(@tester.sentences(2).length == 2)
|
51
|
+
assert(@tester.paragraphs(2).length == 2)
|
52
|
+
end
|
53
|
+
|
54
|
+
def test_range_count_param
|
55
|
+
cs = @tester.characters(2..5)
|
56
|
+
ws = @tester.words(2..5)
|
57
|
+
ss = @tester.sentences(2..5)
|
58
|
+
ps = @tester.paragraphs(2..5)
|
59
|
+
|
60
|
+
assert(2 <= cs.length && cs.length <= 5)
|
61
|
+
assert(2 <= ws.length && ws.length <= 5)
|
62
|
+
assert(2 <= ss.length && ss.length <= 5)
|
63
|
+
assert(2 <= ps.length && ps.length <= 5)
|
64
|
+
end
|
65
|
+
|
66
|
+
def test_array_count_param
|
67
|
+
cs = @tester.characters([1,4])
|
68
|
+
ws = @tester.words([1,4])
|
69
|
+
ss = @tester.sentences([1,4])
|
70
|
+
ps = @tester.paragraphs([1,4])
|
71
|
+
|
72
|
+
assert(cs.length == 1 || cs.length == 4)
|
73
|
+
assert(ws.length == 1 || ws.length == 4)
|
74
|
+
assert(ss.length == 1 || ss.length == 4)
|
75
|
+
assert(ps.length == 1 || ps.length == 4)
|
76
|
+
end
|
77
|
+
|
78
|
+
def test_words_with_large_count_params
|
79
|
+
exact = @tester.words(500)
|
80
|
+
range = @tester.words(250..500)
|
81
|
+
array = @tester.words([250, 500])
|
82
|
+
|
83
|
+
assert(exact.length == 500)
|
84
|
+
assert(250 <= range.length && range.length <= 500)
|
85
|
+
assert(array.length == 250 || array.length == 500)
|
86
|
+
end
|
87
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
require File.expand_path(File.dirname(__FILE__) + '/../test_helper.rb')
|
2
|
+
|
3
|
+
class TestFakerName < Test::Unit::TestCase
|
4
|
+
|
5
|
+
def setup
|
6
|
+
@tester = Faker::Name
|
7
|
+
end
|
8
|
+
|
9
|
+
def test_name
|
10
|
+
assert @tester.name.match(/(\w+\.? ?){2,3}/)
|
11
|
+
end
|
12
|
+
|
13
|
+
def test_prefix
|
14
|
+
assert @tester.prefix.match(/[A-Z][a-z]+\.?/)
|
15
|
+
end
|
16
|
+
|
17
|
+
def test_suffix
|
18
|
+
assert @tester.suffix.match(/[A-Z][a-z]*\.?/)
|
19
|
+
end
|
20
|
+
end
|
@@ -0,0 +1,77 @@
|
|
1
|
+
require File.expand_path(File.dirname(__FILE__) + '/../test_helper.rb')
|
2
|
+
|
3
|
+
class TestFakerNumber < Test::Unit::TestCase
|
4
|
+
def setup
|
5
|
+
@tester = Faker::Number
|
6
|
+
end
|
7
|
+
|
8
|
+
def test_number
|
9
|
+
assert @tester.number(10).match(/[0-9]{10}/)
|
10
|
+
|
11
|
+
10.times do |digits|
|
12
|
+
digits += 1
|
13
|
+
assert @tester.number(digits).match(/^[0-9]{#{digits}}$/)
|
14
|
+
end
|
15
|
+
|
16
|
+
assert @tester.number(10).length == 10
|
17
|
+
assert @tester.number(1).length == 1
|
18
|
+
assert @tester.number(0) == ""
|
19
|
+
end
|
20
|
+
|
21
|
+
def test_decimal
|
22
|
+
assert @tester.decimal(2).match(/[0-9]{2}\.[0-9]{2}/)
|
23
|
+
assert @tester.decimal(4, 5).match(/[0-9]{4}\.[0-9]{5}/)
|
24
|
+
end
|
25
|
+
|
26
|
+
def test_digit
|
27
|
+
assert @tester.digit.match(/[0-9]{1}/)
|
28
|
+
assert (1..1000).collect {|i| @tester.digit == "9"}.include?(true)
|
29
|
+
end
|
30
|
+
|
31
|
+
def test_between
|
32
|
+
100.times do
|
33
|
+
random_number = @tester.between(-50, 50)
|
34
|
+
assert random_number >= -50, "Expected >= -50, but got #{random_number}"
|
35
|
+
assert random_number <= 50, "Expected <= 50, but got #{random_number}"
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
def test_positive
|
40
|
+
100.times do
|
41
|
+
random_number = @tester.positive(1, 100)
|
42
|
+
assert random_number >= 1, "Expected >= 1, but got #{random_number}"
|
43
|
+
assert random_number <= 100, "Expected <= 100, but got #{random_number}"
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
def test_negative
|
48
|
+
100.times do
|
49
|
+
random_number = @tester.negative(-1, -100)
|
50
|
+
assert random_number <= -1, "Expected <= -1, but got #{random_number}"
|
51
|
+
assert random_number >= -100, "Expected >= -100, but got #{random_number}"
|
52
|
+
end
|
53
|
+
end
|
54
|
+
|
55
|
+
def test_force_positive
|
56
|
+
random_number = @tester.positive(-1, -100)
|
57
|
+
assert random_number >= 1, "Expected >= 1, but got #{random_number}"
|
58
|
+
assert random_number <= 100, "Expected <= 100, but got #{random_number}"
|
59
|
+
end
|
60
|
+
|
61
|
+
def test_force_negative
|
62
|
+
random_number = @tester.negative(1, 100)
|
63
|
+
assert random_number <= -1, "Expected <= -1, but got #{random_number}"
|
64
|
+
assert random_number >= -100, "Expected >= -100, but got #{random_number}"
|
65
|
+
end
|
66
|
+
|
67
|
+
def test_parameters_order
|
68
|
+
random_number = @tester.between(100, 1)
|
69
|
+
assert random_number >= 1, "Expected >= 1, but got #{random_number}"
|
70
|
+
assert random_number <= 100, "Expected <= 100, but got #{random_number}"
|
71
|
+
end
|
72
|
+
|
73
|
+
def test_hexadecimal
|
74
|
+
assert @tester.hexadecimal(4).match(/[0-9a-f]{4}/)
|
75
|
+
assert @tester.hexadecimal(7).match(/[0-9a-f]{7}/)
|
76
|
+
end
|
77
|
+
end
|
@@ -0,0 +1,53 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../test_helper.rb'
|
2
|
+
|
3
|
+
class TestFakerStreet < Test::Unit::TestCase
|
4
|
+
def setup
|
5
|
+
I18n.reload!
|
6
|
+
shire = {
|
7
|
+
:factory_helper => {
|
8
|
+
:address => {
|
9
|
+
:street_name => ['#{street_prefix} #{street_root} #{street_suffix}'],
|
10
|
+
:street_prefix => ["Wide"],
|
11
|
+
:street_root => ["Cheerful"],
|
12
|
+
:street_suffix => ["Path"],
|
13
|
+
:secondary_address => ["(Green Door)"],
|
14
|
+
:street_address => ['#{street_name} #{building_number}'],
|
15
|
+
:building_number => ["#"],
|
16
|
+
:time_zone => ["Pacific/Pago_Pago"],
|
17
|
+
}
|
18
|
+
}
|
19
|
+
}
|
20
|
+
I18n.backend.store_translations(:shire, shire)
|
21
|
+
end
|
22
|
+
|
23
|
+
def test_street_name_supports_flexible_formats
|
24
|
+
I18n.with_locale(:shire) do
|
25
|
+
assert_equal "Wide Cheerful Path", Faker::Address.street_name
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
def test_street_address_supports_flexible_formats
|
30
|
+
I18n.with_locale(:shire) do
|
31
|
+
assert_match(/Wide Cheerful Path \d/, Faker::Address.street_address)
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
def test_street_address_optionally_provides_secondary_address
|
36
|
+
I18n.with_locale(:shire) do
|
37
|
+
assert_match(/Wide Cheerful Path \d \(Green Door\)/, Faker::Address.street_address(:include_secondary))
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
def test_street_address_with_locale_fallback
|
42
|
+
I18n.with_locale('en-GB') do
|
43
|
+
assert_match(/^\d+ [\w']+ \w+/, Faker::Address.street_address)
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
def test_timezone_support
|
48
|
+
I18n.with_locale(:shire) do
|
49
|
+
assert_equal "Pacific/Pago_Pago", Faker::Address.time_zone
|
50
|
+
end
|
51
|
+
end
|
52
|
+
|
53
|
+
end
|
@@ -0,0 +1,74 @@
|
|
1
|
+
require File.expand_path(File.dirname(__FILE__) + '/../test_helper.rb')
|
2
|
+
|
3
|
+
class TestFakerTime < Test::Unit::TestCase
|
4
|
+
def setup
|
5
|
+
@tester = Faker::Time
|
6
|
+
@time_ranges = Faker::Time::TIME_RANGES
|
7
|
+
end
|
8
|
+
|
9
|
+
def test_between
|
10
|
+
from = Time.local(2012, 01, 01, 0, 0, 0)
|
11
|
+
to = Time.local(2013, 01, 01, 23, 59, 59)
|
12
|
+
|
13
|
+
100.times do
|
14
|
+
random_time = @tester.between(from, to)
|
15
|
+
assert random_time >= from, "Expected >= \"#{from}\", but got #{random_time}"
|
16
|
+
assert random_time <= to , "Expected <= \"#{to}\", but got #{random_time}"
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
def test_forward
|
21
|
+
today = Date.today
|
22
|
+
|
23
|
+
100.times do
|
24
|
+
random_time = @tester.forward(10)
|
25
|
+
assert random_time > today.to_time, "Expected > \"#{today}\", but got #{random_time}"
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
def test_backward
|
30
|
+
tomorrow = Date.today + 1
|
31
|
+
|
32
|
+
100.times do
|
33
|
+
random_time = @tester.backward(10)
|
34
|
+
assert random_time < tomorrow.to_time, "Expected < \"#{tomorrow}\", but got #{random_time}"
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
def test_invalid_period_error
|
39
|
+
from = Date.today
|
40
|
+
to = Date.today + 15
|
41
|
+
|
42
|
+
assert_raise ArgumentError do
|
43
|
+
@tester.between(from, to, :invalid_period)
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
def test_return_type
|
48
|
+
random_backward = @tester.backward(5)
|
49
|
+
random_between = @tester.between(Date.today, Date.today + 5)
|
50
|
+
random_forward = @tester.forward(5)
|
51
|
+
|
52
|
+
[random_backward, random_between, random_forward].each do |result|
|
53
|
+
assert result.is_a?(Time), "Expected a Time object, but got #{result.class}"
|
54
|
+
end
|
55
|
+
end
|
56
|
+
|
57
|
+
def test_time_period
|
58
|
+
from = Date.today
|
59
|
+
to = Date.today + 15
|
60
|
+
|
61
|
+
100.times do
|
62
|
+
period = @time_ranges.keys.to_a.sample
|
63
|
+
period_range = @time_ranges[period]
|
64
|
+
|
65
|
+
random_backward = @tester.backward(30, period)
|
66
|
+
random_between = @tester.between(from, to, period)
|
67
|
+
random_forward = @tester.forward(30, period)
|
68
|
+
|
69
|
+
[random_backward, random_between, random_forward].each do |result|
|
70
|
+
assert period_range.include?(result.hour.to_i), "\"#{result.hour}\" expected to be included in Faker::Time::TIME_RANGES[:#{period}] range"
|
71
|
+
end
|
72
|
+
end
|
73
|
+
end
|
74
|
+
end
|