valvat 1.0.1 → 1.1.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (105) hide show
  1. checksums.yaml +4 -4
  2. checksums.yaml.gz.sig +0 -0
  3. data/.github/workflows/ruby.yml +41 -0
  4. data/.gitignore +1 -0
  5. data/.rubocop.yml +15 -0
  6. data/CHANGES.md +27 -1
  7. data/Gemfile +2 -0
  8. data/Guardfile +6 -4
  9. data/README.md +6 -4
  10. data/Rakefile +3 -1
  11. data/certs/yolk.pem +25 -24
  12. data/gemfiles/activemodel-5 +1 -1
  13. data/gemfiles/activemodel-6 +1 -1
  14. data/gemfiles/{activemodel-3-2 → activemodel-7} +2 -2
  15. data/lib/active_model/validations/valvat_validator.rb +65 -32
  16. data/lib/valvat/checksum/at.rb +3 -1
  17. data/lib/valvat/checksum/be.rb +3 -1
  18. data/lib/valvat/checksum/bg.rb +17 -17
  19. data/lib/valvat/checksum/cy.rb +2 -0
  20. data/lib/valvat/checksum/de.rb +5 -3
  21. data/lib/valvat/checksum/dk.rb +3 -1
  22. data/lib/valvat/checksum/ee.rb +2 -0
  23. data/lib/valvat/checksum/es.rb +14 -16
  24. data/lib/valvat/checksum/fi.rb +3 -1
  25. data/lib/valvat/checksum/fr.rb +4 -2
  26. data/lib/valvat/checksum/gb.rb +46 -31
  27. data/lib/valvat/checksum/gr.rb +4 -2
  28. data/lib/valvat/checksum/hr.rb +2 -0
  29. data/lib/valvat/checksum/hu.rb +2 -0
  30. data/lib/valvat/checksum/ie.rb +5 -6
  31. data/lib/valvat/checksum/it.rb +7 -5
  32. data/lib/valvat/checksum/lt.rb +2 -0
  33. data/lib/valvat/checksum/lu.rb +3 -1
  34. data/lib/valvat/checksum/mt.rb +2 -0
  35. data/lib/valvat/checksum/nl.rb +5 -3
  36. data/lib/valvat/checksum/pl.rb +3 -1
  37. data/lib/valvat/checksum/pt.rb +3 -1
  38. data/lib/valvat/checksum/ro.rb +2 -0
  39. data/lib/valvat/checksum/se.rb +5 -3
  40. data/lib/valvat/checksum/si.rb +4 -2
  41. data/lib/valvat/checksum.rb +24 -28
  42. data/lib/valvat/error.rb +8 -2
  43. data/lib/valvat/local.rb +6 -4
  44. data/lib/valvat/locales/de.yml +2 -1
  45. data/lib/valvat/locales/en.yml +2 -1
  46. data/lib/valvat/locales/es.yml +1 -0
  47. data/lib/valvat/locales/fr.yml +1 -0
  48. data/lib/valvat/locales/hu.yml +1 -0
  49. data/lib/valvat/locales/nl.yml +1 -0
  50. data/lib/valvat/locales/pl.yml +1 -0
  51. data/lib/valvat/lookup/fault.rb +29 -21
  52. data/lib/valvat/lookup/request.rb +21 -16
  53. data/lib/valvat/lookup/response.rb +11 -10
  54. data/lib/valvat/lookup.rb +5 -4
  55. data/lib/valvat/syntax.rb +31 -30
  56. data/lib/valvat/utils.rb +12 -9
  57. data/lib/valvat/version.rb +3 -1
  58. data/lib/valvat.rb +4 -2
  59. data/spec/active_model/validations/valvat_validator_spec.rb +99 -93
  60. data/spec/spec_helper.rb +8 -8
  61. data/spec/valvat/checksum/at_spec.rb +6 -4
  62. data/spec/valvat/checksum/be_spec.rb +6 -4
  63. data/spec/valvat/checksum/bg_spec.rb +7 -4
  64. data/spec/valvat/checksum/cy_spec.rb +3 -1
  65. data/spec/valvat/checksum/de_spec.rb +6 -4
  66. data/spec/valvat/checksum/dk_spec.rb +6 -4
  67. data/spec/valvat/checksum/ee_spec.rb +3 -1
  68. data/spec/valvat/checksum/es_spec.rb +7 -4
  69. data/spec/valvat/checksum/fi_spec.rb +6 -4
  70. data/spec/valvat/checksum/fr_spec.rb +6 -4
  71. data/spec/valvat/checksum/gb_spec.rb +4 -2
  72. data/spec/valvat/checksum/gr_spec.rb +6 -4
  73. data/spec/valvat/checksum/hr_spec.rb +3 -1
  74. data/spec/valvat/checksum/hu_spec.rb +3 -1
  75. data/spec/valvat/checksum/ie_spec.rb +8 -6
  76. data/spec/valvat/checksum/it_spec.rb +10 -8
  77. data/spec/valvat/checksum/lt_spec.rb +3 -1
  78. data/spec/valvat/checksum/lu_spec.rb +6 -4
  79. data/spec/valvat/checksum/mt_spec.rb +3 -1
  80. data/spec/valvat/checksum/nl_spec.rb +9 -7
  81. data/spec/valvat/checksum/pl_spec.rb +8 -6
  82. data/spec/valvat/checksum/pt_spec.rb +10 -11
  83. data/spec/valvat/checksum/ro_spec.rb +3 -1
  84. data/spec/valvat/checksum/se_spec.rb +8 -6
  85. data/spec/valvat/checksum/si_spec.rb +10 -8
  86. data/spec/valvat/checksum_spec.rb +24 -9
  87. data/spec/valvat/lookup/fault_spec.rb +34 -0
  88. data/spec/valvat/lookup/request_spec.rb +32 -0
  89. data/spec/valvat/lookup/response_spec.rb +29 -0
  90. data/spec/valvat/lookup_spec.rb +171 -152
  91. data/spec/valvat/syntax_spec.rb +59 -280
  92. data/spec/valvat/utils_spec.rb +64 -47
  93. data/spec/valvat_spec.rb +140 -152
  94. data/valvat.gemspec +17 -17
  95. data.tar.gz.sig +1 -2
  96. metadata +48 -50
  97. metadata.gz.sig +0 -0
  98. data/.travis.yml +0 -47
  99. data/gemfiles/activemodel-4 +0 -7
  100. data/gemfiles/before-ruby21/activemodel-3-2 +0 -8
  101. data/gemfiles/before-ruby21/activemodel-4 +0 -8
  102. data/gemfiles/before-ruby21/standalone +0 -7
  103. data/spec/valvat/lockup/fault_spec.rb +0 -32
  104. data/spec/valvat/lockup/request_spec.rb +0 -15
  105. data/spec/valvat/lockup/response_spec.rb +0 -27
