faker 1.6.3 → 1.6.4

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.
Files changed (82) hide show
  1. checksums.yaml +4 -4
  2. data/History.txt +13 -0
  3. data/README.md +185 -23
  4. data/lib/faker.rb +20 -0
  5. data/lib/faker/app.rb +1 -1
  6. data/lib/faker/beer.rb +1 -1
  7. data/lib/faker/chuck_norris.rb +16 -0
  8. data/lib/faker/code.rb +59 -0
  9. data/lib/faker/company.rb +19 -0
  10. data/lib/faker/crypto.rb +19 -0
  11. data/lib/faker/date.rb +30 -2
  12. data/lib/faker/educator.rb +23 -0
  13. data/lib/faker/file.rb +23 -0
  14. data/lib/faker/internet.rb +24 -15
  15. data/lib/faker/lorem.rb +21 -7
  16. data/lib/faker/music.rb +21 -0
  17. data/lib/faker/name.rb +7 -0
  18. data/lib/faker/placeholdit.rb +3 -3
  19. data/lib/faker/space.rb +54 -0
  20. data/lib/faker/time.rb +7 -18
  21. data/lib/faker/vehicle.rb +37 -0
  22. data/lib/faker/version.rb +1 -1
  23. data/lib/faker/yoda.rb +10 -0
  24. data/lib/locales/de.yml +26 -8
  25. data/lib/locales/en-GB.yml +1 -1
  26. data/lib/locales/en-PAK.yml +17 -0
  27. data/lib/locales/en.yml +195 -4
  28. data/lib/locales/es-MX.yml +82 -0
  29. data/lib/locales/es.yml +4 -0
  30. data/lib/locales/fr.yml +7 -4
  31. data/lib/locales/pt-BR.yml +51 -23
  32. metadata +13 -103
  33. data/test/test_array_sample_method_compat.rb +0 -56
  34. data/test/test_avatar.rb +0 -43
  35. data/test/test_ca_cat_locale.rb +0 -35
  36. data/test/test_ca_locale.rb +0 -22
  37. data/test/test_da_dk_locale.rb +0 -32
  38. data/test/test_en_au_locale.rb +0 -24
  39. data/test/test_en_au_ocker_locale.rb +0 -25
  40. data/test/test_en_ca_locale.rb +0 -18
  41. data/test/test_en_locale.rb +0 -35
  42. data/test/test_en_nz_locale.rb +0 -33
  43. data/test/test_en_ug_locale.rb +0 -23
  44. data/test/test_en_us_locale.rb +0 -89
  45. data/test/test_es_locale.rb +0 -34
  46. data/test/test_faker.rb +0 -29
  47. data/test/test_faker_app.rb +0 -12
  48. data/test/test_faker_beer.rb +0 -41
  49. data/test/test_faker_bitcoin.rb +0 -14
  50. data/test/test_faker_book.rb +0 -24
  51. data/test/test_faker_boolean.rb +0 -23
  52. data/test/test_faker_business.rb +0 -34
  53. data/test/test_faker_cat.rb +0 -20
  54. data/test/test_faker_city.rb +0 -52
  55. data/test/test_faker_code.rb +0 -35
  56. data/test/test_faker_color.rb +0 -50
  57. data/test/test_faker_commerce.rb +0 -84
  58. data/test/test_faker_company.rb +0 -34
  59. data/test/test_faker_date.rb +0 -89
  60. data/test/test_faker_hacker_talk.rb +0 -37
  61. data/test/test_faker_hipster.rb +0 -78
  62. data/test/test_faker_internet.rb +0 -190
  63. data/test/test_faker_lorem.rb +0 -87
  64. data/test/test_faker_name.rb +0 -20
  65. data/test/test_faker_number.rb +0 -107
  66. data/test/test_faker_shakespeare.rb +0 -53
  67. data/test/test_faker_slack_emoji.rb +0 -45
  68. data/test/test_faker_star_wars.rb +0 -74
  69. data/test/test_faker_street.rb +0 -58
  70. data/test/test_faker_superhero.rb +0 -16
  71. data/test/test_faker_team.rb +0 -25
  72. data/test/test_faker_time.rb +0 -93
  73. data/test/test_faker_university.rb +0 -20
  74. data/test/test_fi_locale.rb +0 -33
  75. data/test/test_flexible.rb +0 -62
  76. data/test/test_helper.rb +0 -12
  77. data/test/test_locale.rb +0 -47
  78. data/test/test_pl_locale.rb +0 -24
  79. data/test/test_placeholdit.rb +0 -92
  80. data/test/test_pt_locale.rb +0 -27
  81. data/test/test_sv_locale.rb +0 -28
  82. data/test/test_uk_locale.rb +0 -44
