ffaker 2.2.0 → 2.3.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.
Files changed (320) hide show
  1. checksums.yaml +4 -4
  2. data/Changelog.md +34 -0
  3. data/README.md +4 -0
  4. data/REFERENCE.md +1153 -800
  5. data/Rakefile +23 -24
  6. data/ffaker.gemspec +12 -420
  7. data/lib/ffaker.rb +47 -7
  8. data/lib/ffaker/address.rb +11 -11
  9. data/lib/ffaker/address_au.rb +60 -60
  10. data/lib/ffaker/address_br.rb +5 -5
  11. data/lib/ffaker/address_ca.rb +7 -7
  12. data/lib/ffaker/address_ch.rb +1 -2
  13. data/lib/ffaker/address_ch_de.rb +1 -1
  14. data/lib/ffaker/address_ch_fr.rb +1 -1
  15. data/lib/ffaker/address_ch_it.rb +1 -1
  16. data/lib/ffaker/address_da.rb +5 -5
  17. data/lib/ffaker/address_de.rb +16 -12
  18. data/lib/ffaker/address_fi.rb +7 -8
  19. data/lib/ffaker/address_fr.rb +13 -13
  20. data/lib/ffaker/address_gr.rb +40 -0
  21. data/lib/ffaker/address_in.rb +12 -12
  22. data/lib/ffaker/address_kr.rb +87 -0
  23. data/lib/ffaker/address_mx.rb +409 -409
  24. data/lib/ffaker/address_nl.rb +17 -13
  25. data/lib/ffaker/address_ru.rb +6 -6
  26. data/lib/ffaker/address_se.rb +7 -8
  27. data/lib/ffaker/address_sn.rb +3 -3
  28. data/lib/ffaker/address_ua.rb +8 -8
  29. data/lib/ffaker/address_uk.rb +5 -5
  30. data/lib/ffaker/address_us.rb +9 -9
  31. data/lib/ffaker/airline.rb +16 -0
  32. data/lib/ffaker/avatar.rb +3 -3
  33. data/lib/ffaker/aws.rb +24 -0
  34. data/lib/ffaker/bacon_ipsum.rb +2 -2
  35. data/lib/ffaker/book.rb +45 -0
  36. data/lib/ffaker/boolean.rb +2 -2
  37. data/lib/ffaker/cheesy_lingo.rb +15 -12
  38. data/lib/ffaker/color.rb +54 -1
  39. data/lib/ffaker/color_ua.rb +1 -1
  40. data/lib/ffaker/company.rb +13 -11
  41. data/lib/ffaker/company_cn.rb +23 -0
  42. data/lib/ffaker/company_it.rb +4 -4
  43. data/lib/ffaker/company_se.rb +2 -2
  44. data/lib/ffaker/conference.rb +1 -1
  45. data/lib/ffaker/courses.rb +2 -3
  46. data/lib/ffaker/currency.rb +2 -2
  47. data/lib/ffaker/data/address_gr/city +79 -0
  48. data/lib/ffaker/data/address_gr/region +13 -0
  49. data/lib/ffaker/data/address_gr/street +100 -0
  50. data/lib/ffaker/data/address_kr/boroughs +29 -0
  51. data/lib/ffaker/data/address_kr/cities +51 -0
  52. data/lib/ffaker/data/airline/codes_list +209 -0
  53. data/lib/ffaker/data/airline/names_list +206 -0
  54. data/lib/ffaker/data/aws/ec2_instance_type +59 -0
  55. data/lib/ffaker/data/aws/ec2_reserved_instance_tenancy +3 -0
  56. data/lib/ffaker/data/aws/ec2_reserved_offering_type +6 -0
  57. data/lib/ffaker/data/aws/ec2_reserved_product_description +14 -0
  58. data/lib/ffaker/data/book/adj_and_adv +20 -0
  59. data/lib/ffaker/data/book/genres +369 -0
  60. data/lib/ffaker/data/book/nouns +36 -0
  61. data/lib/ffaker/data/book/prefixes +17 -0
  62. data/lib/ffaker/data/color/names_list +128 -0
  63. data/lib/ffaker/data/education/degree_prefix +274 -0
  64. data/lib/ffaker/data/education/degree_short_prefix +19 -0
  65. data/lib/ffaker/data/job_br/job_nouns +52 -0
  66. data/lib/ffaker/data/job_vn/job_nouns +191 -0
  67. data/lib/ffaker/data/lorem_ja/characters +101 -0
  68. data/lib/ffaker/data/lorem_ja/sentences +30 -0
  69. data/lib/ffaker/data/lorem_ja/sentences_end +21 -0
  70. data/lib/ffaker/data/lorem_ja/words +81 -0
  71. data/lib/ffaker/data/name/first_names_female +4275 -0
  72. data/lib/ffaker/data/name/first_names_male +1219 -0
  73. data/lib/ffaker/data/name_br/first_names_female +1068 -0
  74. data/lib/ffaker/data/name_br/first_names_male +607 -0
  75. data/lib/ffaker/data/name_br/last_names +52 -0
  76. data/lib/ffaker/data/name_gr/female_first_names +80 -0
  77. data/lib/ffaker/data/name_gr/female_last_names +45 -0
  78. data/lib/ffaker/data/name_gr/male_first_names +90 -0
  79. data/lib/ffaker/data/name_gr/male_last_names +57 -0
  80. data/lib/ffaker/data/name_kh/first_names +64 -0
  81. data/lib/ffaker/data/name_kh/last_names +71 -0
  82. data/lib/ffaker/data/name_kh/nick_names +30 -0
  83. data/lib/ffaker/data/name_then/first_names +292 -0
  84. data/lib/ffaker/data/name_then/last_names +63 -0
  85. data/lib/ffaker/data/name_then/nick_names +30 -0
  86. data/lib/ffaker/data/phone_number/phone_calling_code +205 -0
  87. data/lib/ffaker/data/sport/names +57 -24
  88. data/lib/ffaker/data/tweet/hashtag +58 -0
  89. data/lib/ffaker/data/youtube/video_ids +50 -0
  90. data/lib/ffaker/dizzle_ipsum.rb +2 -2
  91. data/lib/ffaker/education.rb +17 -16
  92. data/lib/ffaker/food.rb +5 -6
  93. data/lib/ffaker/gender.rb +4 -4
  94. data/lib/ffaker/gender_br.rb +17 -0
  95. data/lib/ffaker/gender_cn.rb +4 -4
  96. data/lib/ffaker/gender_kr.rb +4 -4
  97. data/lib/ffaker/geolocation.rb +26 -26
  98. data/lib/ffaker/healthcare_ipsum.rb +2 -2
  99. data/lib/ffaker/hipster_ipsum.rb +2 -2
  100. data/lib/ffaker/html_ipsum.rb +101 -81
  101. data/lib/ffaker/identification.rb +4 -4
  102. data/lib/ffaker/identification_br.rb +84 -0
  103. data/lib/ffaker/identification_es.rb +2 -2
  104. data/lib/ffaker/identification_es_cl.rb +7 -5
  105. data/lib/ffaker/identification_es_co.rb +9 -10
  106. data/lib/ffaker/identification_kr.rb +3 -4
  107. data/lib/ffaker/identification_mx.rb +27 -11
  108. data/lib/ffaker/internet.rb +26 -23
  109. data/lib/ffaker/internet_se.rb +21 -21
  110. data/lib/ffaker/job.rb +1 -1
  111. data/lib/ffaker/job_br.rb +12 -0
  112. data/lib/ffaker/job_cn.rb +1 -1
  113. data/lib/ffaker/job_fr.rb +3 -3
  114. data/lib/ffaker/job_ja.rb +2 -1
  115. data/lib/ffaker/job_kr.rb +1 -1
  116. data/lib/ffaker/job_vn.rb +13 -0
  117. data/lib/ffaker/locale.rb +2 -3
  118. data/lib/ffaker/lorem.rb +5 -5
  119. data/lib/ffaker/lorem_ar.rb +4 -4
  120. data/lib/ffaker/lorem_cn.rb +3 -3
  121. data/lib/ffaker/lorem_fr.rb +4 -4
  122. data/lib/ffaker/lorem_ja.rb +40 -0
  123. data/lib/ffaker/lorem_kr.rb +4 -4
  124. data/lib/ffaker/lorem_ua.rb +8 -11
  125. data/lib/ffaker/movie.rb +18 -20
  126. data/lib/ffaker/music.rb +4 -4
  127. data/lib/ffaker/name.rb +100 -11
  128. data/lib/ffaker/name_br.rb +37 -6
  129. data/lib/ffaker/name_cn.rb +2 -2
  130. data/lib/ffaker/name_cs.rb +10 -10
  131. data/lib/ffaker/name_da.rb +6 -6
  132. data/lib/ffaker/name_de.rb +5 -5
  133. data/lib/ffaker/name_fr.rb +4 -4
  134. data/lib/ffaker/name_ga.rb +4 -5
  135. data/lib/ffaker/name_gr.rb +60 -0
  136. data/lib/ffaker/name_it.rb +4 -4
  137. data/lib/ffaker/name_ja.rb +3 -3
  138. data/lib/ffaker/name_kh.rb +22 -0
  139. data/lib/ffaker/name_kr.rb +3 -3
  140. data/lib/ffaker/name_mx.rb +14 -14
  141. data/lib/ffaker/name_nb.rb +5 -5
  142. data/lib/ffaker/name_nl.rb +7 -7
  143. data/lib/ffaker/name_ph.rb +2 -2
  144. data/lib/ffaker/name_ru.rb +7 -8
  145. data/lib/ffaker/name_se.rb +5 -5
  146. data/lib/ffaker/name_sn.rb +23 -23
  147. data/lib/ffaker/name_th.rb +3 -3
  148. data/lib/ffaker/name_th_en.rb +26 -0
  149. data/lib/ffaker/name_ua.rb +8 -8
  150. data/lib/ffaker/name_vn.rb +4 -4
  151. data/lib/ffaker/nato_alphabet.rb +10 -10
  152. data/lib/ffaker/phone_number.rb +31 -21
  153. data/lib/ffaker/phone_number_au.rb +3 -3
  154. data/lib/ffaker/phone_number_br.rb +9 -8
  155. data/lib/ffaker/phone_number_ch.rb +7 -7
  156. data/lib/ffaker/phone_number_cu.rb +5 -5
  157. data/lib/ffaker/phone_number_de.rb +1 -1
  158. data/lib/ffaker/phone_number_fr.rb +4 -4
  159. data/lib/ffaker/phone_number_it.rb +2 -2
  160. data/lib/ffaker/phone_number_kr.rb +4 -4
  161. data/lib/ffaker/phone_number_mx.rb +4 -5
  162. data/lib/ffaker/phone_number_nl.rb +13 -13
  163. data/lib/ffaker/phone_number_se.rb +18 -19
  164. data/lib/ffaker/phone_number_sg.rb +8 -8
  165. data/lib/ffaker/phone_number_sn.rb +2 -2
  166. data/lib/ffaker/product.rb +18 -14
  167. data/lib/ffaker/skill.rb +3 -3
  168. data/lib/ffaker/sport.rb +1 -1
  169. data/lib/ffaker/ssn_se.rb +19 -20
  170. data/lib/ffaker/string.rb +21 -23
  171. data/lib/ffaker/time.rb +19 -7
  172. data/lib/ffaker/tweet.rb +59 -0
  173. data/lib/ffaker/unit.rb +12 -12
  174. data/lib/ffaker/unit_english.rb +34 -35
  175. data/lib/ffaker/unit_metric.rb +25 -25
  176. data/lib/ffaker/utils/array_utils.rb +12 -9
  177. data/lib/ffaker/utils/module_utils.rb +9 -6
  178. data/lib/ffaker/utils/random_utils.rb +33 -0
  179. data/lib/ffaker/vehicle.rb +21 -21
  180. data/lib/ffaker/venue.rb +1 -1
  181. data/lib/ffaker/youtube.rb +24 -0
  182. data/scripts/benchmark.rb +3 -3
  183. data/scripts/reference.rb +26 -23
  184. data/test/helper.rb +50 -0
  185. data/test/test_address.rb +40 -21
  186. data/test/test_address_au.rb +19 -9
  187. data/test/test_address_br.rb +9 -2
  188. data/test/test_address_ca.rb +7 -0
  189. data/test/test_address_ch.rb +6 -2
  190. data/test/test_address_ch_de.rb +7 -3
  191. data/test/test_address_ch_fr.rb +7 -3
  192. data/test/test_address_ch_it.rb +5 -1
  193. data/test/test_address_da.rb +18 -9
  194. data/test/test_address_de.rb +12 -5
  195. data/test/test_address_fi.rb +10 -3
  196. data/test/test_address_fr.rb +13 -0
  197. data/test/test_address_gr.rb +43 -0
  198. data/test/test_address_in.rb +20 -12
  199. data/test/test_address_kr.rb +14 -0
  200. data/test/test_address_mx.rb +12 -5
  201. data/test/test_address_nl.rb +11 -5
  202. data/test/test_address_ru.rb +11 -5
  203. data/test/test_address_se.rb +9 -3
  204. data/test/test_address_sn.rb +7 -1
  205. data/test/test_address_ua.rb +17 -10
  206. data/test/test_address_uk.rb +11 -3
  207. data/test/test_address_us.rb +15 -6
  208. data/test/test_airline.rb +17 -0
  209. data/test/test_array_utils.rb +51 -3
  210. data/test/test_avatar.rb +5 -1
  211. data/test/test_aws.rb +25 -0
  212. data/test/test_bacon_ipsum.rb +12 -6
  213. data/test/test_book.rb +41 -0
  214. data/test/test_boolean.rb +4 -0
  215. data/test/test_cheesy_lingo.rb +14 -10
  216. data/test/test_color.rb +126 -1
  217. data/test/test_color_ua.rb +5 -1
  218. data/test/test_company.rb +7 -0
  219. data/test/test_company_cn.rb +24 -0
  220. data/test/test_company_it.rb +7 -1
  221. data/test/test_company_se.rb +6 -0
  222. data/test/test_conference.rb +5 -2
  223. data/test/test_course_mathematiques.rb +5 -1
  224. data/test/test_course_philosophie.rb +5 -1
  225. data/test/test_currency.rb +12 -0
  226. data/test/test_dizzle_ipsum.rb +12 -6
  227. data/test/test_education.rb +9 -2
  228. data/test/test_faker.rb +8 -1
  229. data/test/test_food.rb +11 -4
  230. data/test/test_gender.rb +5 -1
  231. data/test/test_gender_br.rb +18 -0
  232. data/test/test_gender_cn.rb +5 -2
  233. data/test/test_gender_kr.rb +7 -3
  234. data/test/test_geolocation.rb +11 -8
  235. data/test/test_guid.rb +6 -1
  236. data/test/test_healthcare_ipsum.rb +13 -6
  237. data/test/test_hipster_ipsum.rb +13 -6
  238. data/test/test_html_ipsum.rb +28 -20
  239. data/test/test_identification.rb +9 -2
  240. data/test/test_identification_br.rb +46 -0
  241. data/test/test_identification_co.rb +7 -0
  242. data/test/test_identification_es.rb +5 -1
  243. data/test/test_identification_es_cl.rb +5 -1
  244. data/test/test_identification_es_mx.rb +7 -2
  245. data/test/test_identification_kr.rb +4 -0
  246. data/test/test_internet.rb +36 -5
  247. data/test/test_internet_se.rb +12 -4
  248. data/test/test_job.rb +4 -0
  249. data/test/test_job_br.rb +17 -0
  250. data/test/test_job_cn.rb +4 -0
  251. data/test/test_job_fr.rb +4 -0
  252. data/test/test_job_ja.rb +4 -0
  253. data/test/test_job_kr.rb +4 -0
  254. data/test/test_job_vn.rb +22 -0
  255. data/test/test_locale.rb +10 -4
  256. data/test/test_lorem.rb +18 -11
  257. data/test/test_lorem_ar.rb +16 -8
  258. data/test/test_lorem_cn.rb +9 -2
  259. data/test/test_lorem_fr.rb +16 -8
  260. data/test/test_lorem_ja.rb +81 -0
  261. data/test/test_lorem_kr.rb +17 -8
  262. data/test/test_lorem_ua.rb +15 -8
  263. data/test/test_module_utils.rb +2 -2
  264. data/test/test_movie.rb +5 -1
  265. data/test/test_music.rb +11 -4
  266. data/test/test_name.rb +114 -1
  267. data/test/test_name_br.rb +41 -2
  268. data/test/test_name_cn.rb +7 -0
  269. data/test/test_name_cs.rb +7 -0
  270. data/test/test_name_da.rb +13 -6
  271. data/test/test_name_de.rb +4 -0
  272. data/test/test_name_fr.rb +7 -0
  273. data/test/test_name_ga.rb +7 -0
  274. data/test/test_name_gr.rb +70 -0
  275. data/test/test_name_it.rb +7 -0
  276. data/test/test_name_ja.rb +7 -0
  277. data/test/test_name_kh.rb +32 -0
  278. data/test/test_name_kr.rb +7 -0
  279. data/test/test_name_mx.rb +9 -0
  280. data/test/test_name_nb.rb +8 -0
  281. data/test/test_name_nl.rb +4 -0
  282. data/test/test_name_ph.rb +7 -0
  283. data/test/test_name_ru.rb +10 -3
  284. data/test/test_name_se.rb +12 -4
  285. data/test/test_name_sn.rb +8 -0
  286. data/test/test_name_th.rb +7 -0
  287. data/test/test_name_th_en.rb +35 -0
  288. data/test/test_name_ua.rb +26 -17
  289. data/test/test_name_vn.rb +42 -0
  290. data/test/test_nato_alphabet.rb +15 -4
  291. data/test/test_phone_number.rb +24 -6
  292. data/test/test_phone_number_au.rb +17 -6
  293. data/test/test_phone_number_br.rb +22 -13
  294. data/test/test_phone_number_cu.rb +29 -18
  295. data/test/test_phone_number_da.rb +16 -7
  296. data/test/test_phone_number_de.rb +17 -9
  297. data/test/test_phone_number_kr.rb +9 -0
  298. data/test/test_phone_number_mx.rb +16 -8
  299. data/test/test_phone_number_nl.rb +9 -2
  300. data/test/test_phone_number_se.rb +12 -7
  301. data/test/test_phone_number_sg.rb +17 -9
  302. data/test/test_phone_number_sn.rb +12 -4
  303. data/test/test_products.rb +22 -0
  304. data/test/test_skill.rb +8 -2
  305. data/test/test_sports.rb +4 -0
  306. data/test/test_ssn.rb +3 -1
  307. data/test/test_ssn_mx.rb +6 -1
  308. data/test/test_ssn_se.rb +3 -0
  309. data/test/test_string.rb +28 -1
  310. data/test/test_time.rb +33 -2
  311. data/test/test_tweet.rb +59 -0
  312. data/test/test_units.rb +7 -0
  313. data/test/test_units_english.rb +9 -0
  314. data/test/test_units_metric.rb +9 -0
  315. data/test/test_vehicle.rb +24 -15
  316. data/test/test_venue.rb +5 -1
  317. data/test/test_youtube.rb +28 -0
  318. metadata +101 -5
  319. data/lib/ffaker/data/name/first_names +0 -3008
  320. data/lib/ffaker/data/name_br/first_names +0 -91