@@ -1,15 +1,17 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'spec_helper'
2
4
 
3
5
  describe Valvat::Checksum::BE do
4
- %w(BE0123456749 BE0136695962 BE0817331995).each do |valid_vat|
6
+ %w[BE0123456749 BE0136695962 BE0817331995].each do |valid_vat|
5
7
  it "returns true on valid VAT #{valid_vat}" do
6
- expect(Valvat::Checksum.validate(valid_vat)).to eql(true)
8
+ expect(Valvat::Checksum.validate(valid_vat)).to be(true)
7
9
  end
8
10
 
9
11
  invalid_vat = "#{valid_vat[0..-3]}#{valid_vat[-1]}#{valid_vat[-2]}"
10
12
 
11
13
  it "returns false on invalid VAT #{invalid_vat}" do
12
- expect(Valvat::Checksum.validate(invalid_vat)).to eql(false)
14
+ expect(Valvat::Checksum.validate(invalid_vat)).to be(false)
13
15
  end
14
16
  end
15
- end
17
+ end
@@ -1,15 +1,18 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'spec_helper'
2
4
 
3
5
  describe Valvat::Checksum::BG do
4
- %w(BG123456786 BG926067143 BG926067770 BG0101011739 BG0121013021 BG5041019992 BG1521687837 BG1431889037).each do |valid_vat|
6
+ %w[BG123456786 BG926067143 BG926067770 BG0101011739 BG0121013021 BG5041019992 BG1521687837
7
+ BG1431889037].each do |valid_vat|
5
8
  it "returns true on valid VAT #{valid_vat}" do
6
- expect(Valvat::Checksum.validate(valid_vat)).to eql(true)
9
+ expect(Valvat::Checksum.validate(valid_vat)).to be(true)
7
10
  end
8
11
 
9
12
  invalid_vat = "#{valid_vat[0..-4]}#{valid_vat[-1]}#{valid_vat[-2]}#{valid_vat[-4]}"
10
13
 
11
14
  it "returns false on invalid VAT #{invalid_vat}" do
12
- expect(Valvat::Checksum.validate(invalid_vat)).to eql(false)
15
+ expect(Valvat::Checksum.validate(invalid_vat)).to be(false)
13
16
  end
14
17
  end
15
- end
18
+ end
@@ -1,7 +1,9 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'spec_helper'
2
4
 
3
5
  describe Valvat::Checksum::CY do
