valvat 1.4.1 → 1.4.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (58) hide show
  1. checksums.yaml +4 -4
  2. checksums.yaml.gz.sig +0 -0
  3. data/lib/valvat/version.rb +1 -1
  4. data.tar.gz.sig +0 -0
  5. metadata +34 -82
  6. metadata.gz.sig +0 -0
  7. data/.editorconfig +0 -15
  8. data/.github/workflows/rubocop.yml +0 -17
  9. data/.github/workflows/specs.yml +0 -47
  10. data/.gitignore +0 -9
  11. data/.rubocop.yml +0 -24
  12. data/CHANGES.md +0 -419
  13. data/Gemfile +0 -14
  14. data/Guardfile +0 -7
  15. data/MIT-LICENSE +0 -20
  16. data/README.md +0 -350
  17. data/Rakefile +0 -10
  18. data/certs/mite.pem +0 -26
  19. data/gemfiles/activemodel-5 +0 -8
  20. data/gemfiles/activemodel-6 +0 -8
  21. data/gemfiles/activemodel-7 +0 -8
  22. data/gemfiles/standalone +0 -7
  23. data/spec/active_model/validations/valvat_validator_spec.rb +0 -274
  24. data/spec/spec_helper.rb +0 -37
  25. data/spec/valvat/checksum/at_spec.rb +0 -17
  26. data/spec/valvat/checksum/be_spec.rb +0 -17
  27. data/spec/valvat/checksum/bg_spec.rb +0 -18
  28. data/spec/valvat/checksum/cy_spec.rb +0 -17
  29. data/spec/valvat/checksum/de_spec.rb +0 -17
  30. data/spec/valvat/checksum/dk_spec.rb +0 -17
  31. data/spec/valvat/checksum/ee_spec.rb +0 -17
  32. data/spec/valvat/checksum/es_spec.rb +0 -65
  33. data/spec/valvat/checksum/fi_spec.rb +0 -17
  34. data/spec/valvat/checksum/fr_spec.rb +0 -17
  35. data/spec/valvat/checksum/gb_spec.rb +0 -34
  36. data/spec/valvat/checksum/gr_spec.rb +0 -17
  37. data/spec/valvat/checksum/hr_spec.rb +0 -17
  38. data/spec/valvat/checksum/hu_spec.rb +0 -17
  39. data/spec/valvat/checksum/ie_spec.rb +0 -24
  40. data/spec/valvat/checksum/it_spec.rb +0 -25
  41. data/spec/valvat/checksum/lt_spec.rb +0 -17
  42. data/spec/valvat/checksum/lu_spec.rb +0 -17
  43. data/spec/valvat/checksum/mt_spec.rb +0 -17
  44. data/spec/valvat/checksum/nl_spec.rb +0 -17
  45. data/spec/valvat/checksum/pl_spec.rb +0 -21
  46. data/spec/valvat/checksum/pt_spec.rb +0 -30
  47. data/spec/valvat/checksum/ro_spec.rb +0 -17
  48. data/spec/valvat/checksum/se_spec.rb +0 -21
  49. data/spec/valvat/checksum/si_spec.rb +0 -25
  50. data/spec/valvat/checksum_spec.rb +0 -40
  51. data/spec/valvat/lookup/hmrc_spec.rb +0 -58
  52. data/spec/valvat/lookup/vies_spec.rb +0 -25
  53. data/spec/valvat/lookup_spec.rb +0 -493
  54. data/spec/valvat/options_spec.rb +0 -23
  55. data/spec/valvat/syntax_spec.rb +0 -68
  56. data/spec/valvat/utils_spec.rb +0 -125
  57. data/spec/valvat_spec.rb +0 -276
  58. data/valvat.gemspec +0 -24