@@ -3,24 +3,32 @@
3
3
  require 'helper'
4
4
 
5
5
  class TestHTMLIpsum < Test::Unit::TestCase
6
+ include DeterministicHelper
7
+
8
+ assert_methods_are_deterministic(
9
+ FFaker::HTMLIpsum,
10
+ :a, :p, :dl, :ul_short, :ul_long, :ol_short, :ol_long, :ul_links,
11
+ :table, :body, :fancy_string
12
+ )
13
+
6
14
  def setup
7
15
  @tester = FFaker::HTMLIpsum
8
16
  end
9
17
 
10
18
  def test_a
11
- assert_match /^<a href="#\w+" title="[ \w]+">[ \w]+<\/a>$/i, FFaker::HTMLIpsum.a
19
+ assert_match(/^<a href="#\w+" title="[ \w]+">[ \w]+<\/a>$/i, FFaker::HTMLIpsum.a)
12
20
  end
13
21
 
14
22
  def test_p
15
23
  # We can't predict the number of times the sentence pattern will repeat
16
24
  # because the FFaker::Lorem methods that we are using adds a random
17
25
  # number on top of what we specify for the count argument.
18
- assert_match /^<p>([ \w]+\.)+<\/p>$/i, FFaker::HTMLIpsum.p
26
+ assert_match(/^<p>([ \w]+\.)+<\/p>$/i, FFaker::HTMLIpsum.p)
19
27
  end