4
- %w(CY01234567U CY00532445O).each do |valid_vat|
6
+ %w[CY01234567U CY00532445O].each do |valid_vat|
5
7
  it "returns true on valid VAT #{valid_vat}" do
6
8
  expect(Valvat::Checksum.validate(valid_vat)).to be true
7
9
  end
@@ -1,15 +1,17 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'spec_helper'
2
4
 
3
5
  describe Valvat::Checksum::DE do
4
- %w(DE280857971 DE281381706 DE283108332 DE813622378 DE813628528 DE814178359 DE811907980).each do |valid_vat|
6
+ %w[DE280857971 DE281381706 DE283108332 DE813622378 DE813628528 DE814178359 DE811907980].each do |valid_vat|
5
7
  it "returns true on valid VAT #{valid_vat}" do
6
- expect(Valvat::Checksum.validate(valid_vat)).to eql(true)
8
+ expect(Valvat::Checksum.validate(valid_vat)).to be(true)
7
9
  end
8
10
 
9
11
  invalid_vat = "#{valid_vat[0..-3]}#{valid_vat[-1]}#{valid_vat[-2]}"
10
12
 
11
13
  it "returns false on invalid VAT #{invalid_vat}" do
12
- expect(Valvat::Checksum.validate(invalid_vat)).to eql(false)
14
+ expect(Valvat::Checksum.validate(invalid_vat)).to be(false)
13
15
  end
14
16
  end
15
- end
17
+ end
@@ -1,15 +1,17 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'spec_helper'
2
4
 
3
5
  describe Valvat::Checksum::DK do
4
- %w(DK13585628 DK61126228).each do |valid_vat|
6
+ %w[DK13585628 DK61126228].each do |valid_vat|
5
7
  it "returns true on valid VAT #{valid_vat}" do
6
- expect(Valvat::Checksum.validate(valid_vat)).to eql(true)
8
+ expect(Valvat::Checksum.validate(valid_vat)).to be(true)
7
9
  end
8
10
 
9
11
  invalid_vat = "#{valid_vat[0..-3]}#{valid_vat[-1]}#{valid_vat[-2]}"
10
12
 
11
13
  it "returns false on invalid VAT #{invalid_vat}" do
12
- expect(Valvat::Checksum.validate(invalid_vat)).to eql(false)
14
+ expect(Valvat::Checksum.validate(invalid_vat)).to be(false)
13
15
  end
14
16
  end
15
- end
17
+ end
@@ -1,7 +1,9 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'spec_helper'
2
4
 
3
5
  describe Valvat::Checksum::EE do
4
- %w(EE101234568 EE100207415).each do |valid_vat|
6
+ %w[EE101234568 EE100207415].each do |valid_vat|
5
7
  it "returns true on valid VAT #{valid_vat}" do
6
8
  expect(Valvat::Checksum.validate(valid_vat)).to be true
7
9
  end
@@ -1,15 +1,18 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'spec_helper'
2
4
 
3
5
  describe Valvat::Checksum::ES do
4
- %w(ESA13585625 ESB83871236 ESE54507058 ES25139013J ESQ1518001A ESQ5018001G ESX4942978W ESX7676464F ESB10317980 ESY3860557K ESY2207765D).each do |valid_vat|
6
+ %w[ESA13585625 ESB83871236 ESE54507058 ES25139013J ESQ1518001A ESQ5018001G ESX4942978W ESX7676464F ESB10317980
7
+ ESY3860557K ESY2207765D].each do |valid_vat|
5
8
  it "returns true on valid VAT #{valid_vat}" do
6
- expect(Valvat::Checksum.validate(valid_vat)).to eql(true)
9
+ expect(Valvat::Checksum.validate(valid_vat)).to be(true)
7
10
  end
8
11
 
9
12
  invalid_vat = "#{valid_vat[0..-6]}#{valid_vat[-2]}#{valid_vat[-5]}#{valid_vat[-4]}#{valid_vat[-3]}#{valid_vat[-1]}"
10
13
 
11
14
  it "returns false on invalid VAT #{invalid_vat}" do
12
- expect(Valvat::Checksum.validate(invalid_vat)).to eql(false)
15
+ expect(Valvat::Checksum.validate(invalid_vat)).to be(false)
13
16
  end
14
17
  end
15
- end
18
+ end
@@ -1,15 +1,17 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'spec_helper'
2
4
 
3
5
  describe Valvat::Checksum::FI do
4
- %w(FI13669598 FI20584306 FI01080233).each do |valid_vat|
6
+ %w[FI13669598 FI20584306 FI01080233].each do |valid_vat|
5
7
  it "returns true on valid VAT #{valid_vat}" do