data/spec/spec_helper.rb DELETED
@@ -1,37 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'rspec'
4
- begin
5
- require 'active_model'
6
- rescue LoadError
7
- puts 'Running specs without active_model extension'
8
- end
9
-
10
- require "#{File.dirname(__FILE__)}/../lib/valvat.rb"
11
- require 'webmock/rspec'
12
- WebMock.allow_net_connect!
13
-
14
- RSpec.configure do |config|
15
- config.mock_with :rspec
16
- config.filter_run focus: true
17
- config.run_all_when_everything_filtered = true
18
- end
19
-
20
- I18n.enforce_available_locales = false if defined?(I18n)
21
-
22
- if defined?(ActiveModel)
23
- class ModelBase
24
- include ActiveModel::Serialization
25
- include ActiveModel::Validations
26
-
27
- attr_accessor :attributes
28
-
29
- def initialize(attributes = {})
30
- @attributes = attributes
31
- end
32
-
33
- def read_attribute_for_validation(key)
34
- @attributes[key]
35
- end
36
- end
37
- end
@@ -1,17 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'spec_helper'
4
-
5
- describe Valvat::Checksum::AT do
6
- %w[ATU13585627 ATU66059506 ATU42403001].each do |valid_vat|
7
- it "returns true on valid VAT #{valid_vat}" do
8
- expect(Valvat::Checksum.validate(valid_vat)).to be(true)
9
- end
10
-
11
- invalid_vat = "#{valid_vat[0..-4]}#{valid_vat[-1]}#{valid_vat[-2]}#{valid_vat[-3]}"
12
-
13
- it "returns false on invalid VAT #{invalid_vat}" do
14
- expect(Valvat::Checksum.validate(invalid_vat)).to be(false)
15
- end
16
- end
17
- end
@@ -1,17 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'spec_helper'
4
-
5
- describe Valvat::Checksum::BE do
6
- %w[BE0123456749 BE0136695962 BE0817331995].each do |valid_vat|
7
- it "returns true on valid VAT #{valid_vat}" do
8
- expect(Valvat::Checksum.validate(valid_vat)).to be(true)
9
- end
10
-
11
- invalid_vat = "#{valid_vat[0..-3]}#{valid_vat[-1]}#{valid_vat[-2]}"
12
-
13
- it "returns false on invalid VAT #{invalid_vat}" do
14
- expect(Valvat::Checksum.validate(invalid_vat)).to be(false)
15
- end
16
- end
17
- end
@@ -1,18 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'spec_helper'
4
-
5
- describe Valvat::Checksum::BG do
6
- %w[BG123456786 BG926067143 BG926067770 BG0101011739 BG0121013021 BG5041019992 BG1521687837
7
- BG1431889037].each do |valid_vat|
8
- it "returns true on valid VAT #{valid_vat}" do
9
- expect(Valvat::Checksum.validate(valid_vat)).to be(true)
10
- end
11
-
12
- invalid_vat = "#{valid_vat[0..-4]}#{valid_vat[-1]}#{valid_vat[-2]}#{valid_vat[-4]}"
13
-
14
- it "returns false on invalid VAT #{invalid_vat}" do
15
- expect(Valvat::Checksum.validate(invalid_vat)).to be(false)
16
- end
17
- end
18
- end
@@ -1,17 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'spec_helper'
4
-
5
- describe Valvat::Checksum::CY do
6
- %w[CY01234567U CY00532445O].each do |valid_vat|
7
- it "returns true on valid VAT #{valid_vat}" do
8
- expect(Valvat::Checksum.validate(valid_vat)).to be true
9
- end
10
-
11
- invalid_vat = "#{valid_vat[0..-4]}#{valid_vat[-2]}#{valid_vat[-3]}#{valid_vat[-1]}"
12
-
13
- it "returns false on invalid VAT #{invalid_vat}" do
14
- expect(Valvat::Checksum.validate(invalid_vat)).to be false
15
- end
16
- end
17
- end
@@ -1,17 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'spec_helper'
4
-
5
- describe Valvat::Checksum::DE do
6
- %w[DE280857971 DE281381706 DE283108332 DE813622378 DE813628528 DE814178359 DE811907980].each do |valid_vat|
7
- it "returns true on valid VAT #{valid_vat}" do
8
- expect(Valvat::Checksum.validate(valid_vat)).to be(true)
9
- end
10
-
11
- invalid_vat = "#{valid_vat[0..-3]}#{valid_vat[-1]}#{valid_vat[-2]}"
12
-
13
- it "returns false on invalid VAT #{invalid_vat}" do
14
- expect(Valvat::Checksum.validate(invalid_vat)).to be(false)
15
- end
16
- end
17
- end
@@ -1,17 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'spec_helper'
4
-
5
- describe Valvat::Checksum::DK do
6
- %w[DK13585628 DK61126228].each do |valid_vat|
7
- it "returns true on valid VAT #{valid_vat}" do
8
- expect(Valvat::Checksum.validate(valid_vat)).to be(true)
9
- end
10
-
11
- invalid_vat = "#{valid_vat[0..-3]}#{valid_vat[-1]}#{valid_vat[-2]}"
12
-
13
- it "returns false on invalid VAT #{invalid_vat}" do
14
- expect(Valvat::Checksum.validate(invalid_vat)).to be(false)
15
- end
16
- end
17
- end
@@ -1,17 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'spec_helper'
4
-
5
- describe Valvat::Checksum::EE do
6
- %w[EE101234568 EE100207415].each do |valid_vat|
7
- it "returns true on valid VAT #{valid_vat}" do
8
- expect(Valvat::Checksum.validate(valid_vat)).to be true
9
- end
10
-
11
- invalid_vat = "#{valid_vat[0..-3]}#{valid_vat[-1]}#{valid_vat[-2]}"
12
-
13
- it "returns false on invalid VAT #{invalid_vat}" do
14
- expect(Valvat::Checksum.validate(invalid_vat)).to be false
15
- end
16
- end
17
- end
@@ -1,65 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'spec_helper'
4
-
5
- describe Valvat::Checksum::ES do
6
- %w[ESA13585625 ESB83871236 ESE54507058 ES25139013J ESQ1518001A ESQ5018001G ESX4942978W ESX7676464F ESB10317980
7
- ESY3860557K ESY2207765D ES28350472M ES41961720Z ESM1171170X ESK0928769Y ES50095545G].each do |valid_vat|
8
- it "returns true on valid VAT #{valid_vat}" do
9
- expect(Valvat::Checksum.validate(valid_vat)).to be(true)
10
- end
11
-
12
- invalid_vat = "#{valid_vat[0..-6]}#{valid_vat[-2]}#{valid_vat[-5]}#{valid_vat[-4]}#{valid_vat[-3]}#{valid_vat[-1]}"
13
-
14
- it "returns false on invalid VAT #{invalid_vat}" do
15
- expect(Valvat::Checksum.validate(invalid_vat)).to be(false)
16
- end
17
- end
18
-
19
- describe 'if starts with [KLMXYZ\\d], is always a natural person' do
20
- invalid_vat = 'ESX65474207'
21
- it "returns false on invalid VAT #{invalid_vat}" do
22
- expect(Valvat::Checksum.validate(invalid_vat)).to be(false)
23
- end
24
- end
25
-
26
- describe 'some CIF categories (NPQRSW) require control-digit to be a letter' do
27
- invalid_vat = 'ESP65474207'
28
- valid_vat = 'ESP6547420G'
29
-
30
- it "returns false on invalid VAT #{invalid_vat}" do
31
- expect(Valvat::Checksum.validate(invalid_vat)).to be(false)
32
- end
33
-
34
- it "returns true on valid VAT #{valid_vat}" do
35
- expect(Valvat::Checksum.validate(valid_vat)).to be(true)
36
- end
37
- end
38
-
39
- describe 'some CIF categories (CDFGJNUV) allow both a numeric check digit and a letter' do
40
- %w[ESC65474207 ESC6547420G].each do |valid_vat|
41
- it "returns true on valid VAT #{valid_vat}" do
42
- expect(Valvat::Checksum.validate(valid_vat)).to be(true)
43
- end
44
- end
45
- end
46
-
47
- describe 'applies special rules to validation' do
48
- describe 'special NIF categories (KLM) require CD to be a letter and first two digits ' \
49
- 'to be between 01 and 56 (inclusive)' do
50
- %w[ESK8201230M ESK0001230B].each do |invalid_vat|
51
- it "returns false on invalid VAT #{invalid_vat}" do
52
- expect(Valvat::Checksum.validate(invalid_vat)).to be(false)
53
- end
54
- end
55
- end
56
-
57
- describe 'arbitrarily invalid VATs' do
58
- %w[ESX0000000T ES00000001R ES00000000T ES99999999R].each do |invalid_vat|
59
- it "returns false on invalid VAT #{invalid_vat}" do
60
- expect(Valvat::Checksum.validate(invalid_vat)).to be(false)
61
- end
62
- end
63
- end
64
- end
65
- end
@@ -1,17 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'spec_helper'
4
-
5
- describe Valvat::Checksum::FI do
6
- %w[FI13669598 FI20584306 FI01080233].each do |valid_vat|
7
- it "returns true on valid VAT #{valid_vat}" do
8
- expect(Valvat::Checksum.validate(valid_vat)).to be(true)
9
- end
10
-
11
- invalid_vat = "#{valid_vat[0..-4]}#{valid_vat[-1]}#{valid_vat[-2]}#{valid_vat[-3]}"
12
-
13
- it "returns false on invalid VAT #{invalid_vat}" do
14
- expect(Valvat::Checksum.validate(invalid_vat)).to be(false)
15
- end
16
- end
17
- end
@@ -1,17 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'spec_helper'
4
-
5
- describe Valvat::Checksum::FR do
6
- %w[FR60528551658 FR43820567501 FR0H384498879].each do |valid_vat|
7
- it "returns true on valid VAT #{valid_vat}" do
8
- expect(Valvat::Checksum.validate(valid_vat)).to be(true)
9
- end
10
-
11
- invalid_vat = "#{valid_vat[0..-3]}#{valid_vat[-1]}#{valid_vat[-2]}"
12
-
13
- it "returns false on invalid VAT #{invalid_vat}" do
14
- expect(Valvat::Checksum.validate(invalid_vat)).to be(false)
15
- end
16
- end
17
- end
@@ -1,34 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'spec_helper'
4
-
5
- describe Valvat::Checksum::GB do
6
- %w[GBGD100 GBHA600].each do |gov_agency_vat|
7
- it "returns true on valid VAT for government agency #{gov_agency_vat}" do
8
- expect(Valvat::Checksum.validate(gov_agency_vat)).to be true
9
- end
10
- end
11
-
12
- %w[GB000000000 GB000000000000].each do |invalid_vat|
13
- it 'is false for all zero number' do
14
- expect(Valvat::Checksum.validate(invalid_vat)).to be false
15
- end
16
- end
17
-
18
- it 'is true for an old format valid vat' do
19
- expect(Valvat::Checksum.validate('GB434031494')).to be true
20
- end
21
-
22
- it 'is true for a new format valid vat' do
23
- expect(Valvat::Checksum.validate('GB434031439')).to be true
24
- expect(Valvat::Checksum.validate('GB727255821')).to be true
25
- end
26
-
27
- it 'is false for an old format VAT in forbidden group' do
28
- expect(Valvat::Checksum.validate('GB999999973')).to be false
29
- end
30
-
31
- it 'is false for a new format VAT in forbidden group' do
32
- expect(Valvat::Checksum.validate('GB100000034')).to be false
33
- end
34
- end
@@ -1,17 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'spec_helper'
4
-
5
- describe Valvat::Checksum::GR do
6
- %w[EL123456783 EL094543092 EL998219694].each do |valid_vat|
7
- it "returns true on valid VAT #{valid_vat}" do
8
- expect(Valvat::Checksum.validate(valid_vat)).to be(true)
9
- end
10
-
11
- invalid_vat = "#{valid_vat[0..-3]}#{valid_vat[-1]}#{valid_vat[-2]}"
12
-
13
- it "returns false on invalid VAT #{invalid_vat}" do
14
- expect(Valvat::Checksum.validate(invalid_vat)).to be(false)
15
- end
16
- end
17
- end
@@ -1,17 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'spec_helper'
4
-
5
- describe Valvat::Checksum::HR do
6
- %w[HR06282943396 HR17099025134].each do |valid_vat|
7
- it "returns true on valid VAT #{valid_vat}" do
8
- expect(Valvat::Checksum.validate(valid_vat)).to be true
9
- end
10
-
11
- invalid_vat = "#{valid_vat[0..-3]}#{valid_vat[-1]}#{valid_vat[-2]}"
12
-
13
- it "returns false on invalid VAT #{invalid_vat}" do
14
- expect(Valvat::Checksum.validate(invalid_vat)).to be false
15
- end
16
- end
17
- end
@@ -1,17 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'spec_helper'
4
-
5
- describe Valvat::Checksum::HU do
6
- %w[HU10672101 HU13460370 HU10747759].each do |valid_vat|
7
- it "returns true on valid VAT #{valid_vat}" do
8
- expect(Valvat::Checksum.validate(valid_vat)).to be true
9
- end
10
-
11
- invalid_vat = "#{valid_vat[0..-3]}#{valid_vat[-1]}#{valid_vat[-2]}"
12
-
13
- it "returns false on invalid VAT #{invalid_vat}" do
14
- expect(Valvat::Checksum.validate(invalid_vat)).to be false
15
- end
16
- end
17
- end
@@ -1,24 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'spec_helper'
4
-
5
- describe Valvat::Checksum::IE do
6
- %w[IE8473625E IE0123459N IE9B12345N IE1113571MH IE2973912UH IE2974611LH
7
- IE2974901UH IE3200115LH IE3206791MH IE3208913KH IE3214048CH].each do |valid_vat|
8
- it "returns true on valid VAT #{valid_vat}" do
9
- expect(Valvat::Checksum.validate(valid_vat)).to eql(true), valid_vat
10
- end
11
-
12
- invalid_vat = "#{valid_vat[0..-4]}#{valid_vat[-2]}#{valid_vat[-3]}#{valid_vat[-1]}"
13
-
14
- it "returns false on invalid VAT #{invalid_vat}" do
15
- expect(Valvat::Checksum.validate(invalid_vat)).to be(false)
16
- end
17
- end
18
-
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)
22
- end
23
- end
24
- end
@@ -1,25 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'spec_helper'
4
-
5
- describe Valvat::Checksum::IT do
6
- %w[IT12345670785 IT01897810162 IT00197200132 IT02762750210 IT00146089990].each do |valid_vat|
7
- it "returns true on valid VAT #{valid_vat}" do
8
- expect(Valvat::Checksum.validate(valid_vat)).to be(true)
9
- end
10
-
11
- invalid_vat = "#{valid_vat[0..-3]}#{valid_vat[-1]}#{valid_vat[-2]}"
12
-
13
- it "returns false on invalid VAT #{invalid_vat}" do
14
- expect(Valvat::Checksum.validate(invalid_vat)).to be(false)
15
- end
16
- end
17
-
18
- it 'returns false on invalid special case VAT IT12345671783' do
19
- expect(Valvat::Checksum.validate('IT12345671783')).to be(false)
20
- end
21
-
22
- it 'returns false on invalid special case VAT IT00000000133' do
23
- expect(Valvat::Checksum.validate('IT00000000133')).to be(false)
24
- end
25
- end
@@ -1,17 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'spec_helper'
4
-
5
- describe Valvat::Checksum::LT do
6
- %w[LT213179412 LT290061371314].each do |valid_vat|
7
- it "returns true on valid VAT #{valid_vat}" do
8
- expect(Valvat::Checksum.validate(valid_vat)).to be true
9
- end
10
-
11
- invalid_vat = "#{valid_vat[0..-3]}#{valid_vat[-1]}#{valid_vat[-2]}"
12
-
13
- it "returns false on invalid VAT #{invalid_vat}" do
14
- expect(Valvat::Checksum.validate(invalid_vat)).to be false
15
- end
16
- end
17
- end
@@ -1,17 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'spec_helper'
4
-
5
- describe Valvat::Checksum::LU do
6
- %w[LU13669580 LU25361352 LU23124018 LU17560609].each do |valid_vat|
7
- it "returns true on valid VAT #{valid_vat}" do
8
- expect(Valvat::Checksum.validate(valid_vat)).to be(true)
9
- end
10
-
11
- invalid_vat = "#{valid_vat[0..-4]}#{valid_vat[-2]}#{valid_vat[-3]}#{valid_vat[-1]}"
12
-
13
- it "returns false on invalid VAT #{invalid_vat}" do
14
- expect(Valvat::Checksum.validate(invalid_vat)).to be(false)
15
- end
16
- end
17
- end
@@ -1,17 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'spec_helper'
4
-
5
- describe Valvat::Checksum::MT do
6
- %w[MT11407334 MT10126313 MT11539237].each do |valid_vat|
7
- it "returns true on valid VAT #{valid_vat}" do
8
- expect(Valvat::Checksum.validate(valid_vat)).to be true
9
- end
10
-
11
- invalid_vat = "#{valid_vat[0..-3]}#{valid_vat[-1]}#{valid_vat[-2]}"
12
-
13
- it "returns false on invalid VAT #{invalid_vat}" do
14
- expect(Valvat::Checksum.validate(invalid_vat)).to be false
15
- end
16
- end
17
- end
@@ -1,17 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'spec_helper'
4
-
5
- describe Valvat::Checksum::NL do
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)
9
- end
10
-
11
- invalid = "#{valid[0..-5]}#{valid[-2]}#{valid[-3]}#{valid[-4]}#{valid[-1]}#{valid[-2]}#{valid[-3]}"
12
-
13
- it "returns false on invalid VAT #{invalid}" do
14
- expect(Valvat::Checksum.validate(invalid)).to be(false)
15
- end
16
- end
17
- end
@@ -1,21 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'spec_helper'
4
-
5
- describe Valvat::Checksum::PL do
6
- %w[PL8567346215 PL5260211587 PL9720575348 PL5272650022].each do |valid_vat|
7
- it "returns true on valid VAT #{valid_vat}" do
8
- expect(Valvat::Checksum.validate(valid_vat)).to be(true)
9
- end
10
-
11
- invalid_vat = "#{valid_vat[0..-4]}#{valid_vat[-1]}#{valid_vat[-2]}#{valid_vat[-3]}"
12
-
13
- it "returns false on invalid VAT #{invalid_vat}" do
14
- expect(Valvat::Checksum.validate(invalid_vat)).to be(false)
15
- end
16
- end
17
-
18
- it 'returns false on special case invalid VAT PL8566445330' do
19
- expect(Valvat::Checksum.validate('PL8566445330')).to be(false)
20
- end
21
- end
@@ -1,30 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'spec_helper'
4
-
5
- describe Valvat::Checksum::PT do
6
- %w[PT136695973 PT501413197 PT503037753 PT500243590 PT500100144 PT502921838].each do |valid_vat|
7
- it "returns true on valid VAT #{valid_vat}" do
8
- expect(Valvat::Checksum.validate(valid_vat)).to be(true)
9
- end
10
-
11
- invalid_vat = "#{valid_vat[0..-5]}#{valid_vat[-1]}#{valid_vat[-4]}#{valid_vat[-2]}#{valid_vat[-3]}"
12
-
13
- it "returns false on invalid VAT #{invalid_vat}" do
14
- expect(Valvat::Checksum.validate(invalid_vat)).to be(false)
15
- end
16
- end
17
-
18
- # Portuguese business VAT should start with the following numbers
19
- # 1 or 2 (pessoa singular) - singular person
20
- # 5 (pessoa colectiva) - collective person
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
24
- # http://www.nif.pt/nif-das-empresas/
25
- %w[PT148166644 PT111623448 PT204874866 PT292261314 PT579104222 PT628910002 PT812627318 PT943935784].each do |number|
26
- it "returns true on a valid number - #{number}" do
27
- expect(Valvat::Checksum.validate(number)).to be(true)
28
- end
29
- end
30
- end
@@ -1,17 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'spec_helper'
4
-
5
- describe Valvat::Checksum::RO do
6
- %w[RO123456789 RO99908 RO19 RO124 RO13182060].each do |valid_vat|
7
- it "returns true on valid VAT #{valid_vat}" do
8
- expect(Valvat::Checksum.validate(valid_vat)).to be true
9
- end
10
-
11
- invalid_vat = "#{valid_vat[0..-3]}#{valid_vat[-1]}#{valid_vat[-2]}"
12
-
13
- it "returns false on invalid VAT #{invalid_vat}" do
14
- expect(Valvat::Checksum.validate(invalid_vat)).to be false
15
- end
16
- end
17
- end
@@ -1,21 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'spec_helper'
4
-
5
- describe Valvat::Checksum::SE do
6
- %w[SE136695975501 SE556464687401 SE502052817901 SE556555952201 SE556084097601].each do |valid_vat|
7
- it "returns true on valid VAT #{valid_vat}" do
8
- expect(Valvat::Checksum.validate(valid_vat)).to be(true)
9
- end
10
-
11
- invalid_vat = "#{valid_vat[0..-4]}#{valid_vat[-1]}#{valid_vat[-2]}#{valid_vat[-3]}"
12
-
13
- it "returns false on invalid VAT #{invalid_vat}" do
14
- expect(Valvat::Checksum.validate(invalid_vat)).to be(false)
15
- end
16
- end
17
-
18
- it 'returns false on special case invalid VAT SE556464687400' do
19
- expect(Valvat::Checksum.validate('SE556464687400')).to be(false)
20
- end
21
- end
@@ -1,25 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'spec_helper'
4
-
5
- describe Valvat::Checksum::SI do
6
- %w[SI59082437 SI51049406 SI86154575 SI47431857 SI22511822 SI26833921].each do |valid_vat|
7
- it "returns true on valid VAT #{valid_vat}" do
8
- expect(Valvat::Checksum.validate(valid_vat)).to be(true)
9
- end
10
-
11
- invalid_vat = "#{valid_vat[0..-2]}#{valid_vat[-1].to_i + 1}"
12
-
13
- it "returns false on invalid VAT #{invalid_vat}" do
14
- expect(Valvat::Checksum.validate(invalid_vat)).to be(false)
15
- end
16
- end
17
-
18
- it 'returns false on special case invalid VAT SI11111107' do
19
- expect(Valvat::Checksum.validate('SI11111107')).to be(false)
20
- end
21
-
22
- it 'returns false on special case invalid VAT SI01111108' do
23
- expect(Valvat::Checksum.validate('SI01111108')).to be(false)
24
- end
25
- end
@@ -1,40 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'spec_helper'
4
-
5
- begin
6
- require "#{File.dirname(__FILE__)}/../../tmp/valid_vat_numbers.rb"
7
- rescue LoadError
8
- VALID_VAT_NUMBERS = [].freeze
9
- end
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
-
18
- describe Valvat::Checksum do
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)
22
- end
23
-
24
- it 'returns false on corrupt number (e.g checks syntax)' do
25
- expect(described_class.validate('FI1234567891')).to be(false)
26
- end
27
-
28
- VALID_VAT_NUMBERS.each do |valid_vat|
29
- it "returns true on valid VAT number #{valid_vat}" do
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)
37
- end
38
- end
39
- end
40
- end