20
28
 
21
29
  def test_p_breaks
22
30
  # Here we can at least test how many <br> tags there are.
23
- assert_match /^<p>(?:[ \w\.]+<br>){2}[ \w\.]+<\/p>$/i, FFaker::HTMLIpsum.p(3, {:include_breaks => true})
31
+ assert_match(/^<p>(?:[ \w\.]+<br>){2}[ \w\.]+<\/p>$/i, FFaker::HTMLIpsum.p(3, include_breaks: true))
24
32
  end
25
33
 
26
34
  def test_p_fancy
@@ -28,64 +36,64 @@ class TestHTMLIpsum < Test::Unit::TestCase
28
36
  # because the FFaker::Lorem methods that we are using adds a random
29
37
  # number on top of what we specify for the count argument. We also have to
30
38
  # account for the other HTML that is being returned.
31
- str = FFaker::HTMLIpsum.p(5, {:fancy => true})
32
- assert_match /^<p>/, str
33
- assert_match /<\/p>$/, str
34
- assert str.length > 6, "string contains more than <p></p>"
39
+ str = FFaker::HTMLIpsum.p(5, fancy: true)
40
+ assert_match(/^<p>/, str)
41
+ assert_match(/<\/p>$/, str)
42
+ assert str.length > 6, 'string contains more than <p></p>'
35
43
  end