6
- expect(Valvat::Checksum.validate(valid_vat)).to eql(true)
8
+ expect(Valvat::Checksum.validate(valid_vat)).to be(true)
7
9
  end
8
10
 
9
11
  invalid_vat = "#{valid_vat[0..-4]}#{valid_vat[-1]}#{valid_vat[-2]}#{valid_vat[-3]}"
10
12
 
11
13
  it "returns false on invalid VAT #{invalid_vat}" do
12
- expect(Valvat::Checksum.validate(invalid_vat)).to eql(false)
14
+ expect(Valvat::Checksum.validate(invalid_vat)).to be(false)
13
15
  end
14
16
  end
15
- end
17
+ end
@@ -1,15 +1,17 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'spec_helper'
2
4
 
3
5
  describe Valvat::Checksum::FR do
4
- %w(FR60528551658 FR43820567501).each do |valid_vat|
6
+ %w[FR60528551658 FR43820567501].each do |valid_vat|
5
7
  it "returns true on valid VAT #{valid_vat}" do
6
- expect(Valvat::Checksum.validate(valid_vat)).to eql(true)
8
+ expect(Valvat::Checksum.validate(valid_vat)).to be(true)
7
9
  end
8
10
 
9
11
  invalid_vat = "#{valid_vat[0..-3]}#{valid_vat[-1]}#{valid_vat[-2]}"
10
12
 
11
13
  it "returns false on invalid VAT #{invalid_vat}" do
12
- expect(Valvat::Checksum.validate(invalid_vat)).to eql(false)
14
+ expect(Valvat::Checksum.validate(invalid_vat)).to be(false)
13
15
  end
14
16
  end
15
- end
17
+ end
@@ -1,13 +1,15 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'spec_helper'
2
4
 
3
5
  describe Valvat::Checksum::GB do
4
- %w(GBGD100 GBHA600).each do |gov_agency_vat|
6
+ %w[GBGD100 GBHA600].each do |gov_agency_vat|
5
7
  it "returns true on valid VAT for government agency #{gov_agency_vat}" do
6
8
  expect(Valvat::Checksum.validate(gov_agency_vat)).to be true
7
9
  end
8
10
  end
9
11
 
10
- %w(GB000000000 GB000000000000).each do |invalid_vat|
12
+ %w[GB000000000 GB000000000000].each do |invalid_vat|
11
13
  it 'is false for all zero number' do
12
14
  expect(Valvat::Checksum.validate(invalid_vat)).to be false
13
15
  end
@@ -1,15 +1,17 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'spec_helper'
2
4
 
3
5
  describe Valvat::Checksum::GR do
4
- %w(EL123456783 EL094543092 EL998219694).each do |valid_vat|
6
+ %w[EL123456783 EL094543092 EL998219694].each do |valid_vat|
5
7
  it "returns true on valid VAT #{valid_vat}" do
6
- expect(Valvat::Checksum.validate(valid_vat)).to eql(true)
8
+ expect(Valvat::Checksum.validate(valid_vat)).to be(true)
7
9
  end
8
10
 
9
11
  invalid_vat = "#{valid_vat[0..-3]}#{valid_vat[-1]}#{valid_vat[-2]}"
10
12
 
11
13
  it "returns false on invalid VAT #{invalid_vat}" do
12
- expect(Valvat::Checksum.validate(invalid_vat)).to eql(false)
14
+ expect(Valvat::Checksum.validate(invalid_vat)).to be(false)
13
15
  end
14
16
  end
15
- end
17
+ end
@@ -1,7 +1,9 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'spec_helper'
2
4
 
3
5
  describe Valvat::Checksum::HR do
4
- %w(HR06282943396 HR17099025134).each do |valid_vat|
6
+ %w[HR06282943396 HR17099025134].each do |valid_vat|
5
7
  it "returns true on valid VAT #{valid_vat}" do
6
8
  expect(Valvat::Checksum.validate(valid_vat)).to be true
7
9
  end
@@ -1,7 +1,9 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'spec_helper'
2
4
 
3
5
  describe Valvat::Checksum::HU do
4
- %w(HU10672101 HU13460370 HU10747759).each do |valid_vat|
6
+ %w[HU10672101 HU13460370 HU10747759].each do |valid_vat|
5
7
  it "returns true on valid VAT #{valid_vat}" do
6
8
  expect(Valvat::Checksum.validate(valid_vat)).to be true
7
9
  end
@@ -1,8 +1,10 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'spec_helper'
2
4
 
3
5
  describe Valvat::Checksum::IE do