@@ -1,190 +0,0 @@
1
- require File.expand_path(File.dirname(__FILE__) + '/test_helper.rb')
2
-
3
- class TestFakerInternet < Test::Unit::TestCase
4
-
5
- def setup
6
- @tester = Faker::Internet
7
- end
8
-
9
- def test_email
10
- assert @tester.email.match(/.+@.+\.\w+/)
11
- end
12
-
13
- def test_free_email
14
- assert @tester.free_email.match(/.+@(gmail|hotmail|yahoo)\.com/)
15
- end
16
-
17
- def test_safe_email
18
- assert @tester.safe_email.match(/.+@example.(com|net|org)/)
19
- end
20
-
21
- def test_user_name
22
- assert @tester.user_name.match(/[a-z]+((_|\.)[a-z]+)?/)
23
- end
24
-
25
- def test_user_name_with_string_arg
26
- assert @tester.user_name('bo peep').match(/(bo(_|\.)peep|peep(_|\.)bo)/)
27
- end
28
-
29
- def test_user_name_with_integer_arg
30
- (1..32).each do |min_length|
31
- assert @tester.user_name(min_length).length >= min_length
32
- end
33
- end
34
-
35
- def test_user_name_with_closed_range_arg
36
- (1..32).each do |min_length|
37
- (min_length..32).each do |max_length|
38
- l = @tester.user_name((min_length..max_length)).length
39
- assert l >= min_length
40
- assert l <= max_length
41
- end
42
- end
43
- end
44
-
45
- def test_user_name_with_open_range_arg
46
- (1..32).each do |min_length|
47
- (min_length+1..33).each do |max_length|
48
- l = @tester.user_name((min_length...max_length)).length
49
- assert l >= min_length
50
- assert l <= max_length-1
51
- end
52
- end
53
- end
54
-
55
- def test_user_name_with_range_and_separators
56
- (1..32).each do |min_length|
57
- (min_length+1..33).each do |max_length|
58
- u = @tester.user_name((min_length...max_length), %w(=))
59
- assert u.length.between? min_length, max_length-1
60
- assert u.match(/\A[a-z]+((=)?[a-z]*)*\z/)
61
- end
62
- end
63
- end
64
-
65
- def test_password
66
- assert @tester.password.match(/\w{3}/)
67
- end
68
-
69
- def test_password_with_integer_arg
70
- (1..32).each do |min_length|
71
- assert @tester.password(min_length).length >= min_length
72
- end
73
- end
74
-
75
- def test_password_max_with_integer_arg
76
- (1..32).each do |min_length|
77
- max_length = min_length + 4
78
- assert @tester.password(min_length, max_length).length <= max_length
79
- end
80
- end
81
-
82
- def test_password_with_mixed_case
83
- assert @tester.password.match(/[A-Z]+/)
84
- end
85
-
86
- def test_password_without_mixed_case
87
- assert @tester.password(8, 12, false).match(/[^A-Z]+/)
88
- end
89
-
90
- def test_password_with_special_chars
91
- assert @tester.password(8, 12, true, true).match(/[!@#\$%\^&\*]+/)
92
- end
93
-
94
- def test_password_without_special_chars
95
- assert @tester.password(8, 12, true).match(/[^!@#\$%\^&\*]+/)
96
- end
97
-
98
- def test_domain_name
99
- assert @tester.domain_name.match(/\w+\.\w+/)
100
- end
101
-
102
- def test_domain_word
103
- assert @tester.domain_word.match(/^\w+$/)
104
- end
105
-
106
- def test_domain_suffix
107
- assert @tester.domain_suffix.match(/^\w+(\.\w+)?/)
108
- end
109
-
110
- def test_ip_v4_address
111
- assert_equal 3, @tester.ip_v4_address.count('.')
112
-
113
- 100.times do
114
- assert @tester.ip_v4_address.split('.').map{|octet| octet.to_i}.max <= 255
115
- end
116
- end
117
-
118
- def test_public_ip_v4_address
119
- ten_dot = /^10\./
120
- one_two_seven = /^127\./
121
- one_six_nine = /^169\.254/
122
- one_nine_two = /^192\.168\./
123
- one_seven_two = /^172\.(16|17|18|19|20|21|22|23|24|25|26|27|28|29|30|31)\./
124
-
125
- 1000.times do
126
- address = @tester.public_ip_v4_address
127
- assert_not_match ten_dot, address
128
- assert_not_match one_two_seven, address
129
- assert_not_match one_six_nine, address
130
- assert_not_match one_nine_two, address
131
- assert_not_match one_seven_two, address
132
- end
133
- end
134
-
135
- def test_ip_v4_cidr
136
- assert @tester.ip_v4_cidr.match(/\/\d{1,2}$/)
137
-
138
- 1000.times do
139
- assert (1..32).include?(@tester.ip_v4_cidr.split('/').last.to_i)
140
- end
141
- end
142
-
143
- def test_mac_address
144
- assert_equal 5, @tester.mac_address.count(':')
145
- assert_equal 5, @tester.mac_address("").count(':')
146
-
147
- 100.times do
148
- assert @tester.mac_address.split(':').map{|d| d.to_i(16)}.max <= 255
149
- end
150
-
151
- assert @tester.mac_address("fa:fa:fa").start_with?("fa:fa:fa")
152
- assert @tester.mac_address("01:02").start_with?("01:02")
153
- end
154
-
155
- def test_ip_v6_address
156
- assert_equal 7, @tester.ip_v6_address.count(':')
157
-
158
- 100.times do
159
- assert @tester.ip_v6_address.split('.').map{|h| "0x#{h}".hex}.max <= 65535
160
- end
161
- end
162
-
163
- def test_ip_v6_cidr
164
- assert @tester.ip_v6_cidr.match(/\/\d{1,3}$/)
165
-
166
- 1000.times do
167
- assert (1..128).include?(@tester.ip_v6_cidr.split('/').last.to_i)
168
- end
169
- end
170
-
171
- def test_slug
172
- assert @tester.slug.match(/^[a-z]+(_|\.|\-)[a-z]+$/)
173
- end
174
-
175
- def test_slug_with_content_arg
176
- assert @tester.slug('Foo bAr baZ').match(/^foo(_|\.|\-)bar(_|\.|\-)baz$/)
177
- end
178
-
179
- def test_slug_with_glue_arg
180
- assert @tester.slug(nil, '+').match(/^[a-z]+\+[a-z]+$/)
181
- end
182
-
183
- def test_url
184
- assert @tester.url('domain.com', '/username').match(/^http:\/\/domain\.com\/username$/)
185
- end
186
-
187
- def test_device_token
188
- assert_equal 64, @tester.device_token.size
189
- end
190
- end
@@ -1,87 +0,0 @@
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('faker.lorem.words')
8
- @complete_wordlist =
9
- @standard_wordlist + I18n.translate('faker.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
- 100.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('faker.lorem.words')
44
- 100.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
@@ -1,20 +0,0 @@
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
@@ -1,107 +0,0 @@
1
- require File.expand_path(File.dirname(__FILE__) + '/test_helper.rb')
2
- require 'minitest/mock'
3
-
4
- class TestFakerNumber < Test::Unit::TestCase
5
- def setup
6
- @tester = Faker::Number
7
- end
8
-
9
- def test_number
10
- assert @tester.number(10).match(/[0-9]{10}/)
11
-
12
- 10.times do |digits|
13
- digits += 1
14
- assert @tester.number(digits).match(/^[0-9]{#{digits}}$/)
15
- end
16
-
17
- assert @tester.number(10).length == 10
18
- assert @tester.number(1).length == 1
19
- assert @tester.number(0) == ""
20
- end
21
-
22
- def test_decimal
23
- assert @tester.decimal(2).match(/[0-9]{2}\.[0-9]{2}/)
24
- assert @tester.decimal(4, 5).match(/[0-9]{4}\.[0-9]{5}/)
25
- end
26
-
27
- def test_digit
28
- assert @tester.digit.match(/[0-9]{1}/)
29
- assert (1..1000).collect {|i| @tester.digit == "9"}.include?(true)
30
- end
31
-
32
- def test_even_distribution
33
- assert stats = {}
34
- assert times = 10000
35
-
36
- times.times do
37
- assert num = @tester.digit
38
- stats[num] ||= 0
39
- assert stats[num] += 1
40
- end
41
-
42
- stats.each do |k, v|
43
- assert_in_delta 10.0, 100.0 * v / times, 2.0
44
- end
45
- end
46
-
47
- def test_between
48
- 100.times do
49
- random_number = @tester.between(-50, 50)
50
- assert random_number >= -50, "Expected >= -50, but got #{random_number}"
51
- assert random_number <= 50, "Expected <= 50, but got #{random_number}"
52
- end
53
- end
54
-
55
- def test_positive
56
- 100.times do
57
- random_number = @tester.positive(1, 100)
58
- assert random_number >= 1, "Expected >= 1, but got #{random_number}"
59
- assert random_number <= 100, "Expected <= 100, but got #{random_number}"
60
- end
61
- end
62
-
63
- def test_negative
64
- 100.times do
65
- random_number = @tester.negative(-1, -100)
66
- assert random_number <= -1, "Expected <= -1, but got #{random_number}"
67
- assert random_number >= -100, "Expected >= -100, but got #{random_number}"
68
- end
69
- end
70
-
71
- def test_force_positive
72
- random_number = @tester.positive(-1, -100)
73
- assert random_number >= 1, "Expected >= 1, but got #{random_number}"
74
- assert random_number <= 100, "Expected <= 100, but got #{random_number}"
75
- end
76
-
77
- def test_force_negative
78
- random_number = @tester.negative(1, 100)
79
- assert random_number <= -1, "Expected <= -1, but got #{random_number}"
80
- assert random_number >= -100, "Expected >= -100, but got #{random_number}"
81
- end
82
-
83
- def test_parameters_order
84
- random_number = @tester.between(100, 1)
85
- assert random_number >= 1, "Expected >= 1, but got #{random_number}"
86
- assert random_number <= 100, "Expected <= 100, but got #{random_number}"
87
- end
88
-
89
- def test_hexadecimal
90
- assert @tester.hexadecimal(4).match(/[0-9a-f]{4}/)
91
- assert @tester.hexadecimal(7).match(/[0-9a-f]{7}/)
92
- end
93
-
94
- def test_insignificant_zero
95
- @tester.stub :digit, 0 do
96
- assert_equal '0', @tester.number(1)
97
- 100.times do
98
- assert_match (/^[1-9]0/), @tester.number(2)
99
- end
100
-
101
- assert_equal '0.0', @tester.decimal(1,1)
102
- 100.times do
103
- assert_match (/^0\.0[1-9]/), @tester.decimal(1,2)
104
- end
105
- end
106
- end
107
- end
@@ -1,53 +0,0 @@
1
- require File.expand_path(File.dirname(__FILE__) + '/test_helper.rb')
2
-
3
- class TestFakerShakespeare < Test::Unit::TestCase
4
- def setup
5
- @romeo_and_juliet = Faker::Shakespeare.romeo_and_juliet
6
- @king_richard_iii = Faker::Shakespeare.king_richard_iii
7
- @as_you_like_it = Faker::Shakespeare.as_you_like_it
8
- @hamlet = Faker::Shakespeare.hamlet
9
- end
10
-
11
- def test_quotes
12
- assert @romeo_and_juliet.size == 11
13
- @romeo_and_juliet.each do |quotes|
14
- assert !quotes.nil?
15
- assert quotes != ""
16
- end
17
-
18
- assert @king_richard_iii.size == 8
19
- @king_richard_iii.each do |quotes|
20
- assert !quotes.nil?
21
- assert quotes != ""
22
- end
23
-
24
- assert @as_you_like_it.size == 8
25
- @as_you_like_it.each do |quotes|
26
- assert !quotes.nil?
27
- assert quotes != ""
28
- end
29
-
30
- assert @hamlet.size == 18
31
- @hamlet.each do |quotes|
32
- assert !quotes.nil?
33
- assert quotes != ""
34
- end
35
- end
36
-
37
- def test_as_you_like_it_quote
38
- assert Faker::Shakespeare.as_you_like_it_quote.match(/\w+/)
39
- end
40
-
41
- def test_king_richard_iii_quote
42
- assert Faker::Shakespeare.king_richard_iii_quote.match(/\w+/)
43
- end
44
-
45
- def test_romeo_and_juliet_quote
46
- assert Faker::Shakespeare.romeo_and_juliet_quote.match(/\w+/)
47
- end
48
-
49
- def test_hamlet_quote
50
- assert Faker::Shakespeare.hamlet_quote.match(/\w+/)
51
- end
52
-
53
- end