36
44
 
37
45
  def test_p_fancy_breaks
38
46
  # Here we can at least test how many <br> tags there are. We also have to
39
47
  # account for the other HTML that is being returned.
40
- str = FFaker::HTMLIpsum.p(10, {:fancy => true, :include_breaks => true})
41
- assert_equal 10, str.split("<br>").length
48
+ str = FFaker::HTMLIpsum.p(10, fancy: true, include_breaks: true)
49
+ assert_equal 10, str.split('<br>').length
42
50
  end
43
51
 
44
52
  def test_dl
45
- assert_match /^<dl>(<dt>[ \w]+<\/dt><dd>[ \w.]+<\/dd>){3}<\/dl>$/i, FFaker::HTMLIpsum.dl(3)
53
+ assert_match(/^<dl>(<dt>[ \w]+<\/dt><dd>[ \w.]+<\/dd>){3}<\/dl>$/i, FFaker::HTMLIpsum.dl(3))
46
54
  end
47
55
 
48
56
  def test_ul_short
49
- assert_match /^<ul>(<li>[ \w.]+<\/li>){3}<\/ul>$/i, FFaker::HTMLIpsum.ul_short(3)
57
+ assert_match(/^<ul>(<li>[ \w.]+<\/li>){3}<\/ul>$/i, FFaker::HTMLIpsum.ul_short(3))
50
58
  end