4
- %w(IE8473625E IE0123459N IE9B12345N IE1113571MH IE2973912UH IE2974611LH
5
- IE2974901UH IE3200115LH IE3206791MH IE3208913KH IE3214048CH).each do |valid_vat|
6
+ %w[IE8473625E IE0123459N IE9B12345N IE1113571MH IE2973912UH IE2974611LH
7
+ IE2974901UH IE3200115LH IE3206791MH IE3208913KH IE3214048CH].each do |valid_vat|
6
8
  it "returns true on valid VAT #{valid_vat}" do
7
9
  expect(Valvat::Checksum.validate(valid_vat)).to eql(true), valid_vat
8
10
  end
@@ -10,13 +12,13 @@ describe Valvat::Checksum::IE do
10
12
  invalid_vat = "#{valid_vat[0..-4]}#{valid_vat[-2]}#{valid_vat[-3]}#{valid_vat[-1]}"
11
13
 
12
14
  it "returns false on invalid VAT #{invalid_vat}" do
13
- expect(Valvat::Checksum.validate(invalid_vat)).to eql(false)
15
+ expect(Valvat::Checksum.validate(invalid_vat)).to be(false)
14
16
  end
15
17
  end
16
18
 
17
- %w(IE0000000XX IE0000000AZ).each do |invalid_vat|
18
- it "returns false on invalid VAT #{invalid_vat}" do
19
- expect(Valvat::Checksum.validate(invalid_vat)).to eql(false)
19
+ %w[IE0000000XX IE0000000AZ].each do |invalid|
20
+ it "returns false on invalid VAT #{invalid}" do
21
+ expect(Valvat::Checksum.validate(invalid)).to be(false)
20
22
  end
21
23
  end
22
24
  end
@@ -1,23 +1,25 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'spec_helper'
2
4
 
3
5
  describe Valvat::Checksum::IT do
4
- %w(IT12345670785 IT01897810162 IT00197200132 IT02762750210).each do |valid_vat|
6
+ %w[IT12345670785 IT01897810162 IT00197200132 IT02762750210 IT00146089990].each do |valid_vat|
5
7
  it "returns true on valid VAT #{valid_vat}" do
6
- expect(Valvat::Checksum.validate(valid_vat)).to eql(true)
8
+ expect(Valvat::Checksum.validate(valid_vat)).to be(true)
7
9
  end
8
10
 
9
11
  invalid_vat = "#{valid_vat[0..-3]}#{valid_vat[-1]}#{valid_vat[-2]}"
10
12
 
11
13
  it "returns false on invalid VAT #{invalid_vat}" do
12
- expect(Valvat::Checksum.validate(invalid_vat)).to eql(false)
14
+ expect(Valvat::Checksum.validate(invalid_vat)).to be(false)
13
15
  end
14
16
  end
15
17
 
16
- it "returns false on invalid special case VAT IT12345671783" do
17
- expect(Valvat::Checksum.validate("IT12345671783")).to eql(false)
18
+ it 'returns false on invalid special case VAT IT12345671783' do
19
+ expect(Valvat::Checksum.validate('IT12345671783')).to be(false)
18
20
  end
19
21
 
20
- it "returns false on invalid special case VAT IT00000000133" do
21
- expect(Valvat::Checksum.validate("IT00000000133")).to eql(false)
22
+ it 'returns false on invalid special case VAT IT00000000133' do
23
+ expect(Valvat::Checksum.validate('IT00000000133')).to be(false)
22
24
  end
23
- end
25
+ end
@@ -1,7 +1,9 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'spec_helper'
2
4
 
3
5
  describe Valvat::Checksum::LT do
4
- %w(LT213179412 LT290061371314).each do |valid_vat|
6
+ %w[LT213179412 LT290061371314].each do |valid_vat|
5
7
  it "returns true on valid VAT #{valid_vat}" do
6
8
  expect(Valvat::Checksum.validate(valid_vat)).to be true
7
9
  end
@@ -1,15 +1,17 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'spec_helper'
2
4
 
3
5
  describe Valvat::Checksum::LU do
4
- %w(LU13669580 LU25361352 LU23124018 LU17560609).each do |valid_vat|
6
+ %w[LU13669580 LU25361352 LU23124018 LU17560609].each do |valid_vat|
5
7
  it "returns true on valid VAT #{valid_vat}" do
6
- expect(Valvat::Checksum.validate(valid_vat)).to eql(true)
8
+ expect(Valvat::Checksum.validate(valid_vat)).to be(true)
7
9
  end
8
10
 
9
11
  invalid_vat = "#{valid_vat[0..-4]}#{valid_vat[-2]}#{valid_vat[-3]}#{valid_vat[-1]}"
10
12
 
11
13
  it "returns false on invalid VAT #{invalid_vat}" do
