factory-helper 1.7.5 → 1.7.6
Sign up to get free protection for your applications and to get access to all the features.
- 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
|