51
59
 
52
60
  def test_ul_long
53
- assert_match /^<ul>(<li>[ \w.]+<\/li>){3}<\/ul>$/i, FFaker::HTMLIpsum.ul_long(3)
61
+ assert_match(/^<ul>(<li>[ \w.]+<\/li>){3}<\/ul>$/i, FFaker::HTMLIpsum.ul_long(3))
54
62
  end
55
63
 
56
64
  def test_ol_short
57
- assert_match /^<ol>(<li>[ \w.]+<\/li>){3}<\/ol>$/i, FFaker::HTMLIpsum.ol_short(3)
65
+ assert_match(/^<ol>(<li>[ \w.]+<\/li>){3}<\/ol>$/i, FFaker::HTMLIpsum.ol_short(3))
58
66
  end
59
67
 
60
68
  def test_ol_long
61
- assert_match /^<ol>(<li>[ \w.]+<\/li>){3}<\/ol>$/i, FFaker::HTMLIpsum.ol_long(3)
69
+ assert_match(/^<ol>(<li>[ \w.]+<\/li>){3}<\/ol>$/i, FFaker::HTMLIpsum.ol_long(3))
62
70
  end
63
71
 
64
72
  def test_ul_links
65
- assert_match /^<ul>(<li><a href="#\w+" title="\w+">[ \w]+<\/a><\/li>){3}<\/ul>$/i, FFaker::HTMLIpsum.ul_links(3)
73
+ assert_match(/^<ul>(<li><a href="#\w+" title="\w+">[ \w]+<\/a><\/li>){3}<\/ul>$/i, FFaker::HTMLIpsum.ul_links(3))
66
74
  end
67
75
 
68
76
  def test_table
69
- assert_match /(<td>[ \w]+<\/td>\s*){3}/i, FFaker::HTMLIpsum.table(3)
77
+ assert_match(/(<td>[ \w]+<\/td>\s*){3}/i, FFaker::HTMLIpsum.table(3))
70
78
  end
71
79
 
72
80
  def test_body
73
81
  # We can't reliably predict what's going to end up inside, so just ensure
74
82
  # that we have a complete string.
