ffaker 2.12.0 → 2.17.0
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 +4 -4
- data/Changelog.md +28 -0
- data/README.md +8 -1
- data/REFERENCE.md +1365 -1234
- data/Rakefile +0 -6
- data/ffaker.gemspec +14 -5
- data/lib/ffaker.rb +12 -6
- data/lib/ffaker/address_fr.rb +5 -1
- data/lib/ffaker/address_nl.rb +1 -3
- data/lib/ffaker/address_us.rb +22 -2
- data/lib/ffaker/{animals.rb → animal.rb} +0 -0
- data/lib/ffaker/{animals_cn.rb → animal_cn.rb} +0 -0
- data/lib/ffaker/animal_es.rb +12 -0
- data/lib/ffaker/{animals_us.rb → animal_us.rb} +0 -0
- data/lib/ffaker/bank.rb +15 -3
- data/lib/ffaker/code.rb +17 -0
- data/lib/ffaker/color_pl.rb +14 -0
- data/lib/ffaker/company_ja.rb +24 -0
- data/lib/ffaker/data/address_fr/region +27 -0
- data/lib/ffaker/data/address_ja/city +0 -23
- data/lib/ffaker/data/address_us/state_abbr +0 -1
- data/lib/ffaker/data/animal_es/common_names +135 -0
- data/lib/ffaker/data/bank/card_types +12 -0
- data/lib/ffaker/data/book/nouns +2 -2
- data/lib/ffaker/data/color_pl/names_list +122 -0
- data/lib/ffaker/data/filesystem/extension +31 -31
- data/lib/ffaker/data/movie/nouns +2 -2
- data/lib/ffaker/data/name/first_names_female +0 -230
- data/lib/ffaker/data/name/first_names_male +0 -37
- data/lib/ffaker/data/sport_pl/summer +53 -0
- data/lib/ffaker/data/sport_pl/winter +14 -0
- data/lib/ffaker/data/vehicle/color_prefixes +25 -0
- data/lib/ffaker/education.rb +4 -8
- data/lib/ffaker/education_cn.rb +3 -6
- data/lib/ffaker/filesystem.rb +7 -7
- data/lib/ffaker/identification_in.rb +15 -0
- data/lib/ffaker/identification_kr.rb +2 -2
- data/lib/ffaker/identification_mx.rb +1 -1
- data/lib/ffaker/identification_pl.rb +77 -0
- data/lib/ffaker/identification_tw.rb +23 -0
- data/lib/ffaker/internet.rb +4 -6
- data/lib/ffaker/internet_se.rb +1 -1
- data/lib/ffaker/name_mx.rb +2 -2
- data/lib/ffaker/phone_number_br.rb +2 -2
- data/lib/ffaker/product.rb +1 -1
- data/lib/ffaker/sport_pl.rb +25 -0
- data/lib/ffaker/ssn.rb +1 -3
- data/lib/ffaker/string.rb +5 -5
- data/lib/ffaker/unit.rb +9 -10
- data/lib/ffaker/unit_english.rb +18 -19
- data/lib/ffaker/unit_metric.rb +15 -16
- data/lib/ffaker/utils/random_utils.rb +2 -0
- data/lib/ffaker/utils/unique_utils.rb +0 -2
- data/lib/ffaker/vehicle.rb +1 -6
- data/lib/version.rb +5 -0
- data/scripts/benchmark.rb +10 -11
- data/test/helper.rb +35 -0
- data/test/test_address_au.rb +2 -2
- data/test/test_address_br.rb +1 -1
- data/test/test_address_fi.rb +2 -2
- data/test/test_address_fr.rb +1 -1
- data/test/test_address_id.rb +1 -1
- data/test/test_address_ja.rb +1 -1
- data/test/test_address_nl.rb +1 -1
- data/test/test_address_se.rb +2 -2
- data/test/test_address_us.rb +9 -0
- data/test/test_animal_es.rb +17 -0
- data/test/test_array_utils.rb +0 -1
- data/test/test_aws.rb +1 -1
- data/test/test_bank.rb +41 -5
- data/test/test_book.rb +4 -4
- data/test/test_code.rb +22 -1
- data/test/test_color_pl.rb +13 -0
- data/test/test_company_ja.rb +28 -0
- data/test/{test_faker.rb → test_ffaker.rb} +5 -1
- data/test/test_filesystem.rb +11 -3
- data/test/test_geolocation.rb +2 -2
- data/test/test_healthcare_ru.rb +1 -1
- data/test/test_html_ipsum.rb +1 -1
- data/test/test_identification_co.rb +2 -2
- data/test/test_identification_es_cl.rb +1 -1
- data/test/test_identification_in.rb +20 -0
- data/test/test_identification_pl.rb +28 -0
- data/test/test_identification_tw.rb +17 -0
- data/test/test_image.rb +3 -3
- data/test/test_internet.rb +9 -9
- data/test/test_internet_se.rb +1 -1
- data/test/test_job_cn.rb +1 -1
- data/test/test_job_ja.rb +1 -1
- data/test/test_job_kr.rb +1 -1
- data/test/test_job_vn.rb +1 -1
- data/test/test_lorem_cn.rb +6 -6
- data/test/test_lorem_ja.rb +3 -3
- data/test/test_lorem_pl.rb +1 -1
- data/test/test_lorem_ru.rb +1 -1
- data/test/test_lorem_ua.rb +1 -1
- data/test/test_music.rb +4 -4
- data/test/test_name_da.rb +3 -3
- data/test/test_phone_number_se.rb +2 -2
- data/test/test_sport_pl.rb +30 -0
- data/test/test_ssn_se.rb +6 -8
- data/test/test_string.rb +3 -3
- data/test/test_time.rb +13 -6
- data/test/test_tweet.rb +9 -9
- data/test/test_vehicle.rb +2 -2
- metadata +201 -162
- data/lib/ffaker/data/address_jp/city +0 -127
- data/lib/ffaker/data/address_jp/designated_city +0 -20
- data/lib/ffaker/data/address_jp/street +0 -37
- data/lib/ffaker/data/address_jp/tokyo_ward +0 -23
- data/lib/ffaker/data/address_jp/village +0 -183
- data/lib/ffaker/data/address_jp/ward +0 -188
data/lib/ffaker/vehicle.rb
CHANGED
|
@@ -6,12 +6,7 @@ module FFaker
|
|
|
6
6
|
extend self
|
|
7
7
|
|
|
8
8
|
DRIVETRAINS = %w[4WD 4X4 AWD FWD RWD].freeze
|
|
9
|
-
YEARS =
|
|
10
|
-
COLOR_PREFIXES = k(%w[
|
|
11
|
-
beautiful bright calm dangerous dark dull fast magnetic magnificent
|
|
12
|
-
majestic melodic metallic mundane mute mysterious new pleasant pretty
|
|
13
|
-
resonant royal slate soft tranquil vibrant weak
|
|
14
|
-
])
|
|
9
|
+
YEARS = Array('1900'..(::Time.now.year + 1).to_s).freeze
|
|
15
10
|
TRANSMISSIONS_ABBR = %w[AT MT AM CVT].freeze
|
|
16
11
|
CYLINDERS = %w[2 5 6 8].freeze
|
|
17
12
|
|
data/lib/version.rb
ADDED
data/scripts/benchmark.rb
CHANGED
|
@@ -1,22 +1,21 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
require 'rubygems'
|
|
4
3
|
require 'benchmark'
|
|
5
4
|
|
|
6
|
-
|
|
5
|
+
NAMES_COUNT = 10_000
|
|
7
6
|
|
|
8
7
|
def run(name)
|
|
9
|
-
require name
|
|
10
8
|
Benchmark.bm do |rep|
|
|
11
|
-
rep.report("generating #{
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
end
|
|
9
|
+
rep.report("generating #{NAMES_COUNT} names (#{name})") do
|
|
10
|
+
mod = name == 'ffaker' ? FFaker : Faker
|
|
11
|
+
NAMES_COUNT.times { mod::Name.name }
|
|
15
12
|
end
|
|
16
13
|
end
|
|
17
|
-
$stdout.flush
|
|
18
|
-
exit(0)
|
|
19
14
|
end
|
|
20
15
|
|
|
21
|
-
|
|
22
|
-
|
|
16
|
+
%w[faker ffaker].each do |gem_name|
|
|
17
|
+
require gem_name
|
|
18
|
+
|
|
19
|
+
fork { run(gem_name) }
|
|
20
|
+
Process.wait
|
|
21
|
+
end
|
data/test/helper.rb
CHANGED
|
@@ -28,6 +28,41 @@ module DeterministicHelper
|
|
|
28
28
|
assert(returns.uniq.length == 1, options[:message])
|
|
29
29
|
end
|
|
30
30
|
|
|
31
|
+
%w[< > <= >=].each do |operator|
|
|
32
|
+
operator_name =
|
|
33
|
+
case operator[0]
|
|
34
|
+
when '<' then 'less_than'
|
|
35
|
+
when '>' then 'greater_than'
|
|
36
|
+
else raise 'Unexpected operator'
|
|
37
|
+
end
|
|
38
|
+
operator_name += '_or_equal_to' if operator[1] == '='
|
|
39
|
+
|
|
40
|
+
define_method "assert_#{operator_name}" do |got, expected|
|
|
41
|
+
assert(
|
|
42
|
+
got.public_send(operator, expected),
|
|
43
|
+
"Expected #{operator} \"#{expected}\", but got #{got}"
|
|
44
|
+
)
|
|
45
|
+
end
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
def assert_between(got, from, to, exclude_end: false)
|
|
49
|
+
assert_greater_than_or_equal_to got, from
|
|
50
|
+
public_send "assert_less_than#{'_or_equal_to' unless exclude_end}", got, to
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
def assert_random(original_block, *args)
|
|
54
|
+
100.times do
|
|
55
|
+
yield(*args)
|
|
56
|
+
assert_deterministic(&original_block)
|
|
57
|
+
end
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
%w[less_than_or_equal_to between].each do |method_name|
|
|
61
|
+
define_method "assert_random_#{method_name}" do |*args, &block|
|
|
62
|
+
assert_random(block) { send "assert_#{method_name}", block.call, *args }
|
|
63
|
+
end
|
|
64
|
+
end
|
|
65
|
+
|
|
31
66
|
# Methods to be called outside of individual examples.
|
|
32
67
|
module ClassMethods
|
|
33
68
|
# Shorthand method to quickly test the determinability of multiple methods.
|
data/test/test_address_au.rb
CHANGED
|
@@ -33,7 +33,7 @@ class TestAddressAU < Test::Unit::TestCase
|
|
|
33
33
|
end
|
|
34
34
|
|
|
35
35
|
def test_full_address
|
|
36
|
-
assert_match(/[
|
|
36
|
+
assert_match(/[, a-z]/, FFaker::AddressAU.full_address)
|
|
37
37
|
end
|
|
38
38
|
|
|
39
39
|
def test_au_suburb_with_states
|
|
@@ -60,7 +60,7 @@ class TestAddressAU < Test::Unit::TestCase
|
|
|
60
60
|
|
|
61
61
|
def test_full_address_with_states
|
|
62
62
|
FFaker::AddressAU::STATE_ABBR.each do |st_abbr|
|
|
63
|
-
assert_match(/[
|
|
63
|
+
assert_match(/[, a-z]/, FFaker::AddressAU.full_address(st_abbr))
|
|
64
64
|
assert_deterministic { FFaker::AddressAU.full_address(st_abbr) }
|
|
65
65
|
end
|
|
66
66
|
end
|
data/test/test_address_br.rb
CHANGED
|
@@ -32,6 +32,6 @@ class TestAddressBR < Test::Unit::TestCase
|
|
|
32
32
|
|
|
33
33
|
def test_street
|
|
34
34
|
prefixes = FFaker::AddressBR::STREET_PREFIX
|
|
35
|
-
assert_match(/(#{prefixes.join('|')})(
|
|
35
|
+
assert_match(/(#{prefixes.join('|')})( \p{Alpha}+){1,2}/, FFaker::AddressBR.street)
|
|
36
36
|
end
|
|
37
37
|
end
|
data/test/test_address_fi.rb
CHANGED
|
@@ -5,7 +5,7 @@ require 'helper'
|
|
|
5
5
|
class TestAddressFI < Test::Unit::TestCase
|
|
6
6
|
include DeterministicHelper
|
|
7
7
|
|
|
8
|
-
ALPHA = /\A
|
|
8
|
+
ALPHA = /\A\p{Alpha}+/.freeze
|
|
9
9
|
DIGIT = /\d{1}/.freeze
|
|
10
10
|
|
|
11
11
|
assert_methods_are_deterministic(
|
|
@@ -30,7 +30,7 @@ class TestAddressFI < Test::Unit::TestCase
|
|
|
30
30
|
assert_match(ALPHA, address)
|
|
31
31
|
assert_match(DIGIT, address)
|
|
32
32
|
assert_match(/SUOMI/, address)
|
|
33
|
-
assert_match(/[
|
|
33
|
+
assert_match(/[, a-z]/, address)
|
|
34
34
|
end
|
|
35
35
|
|
|
36
36
|
def test_fi_zip_code_frozen
|
data/test/test_address_fr.rb
CHANGED
data/test/test_address_id.rb
CHANGED
|
@@ -33,7 +33,7 @@ class TestAddressID < Test::Unit::TestCase
|
|
|
33
33
|
def test_street
|
|
34
34
|
prefixes = FFaker::AddressID::STREET_PREFIX
|
|
35
35
|
common_street_names = FFaker::AddressID::COMMON_STREET_NAMES
|
|
36
|
-
regex = /\A(#{prefixes.join('|')})\.(\s(#{common_street_names.join('|')}))
|
|
36
|
+
regex = /\A(#{prefixes.join('|')})\.(\s(#{common_street_names.join('|')})),\sNo\.\s\d+\z/
|
|
37
37
|
assert_match(regex, FFaker::AddressID.street)
|
|
38
38
|
end
|
|
39
39
|
end
|
data/test/test_address_ja.rb
CHANGED
data/test/test_address_nl.rb
CHANGED
data/test/test_address_se.rb
CHANGED
|
@@ -5,7 +5,7 @@ require 'helper'
|
|
|
5
5
|
class TestAddressSE < Test::Unit::TestCase
|
|
6
6
|
include DeterministicHelper
|
|
7
7
|
|
|
8
|
-
ALPHA = /\A
|
|
8
|
+
ALPHA = /\A\p{Alpha}+/.freeze
|
|
9
9
|
DIGIT = /\d{1}/.freeze
|
|
10
10
|
|
|
11
11
|
assert_methods_are_deterministic(
|
|
@@ -30,7 +30,7 @@ class TestAddressSE < Test::Unit::TestCase
|
|
|
30
30
|
assert_match(ALPHA, address)
|
|
31
31
|
assert_match(DIGIT, address)
|
|
32
32
|
assert_match(/SVERIGE/, address)
|
|
33
|
-
assert_match(/[
|
|
33
|
+
assert_match(/[, a-z]/, address)
|
|
34
34
|
end
|
|
35
35
|
|
|
36
36
|
def test_se_zip_code_frozen
|
data/test/test_address_us.rb
CHANGED
|
@@ -18,6 +18,15 @@ class TestAddressUSUS < Test::Unit::TestCase
|
|
|
18
18
|
|
|
19
19
|
def test_us_state_abbr
|
|
20
20
|
assert_match(/[A-Z]/, FFaker::AddressUS.state_abbr)
|
|
21
|
+
%w[California california CALIFORNIA].each do |state|
|
|
22
|
+
assert_match('CA', FFaker::AddressUS.state_abbr(state))
|
|
23
|
+
end
|
|
24
|
+
['South Carolina', 'south carolina'].each do |state|
|
|
25
|
+
assert_match('SC', FFaker::AddressUS.state_abbr(state))
|
|
26
|
+
end
|
|
27
|
+
assert_raise ArgumentError, "Unexpected state: 'unknown'" do
|
|
28
|
+
FFaker::AddressUS.state_abbr('unknown')
|
|
29
|
+
end
|
|
21
30
|
end
|
|
22
31
|
|
|
23
32
|
def test_us_state_and_territories_abbr
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'helper'
|
|
4
|
+
|
|
5
|
+
class TestAnimalsES < Test::Unit::TestCase
|
|
6
|
+
include DeterministicHelper
|
|
7
|
+
|
|
8
|
+
assert_methods_are_deterministic(FFaker::AnimalES, :common_name)
|
|
9
|
+
|
|
10
|
+
def setup
|
|
11
|
+
@tester = FFaker::AnimalES
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
def test_name
|
|
15
|
+
assert_include @tester::COMMON_NAMES, @tester.common_name
|
|
16
|
+
end
|
|
17
|
+
end
|
data/test/test_array_utils.rb
CHANGED
data/test/test_aws.rb
CHANGED
data/test/test_bank.rb
CHANGED
|
@@ -5,14 +5,50 @@ require 'helper'
|
|
|
5
5
|
class TestBank < Test::Unit::TestCase
|
|
6
6
|
include DeterministicHelper
|
|
7
7
|
|
|
8
|
-
assert_methods_are_deterministic(
|
|
8
|
+
assert_methods_are_deterministic(
|
|
9
|
+
FFaker::Bank,
|
|
10
|
+
:iban, :card_number, :card_expiry_date, :card_type
|
|
11
|
+
)
|
|
12
|
+
|
|
13
|
+
def setup
|
|
14
|
+
@tester = FFaker::Bank
|
|
15
|
+
end
|
|
9
16
|
|
|
10
17
|
def test_iban
|
|
11
|
-
assert_match(/[A-Z]{2}\d+([A-Z]+)?\d+/,
|
|
12
|
-
assert_match(/[A-Z]{2}\d+([A-Z]+)?\d+/,
|
|
13
|
-
assert_match(/[A-Z]{2}\d+([A-Z]+)?\d+/,
|
|
18
|
+
assert_match(/[A-Z]{2}\d+([A-Z]+)?\d+/, @tester.iban)
|
|
19
|
+
assert_match(/[A-Z]{2}\d+([A-Z]+)?\d+/, @tester.iban(country_code: 'by'))
|
|
20
|
+
assert_match(/[A-Z]{2}\d+([A-Z]+)?\d+/, @tester.iban(country_code: 'BY'))
|
|
14
21
|
assert_raise ArgumentError, "Unexpected country code: 'unknown'" do
|
|
15
|
-
|
|
22
|
+
@tester.iban(country_code: 'unknown')
|
|
16
23
|
end
|
|
17
24
|
end
|
|
25
|
+
|
|
26
|
+
def test_card_number
|
|
27
|
+
assert_match(/\A(\d{4} ){3}\d{4}\z/, @tester.card_number)
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
def test_card_expiry_date
|
|
31
|
+
assert_instance_of String, @tester.card_expiry_date
|
|
32
|
+
|
|
33
|
+
date_today = ::DateTime.now
|
|
34
|
+
|
|
35
|
+
assert_random_between(
|
|
36
|
+
date_today.strftime('%y'), date_today.next_year(5).strftime('%y')
|
|
37
|
+
) do
|
|
38
|
+
@tester.card_expiry_date.split('/').pop
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
year_range = 4
|
|
42
|
+
year_latest = 8
|
|
43
|
+
assert_random_between(
|
|
44
|
+
date_today.prev_year(year_latest + year_range).strftime('%y'),
|
|
45
|
+
date_today.prev_year(year_latest).strftime('%y')
|
|
46
|
+
) do
|
|
47
|
+
@tester.card_expiry_date(year_range: year_range, year_latest: year_latest).split('/').pop
|
|
48
|
+
end
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
def test_card_type
|
|
52
|
+
assert_include @tester::CARD_TYPES, @tester.card_type
|
|
53
|
+
end
|
|
18
54
|
end
|
data/test/test_book.rb
CHANGED
|
@@ -19,7 +19,7 @@ class TestBook < Test::Unit::TestCase
|
|
|
19
19
|
end
|
|
20
20
|
|
|
21
21
|
def test_genre
|
|
22
|
-
assert_match(%r{[\w\s'
|
|
22
|
+
assert_match(%r{[\w\s'/]+}, @tester.genre)
|
|
23
23
|
end
|
|
24
24
|
|
|
25
25
|
def test_author
|
|
@@ -27,7 +27,7 @@ class TestBook < Test::Unit::TestCase
|
|
|
27
27
|
end
|
|
28
28
|
|
|
29
29
|
def test_isbn
|
|
30
|
-
assert_match(
|
|
30
|
+
assert_match(/\d+/, @tester.isbn)
|
|
31
31
|
end
|
|
32
32
|
|
|
33
33
|
def test_description
|
|
@@ -35,12 +35,12 @@ class TestBook < Test::Unit::TestCase
|
|
|
35
35
|
end
|
|
36
36
|
|
|
37
37
|
def test_cover
|
|
38
|
-
assert_match(%r{\Ahttps
|
|
38
|
+
assert_match(%r{\Ahttps://robohash\.org/.+\.png\?size=300x300\z},
|
|
39
39
|
@tester.cover)
|
|
40
40
|
end
|
|
41
41
|
|
|
42
42
|
def test_orly_cover
|
|
43
|
-
assert_match(%r{\Ahttps
|
|
43
|
+
assert_match(%r{\Ahttps://orly-appstore\.herokuapp\.com/generate},
|
|
44
44
|
@tester.orly_cover)
|
|
45
45
|
end
|
|
46
46
|
end
|
data/test/test_code.rb
CHANGED
|
@@ -5,7 +5,28 @@ require 'helper'
|
|
|
5
5
|
class TestCode < Test::Unit::TestCase
|
|
6
6
|
include DeterministicHelper
|
|
7
7
|
|
|
8
|
-
assert_methods_are_deterministic(FFaker::Code, :ean)
|
|
8
|
+
assert_methods_are_deterministic(FFaker::Code, :ean, :npi)
|
|
9
|
+
|
|
10
|
+
def test_npi_legacy_regexp
|
|
11
|
+
assert FFaker::Code.npi(legacy: true).match(/\A(1|2)[0-9]{9}\z/)
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
def test_npi
|
|
15
|
+
FFaker::Random.seed = 523_456_789
|
|
16
|
+
assert FFaker::Code.npi == '7411850515'
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
def test_deterministic_npi
|
|
20
|
+
FFaker::Random.seed = 42
|
|
21
|
+
v = FFaker::Code.npi
|
|
22
|
+
FFaker::Random.reset!
|
|
23
|
+
assert v == FFaker::Code.npi
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
def test_valid_npi
|
|
27
|
+
FFaker::Random.seed = 123_456_789
|
|
28
|
+
assert FFaker::Code.npi == '2410167607'
|
|
29
|
+
end
|
|
9
30
|
|
|
10
31
|
def test_ean
|
|
11
32
|
assert FFaker::Code.ean.match(/^\d{13}$/)
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'helper'
|
|
4
|
+
|
|
5
|
+
class TestColorPL < Test::Unit::TestCase
|
|
6
|
+
include DeterministicHelper
|
|
7
|
+
|
|
8
|
+
assert_methods_are_deterministic(FFaker::ColorPL, :name)
|
|
9
|
+
|
|
10
|
+
def test_name
|
|
11
|
+
assert_match(/\A[a-ząćęłńóśźżé]+\z/, FFaker::ColorPL.name)
|
|
12
|
+
end
|
|
13
|
+
end
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'helper'
|
|
4
|
+
|
|
5
|
+
class TestCompanyJA < Test::Unit::TestCase
|
|
6
|
+
include DeterministicHelper
|
|
7
|
+
|
|
8
|
+
assert_methods_are_deterministic(
|
|
9
|
+
FFaker::CompanyJA,
|
|
10
|
+
:name, :position
|
|
11
|
+
)
|
|
12
|
+
|
|
13
|
+
def setup
|
|
14
|
+
@tester = FFaker::CompanyJA
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
def test_name
|
|
18
|
+
assert_match(japanese_regex(''), @tester.name)
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
def test_position
|
|
22
|
+
assert_match(japanese_regex(''), @tester.position)
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
def japanese_regex(word)
|
|
26
|
+
/\A(?:\p{Hiragana}|\p{Katakana}|[ー-]|[一-龠々])+#{word}\z/
|
|
27
|
+
end
|
|
28
|
+
end
|
|
@@ -2,9 +2,13 @@
|
|
|
2
2
|
|
|
3
3
|
require 'helper'
|
|
4
4
|
|
|
5
|
-
class
|
|
5
|
+
class TestFFaker < Test::Unit::TestCase
|
|
6
6
|
include DeterministicHelper
|
|
7
7
|
|
|
8
|
+
def test_version
|
|
9
|
+
assert FFaker::VERSION.is_a?(String)
|
|
10
|
+
end
|
|
11
|
+
|
|
8
12
|
def test_numerify
|
|
9
13
|
assert FFaker.numerify('###').match(/\d{3}/)
|
|
10
14
|
assert_deterministic { FFaker.numerify('###') }
|
data/test/test_filesystem.rb
CHANGED
|
@@ -15,14 +15,22 @@ class TestFakerFilesystem < Test::Unit::TestCase
|
|
|
15
15
|
end
|
|
16
16
|
|
|
17
17
|
def test_extension
|
|
18
|
-
|
|
18
|
+
assert_match /\A(?:flac|mp3|wav|bmp|gif|jpeg|jpg|png|tiff|css|csv|html|js|
|
|
19
|
+
json|txt|mp4|avi|mov|webm|doc|docx|xls|xlsx|ppt|pptx|odt|
|
|
20
|
+
ods|odp|pages|numbers|key|pdf)\z/x,
|
|
21
|
+
@tester.extension
|
|
19
22
|
end
|
|
20
23
|
|
|
21
24
|
def test_mime_type_format
|
|
22
|
-
|
|
25
|
+
assert_match %r{\A\w+/.+\z}, @tester.mime_type
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
def test_directory
|
|
29
|
+
assert_match %r{\A(?:[a-z_-]+[\\/])+[a-z_-]+\z}, @tester.directory
|
|
23
30
|
end
|
|
24
31
|
|
|
25
32
|
def test_file_name
|
|
26
|
-
|
|
33
|
+
assert_match %r{\A(?:[a-z_-]+[\\/])+[a-z_-]+\.\w{2,4}\z},
|
|
34
|
+
@tester.file_name
|
|
27
35
|
end
|
|
28
36
|
end
|