12
- expect(Valvat::Checksum.validate(invalid_vat)).to eql(false)
14
+ expect(Valvat::Checksum.validate(invalid_vat)).to be(false)
13
15
  end
14
16
  end
15
- end
17
+ end
@@ -1,7 +1,9 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'spec_helper'
2
4
 
3
5
  describe Valvat::Checksum::MT do
4
- %w(MT11407334 MT10126313 MT11539237).each do |valid_vat|
6
+ %w[MT11407334 MT10126313 MT11539237].each do |valid_vat|
5
7
  it "returns true on valid VAT #{valid_vat}" do
6
8
  expect(Valvat::Checksum.validate(valid_vat)).to be true
7
9
  end
@@ -1,15 +1,17 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'spec_helper'
2
4
 
3
5
  describe Valvat::Checksum::NL do
4
- %w(NL123456782B12 NL802549391B01 NL808661863B01 NL820893559B01 NL000099998B57 NL123456789B13).each do |valid_vat|
5
- it "returns true on valid VAT #{valid_vat}" do
6
- expect(Valvat::Checksum.validate(valid_vat)).to eql(true)
6
+ %w[NL123456782B12 NL802549391B01 NL808661863B01 NL820893559B01 NL000099998B57 NL123456789B13].each do |valid|
7
+ it "returns true on valid VAT #{valid}" do
8
+ expect(Valvat::Checksum.validate(valid)).to be(true)
7
9
  end
8
10
 
9
- invalid_vat = "#{valid_vat[0..-5]}#{valid_vat[-2]}#{valid_vat[-3]}#{valid_vat[-4]}#{valid_vat[-1]}#{valid_vat[-2]}#{valid_vat[-3]}"
11
+ invalid = "#{valid[0..-5]}#{valid[-2]}#{valid[-3]}#{valid[-4]}#{valid[-1]}#{valid[-2]}#{valid[-3]}"
10
12
 
11
- it "returns false on invalid VAT #{invalid_vat}" do
12
- expect(Valvat::Checksum.validate(invalid_vat)).to eql(false)
13
+ it "returns false on invalid VAT #{invalid}" do
14
+ expect(Valvat::Checksum.validate(invalid)).to be(false)
13
15
  end
14
16
  end
15
- end
17
+ end
@@ -1,19 +1,21 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'spec_helper'
2
4
 
3
5
  describe Valvat::Checksum::PL do
4
- %w(PL8567346215 PL5260211587 PL9720575348 PL5272650022).each do |valid_vat|
6
+ %w[PL8567346215 PL5260211587 PL9720575348 PL5272650022].each do |valid_vat|
5
7
  it "returns true on valid VAT #{valid_vat}" do
6
- expect(Valvat::Checksum.validate(valid_vat)).to eql(true)
8
+ expect(Valvat::Checksum.validate(valid_vat)).to be(true)
7
9
  end
8
10
 
9
11
  invalid_vat = "#{valid_vat[0..-4]}#{valid_vat[-1]}#{valid_vat[-2]}#{valid_vat[-3]}"
10
12
 
11
13
  it "returns false on invalid VAT #{invalid_vat}" do
12
- expect(Valvat::Checksum.validate(invalid_vat)).to eql(false)
14
+ expect(Valvat::Checksum.validate(invalid_vat)).to be(false)
13
15
  end
14
16
  end
15
17
 
16
- it "returns false on special case invalid VAT PL8566445330" do
17
- expect(Valvat::Checksum.validate("PL8566445330")).to eql(false)
18
+ it 'returns false on special case invalid VAT PL8566445330' do
19
+ expect(Valvat::Checksum.validate('PL8566445330')).to be(false)
18
20
  end
19
- end
21
+ end
@@ -1,31 +1,30 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'spec_helper'
2
4
 
3
5
  describe Valvat::Checksum::PT do
4
-
5
- subject { Valvat::Checksum }
6
-
7
- %w(PT136695973 PT501413197 PT503037753 PT500243590 PT500100144 PT502921838).each do |valid_vat|
6
+ %w[PT136695973 PT501413197 PT503037753 PT500243590 PT500100144 PT502921838].each do |valid_vat|
8
7
  it "returns true on valid VAT #{valid_vat}" do
9
- expect(subject.validate(valid_vat)).to eql(true)
8
+ expect(Valvat::Checksum.validate(valid_vat)).to be(true)
10
9
  end
11
10
 
12
11
  invalid_vat = "#{valid_vat[0..-5]}#{valid_vat[-1]}#{valid_vat[-4]}#{valid_vat[-2]}#{valid_vat[-3]}"
13
12
 
14
13
  it "returns false on invalid VAT #{invalid_vat}" do