75
- assert_match /^<h1>.+<\/pre>$/im, FFaker::HTMLIpsum.body
83
+ assert_match(/^<h1>.+<\/pre>$/im, FFaker::HTMLIpsum.body)
76
84
  end
77
85
 
78
86
  def test_fancy_string
79
87
  # We can't reliably predict what's going to end up inside, so just ensure
80
88
  # that we have a complete string.
81
- assert FFaker::HTMLIpsum.fancy_string.is_a?(String), "returns a string"
82
- assert FFaker::HTMLIpsum.fancy_string.length > 1, "the string is longer than one char"
89
+ assert FFaker::HTMLIpsum.fancy_string.is_a?(String), 'returns a string'
90
+ assert FFaker::HTMLIpsum.fancy_string.length > 1, 'the string is longer than one char'
83
91
  end
84
92
 
85
93
  def test_fancy_string_breaks
86
94
  # We can't reliably predict what's going to end up inside, so just ensure
87
95
  # that we have a complete string.
88
96
  str = FFaker::HTMLIpsum.fancy_string(3, true)
89
- assert_equal 3, str.split("<br>").length
97
+ assert_equal 3, str.split('<br>').length
90
98
  end
91
99
  end
@@ -3,6 +3,13 @@
3
3
  require 'helper'
4
4
 
5
5
  class TestFakerIdentification < Test::Unit::TestCase
6
+ include DeterministicHelper
7
+
8
+ assert_methods_are_deterministic(
9
+ FFaker::Identification,
10
+ :drivers_license, :ssn, :gender, :ethnicity
11
+ )
12
+
6
13
  def setup
7
14
  @tester = FFaker::Identification
8
15
  end
@@ -10,7 +17,7 @@ class TestFakerIdentification < Test::Unit::TestCase
10
17
  def test_drivers_license
11
18
  ###-###-##-###-#
12
19
  drivers_license_regex = /\A[A-Z]\d{3}-\d{3}-\d{2}-\d{3}-\d{1}\z/
13
- assert_match drivers_license_regex, @tester.drivers_license
20
+ assert_match(drivers_license_regex, @tester.drivers_license)
14
21
  end
15
22
 
16
23
  def test_ssn
@@ -23,6 +30,6 @@ class TestFakerIdentification < Test::Unit::TestCase
23
30
 
24
31
  def test_ethnicity
25
32
  ethnicity_regex = /\A(African American|Asian\/Pacific Islander|Caucasian|Hispanic|Native American|Multiracial|Other|Prefer not to respond)\z/
26
- assert_match ethnicity_regex, @tester.ethnicity
33
+ assert_match(ethnicity_regex, @tester.ethnicity)
27
34
  end
28
35
  end
@@ -0,0 +1,46 @@
1
+ # encoding: utf-8
2
+
3
+ require 'helper'
4
+
5
+ class TestFakerIdentificationBR < Test::Unit::TestCase
6
+ include DeterministicHelper
7
+
8
+ assert_methods_are_deterministic(
9
+ FFaker::IdentificationBR,
10
+ :cpf, :pretty_cpf, :cnpj, :pretty_cnpj, :rg, :pretty_rg, :gender
11
+ )
12
+
13
+ def setup
14
+ @tester = FFaker::IdentificationBR
15
+ end
16
+
17
+ def test_cpf
18
+ cpf = @tester.cpf
19
+ verification_digits = @tester.cpf_verification_digits(cpf[0..8])
20
+ assert(cpf[9..10] == verification_digits.join)
21
+ assert_match(/\A\d{11}\z/, cpf)
22
+ end
23
+
24
+ def test_pretty_cpf
25
+ assert_match(/\A\d{3}\.\d{3}\.\d{3}-\d{2}\z/, @tester.pretty_cpf)
26
+ end
27
+
28
+ def test_cnpj
29
+ cnpj = @tester.cnpj
30
+ verification_digits = @tester.cnpj_verification_digits(cnpj[0..11])
31
+ assert(cnpj[12..13] == verification_digits.join)
32
+ assert_match(/\A\d{14}\z/, cnpj)
33
+ end
34
+
35
+ def test_pretty_cnpj
36
+ assert_match(%r{\A\d{2}\.\d{3}\.\d{3}/\d{4}-\d{2}\z}, @tester.pretty_cnpj)
37
+ end
38
+
39
+ def test_rg
40
+ assert_match(/\A\d{9}\z/, @tester.rg)
41
+ end
42
+
43
+ def test_gender
44
+ assert_match(/\A(Feminino|Masculino)\z/, @tester.gender)
45
+ end
46
+ end
@@ -2,6 +2,13 @@ require 'helper'
2
2
 
3
3
  class TestFakerIdentificationESCO < Test::Unit::TestCase
4
4
  include Test::Unit::Assertions
5
+ include DeterministicHelper
6
+
7
+ assert_methods_are_deterministic(
8
+ FFaker::IdentificationESCO,
9
+ :drivers_license, :driver_license_category, :blood_type, :expedition_date
10
+ )
11
+
5
12
  def setup
6
13
  @tester = FFaker::IdentificationESCO
7
14
  end
@@ -3,11 +3,15 @@
3
3
  require 'helper'
4
4
 
5
5
  class TestFakerIdentificationES < Test::Unit::TestCase
