ffaker 2.21.0 → 2.23.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (108) hide show
  1. checksums.yaml +4 -4
  2. data/Changelog.md +131 -17
  3. data/Gemfile +15 -0
  4. data/README.md +18 -6
  5. data/REFERENCE.md +1012 -969
  6. data/Rakefile +16 -47
  7. data/bin/console +9 -0
  8. data/ffaker.gemspec +9 -23
  9. data/lib/ffaker/address.rb +4 -4
  10. data/lib/ffaker/address_fr.rb +3 -5
  11. data/lib/ffaker/address_it.rb +1 -4
  12. data/lib/ffaker/address_ua.rb +1 -1
  13. data/lib/ffaker/avatar.rb +11 -3
  14. data/lib/ffaker/bank.rb +1 -1
  15. data/lib/ffaker/bank_us.rb +33 -0
  16. data/lib/ffaker/book.rb +15 -7
  17. data/lib/ffaker/cheesy_lingo.rb +2 -2
  18. data/lib/ffaker/code.rb +1 -1
  19. data/lib/ffaker/company.rb +2 -2
  20. data/lib/ffaker/company_fr.rb +2 -2
  21. data/lib/ffaker/crypto.rb +14 -0
  22. data/lib/ffaker/data/address_de/state +1 -0
  23. data/lib/ffaker/data/jo_jo/first_names +356 -0
  24. data/lib/ffaker/data/jo_jo/full_names +225 -0
  25. data/lib/ffaker/data/jo_jo/last_names +153 -0
  26. data/lib/ffaker/data/jo_jo/stands +149 -0
  27. data/lib/ffaker/date.rb +40 -0
  28. data/lib/ffaker/filesystem.rb +12 -2
  29. data/lib/ffaker/geolocation.rb +2 -2
  30. data/lib/ffaker/identification_br.rb +3 -12
  31. data/lib/ffaker/identification_ec.rb +39 -0
  32. data/lib/ffaker/identification_es_cl.rb +2 -2
  33. data/lib/ffaker/identification_es_co.rb +1 -1
  34. data/lib/ffaker/identification_kr.rb +11 -4
  35. data/lib/ffaker/identification_pl.rb +6 -6
  36. data/lib/ffaker/identification_tw.rb +1 -1
  37. data/lib/ffaker/image.rb +28 -4
  38. data/lib/ffaker/jo_jo.rb +24 -0
  39. data/lib/ffaker/lorem_ja.rb +1 -1
  40. data/lib/ffaker/lorem_ru.rb +1 -1
  41. data/lib/ffaker/movie.rb +1 -1
  42. data/lib/ffaker/name_fr.rb +4 -3
  43. data/lib/ffaker/name_pl.rb +1 -1
  44. data/lib/ffaker/number.rb +6 -2
  45. data/lib/ffaker/phone_number_de.rb +3 -3
  46. data/lib/ffaker/skill.rb +1 -1
  47. data/lib/ffaker/ssn.rb +4 -2
  48. data/lib/ffaker/ssn_se.rb +2 -2
  49. data/lib/ffaker/string.rb +1 -1
  50. data/lib/ffaker/time.rb +3 -3
  51. data/lib/ffaker/utils/module_utils.rb +5 -6
  52. data/lib/ffaker/utils/unique_utils.rb +33 -21
  53. data/lib/ffaker/vehicle.rb +2 -2
  54. data/lib/{version.rb → ffaker/version.rb} +1 -1
  55. data/lib/ffaker.rb +63 -191
  56. data/scripts/reference.rb +8 -10
  57. data/test/helper.rb +3 -5
  58. data/test/test_address_da.rb +3 -3
  59. data/test/test_address_fi.rb +2 -2
  60. data/test/test_address_se.rb +2 -2
  61. data/test/test_avatar.rb +30 -7
  62. data/test/test_bank_us.rb +35 -0
  63. data/test/test_book.rb +29 -0
  64. data/test/test_cheesy_lingo.rb +1 -1
  65. data/test/test_color.rb +3 -3
  66. data/test/test_crypto.rb +15 -0
  67. data/test/test_date.rb +47 -0
  68. data/test/test_filesystem.rb +30 -4
  69. data/test/test_freedom_ipsum.rb +1 -1
  70. data/test/test_gender_it.rb +1 -1
  71. data/test/test_gender_ja.rb +1 -1
  72. data/test/test_gender_jp.rb +1 -1
  73. data/test/test_gender_pl.rb +1 -1
  74. data/test/test_healthcare_ru.rb +1 -1
  75. data/test/test_hipster_ipsum.rb +1 -1
  76. data/test/test_html_ipsum.rb +2 -2
  77. data/test/test_identification.rb +12 -2
  78. data/test/test_identification_ec.rb +33 -0
  79. data/test/test_identification_es_mx.rb +3 -1
  80. data/test/test_identification_it.rb +12 -1
  81. data/test/test_identification_kr.rb +3 -3
  82. data/test/test_image.rb +51 -5
  83. data/test/test_internet.rb +3 -1
  84. data/test/test_internet_se.rb +5 -2
  85. data/test/test_jo_jo.rb +29 -0
  86. data/test/test_lorem_br.rb +2 -2
  87. data/test/test_lorem_cn.rb +3 -3
  88. data/test/test_lorem_fr.rb +3 -3
  89. data/test/test_lorem_ie.rb +2 -2
  90. data/test/test_lorem_kr.rb +3 -3
  91. data/test/test_lorem_pl.rb +2 -2
  92. data/test/test_lorem_ru.rb +3 -3
  93. data/test/test_lorem_ua.rb +3 -3
  94. data/test/test_module_utils.rb +33 -0
  95. data/test/test_name_da.rb +1 -1
  96. data/test/test_name_ph.rb +1 -1
  97. data/test/test_name_ru.rb +2 -2
  98. data/test/test_name_ua.rb +2 -2
  99. data/test/test_number.rb +13 -1
  100. data/test/test_phone_number_nl.rb +1 -1
  101. data/test/test_phone_number_se.rb +1 -1
  102. data/test/test_phone_number_sg.rb +8 -8
  103. data/test/test_unique_utils.rb +29 -5
  104. data/test/test_units.rb +6 -6
  105. data/test/test_units_english.rb +15 -15
  106. data/test/test_units_metric.rb +15 -15
  107. data/test/test_vehicle.rb +22 -0
  108. metadata +24 -241