15
- expect(subject.validate(invalid_vat)).to eql(false)
14
+ expect(Valvat::Checksum.validate(invalid_vat)).to be(false)
16
15
  end
17
16
  end
18
17
 
19
18
  # Portuguese business VAT should start with the following numbers
20
19
  # 1 or 2 (pessoa singular) - singular person
21
20
  # 5 (pessoa colectiva) - collective person
22
- # 6 (pessoa colectiva pública) - public collective person
23
- # 8 (empresário em nome individual) - individual enterpreneur
24
- # 9 (pessoa colectiva irregular ou número provisório) - provisional number
21
+ # 6 (pessoa colectiva publica) - public collective person
22
+ # 8 (empresario em nome individual) - individual enterpreneur
23
+ # 9 (pessoa colectiva irregular ou numero provisorio) - provisional number
25
24
  # http://www.nif.pt/nif-das-empresas/
26
- %w(PT148166644 PT111623448 PT204874866 PT292261314 PT579104222 PT628910002 PT812627318 PT943935784).each do |number|
25
+ %w[PT148166644 PT111623448 PT204874866 PT292261314 PT579104222 PT628910002 PT812627318 PT943935784].each do |number|
27
26
  it "returns true on a valid number - #{number}" do
28
- expect(subject.validate(number)).to eql(true)
27
+ expect(Valvat::Checksum.validate(number)).to be(true)
29
28
  end
30
29
  end
31
30
  end
@@ -1,7 +1,9 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'spec_helper'
2
4
 
3
5
  describe Valvat::Checksum::RO do
4
- %w(RO123456789 RO99908 RO19 RO124 RO13182060).each do |valid_vat|
6
+ %w[RO123456789 RO99908 RO19 RO124 RO13182060].each do |valid_vat|
5
7
  it "returns true on valid VAT #{valid_vat}" do
6
8
  expect(Valvat::Checksum.validate(valid_vat)).to be true
7
9
  end
@@ -1,19 +1,21 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'spec_helper'
2
4
 
3
5
  describe Valvat::Checksum::SE do
4
- %w(SE136695975501 SE556464687401 SE502052817901 SE556555952201 SE556084097601).each do |valid_vat|
6
+ %w[SE136695975501 SE556464687401 SE502052817901 SE556555952201 SE556084097601].each do |valid_vat|
5
7
  it "returns true on valid VAT #{valid_vat}" do
6
- expect(Valvat::Checksum.validate(valid_vat)).to eql(true)
8
+ expect(Valvat::Checksum.validate(valid_vat)).to be(true)
7
9
  end
8
10
 
9
11
  invalid_vat = "#{valid_vat[0..-4]}#{valid_vat[-1]}#{valid_vat[-2]}#{valid_vat[-3]}"
10
12
 
11
13
  it "returns false on invalid VAT #{invalid_vat}" do
12
- expect(Valvat::Checksum.validate(invalid_vat)).to eql(false)
14
+ expect(Valvat::Checksum.validate(invalid_vat)).to be(false)
13
15
  end
14
16
  end
15
17
 
16
- it "returns false on special case invalid VAT SE556464687400" do
17
- expect(Valvat::Checksum.validate("SE556464687400")).to eql(false)
18
+ it 'returns false on special case invalid VAT SE556464687400' do
19
+ expect(Valvat::Checksum.validate('SE556464687400')).to be(false)
18
20
  end
19
- end
21
+ end
@@ -1,23 +1,25 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'spec_helper'
2
4
 
3
5
  describe Valvat::Checksum::SI do
4
- %w(SI59082437 SI51049406 SI86154575 SI47431857 SI22511822 SI26833921).each do |valid_vat|
6
+ %w[SI59082437 SI51049406 SI86154575 SI47431857 SI22511822 SI26833921].each do |valid_vat|
5
7
  it "returns true on valid VAT #{valid_vat}" do
6
- expect(Valvat::Checksum.validate(valid_vat)).to eql(true)
8
+ expect(Valvat::Checksum.validate(valid_vat)).to be(true)
7
9
  end
8
10
 
9
- invalid_vat = "#{valid_vat[0..-2]}#{valid_vat[-1].to_i+1}"
11
+ invalid_vat = "#{valid_vat[0..-2]}#{valid_vat[-1].to_i + 1}"
10
12
 
11
13
  it "returns false on invalid VAT #{invalid_vat}" do
12
- expect(Valvat::Checksum.validate(invalid_vat)).to eql(false)
14
+ expect(Valvat::Checksum.validate(invalid_vat)).to be(false)
13
15
  end
14
16
  end
15
17
 