6
+ include DeterministicHelper
7
+
8
+ assert_methods_are_deterministic(FFaker::IdentificationES, :gender)
9
+
6
10
  def setup
7
11
  @tester = FFaker::IdentificationES
8
12
  end
9
13
 
10
14
  def test_gender
11
- assert_match /(Hombre|Mujer)/, @tester.gender
15
+ assert_match(/(Hombre|Mujer)/, @tester.gender)
12
16
  end
13
17
  end
@@ -3,11 +3,15 @@
3
3
  require 'helper'
4
4
 
5
5
  class TestFakerIdentificationESCL < Test::Unit::TestCase
6
+ include DeterministicHelper
7
+
8
+ assert_methods_are_deterministic(FFaker::IdentificationESCL, :rut)
9
+
6
10
  def setup
7
11
  @tester = FFaker::IdentificationESCL
8
12
  end
9
13
 
10
14
  def test_rut
11
- assert_match /\b\d{7,8}\-[k|0-9]/i, @tester.rut
15
+ assert_match(/\b\d{7,8}\-[k|0-9]/i, @tester.rut)
12
16
  end
13
17
  end
@@ -4,6 +4,12 @@ require 'helper'
4
4
 
5
5
  # Author Guapolo <github.com/guapolo>
6
6
  class TestIdentificationMX < Test::Unit::TestCase
7
+ include DeterministicHelper
8
+
9
+ assert_methods_are_deterministic(
10
+ FFaker::IdentificationMX,
11
+ :rfc_persona_moral, :rfc_persona_fisica, :curp
12
+ )
7
13
 
8
14
  def test_rfc_persona_moral
9
15
  re = /\A[a-zñÑ&]{3}\d{2}[0-1][0-9][0-3][0-9][a-z0-9]{3}\z/i
@@ -16,9 +22,8 @@ class TestIdentificationMX < Test::Unit::TestCase
16
22
  end
17
23
 
18
24
  def test_curp
19
- or_curp_states_abbr = FFaker::IdentificationMX::ESTADOS_CURP.join("|")
25
+ or_curp_states_abbr = FFaker::IdentificationMX::ESTADOS_CURP.join('|')
20
26
  re = /\A[a-z][aeioux][a-z]{2}[0-9]{2}[0-1][0-9][0-3][0-9][hm]#{or_curp_states_abbr}[bcdfghjklmnñpqrstvwxyz]{3}[0-9a-z][0-9]\z/i
21
27
  assert_match(re, FFaker::IdentificationMX.curp)
22
28
  end
23
-
24
29
  end
@@ -3,6 +3,10 @@
3
3
  require 'helper'
4
4
 
5
5
  class TestFakerIdentificationKr < Test::Unit::TestCase
6
+ include DeterministicHelper
7
+
8
+ assert_methods_are_deterministic(FFaker::IdentificationKr, :rrn)
9
+
6
10
  def setup
7
11
  @tester = FFaker::IdentificationKr
8
12
  end
@@ -3,6 +3,15 @@
3
3
  require 'helper'
4
4
 
5
5
  class TestFakerInternet < Test::Unit::TestCase
6
+ include DeterministicHelper
7
+
8
+ assert_methods_are_deterministic(
9
+ FFaker::Internet,
10
+ :email, :free_email, :safe_email, :disposable_email,
11
+ :user_name, :domain_name, :domain_word, :domain_suffix,
12
+ :http_url, :ip_v4_address, :password, :slug, :mac
13
+ )
14
+
6
15
  def setup
7
16
  @tester = FFaker::Internet
8
17
  end
@@ -48,9 +57,13 @@ class TestFakerInternet < Test::Unit::TestCase
48
57
  end
49
58
 
50
59
  def test_uri
51
- assert @tester.uri("ftp").match(/^ftp:\/\/.+/)
52
- assert @tester.uri("http").match(/^http:\/\/.+/)
53
- assert @tester.uri("https").match(/^https:\/\/.+/)
60
+ assert @tester.uri('ftp').match(/^ftp:\/\/.+/)
61
+ assert @tester.uri('http').match(/^http:\/\/.+/)
62
+ assert @tester.uri('https').match(/^https:\/\/.+/)
63
+
64
+ assert_deterministic { @tester.uri('ftp') }
65
+ assert_deterministic { @tester.uri('http') }
66
+ assert_deterministic { @tester.uri('https') }
54
67
  end
55
68
 
56
69
  def test_http_url
@@ -66,11 +79,13 @@ class TestFakerInternet < Test::Unit::TestCase
66
79
  end
67
80
 
68
81
  def test_slug_with_input_words
69
- assert_not_match(/&/, @tester.slug("Input Words&&Symbols"))
82
+ assert_not_match(/&/, @tester.slug('Input Words&&Symbols'))
83
+ assert_deterministic { @tester.slug('Input Words&&Symbols') }
70
84
  end
71
85
 
72
86
  def test_slug_with_specified_glue
73
- assert_match(/\A[a-z]+-[a-z]+\z/, @tester.slug(nil, "-"))
87
+ assert_match(/\A[a-z]+-[a-z]+\z/, @tester.slug(nil, '-'))
88
+ assert_deterministic { @tester.slug(nil, '-') }
74
89
  end
75
90
 
76
91
  def test_password