data/test/test_book.rb CHANGED
@@ -39,6 +39,35 @@ class TestBook < Test::Unit::TestCase
39
39
  @tester.cover)
40
40
  end
41
41
 
42
+ def test_cover_with_format
43
+ assert_match(%r{\Ahttps://robohash\.org/.+\.jpg\?size=300x300\z},
44
+ @tester.cover(format: 'jpg'))
45
+ end
46
+
47
+ def test_cover_output_with_keyword_arguments
48
+ output = capture_output do
49
+ @tester.cover(format: 'jpg')
50
+ end
51
+
52
+ assert_equal ['', ''], output
53
+ end
54
+
55
+ def test_cover_with_slug_as_positional_argument
56
+ assert_match(%r{\Ahttps://robohash\.org/foobar\.png\?size=300x300\z},
57
+ @tester.cover('foobar'))
58
+ end
59
+
60
+ def test_cover_output_with_positional_arguments
61
+ output = capture_output do
62
+ @tester.cover('foobar')
63
+ end
64
+
65
+ assert_equal(
66
+ ['', "Positional arguments for Book#cover are deprecated. Please use keyword arguments.\n"],
67
+ output
68
+ )
69
+ end
70
+
42
71
  def test_orly_cover
43
72
  assert_match(%r{\Ahttps://orly-appstore\.herokuapp\.com/generate},
44
73
  @tester.orly_cover)
@@ -5,7 +5,7 @@ require_relative 'helper'
5
5
  class TestCheesyLingo < Test::Unit::TestCase
6
6
  include DeterministicHelper
7
7
 
8
- TEST_REGEX = /\+1|[a-z]+/i.freeze
8
+ TEST_REGEX = /\+1|[a-z]+/i
9
9
 
10
10
  assert_methods_are_deterministic(
11
11
  FFaker::CheesyLingo,
data/test/test_color.rb CHANGED
@@ -5,9 +5,9 @@ require_relative 'helper'
5
5
  class TestColor < Test::Unit::TestCase
6
6
  include DeterministicHelper
7
7
 
8
- VALID_RGB_REGEX = /\A([0-9]{1,3})\z/.freeze
9
- VALID_OPACITY_REGEX = /^([0-9].[0-9]{1,2})$/.freeze
10
- VALID_PERCENTAGE_REGEX = /^([0-9]{1,3}%)$/.freeze
8
+ VALID_RGB_REGEX = /\A([0-9]{1,3})\z/
9
+ VALID_OPACITY_REGEX = /^([0-9].[0-9]{1,2})$/
10
+ VALID_PERCENTAGE_REGEX = /^([0-9]{1,3}%)$/
11
11
 
12
12
  assert_methods_are_deterministic(
13
13
  FFaker::Color,
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative 'helper'
4
+
5
+ class TestCrypto < Test::Unit::TestCase
6
+ include DeterministicHelper
7
+
8
+ assert_methods_are_deterministic(FFaker::Crypto, :sha256)
9
+
10
+ def test_sha256
11
+ assert FFaker::Crypto.sha256.is_a?(String)
12
+ assert FFaker::Crypto.sha256.length == 64
13
+ assert_match(/\A[a-z\d]{64}\z/, FFaker::Crypto.sha256)
14
+ end
15
+ end
data/test/test_date.rb ADDED
@@ -0,0 +1,47 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative 'helper'
4
+
5
+ class TestFakerDate < Test::Unit::TestCase
6
+ include DeterministicHelper
7
+
8
+ def setup
9
+ @tester = FFaker::Date
10
+ end
11
+
12
+ assert_methods_are_deterministic(FFaker::Date, :backward, :forward, :birthday)
13
+
14
+ def test_between
15
+ from = Date.new(2015, 1, 1)
16
+ to = Date.new(2016, 12, 31)
17
+
18
+ assert_random_between(from..to) { @tester.between(from, to) }
19
+ assert_instance_of Date, @tester.between(from, to)
20
+ end
21
+
22
+ def test_backward
23
+ today = Date.today
24
+
25
+ assert_random_between(today - 365..today - 1) { @tester.backward }
26
+ assert_random_between(today - 30..today - 1) { @tester.backward(30) }
27
+ assert_instance_of Date, @tester.backward
28
+ end
29
+
30
+ def test_forward
31
+ today = Date.today
32
+
33
+ assert_random_between(today + 1..today + 365) { @tester.forward }
34
+ assert_random_between(today + 1..today + 30) { @tester.forward(30) }
35
+ assert_instance_of Date, @tester.forward
36
+ end
37
+
38
+ def test_birthday
39
+ today = Date.today
40
+
41
+ assert_random_between(today.prev_year(65).next_day..today.prev_year(18)) { @tester.birthday }
42
+ assert_random_between(today.prev_year(43).next_day..today.prev_year(42)) do
43
+ @tester.birthday(min_age: 42, max_age: 42)
44
+ end
45
+ assert_instance_of Date, @tester.birthday
46
+ end
47
+ end
@@ -15,10 +15,10 @@ class TestFakerFilesystem < Test::Unit::TestCase
15
15
  end
16
16
 
17
17
  def test_extension
18
- assert_match /\A(?:flac|mp3|wav|bmp|gif|jpeg|jpg|png|tiff|css|csv|html|js|
18
+ assert_match(/\A(?:flac|mp3|wav|bmp|gif|jpeg|jpg|png|tiff|css|csv|html|js|
19
19
  json|txt|mp4|avi|mov|webm|doc|docx|xls|xlsx|ppt|pptx|odt|
20
20
  ods|odp|pages|numbers|key|pdf)\z/x,
21
- @tester.extension
21
+ @tester.extension)
22
22
  end
23
23
 
24
24
  def test_mime_type_format
@@ -30,7 +30,33 @@ class TestFakerFilesystem < Test::Unit::TestCase
30
30
  end
31
31
 
32
32
  def test_file_name
33
- assert_match %r{\A(?:[a-z_-]+[\\/])+[a-z_-]+\.\w{2,4}\z},
34
- @tester.file_name
33
+ assert_match %r{\A(?:[a-z_-]+[\\/])+[a-z_-]+\.\w{2,4}\z}, @tester.file_name
34
+ end
35
+
36
+ def test_file_name_with_extension
37
+ assert_match %r{\A(?:[a-z_-]+[\\/])+[a-z_-]+\.rb\z}, @tester.file_name(ext: 'rb')
38
+ end
39
+
40
+ def test_file_name_output_with_keyword_arguments
41
+ output = capture_output do
42
+ @tester.file_name(ext: 'rb')
43
+ end
44
+
45
+ assert_equal ['', ''], output
46
+ end
47
+
48
+ def test_file_name_with_directory_as_positional_argument
49
+ assert_match %r{\Asome_directory/[a-z_-]+\.\w{2,4}\z}, @tester.file_name('some_directory')
50
+ end
51
+
52
+ def test_file_name_output_with_positional_arguments
53
+ output = capture_output do
54
+ @tester.file_name('some_directory')
55
+ end
56
+
57
+ assert_equal(
58
+ ['', "Positional arguments for Filesystem#file_name are deprecated. Please use keyword arguments.\n"],
59
+ output
60
+ )
35
61
  end
36
62
  end
@@ -9,7 +9,7 @@ class TestFreedomIpsum < Test::Unit::TestCase
9
9
  :word, :words
10
10
  )
11
11
 
12
- TEST_REGEX = /[a-z0-9 -]+/i.freeze
12
+ TEST_REGEX = /[a-z0-9 -]+/i
13
13
 
14
14
  def test_words
15
15
  assert_match(TEST_REGEX, FFaker::FreedomIpsum.words.join(' '))
@@ -5,7 +5,7 @@ require_relative 'helper'
5
5
  class TestFakerGenderIT < Test::Unit::TestCase
6
6
  include DeterministicHelper
7
7
 
8
- GENDER_REGEX = /\A(maschio|femmina)\z/.freeze
8
+ GENDER_REGEX = /\A(maschio|femmina)\z/
9
9
 
10
10
  assert_methods_are_deterministic(FFaker::GenderIT, :random)
11
11
 
@@ -5,7 +5,7 @@ require_relative 'helper'
5
5
  class TestFakerGenderJA < Test::Unit::TestCase
6
6
  include DeterministicHelper
7
7
 
8
- GENDER_REGEX = /\A[女男]\z/.freeze
8
+ GENDER_REGEX = /\A[女男]\z/
9
9
 
10
10
  assert_methods_are_deterministic(FFaker::GenderJP, :random)
11
11
 
@@ -5,7 +5,7 @@ require_relative 'helper'
5
5
  class TestFakerGenderJP < Test::Unit::TestCase
6
6
  include DeterministicHelper
7
7
 
8
- GENDER_REGEX = /\A[女男]\z/.freeze
8
+ GENDER_REGEX = /\A[女男]\z/
9
9
 
10
10
  assert_methods_are_deterministic(FFaker::GenderJP, :random)
11
11
 
@@ -5,7 +5,7 @@ require_relative 'helper'
5
5
  class TestFakerGenderPL < Test::Unit::TestCase
6
6
  include DeterministicHelper
7
7
 
8
- GENDER_REGEX = /\A(kobieta|mężczyzna)\z/.freeze
8
+ GENDER_REGEX = /\A(kobieta|mężczyzna)\z/
9
9
 
10
10
  assert_methods_are_deterministic(FFaker::GenderPL, :random)
11
11
 
@@ -5,7 +5,7 @@ require_relative 'helper'
5
5
  class TestHealthcareRU < Test::Unit::TestCase
6
6
  include DeterministicHelper
7
7
 
8
- SPECIALIZATION_REGEX = /\A[А-Яа-я\ ()\-]+\z/.freeze
8
+ SPECIALIZATION_REGEX = /\A[А-Яа-я\ ()-]+\z/
9
9
 
10
10
  assert_methods_are_deterministic(FFaker::HealthcareRU, :doctor_specialization)
11
11
 
@@ -10,7 +10,7 @@ class TestHipsterIpsum < Test::Unit::TestCase
10
10
  :paragraph, :paragraphs, :sentence, :sentences, :word, :words
11
11
  )
12
12
 
13
- TEST_REGEX = /\+1|[ a-z]+/i.freeze
13
+ TEST_REGEX = /\+1|[ a-z]+/i
14
14
 
15
15
  def test_paragraph
16
16
  assert_match(TEST_REGEX, FFaker::HipsterIpsum.paragraph)
@@ -92,8 +92,8 @@ class TestHTMLIpsum < Test::Unit::TestCase
92
92
 
93
93
  def test_fancy_string_tags
94
94
  # It returns a string with at least one HTML tag
95
- assert_match(%r{(<.*>[\w\s]+<\/\w+>){1}}i, FFaker::HTMLIpsum.fancy_string(1))
96
- assert_match(%r{(<.*>[\w\s]+<\/\w+>){1}}i, FFaker::HTMLIpsum.fancy_string(3))
95
+ assert_match(%r{(<.*>[\w\s]+</\w+>){1}}i, FFaker::HTMLIpsum.fancy_string(1))
96
+ assert_match(%r{(<.*>[\w\s]+</\w+>){1}}i, FFaker::HTMLIpsum.fancy_string(3))
97
97
  end
98
98
 
99
99
  def test_fancy_string_breaks
@@ -15,7 +15,6 @@ class TestFakerIdentification < Test::Unit::TestCase
15
15
  end
16
16
 
17
17
  def test_drivers_license
18
- ###-###-##-###-#
19
18
  drivers_license_regex = /\A[A-Z]\d{3}-\d{3}-\d{2}-\d{3}-\d{1}\z/
20
19
  assert_match(drivers_license_regex, @tester.drivers_license)
21
20
  end
@@ -29,7 +28,18 @@ class TestFakerIdentification < Test::Unit::TestCase
29
28
  end
30
29
 
31
30
  def test_ethnicity
32
- ethnicity_regex = %r{\A(African American|Asian/Pacific Islander|Caucasian|Hispanic|Native American|Multiracial|Other|Prefer not to respond)\z}
31
+ ethnicity_regex = %r{
32
+ \A(
33
+ African\ American|
34
+ Asian/Pacific\ Islander|
35
+ Caucasian|
36
+ Hispanic|
37
+ Native\ American|
38
+ Multiracial|
39
+ Other|
40
+ Prefer\ not\ to\ respond
41
+ )\z
42
+ }x
33
43
  assert_match(ethnicity_regex, @tester.ethnicity)
34
44
  end
35
45
  end
@@ -0,0 +1,33 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative 'helper'
4
+
5
+ class TestIdentificationEC < Test::Unit::TestCase
6
+ include DeterministicHelper
7
+
8
+ assert_methods_are_deterministic(FFaker::IdentificationEC, :ci)
9
+
10
+ def setup
11
+ @tester = FFaker::IdentificationEC
12
+ end
13
+
14
+ def test_ci
15
+ assert_match(/^[0-9]{10}$/, @tester.ci)
16
+ end
17
+
18
+ def test_last_digit
19
+ ci = @tester.ci
20
+ sum = 0
21
+ ci[0..8].chars.each_with_index do |char, index|
22
+ if index.even?
23
+ multiple = char.to_i * 2
24
+ sum += multiple > 9 ? multiple - 9 : multiple
25
+ else
26
+ sum += char.to_i
27
+ end
28
+ end
29
+ mod = sum % 10
30
+ mod = 10 - mod if mod.positive?
31
+ assert(ci[9].to_i == mod)
32
+ end
33
+ end
@@ -22,7 +22,9 @@ class TestIdentificationMX < Test::Unit::TestCase
22
22
 
23
23
  def test_curp
24
24
  or_curp_states_abbr = FFaker::IdentificationMX::ESTADOS_CURP.join('|')
25
- re = /\A[a-z][aeioux][a-z]{2}\d{2}[0-1]\d[0-3]\d[hm](?:#{or_curp_states_abbr})[bcdfghjklmnñpqrstvwxyz]{3}[0-9a-z]\d\z/ui
25
+ re = /
26
+ \A[a-z][aeioux][a-z]{2}\d{2}[0-1]\d[0-3]\d[hm](?:#{or_curp_states_abbr})[bcdfghjklmñpqrstvwxyz]{3}[0-9a-z]\d\z
27
+ /uix
26
28
  assert_match(re, FFaker::IdentificationMX.curp)
27
29
  end
28
30
  end
@@ -28,7 +28,18 @@ class TestFakerIdentificationIT < Test::Unit::TestCase
28
28
  end
29
29
 
30
30
  def test_ethnicity
31
- ethnicity_regex = %r{\A(Afroamericano|Asiatico/isolano del Pacifico|Caucasico|Ispanico|Nativo americano|Multirazziale|Altro|Preferisco non rispondere)\z}
31
+ ethnicity_regex = %r{
32
+ \A(
33
+ Afroamericano|
34
+ Asiatico/isolano\ del\ Pacifico|
35
+ Caucasico|
36
+ Ispanico|
37
+ Nativo\ americano|
38
+ Multirazziale|
39
+ Altro|
40
+ Preferisco\ non\ rispondere
41
+ )\z
42
+ }x
32
43
  assert_match(ethnicity_regex, @tester.ethnicity)
33
44
  end
34
45
  end
@@ -2,13 +2,13 @@
2
2
 
3
3
  require_relative 'helper'
4
4
 
5
- class TestFakerIdentificationKr < Test::Unit::TestCase
5
+ class TestFakerIdentificationKR < Test::Unit::TestCase
6
6
  include DeterministicHelper
7
7
 
8
- assert_methods_are_deterministic(FFaker::IdentificationKr, :rrn)
8
+ assert_methods_are_deterministic(FFaker::IdentificationKR, :rrn)
9
9
 
10
10
  def setup
11
- @tester = FFaker::IdentificationKr
11
+ @tester = FFaker::IdentificationKR
12
12
  end
13
13
 
14
14
  def test_rrn
data/test/test_image.rb CHANGED
@@ -18,34 +18,80 @@ class TestImage < Test::Unit::TestCase
18
18
  @tester.url)
19
19
  end
20
20
 
21
+ def test_url_output_with_keyword_arguments
22
+ output = capture_output do
23
+ @tester.url(format: 'jpg')
24
+ end
25
+
26
+ assert_equal ['', ''], output
27
+ end
28
+
29
+ def test_url_with_size_as_positional_argument
30
+ assert_match(%r(#{Regexp.quote(PLACEHOLDER)}150x320/[0-9a-f]{6}/[0-9a-f]{6}\.png\?text=), @tester.url('150x320'))
31
+ end
32
+
33
+ def test_url_output_with_positional_arguments
34
+ output = capture_output do
35
+ @tester.url('150x320')
36
+ end
37
+
38
+ assert_equal(
39
+ ['', "Positional arguments for Image#url are deprecated. Please use keyword arguments.\n"],
40
+ output
41
+ )
42
+ end
43
+
21
44
  def test_image_url_with_param
22
45
  assert_equal("#{PLACEHOLDER}300x300//.png?text=",
23
- @tester.url('300x300', 'png', nil, nil))
46
+ @tester.url(size: '300x300', format: 'png', bg_color: nil, text_color: nil))
24
47
  end
25
48
 
26
49
  def test_image_url_with_correct_size
27
50
  assert_match(%r(#{Regexp.quote(PLACEHOLDER)}150x320/[0-9a-f]{6}/[0-9a-f]{6}\.png\?text=),
28
- @tester.url('150x320'))
51
+ @tester.url(size: '150x320'))
29
52
  end
30
53
 
31
54
  def test_image_url_with_incorrect_size
32
55
  assert_raise ArgumentError do
33
- @tester.url('150x320z')
56
+ @tester.url(size: '150x320z')
34
57
  end
35
58
  end
36
59
 
37
60
  def test_image_url_with_supported_format
38
61
  assert_match(%r(#{Regexp.quote(PLACEHOLDER)}300x300/[0-9a-f]{6}/[0-9a-f]{6}\.jpg\?text=),
39
- @tester.url('300x300', 'jpg'))
62
+ @tester.url(size: '300x300', format: 'jpg'))
40
63
  end
41
64
 
42
65
  def test_image_url_with_incorrect_format
43
66
  assert_raise ArgumentError do
44
- @tester.url('300x300', 'wrong_format')
67
+ @tester.url(size: '300x300', format: 'wrong_format')
45
68
  end
46
69
  end
47
70
 
48
71
  def test_image_file
49
72
  assert_equal(@tester.file.class.name, 'File')
50
73
  end
74
+
75
+ def test_file_output_with_keyword_arguments
76
+ output = capture_output do
77
+ @tester.file(format: 'jpg')
78
+ end
79
+
80
+ assert_equal ['', ''], output
81
+ end
82
+
83
+ def test_file_with_size_as_positional_argument
84
+ assert_equal(@tester.file('150x320').class.name, 'File')
85
+ end
86
+
87
+ def test_file_output_with_positional_arguments
88
+ output = capture_output do
89
+ @tester.file('150x320')
90
+ end
91
+
92
+ assert_equal(
93
+ ['', "Positional arguments for Image#file are deprecated. Please use keyword arguments.\n"],
94
+ output
95
+ )
96
+ end
51
97
  end
@@ -29,7 +29,9 @@ class TestFakerInternet < Test::Unit::TestCase
29
29
  end
30
30
 
31
31
  def test_disposable_email
32
- assert @tester.disposable_email.match(/.+@(mailinator\.com|suremail\.info|spamherelots\.com|binkmail\.com|safetymail\.info)/)
32
+ assert @tester.disposable_email.match(
33
+ /.+@(mailinator\.com|suremail\.info|spamherelots\.com|binkmail\.com|safetymail\.info)/
34
+ )
33
35
  end
34
36
 
35
37
  def test_safe_email
@@ -25,12 +25,15 @@ class TestFakerInternetSE < Test::Unit::TestCase
25
25
  end
26
26
 
27
27
  def test_disposable_email
28
- assert @tester.disposable_email.match(/.+@(mailinator\.com|suremail\.info|spamherelots\.com|binkmail\.com|safetymail\.info)/)
28
+ assert @tester.disposable_email.match(
29
+ /.+@(mailinator\.com|suremail\.info|spamherelots\.com|binkmail\.com|safetymail\.info)/
30
+ )
29
31
  end
30
32
 
31
33
  def test_free_email
32
34
  email = @tester.free_email
33
- assert email.match(/.+@(gmail\.com|hotmail\.com|yahoo\.com|spray\.se|passagen\.se)/), "mail: #{email} does not match"
35
+ assert email.match(/.+@(gmail\.com|hotmail\.com|yahoo\.com|spray\.se|passagen\.se)/),
36
+ "mail: #{email} does not match"
34
37
  end
35
38
 
36
39
  def test_login_user_name
@@ -0,0 +1,29 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative 'helper'
4
+
5
+ class TestJoJo < Test::Unit::TestCase
6
+ include DeterministicHelper
7
+
8
+ assert_methods_are_deterministic(FFaker::JoJo, :full_name, :first_name, :last_name, :stand)
9
+
10
+ def setup
11
+ @tester = FFaker::JoJo
12
+ end
13
+
14
+ def test_full_name
15
+ assert_include @tester::FULL_NAMES, @tester.full_name
16
+ end
17
+
18
+ def test_first_name
19
+ assert_include @tester::FIRST_NAMES, @tester.first_name
20
+ end
21
+
22
+ def test_last_name
23
+ assert_include @tester::LAST_NAMES, @tester.last_name
24
+ end
25
+
26
+ def test_stand
27
+ assert_include @tester::STANDS, @tester.stand
28
+ end
29
+ end
@@ -10,9 +10,9 @@ class TestLoremBR < Test::Unit::TestCase
10
10
  :paragraph, :sentence, :phrase, :paragraphs, :sentences, :phrases, :words, :word, :characters
11
11
  )
12
12
 
13
- CHARACTERS = /\A[A-zÀ-ü0-9]+\z/i
13
+ CHARACTERS = /\A[A-zÀ-ü0-9]+\z/i
14
14
  WORD = /\A[A-zÀ-ü-]+\z/i
15
- WORDS = /[ A-zÀ-ü-.]+/i
15
+ WORDS = /[ A-zÀ-ü\-.]+/i
16
16
 
17
17
  def test_paragraph
18
18
  assert_match(WORDS, FFaker::LoremBR.paragraph)
@@ -27,7 +27,7 @@ class TestLoremCN < Test::Unit::TestCase
27
27
  end
28
28
 
29
29
  def test_paragraphs_is_an_array
30
- assert FFaker::LoremCN.paragraphs.class == Array
30
+ assert FFaker::LoremCN.paragraphs.instance_of?(Array)
31
31
  end
32
32
 
33
33
  def test_sentences
@@ -35,12 +35,12 @@ class TestLoremCN < Test::Unit::TestCase
35
35
  end
36
36
 
37
37
  def test_sentences_is_an_array
38
- assert FFaker::LoremCN.sentences.class == Array
38
+ assert FFaker::LoremCN.sentences.instance_of?(Array)
39
39
  end
40
40
 
41
41
  def test_sentences_via_to_s_produces_string_terminated_with_period
42
42
  string = FFaker::LoremCN.sentences.to_s
43
- assert string.class == String
43
+ assert string.instance_of?(String)
44
44
  assert string =~ /。$/
45
45
  end
46
46
 
@@ -10,9 +10,9 @@ class TestLoremFR < Test::Unit::TestCase
10
10
  :paragraph, :paragraphs, :sentence, :sentences, :phrase, :phrases, :word, :words
11
11
  )
12
12
 
13
- REGEX = /\A[ -.ÀÂÉÈÊÎÔÚÛàâéèêîôùûa-z]+\z/i.freeze
14
- REGEX_WORD = /\A[-ÀÂÉÈÊÎÔÚÛàâéèêîôùûa-z]+\z/i.freeze
15
- REGEX_WORDS = /\A[ -ÀÂÉÈÊÎÔÚÛàâéèêîôùûa-z]+\z/i.freeze
13
+ REGEX = /\A[ -.ÀÂÉÈÊÎÔÚÛàâéèêîôùûa-z]+\z/i
14
+ REGEX_WORD = /\A[-ÀÂÉÈÊÎÔÚÛàâéèêîôùûa-z]+\z/i
15
+ REGEX_WORDS = /\A[ -ÀÂÉÈÊÎÔÚÛàâéèêîôùûa-z]+\z/i
16
16
 
17
17
  def test_paragraph
18
18
  assert_match(REGEX, FFaker::LoremFR.paragraph)
@@ -11,8 +11,8 @@ class TestLoremIE < Test::Unit::TestCase
11
11
  :phrase, :phrases, :word, :words, :question
12
12
  )
13
13
 
14
- WORDS_REGEX = /\A[\w\W]+\z/i.freeze # spaces, alphanumeric & perioids, etc.
15
- WORD_REGEX = /\A[áéíóúa-z]+\z/i.freeze
14
+ WORDS_REGEX = /\A[\w\W]+\z/i # spaces, alphanumeric & perioids, etc.
15
+ WORD_REGEX = /\A[áéíóúa-z]+\z/i
16
16
 
17
17
  def test_paragraph
18
18
  assert_match(WORDS_REGEX, FFaker::LoremIE.paragraph)
@@ -5,9 +5,9 @@ require_relative 'helper'
5
5
  class TestLoremKR < Test::Unit::TestCase
6
6
  include DeterministicHelper
7
7
 
8
- KOREAN_SENTENCE_MATCHER = /\A[ .가-힣]+\z/.freeze
9
- KOREAN_WORDS_MATCHER = /\A[ 가-힣]+\z/.freeze
10
- KOREAN_WORD_MATCHER = /\A[가-힣]+\z/.freeze
8
+ KOREAN_SENTENCE_MATCHER = /\A[ .가-힣]+\z/
9
+ KOREAN_WORDS_MATCHER = /\A[ 가-힣]+\z/
10
+ KOREAN_WORD_MATCHER = /\A[가-힣]+\z/
11
11
 
12
12
  assert_methods_are_deterministic(
13
13
  FFaker::LoremKR,
@@ -5,8 +5,8 @@ require_relative 'helper'
5
5
  class TestFakerLoremPL < Test::Unit::TestCase
6
6
  include DeterministicHelper
7
7
 
8
- POLISH_WORD_MATCHER = /\A[A-Ża-ż\s]+\z/.freeze
9
- POLISH_SENTENCE_MATCHER = /\A[A-Ża-ż\s.!?,]+\z/.freeze
8
+ POLISH_WORD_MATCHER = /\A[A-Ża-ż\s]+\z/
9
+ POLISH_SENTENCE_MATCHER = /\A[A-Ża-ż\s.!?,]+\z/
10
10
 
11
11
  assert_methods_are_deterministic(
12
12
  FFaker::LoremPL,
@@ -5,9 +5,9 @@ require_relative 'helper'
5
5
  class TestLoremRU < Test::Unit::TestCase
6
6
  include DeterministicHelper
7
7
 
8
- SENTENCE_MATCHER = /\A[а-яА-ЯёЁ\-\s.!?,]+\z/.freeze
9
- WORDS_MATCHER = /\A[А-Яа-яёЁ\-\s]+\z/.freeze
10
- WORD_MATCHER = /\A[А-Яа-яёЁ\-]+\z/.freeze
8
+ SENTENCE_MATCHER = /\A[а-яА-ЯёЁ\-\s.!?,]+\z/
9
+ WORDS_MATCHER = /\A[А-Яа-яёЁ\-\s]+\z/
10
+ WORD_MATCHER = /\A[А-Яа-яёЁ-]+\z/
11
11
 
12
12
  assert_methods_are_deterministic(
13
13
  FFaker::LoremRU,
@@ -5,9 +5,9 @@ require_relative 'helper'
5
5
  class TestLoremUA < Test::Unit::TestCase
6
6
  include DeterministicHelper
7
7
 
8
- SENTENCE_MATCHER = /\A[а-яА-ЯіїєґІЇЄҐ’\-\s.!?,]+\z/.freeze
9
- WORDS_MATCHER = /\A[а-яА-ЯіїєґІЇЄҐ’\-\s]+\z/.freeze
10
- WORD_MATCHER = /\A[а-яА-ЯіїєґІЇЄҐ’\-]+\z/.freeze
8
+ SENTENCE_MATCHER = /\A[а-яА-ЯіїєґІЇЄҐ’\-\s.!?,]+\z/
9
+ WORDS_MATCHER = /\A[а-яА-ЯіїєґІЇЄҐ’\-\s]+\z/
10
+ WORD_MATCHER = /\A[а-яА-ЯіїєґІЇЄҐ’-]+\z/
11
11
 
12
12
  assert_methods_are_deterministic(
13
13
  FFaker::LoremUA,