16
- it "returns false on special case invalid VAT SI11111107" do
17
- expect(Valvat::Checksum.validate("SI11111107")).to eql(false)
18
+ it 'returns false on special case invalid VAT SI11111107' do
19
+ expect(Valvat::Checksum.validate('SI11111107')).to be(false)
18
20
  end
19
21
 
20
- it "returns false on special case invalid VAT SI01111108" do
21
- expect(Valvat::Checksum.validate("SI01111108")).to eql(false)
22
+ it 'returns false on special case invalid VAT SI01111108' do
23
+ expect(Valvat::Checksum.validate('SI01111108')).to be(false)
22
24
  end
23
25
  end
@@ -1,25 +1,40 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'spec_helper'
2
4
 
3
5
  begin
4
- require File.dirname(__FILE__) + '/../../tmp/valid_vat_numbers.rb'
6
+ require "#{File.dirname(__FILE__)}/../../tmp/valid_vat_numbers.rb"
5
7
  rescue LoadError
6
- VALID_VAT_NUMBERS = []
8
+ VALID_VAT_NUMBERS = [].freeze
7
9
  end
8
10
 
11
+ # Syntax is correct, but checksum invalid
12
+ INVALID_VAT_NUMBERS = %w[
13
+ DE002768611 DE161216774 DE192970834 DE223361232 DE226095231
14
+ DE227411313 DE230928917 DE232123248 DE267748405 DE275615509
15
+ DE311927825 DE329214395 DE815842425 DE821530465 DE999999999
16
+ ].freeze
17
+
9
18
  describe Valvat::Checksum do
10
- describe "#validate" do
11
- it "returns true on VAT number with unknown checksum algorithm" do
12
- expect(Valvat::Checksum.validate("CZ699001237")).to eql(true)
19
+ describe '#validate' do
20
+ it 'returns true on VAT number with unknown checksum algorithm' do
21
+ expect(described_class.validate('CZ699001237')).to be(true)
13
22
  end
14
23
 
15
- it "returns false on corrupt number (e.g checks syntax)" do
16
- expect(Valvat::Checksum.validate("FI1234567891")).to eql(false)
24
+ it 'returns false on corrupt number (e.g checks syntax)' do
25
+ expect(described_class.validate('FI1234567891')).to be(false)
17
26
  end
18
27
 
19
28
  VALID_VAT_NUMBERS.each do |valid_vat|
20
29
  it "returns true on valid VAT number #{valid_vat}" do
21
- expect(Valvat::Checksum.validate(valid_vat)).to eql(true)
30
+ expect(described_class.validate(valid_vat)).to be(true)
31
+ end
32
+ end
33
+
34
+ INVALID_VAT_NUMBERS.each do |invalid_vat|
35
+ it "returns false on invalid VAT number #{invalid_vat}" do
36
+ expect(described_class.validate(invalid_vat)).to be(false)
22
37
  end
23
38
  end
24
39
  end
25
- end
40
+ end
@@ -0,0 +1,34 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'spec_helper'
4
+
5
+ describe Valvat::Lookup::Fault do
6
+ it "returns {valid: false} on fault 'INVALID_INPUT'" do
7
+ expect(described_class.new({
8
+ fault: { faultstring: 'INVALID_INPUT' }
9
+ }).to_hash).to eql({ valid: false })
10
+ end
11
+
12
+ {
13
+ 'SERVICE_UNAVAILABLE' => Valvat::ServiceUnavailable,
14
+ 'MS_UNAVAILABLE' => Valvat::MemberStateUnavailable,
15
+ 'INVALID_REQUESTER_INFO' => Valvat::InvalidRequester,
16
+ 'TIMEOUT' => Valvat::Timeout,
17
+ 'VAT_BLOCKED' => Valvat::BlockedError,
18
+ 'IP_BLOCKED' => Valvat::BlockedError,
19
+ 'GLOBAL_MAX_CONCURRENT_REQ' => Valvat::RateLimitError,
20
+ 'GLOBAL_MAX_CONCURRENT_REQ_TIME' => Valvat::RateLimitError,
21
+ 'MS_MAX_CONCURRENT_REQ' => Valvat::RateLimitError,
22
+ 'MS_MAX_CONCURRENT_REQ_TIME' => Valvat::RateLimitError,
23
+ 'ANYTHING ELSE' => Valvat::UnknownViesError,
24
+ 'REALLY ANYTHING' => Valvat::UnknownViesError
25
+ }.each do |fault, error|
26
+ it "returns error on fault '#{fault}'" do
27
+ expect(described_class.new({
28
+ fault: { faultstring: fault }
29
+ }).to_hash).to eql({
30
+ error: error.new(fault)
31
+ })
32
+ end
33
+ end
34
+ end