@@ -98,4 +113,20 @@ class TestFakerInternet < Test::Unit::TestCase
98
113
  assert @tester.password(3, 1).length > 2
99
114
  assert @tester.password(8, 5).length > 7
100
115
  end
116
+
117
+ def test_mac
118
+ assert_match(/\A([a-z0-9]{2}:){5}[a-z0-9]{2}\z/, @tester.mac)
119
+ assert @tester.mac.length == 17
120
+ end
121
+
122
+ def test_mac_delimiter_argument
123
+ assert_match(/\A([a-z0-9]{2}-){5}[a-z0-9]{2}\z/, @tester.mac('-'))
124
+ assert_match(/\A([a-z0-9]{2}\.){5}[a-z0-9]{2}\z/, @tester.mac('.'))
125
+ assert_match(/\A([a-z0-9]{2}){6}\z/, @tester.mac(nil))
126
+ assert_match(/\A([a-z0-9]{2}){6}\z/, @tester.mac(''))
127
+ assert @tester.mac('-').length == 17
128
+ assert @tester.mac('.').length == 17
129
+ assert @tester.mac(nil).length == 12
130
+ assert @tester.mac('').length == 12
131
+ end
101
132
  end
@@ -3,6 +3,14 @@
3
3
  require 'helper'
4
4
 
5
5
  class TestFakerInternetSE < Test::Unit::TestCase
6
+ include DeterministicHelper
7
+
8
+ assert_methods_are_deterministic(
9
+ FFaker::InternetSE,
10
+ :email, :free_email, :safe_email, :disposable_email,
11
+ :user_name, :domain_name, :domain_word, :domain_suffix,
12
+ :http_url, :ip_v4_address, :password, :slug
13
+ )
6
14
 
7
15
  def setup
8
16
  @tester = FFaker::InternetSE
@@ -35,6 +43,7 @@ class TestFakerInternetSE < Test::Unit::TestCase
35
43
 
36
44
  def test_user_name_with_arg
37
45
  assert @tester.user_name('joel larsson').match(/(joel(_|\.)larsson|larsson(_|\.)joel)/)
46
+ assert_deterministic { @tester.user_name('joel larsson') }
38
47
  end
39
48
 
40
49
  def test_domain_name
@@ -50,9 +59,9 @@ class TestFakerInternetSE < Test::Unit::TestCase
50
59
  end
51
60
 
52
61
  def test_uri
53
- assert @tester.uri("ftp").match(/^ftp:\/\/.+/)
54
- assert @tester.uri("http").match(/^http:\/\/.+/)
55
- assert @tester.uri("https").match(/^https:\/\/.+/)
62
+ assert @tester.uri('ftp').match(/^ftp:\/\/.+/)
63
+ assert @tester.uri('http').match(/^http:\/\/.+/)
64
+ assert @tester.uri('https').match(/^https:\/\/.+/)
56
65
  end
57
66
 
58
67
  def test_http_url
@@ -66,5 +75,4 @@ class TestFakerInternetSE < Test::Unit::TestCase
66
75
  def test_slug
67
76
  assert @tester.slug.match(/^[a-z]+(_|\.|\-)[a-z]+$/)
68
77
  end
69
-
70
78
  end
@@ -3,6 +3,10 @@
3
3
  require 'helper'
4
4
 
5
5
  class TestFakerJob < Test::Unit::TestCase
6
+ include DeterministicHelper
7
+
8
+ assert_methods_are_deterministic(FFaker::Job, :title)
9
+
6
10
  def setup
7
11
  @tester = FFaker::Job
8
12
  end
@@ -0,0 +1,17 @@
1
+ # encoding: UTF-8
2
+
3
+ require 'helper'
4
+
5
+ class TestFakerJobBR < Test::Unit::TestCase
6
+ include DeterministicHelper
7
+
8
+ assert_methods_are_deterministic(FFaker::JobBR, :title)
9
+
10
+ def setup
11
+ @tester = FFaker::JobBR
12
+ end
13
+
14
+ def test_title
15
+ assert_includes @tester::JOB_NOUNS, @tester.title
16
+ end
17
+ end
@@ -3,6 +3,10 @@
3
3
  require 'helper'
4
4
 
5
5
  class TestFakerJobCN < Test::Unit::TestCase
6
+ include DeterministicHelper
7
+
8
+ assert_methods_are_deterministic(FFaker::JobCN, :title)
9
+
6
10
  def setup
7
11
  @tester = FFaker::JobCN
8
12
  end
@@ -3,6 +3,10 @@
3
3
  require 'helper'
4
4
 
5
5
  class TestFakerJobFr < Test::Unit::TestCase
6
+ include DeterministicHelper
7
+
8
+ assert_methods_are_deterministic(FFaker::JobFR, :title)
9
+
6
10
  def setup
7
11
  @tester = FFaker::JobFR
8
12
  end
@@ -3,6 +3,10 @@
3
3
  require 'helper'
4
4
 
5
5
  class TestFakerJobJA < Test::Unit::TestCase
6
+ include DeterministicHelper
7
+
8
+ assert_methods_are_deterministic(FFaker::JobJA, :title)
9
+
6
10
  def setup
7
11
  @tester = FFaker::JobJA
8
12
  end