ibandit 0.11.22 → 0.11.23
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 +5 -5
- data/.rubocop.yml +4 -1
- data/.rubocop_todo.yml +13 -60
- data/.travis.yml +0 -1
- data/CHANGELOG.md +4 -0
- data/Gemfile +6 -0
- data/ibandit.gemspec +2 -2
- data/lib/ibandit.rb +3 -3
- data/lib/ibandit/german_details_converter.rb +3 -3
- data/lib/ibandit/iban.rb +8 -0
- data/lib/ibandit/sweden/bank_lookup.rb +1 -1
- data/lib/ibandit/version.rb +1 -1
- data/spec/ibandit/german_details_converter_spec.rb +5 -9
- data/spec/ibandit/iban_assembler_spec.rb +0 -87
- data/spec/ibandit/iban_spec.rb +131 -173
- data/spec/ibandit/iban_splitter_spec.rb +0 -4
- data/spec/ibandit/local_details_cleaner_spec.rb +0 -128
- data/spec/ibandit/structure_spec.rb +1 -1
- data/spec/ibandit/sweden/validator_spec.rb +0 -33
- metadata +17 -17
data/spec/ibandit/iban_spec.rb
CHANGED
|
@@ -2,7 +2,6 @@ require "spec_helper"
|
|
|
2
2
|
|
|
3
3
|
describe Ibandit::IBAN do
|
|
4
4
|
subject(:iban) { described_class.new(arg) }
|
|
5
|
-
|
|
6
5
|
let(:arg) { iban_code }
|
|
7
6
|
let(:iban_code) { "GB82WEST12345698765432" }
|
|
8
7
|
|
|
@@ -10,19 +9,16 @@ describe Ibandit::IBAN do
|
|
|
10
9
|
|
|
11
10
|
context "with a poorly formatted IBAN" do
|
|
12
11
|
let(:iban_code) { " gb82 WeSt 1234 5698 7654 32\n" }
|
|
13
|
-
|
|
14
12
|
its(:iban) { is_expected.to eq("GB82WEST12345698765432") }
|
|
15
13
|
end
|
|
16
14
|
|
|
17
15
|
context "with nil" do
|
|
18
16
|
let(:arg) { nil }
|
|
19
|
-
|
|
20
17
|
specify { expect { iban }.to raise_error(TypeError) }
|
|
21
18
|
end
|
|
22
19
|
|
|
23
20
|
context "with an invalid pseudo IBAN" do
|
|
24
21
|
let(:arg) { "dezzzz" }
|
|
25
|
-
|
|
26
22
|
its(:iban) { is_expected.to eq("DEZZZZ") }
|
|
27
23
|
end
|
|
28
24
|
|
|
@@ -97,7 +93,6 @@ describe Ibandit::IBAN do
|
|
|
97
93
|
|
|
98
94
|
context "when the IBAN was created from a Slovenian IBAN" do
|
|
99
95
|
let(:iban_code) { "SI56 1910 0000 0123 438" }
|
|
100
|
-
|
|
101
96
|
its(:country_code) { is_expected.to eq("SI") }
|
|
102
97
|
its(:bank_code) { is_expected.to eq("19100") }
|
|
103
98
|
its(:branch_code) { is_expected.to be_nil }
|
|
@@ -446,7 +441,6 @@ describe Ibandit::IBAN do
|
|
|
446
441
|
account_number: account_number,
|
|
447
442
|
}
|
|
448
443
|
end
|
|
449
|
-
|
|
450
444
|
context "with a 3 digit account number suffix" do
|
|
451
445
|
let(:account_number) { "3333333-944" }
|
|
452
446
|
|
|
@@ -464,7 +458,6 @@ describe Ibandit::IBAN do
|
|
|
464
458
|
its(:valid?) { is_expected.to eq(true) }
|
|
465
459
|
its(:to_s) { is_expected.to eq("") }
|
|
466
460
|
end
|
|
467
|
-
|
|
468
461
|
context "with a 2 digit account number suffix" do
|
|
469
462
|
let(:account_number) { "3333333-44" }
|
|
470
463
|
|
|
@@ -482,7 +475,6 @@ describe Ibandit::IBAN do
|
|
|
482
475
|
its(:valid?) { is_expected.to eq(true) }
|
|
483
476
|
its(:to_s) { is_expected.to eq("") }
|
|
484
477
|
end
|
|
485
|
-
|
|
486
478
|
context "with bank and branch code embedded in account_number field" do
|
|
487
479
|
let(:arg) do
|
|
488
480
|
{
|
|
@@ -505,7 +497,6 @@ describe Ibandit::IBAN do
|
|
|
505
497
|
its(:valid?) { is_expected.to eq(true) }
|
|
506
498
|
its(:to_s) { is_expected.to eq("") }
|
|
507
499
|
end
|
|
508
|
-
|
|
509
500
|
context "with a bank code embedded in account_number field" do
|
|
510
501
|
let(:arg) do
|
|
511
502
|
{
|
|
@@ -567,7 +558,6 @@ describe Ibandit::IBAN do
|
|
|
567
558
|
|
|
568
559
|
context "with the IBAN is nil" do
|
|
569
560
|
let(:arg) { { country_code: "GB" } }
|
|
570
|
-
|
|
571
561
|
its(:to_s) { is_expected.to_not be_nil }
|
|
572
562
|
specify { expect(iban.to_s(:formatted)).to be_empty }
|
|
573
563
|
end
|
|
@@ -580,13 +570,11 @@ describe Ibandit::IBAN do
|
|
|
580
570
|
account_number: "0105723",
|
|
581
571
|
}
|
|
582
572
|
end
|
|
583
|
-
|
|
584
573
|
specify { expect(iban.to_s).to eq("SE5412000000012810105723") }
|
|
585
574
|
end
|
|
586
575
|
|
|
587
576
|
context "with a Swedish pseudo-IBAN" do
|
|
588
577
|
let(:arg) { "SEZZX1281XXX0105723" }
|
|
589
|
-
|
|
590
578
|
specify { expect(iban.to_s).to eq("SE5412000000012810105723") }
|
|
591
579
|
end
|
|
592
580
|
end
|
|
@@ -604,9 +592,7 @@ describe Ibandit::IBAN do
|
|
|
604
592
|
|
|
605
593
|
context "with an unknown country code" do
|
|
606
594
|
before { iban.valid_country_code? }
|
|
607
|
-
|
|
608
595
|
let(:iban_code) { "AA123456789123456" }
|
|
609
|
-
|
|
610
596
|
it { is_expected.to eq(false) }
|
|
611
597
|
|
|
612
598
|
context "locale en", locale: :en do
|
|
@@ -653,19 +639,16 @@ describe Ibandit::IBAN do
|
|
|
653
639
|
|
|
654
640
|
context "with valid details" do
|
|
655
641
|
let(:iban_code) { "GB82WEST12345698765432" }
|
|
656
|
-
|
|
657
642
|
it { is_expected.to eq(true) }
|
|
658
643
|
|
|
659
644
|
context "where the check digit is zero-padded" do
|
|
660
645
|
let(:iban_code) { "GB06WEST12345698765442" }
|
|
661
|
-
|
|
662
646
|
it { is_expected.to eq(true) }
|
|
663
647
|
end
|
|
664
648
|
end
|
|
665
649
|
|
|
666
650
|
context "with invalid details" do
|
|
667
651
|
let(:iban_code) { "GB12WEST12345698765432" }
|
|
668
|
-
|
|
669
652
|
it { is_expected.to eq(false) }
|
|
670
653
|
|
|
671
654
|
context "locale en", locale: :en do
|
|
@@ -779,7 +762,6 @@ describe Ibandit::IBAN do
|
|
|
779
762
|
|
|
780
763
|
context "with invalid characters" do
|
|
781
764
|
let(:iban_code) { "AA82-EST123456987654" }
|
|
782
|
-
|
|
783
765
|
it { is_expected.to be_nil }
|
|
784
766
|
|
|
785
767
|
it "does not set errors on the IBAN" do
|
|
@@ -790,7 +772,6 @@ describe Ibandit::IBAN do
|
|
|
790
772
|
|
|
791
773
|
context "with an empty IBAN" do
|
|
792
774
|
let(:iban_code) { "" }
|
|
793
|
-
|
|
794
775
|
it { is_expected.to be_nil }
|
|
795
776
|
|
|
796
777
|
it "does not set errors on the IBAN" do
|
|
@@ -809,7 +790,6 @@ describe Ibandit::IBAN do
|
|
|
809
790
|
|
|
810
791
|
context "with invalid details" do
|
|
811
792
|
let(:iban_code) { "GB82WEST123456987654" }
|
|
812
|
-
|
|
813
793
|
it { is_expected.to eq(false) }
|
|
814
794
|
|
|
815
795
|
context "locale en", locale: :en do
|
|
@@ -922,7 +902,6 @@ describe Ibandit::IBAN do
|
|
|
922
902
|
|
|
923
903
|
context "with an invalid country_code" do
|
|
924
904
|
let(:iban_code) { "AA82WEST123456987654" }
|
|
925
|
-
|
|
926
905
|
it { is_expected.to be_nil }
|
|
927
906
|
|
|
928
907
|
it "does not set errors on the IBAN" do
|
|
@@ -941,7 +920,6 @@ describe Ibandit::IBAN do
|
|
|
941
920
|
|
|
942
921
|
context "with invalid details" do
|
|
943
922
|
before { allow(iban).to receive(:swift_bank_code).and_return("WES") }
|
|
944
|
-
|
|
945
923
|
it { is_expected.to eq(false) }
|
|
946
924
|
|
|
947
925
|
context "locale en", locale: :en do
|
|
@@ -1042,7 +1020,6 @@ describe Ibandit::IBAN do
|
|
|
1042
1020
|
|
|
1043
1021
|
context "with an invalid country_code" do
|
|
1044
1022
|
before { allow(iban).to receive(:country_code).and_return("AA") }
|
|
1045
|
-
|
|
1046
1023
|
it { is_expected.to be_nil }
|
|
1047
1024
|
|
|
1048
1025
|
it "does not set errors on the IBAN" do
|
|
@@ -1061,7 +1038,6 @@ describe Ibandit::IBAN do
|
|
|
1061
1038
|
|
|
1062
1039
|
context "with invalid details" do
|
|
1063
1040
|
before { allow(iban).to receive(:swift_branch_code).and_return("12345") }
|
|
1064
|
-
|
|
1065
1041
|
it { is_expected.to eq(false) }
|
|
1066
1042
|
|
|
1067
1043
|
context "locale en", locale: :en do
|
|
@@ -1162,7 +1138,6 @@ describe Ibandit::IBAN do
|
|
|
1162
1138
|
|
|
1163
1139
|
context "without a branch code" do
|
|
1164
1140
|
before { allow(iban).to receive(:swift_branch_code).and_return(nil) }
|
|
1165
|
-
|
|
1166
1141
|
it { is_expected.to eq(false) }
|
|
1167
1142
|
|
|
1168
1143
|
context "locale en", locale: :en do
|
|
@@ -1245,7 +1220,6 @@ describe Ibandit::IBAN do
|
|
|
1245
1220
|
|
|
1246
1221
|
context "with an invalid country_code" do
|
|
1247
1222
|
before { allow(iban).to receive(:country_code).and_return("AA") }
|
|
1248
|
-
|
|
1249
1223
|
it { is_expected.to be_nil }
|
|
1250
1224
|
|
|
1251
1225
|
it "does not set errors on the IBAN" do
|
|
@@ -1266,7 +1240,6 @@ describe Ibandit::IBAN do
|
|
|
1266
1240
|
before do
|
|
1267
1241
|
allow(iban).to receive(:swift_account_number).and_return("1234567")
|
|
1268
1242
|
end
|
|
1269
|
-
|
|
1270
1243
|
it { is_expected.to eq(false) }
|
|
1271
1244
|
|
|
1272
1245
|
context "locale en", locale: :en do
|
|
@@ -1369,7 +1342,6 @@ describe Ibandit::IBAN do
|
|
|
1369
1342
|
|
|
1370
1343
|
context "with an invalid country_code" do
|
|
1371
1344
|
before { allow(iban).to receive(:country_code).and_return("AA") }
|
|
1372
|
-
|
|
1373
1345
|
it { is_expected.to be_nil }
|
|
1374
1346
|
|
|
1375
1347
|
it "does not set errors on the IBAN" do
|
|
@@ -1384,13 +1356,11 @@ describe Ibandit::IBAN do
|
|
|
1384
1356
|
|
|
1385
1357
|
context "with valid details" do
|
|
1386
1358
|
let(:iban_code) { "GB82WEST12345698765432" }
|
|
1387
|
-
|
|
1388
1359
|
it { is_expected.to eq(true) }
|
|
1389
1360
|
end
|
|
1390
1361
|
|
|
1391
1362
|
context "with invalid details" do
|
|
1392
1363
|
let(:iban_code) { "GB-123ABCD" }
|
|
1393
|
-
|
|
1394
1364
|
it { is_expected.to eq(false) }
|
|
1395
1365
|
|
|
1396
1366
|
context "locale en", locale: :en do
|
|
@@ -1490,13 +1460,11 @@ describe Ibandit::IBAN do
|
|
|
1490
1460
|
|
|
1491
1461
|
context "with valid details" do
|
|
1492
1462
|
let(:iban_code) { "GB82WEST12345698765432" }
|
|
1493
|
-
|
|
1494
1463
|
it { is_expected.to eq(true) }
|
|
1495
1464
|
end
|
|
1496
1465
|
|
|
1497
1466
|
context "with invalid details" do
|
|
1498
1467
|
let(:iban_code) { "GB82WEST12AAAAAA7654" }
|
|
1499
|
-
|
|
1500
1468
|
it { is_expected.to eq(false) }
|
|
1501
1469
|
|
|
1502
1470
|
context "locale en", locale: :en do
|
|
@@ -1590,7 +1558,6 @@ describe Ibandit::IBAN do
|
|
|
1590
1558
|
|
|
1591
1559
|
context "with an invalid country_code" do
|
|
1592
1560
|
let(:iban_code) { "AA82WEST12AAAAAA7654" }
|
|
1593
|
-
|
|
1594
1561
|
it { is_expected.to be_nil }
|
|
1595
1562
|
|
|
1596
1563
|
it "does not set errors on the IBAN" do
|
|
@@ -1952,9 +1919,7 @@ describe Ibandit::IBAN do
|
|
|
1952
1919
|
valid_account_number?: valid_account_number,
|
|
1953
1920
|
)
|
|
1954
1921
|
end
|
|
1955
|
-
|
|
1956
1922
|
after { Ibandit.modulus_checker = nil }
|
|
1957
|
-
|
|
1958
1923
|
before { iban.valid_local_modulus_check? }
|
|
1959
1924
|
|
|
1960
1925
|
context "with an invalid bank code" do
|
|
@@ -1966,7 +1931,7 @@ describe Ibandit::IBAN do
|
|
|
1966
1931
|
it "calls valid_bank_code? with an IBAN object" do
|
|
1967
1932
|
expect(Ibandit.modulus_checker).
|
|
1968
1933
|
to receive(:valid_bank_code?).
|
|
1969
|
-
with(instance_of(
|
|
1934
|
+
with(instance_of(Ibandit::IBAN))
|
|
1970
1935
|
|
|
1971
1936
|
iban.valid_local_modulus_check?
|
|
1972
1937
|
end
|
|
@@ -2027,11 +1992,8 @@ describe Ibandit::IBAN do
|
|
|
2027
1992
|
context "with an invalid branch code" do
|
|
2028
1993
|
let(:iban_code) { "GB60BARC20000055779911" }
|
|
2029
1994
|
before { Ibandit.bic_finder = double(call: "BARCGB22XXX") }
|
|
2030
|
-
|
|
2031
1995
|
after { Ibandit.bic_finder = nil }
|
|
2032
|
-
|
|
2033
1996
|
before { iban.valid_local_modulus_check? }
|
|
2034
|
-
|
|
2035
1997
|
let(:valid_bank_code) { true }
|
|
2036
1998
|
let(:valid_branch_code) { false }
|
|
2037
1999
|
let(:valid_account_number) { true }
|
|
@@ -2039,7 +2001,7 @@ describe Ibandit::IBAN do
|
|
|
2039
2001
|
it "calls valid_branch_code? with an IBAN object" do
|
|
2040
2002
|
expect(Ibandit.modulus_checker).
|
|
2041
2003
|
to receive(:valid_branch_code?).
|
|
2042
|
-
with(instance_of(
|
|
2004
|
+
with(instance_of(Ibandit::IBAN))
|
|
2043
2005
|
|
|
2044
2006
|
iban.valid_local_modulus_check?
|
|
2045
2007
|
end
|
|
@@ -2121,7 +2083,7 @@ describe Ibandit::IBAN do
|
|
|
2121
2083
|
it "calls valid_account_number? with an IBAN object" do
|
|
2122
2084
|
expect(Ibandit.modulus_checker).
|
|
2123
2085
|
to receive(:valid_account_number?).
|
|
2124
|
-
with(instance_of(
|
|
2086
|
+
with(instance_of(Ibandit::IBAN))
|
|
2125
2087
|
|
|
2126
2088
|
iban.valid_local_modulus_check?
|
|
2127
2089
|
end
|
|
@@ -2452,7 +2414,6 @@ describe Ibandit::IBAN do
|
|
|
2452
2414
|
)
|
|
2453
2415
|
iban.valid_australian_details?
|
|
2454
2416
|
end
|
|
2455
|
-
|
|
2456
2417
|
after { Ibandit.modulus_checker = nil }
|
|
2457
2418
|
|
|
2458
2419
|
let(:valid_branch_code) { true }
|
|
@@ -2460,7 +2421,7 @@ describe Ibandit::IBAN do
|
|
|
2460
2421
|
it "calls valid_branch_code? with an IBAN object" do
|
|
2461
2422
|
expect(Ibandit.modulus_checker).
|
|
2462
2423
|
to receive(:valid_branch_code?).
|
|
2463
|
-
with(instance_of(
|
|
2424
|
+
with(instance_of(Ibandit::IBAN))
|
|
2464
2425
|
|
|
2465
2426
|
iban.valid_australian_details?
|
|
2466
2427
|
end
|
|
@@ -2579,6 +2540,132 @@ describe Ibandit::IBAN do
|
|
|
2579
2540
|
)
|
|
2580
2541
|
iban.valid_nz_details?
|
|
2581
2542
|
end
|
|
2543
|
+
after { Ibandit.modulus_checker = nil }
|
|
2544
|
+
|
|
2545
|
+
let(:valid_branch_code) { true }
|
|
2546
|
+
|
|
2547
|
+
it "calls valid_branch_code? with an IBAN object" do
|
|
2548
|
+
expect(Ibandit.modulus_checker).
|
|
2549
|
+
to receive(:valid_branch_code?).
|
|
2550
|
+
with(instance_of(Ibandit::IBAN))
|
|
2551
|
+
|
|
2552
|
+
iban.valid_nz_details?
|
|
2553
|
+
end
|
|
2554
|
+
|
|
2555
|
+
it { is_expected.to be(true) }
|
|
2556
|
+
|
|
2557
|
+
context "with an invalid branch code" do
|
|
2558
|
+
let(:valid_branch_code) { false }
|
|
2559
|
+
|
|
2560
|
+
it { is_expected.to be(false) }
|
|
2561
|
+
|
|
2562
|
+
context "locale en", locale: :en do
|
|
2563
|
+
specify do
|
|
2564
|
+
expect(iban.errors).to include(branch_code: "is invalid")
|
|
2565
|
+
end
|
|
2566
|
+
end
|
|
2567
|
+
|
|
2568
|
+
context "locale fr", locale: :fr do
|
|
2569
|
+
specify do
|
|
2570
|
+
expect(iban.errors).to include(branch_code: "n'est pas valide")
|
|
2571
|
+
end
|
|
2572
|
+
end
|
|
2573
|
+
|
|
2574
|
+
context "locale de", locale: :de do
|
|
2575
|
+
specify do
|
|
2576
|
+
expect(iban.errors).to include(branch_code: "ist ungültig")
|
|
2577
|
+
end
|
|
2578
|
+
end
|
|
2579
|
+
|
|
2580
|
+
context "locale pt", locale: :pt do
|
|
2581
|
+
specify do
|
|
2582
|
+
expect(iban.errors).to include(branch_code: "é inválido")
|
|
2583
|
+
end
|
|
2584
|
+
end
|
|
2585
|
+
|
|
2586
|
+
context "locale es", locale: :es do
|
|
2587
|
+
specify do
|
|
2588
|
+
expect(iban.errors).to include(branch_code: "no es válido")
|
|
2589
|
+
end
|
|
2590
|
+
end
|
|
2591
|
+
|
|
2592
|
+
context "locale it", locale: :it do
|
|
2593
|
+
specify do
|
|
2594
|
+
expect(iban.errors).to include(branch_code: "non è valido")
|
|
2595
|
+
end
|
|
2596
|
+
end
|
|
2597
|
+
|
|
2598
|
+
context "locale nl", locale: :nl do
|
|
2599
|
+
specify do
|
|
2600
|
+
expect(iban.errors).to include(branch_code: "is ongeldig")
|
|
2601
|
+
end
|
|
2602
|
+
end
|
|
2603
|
+
|
|
2604
|
+
context "locale nb", locale: :nb do
|
|
2605
|
+
specify do
|
|
2606
|
+
expect(iban.errors).to include(branch_code: "er ikke gyldig")
|
|
2607
|
+
end
|
|
2608
|
+
end
|
|
2609
|
+
|
|
2610
|
+
context "locale sl", locale: :sl do
|
|
2611
|
+
specify do
|
|
2612
|
+
expect(iban.errors).to include(branch_code: "ni veljavno")
|
|
2613
|
+
end
|
|
2614
|
+
end
|
|
2615
|
+
|
|
2616
|
+
context "locale da", locale: :da do
|
|
2617
|
+
specify do
|
|
2618
|
+
expect(iban.errors).to include(branch_code: "er ugyldig")
|
|
2619
|
+
end
|
|
2620
|
+
end
|
|
2621
|
+
|
|
2622
|
+
context "locale sv", locale: :sv do
|
|
2623
|
+
specify do
|
|
2624
|
+
expect(iban.errors).to include(branch_code: "är ogiltig")
|
|
2625
|
+
end
|
|
2626
|
+
end
|
|
2627
|
+
end
|
|
2628
|
+
end
|
|
2629
|
+
end
|
|
2630
|
+
end
|
|
2631
|
+
|
|
2632
|
+
describe "valid_ca_details" do
|
|
2633
|
+
subject { iban.valid_ca_details? }
|
|
2634
|
+
|
|
2635
|
+
context "with non-Canadian details" do
|
|
2636
|
+
let(:arg) do
|
|
2637
|
+
{
|
|
2638
|
+
country_code: "GB",
|
|
2639
|
+
bank_code: "1234",
|
|
2640
|
+
branch_code: "200000",
|
|
2641
|
+
account_number: "55779911",
|
|
2642
|
+
}
|
|
2643
|
+
end
|
|
2644
|
+
|
|
2645
|
+
it { is_expected.to be(true) }
|
|
2646
|
+
end
|
|
2647
|
+
|
|
2648
|
+
context "with Canadian details" do
|
|
2649
|
+
let(:arg) do
|
|
2650
|
+
{
|
|
2651
|
+
country_code: "CA",
|
|
2652
|
+
bank_code: "0036",
|
|
2653
|
+
branch_code: "00063",
|
|
2654
|
+
account_number: "0123456",
|
|
2655
|
+
}
|
|
2656
|
+
end
|
|
2657
|
+
|
|
2658
|
+
context "without a modulus checker defined" do
|
|
2659
|
+
it { is_expected.to be(true) }
|
|
2660
|
+
end
|
|
2661
|
+
|
|
2662
|
+
context "with a modulus checker defined" do
|
|
2663
|
+
before do
|
|
2664
|
+
Ibandit.modulus_checker = double(
|
|
2665
|
+
valid_branch_code?: valid_branch_code,
|
|
2666
|
+
)
|
|
2667
|
+
iban.valid_ca_details?
|
|
2668
|
+
end
|
|
2582
2669
|
|
|
2583
2670
|
after { Ibandit.modulus_checker = nil }
|
|
2584
2671
|
|
|
@@ -2589,7 +2676,7 @@ describe Ibandit::IBAN do
|
|
|
2589
2676
|
to receive(:valid_branch_code?).
|
|
2590
2677
|
with(instance_of(described_class))
|
|
2591
2678
|
|
|
2592
|
-
iban.
|
|
2679
|
+
iban.valid_ca_details?
|
|
2593
2680
|
end
|
|
2594
2681
|
|
|
2595
2682
|
it { is_expected.to be(true) }
|
|
@@ -2708,703 +2795,586 @@ describe Ibandit::IBAN do
|
|
|
2708
2795
|
|
|
2709
2796
|
context "for a valid Albanian IBAN" do
|
|
2710
2797
|
let(:iban_code) { "AL47 2121 1009 0000 0002 3569 8741" }
|
|
2711
|
-
|
|
2712
2798
|
it { is_expected.to be_valid }
|
|
2713
2799
|
end
|
|
2714
2800
|
|
|
2715
2801
|
context "for a valid Andorran IBAN" do
|
|
2716
2802
|
let(:iban_code) { "AD12 0001 2030 2003 5910 0100" }
|
|
2717
|
-
|
|
2718
2803
|
it { is_expected.to be_valid }
|
|
2719
2804
|
end
|
|
2720
2805
|
|
|
2721
2806
|
context "for a valid Austrian IBAN" do
|
|
2722
2807
|
let(:iban_code) { "AT61 1904 3002 3457 3201" }
|
|
2723
|
-
|
|
2724
2808
|
it { is_expected.to be_valid }
|
|
2725
2809
|
end
|
|
2726
2810
|
|
|
2727
2811
|
context "for a valid Australian pseudo-IBAN" do
|
|
2728
2812
|
let(:iban_code) { "AUZZ123456123456789" }
|
|
2729
|
-
|
|
2730
2813
|
it { is_expected.to be_valid }
|
|
2731
2814
|
end
|
|
2732
2815
|
|
|
2733
2816
|
context "for an invalid Australian pseudo-IBAN" do
|
|
2734
2817
|
let(:iban_code) { "AU99123456123456789" }
|
|
2735
|
-
|
|
2736
2818
|
it { is_expected.to_not be_valid }
|
|
2737
2819
|
end
|
|
2738
2820
|
|
|
2739
2821
|
context "for a valid Azerbaijanian IBAN" do
|
|
2740
2822
|
let(:iban_code) { "AZ21 NABZ 0000 0000 1370 1000 1944" }
|
|
2741
|
-
|
|
2742
2823
|
it { is_expected.to be_valid }
|
|
2743
2824
|
end
|
|
2744
2825
|
|
|
2745
2826
|
context "for an invalid Azerbaijanian IBAN" do
|
|
2746
2827
|
let(:iban_code) { "AZ91 NABZ 0000 0000 1370 1000 1944" }
|
|
2747
|
-
|
|
2748
2828
|
it { is_expected.to_not be_valid }
|
|
2749
2829
|
end
|
|
2750
2830
|
|
|
2751
2831
|
context "for a valid Bahrainian IBAN" do
|
|
2752
2832
|
let(:iban_code) { "BH67 BMAG 0000 1299 1234 56" }
|
|
2753
|
-
|
|
2754
2833
|
it { is_expected.to be_valid }
|
|
2755
2834
|
end
|
|
2756
2835
|
|
|
2757
2836
|
context "for an invalid Bahrainian IBAN" do
|
|
2758
2837
|
let(:iban_code) { "BH97 BMAG 0000 1299 1234 56" }
|
|
2759
|
-
|
|
2760
2838
|
it { is_expected.to_not be_valid }
|
|
2761
2839
|
end
|
|
2762
2840
|
|
|
2763
2841
|
context "for a valid Belgian IBAN" do
|
|
2764
2842
|
let(:iban_code) { "BE62 5100 0754 7061" }
|
|
2765
|
-
|
|
2766
2843
|
it { is_expected.to be_valid }
|
|
2767
2844
|
end
|
|
2768
2845
|
|
|
2769
2846
|
context "for an invalid Belgian IBAN" do
|
|
2770
2847
|
let(:iban_code) { "BE92 5100 0754 7061" }
|
|
2771
|
-
|
|
2772
2848
|
it { is_expected.to_not be_valid }
|
|
2773
2849
|
end
|
|
2774
2850
|
|
|
2775
2851
|
context "for a valid Bosnian IBAN" do
|
|
2776
2852
|
let(:iban_code) { "BA39 1290 0794 0102 8494" }
|
|
2777
|
-
|
|
2778
2853
|
it { is_expected.to be_valid }
|
|
2779
2854
|
end
|
|
2780
2855
|
|
|
2781
2856
|
context "for an invalid Bosnian IBAN" do
|
|
2782
2857
|
let(:iban_code) { "BA99 1290 0794 0102 8494" }
|
|
2783
|
-
|
|
2784
2858
|
it { is_expected.to_not be_valid }
|
|
2785
2859
|
end
|
|
2786
2860
|
|
|
2787
2861
|
context "for a valid Bulgarian IBAN" do
|
|
2788
2862
|
let(:iban_code) { "BG80 BNBG 9661 1020 3456 78" }
|
|
2789
|
-
|
|
2790
2863
|
it { is_expected.to be_valid }
|
|
2791
2864
|
end
|
|
2792
2865
|
|
|
2793
2866
|
context "for an invalid Bulgarian IBAN" do
|
|
2794
2867
|
let(:iban_code) { "BG90 BNBG 9661 1020 3456 78" }
|
|
2795
|
-
|
|
2796
2868
|
it { is_expected.to_not be_valid }
|
|
2797
2869
|
end
|
|
2798
2870
|
|
|
2799
2871
|
context "for a valid Croatian IBAN" do
|
|
2800
2872
|
let(:iban_code) { "HR12 1001 0051 8630 0016 0" }
|
|
2801
|
-
|
|
2802
2873
|
it { is_expected.to be_valid }
|
|
2803
2874
|
end
|
|
2804
2875
|
|
|
2805
2876
|
context "for an invalid Croatian IBAN" do
|
|
2806
2877
|
let(:iban_code) { "HR92 1001 0051 8630 0016 0" }
|
|
2807
|
-
|
|
2808
2878
|
it { is_expected.to_not be_valid }
|
|
2809
2879
|
end
|
|
2810
2880
|
|
|
2811
2881
|
context "for a valid Cypriot IBAN" do
|
|
2812
2882
|
let(:iban_code) { "CY17 0020 0128 0000 0012 0052 7600" }
|
|
2813
|
-
|
|
2814
2883
|
it { is_expected.to be_valid }
|
|
2815
2884
|
end
|
|
2816
2885
|
|
|
2817
2886
|
context "for an invalid Cypriot IBAN" do
|
|
2818
2887
|
let(:iban_code) { "CY97 0020 0128 0000 0012 0052 7600" }
|
|
2819
|
-
|
|
2820
2888
|
it { is_expected.to_not be_valid }
|
|
2821
2889
|
end
|
|
2822
2890
|
|
|
2823
2891
|
context "for a valid Czech IBAN" do
|
|
2824
2892
|
let(:iban_code) { "CZ65 0800 0000 1920 0014 5399" }
|
|
2825
|
-
|
|
2826
2893
|
it { is_expected.to be_valid }
|
|
2827
2894
|
end
|
|
2828
2895
|
|
|
2829
2896
|
context "for an invalid Czech IBAN" do
|
|
2830
2897
|
let(:iban_code) { "CZ95 0800 0000 1920 0014 5399" }
|
|
2831
|
-
|
|
2832
2898
|
it { is_expected.to_not be_valid }
|
|
2833
2899
|
end
|
|
2834
2900
|
|
|
2835
2901
|
context "for a valid Danish IBAN" do
|
|
2836
2902
|
let(:iban_code) { "DK50 0040 0440 1162 43" }
|
|
2837
|
-
|
|
2838
2903
|
it { is_expected.to be_valid }
|
|
2839
2904
|
end
|
|
2840
2905
|
|
|
2841
2906
|
context "for an invalid Danish IBAN" do
|
|
2842
2907
|
let(:iban_code) { "DK90 0040 0440 1162 43" }
|
|
2843
|
-
|
|
2844
2908
|
it { is_expected.to_not be_valid }
|
|
2845
2909
|
end
|
|
2846
2910
|
|
|
2847
2911
|
context "for a valid Estonian IBAN" do
|
|
2848
2912
|
let(:iban_code) { "EE38 2200 2210 2014 5685" }
|
|
2849
|
-
|
|
2850
2913
|
it { is_expected.to be_valid }
|
|
2851
2914
|
end
|
|
2852
2915
|
|
|
2853
2916
|
context "for an invalid Estonian IBAN" do
|
|
2854
2917
|
let(:iban_code) { "EE98 2200 2210 2014 5685" }
|
|
2855
|
-
|
|
2856
2918
|
it { is_expected.to_not be_valid }
|
|
2857
2919
|
end
|
|
2858
2920
|
|
|
2859
2921
|
context "for a valid Faroe Islands IBAN" do
|
|
2860
2922
|
let(:iban_code) { "FO97 5432 0388 8999 44" }
|
|
2861
|
-
|
|
2862
2923
|
it { is_expected.to be_valid }
|
|
2863
2924
|
end
|
|
2864
2925
|
|
|
2865
2926
|
context "for an invalid Faroe Islands IBAN" do
|
|
2866
2927
|
let(:iban_code) { "FO27 5432 0388 8999 44" }
|
|
2867
|
-
|
|
2868
2928
|
it { is_expected.to_not be_valid }
|
|
2869
2929
|
end
|
|
2870
2930
|
|
|
2871
2931
|
context "for a valid Finnish IBAN" do
|
|
2872
2932
|
let(:iban_code) { "FI21 1234 5600 0007 85" }
|
|
2873
|
-
|
|
2874
2933
|
it { is_expected.to be_valid }
|
|
2875
2934
|
end
|
|
2876
2935
|
|
|
2877
2936
|
context "for an invalid Finnish IBAN" do
|
|
2878
2937
|
let(:iban_code) { "FI91 1234 5600 0007 85" }
|
|
2879
|
-
|
|
2880
2938
|
it { is_expected.to_not be_valid }
|
|
2881
2939
|
end
|
|
2882
2940
|
|
|
2883
2941
|
context "for a valid French IBAN" do
|
|
2884
2942
|
let(:iban_code) { "FR14 2004 1010 0505 0001 3M02 606" }
|
|
2885
|
-
|
|
2886
2943
|
it { is_expected.to be_valid }
|
|
2887
2944
|
end
|
|
2888
2945
|
|
|
2889
2946
|
context "for an invalid French IBAN" do
|
|
2890
2947
|
let(:iban_code) { "FR94 2004 1010 0505 0001 3M02 606" }
|
|
2891
|
-
|
|
2892
2948
|
it { is_expected.to_not be_valid }
|
|
2893
2949
|
end
|
|
2894
2950
|
|
|
2895
2951
|
context "for a valid Georgian IBAN" do
|
|
2896
2952
|
let(:iban_code) { "GE29 NB00 0000 0101 9049 17" }
|
|
2897
|
-
|
|
2898
2953
|
it { is_expected.to be_valid }
|
|
2899
2954
|
end
|
|
2900
2955
|
|
|
2901
2956
|
context "for an invalid Georgian IBAN" do
|
|
2902
2957
|
let(:iban_code) { "GE99 NB00 0000 0101 9049 17" }
|
|
2903
|
-
|
|
2904
2958
|
it { is_expected.to_not be_valid }
|
|
2905
2959
|
end
|
|
2906
2960
|
|
|
2907
2961
|
context "for a valid German IBAN" do
|
|
2908
2962
|
let(:iban_code) { "DE89 3704 0044 0532 0130 00" }
|
|
2909
|
-
|
|
2910
2963
|
it { is_expected.to be_valid }
|
|
2911
2964
|
end
|
|
2912
2965
|
|
|
2913
2966
|
context "for an invalid German IBAN" do
|
|
2914
2967
|
let(:iban_code) { "DE99 3704 0044 0532 0130 00" }
|
|
2915
|
-
|
|
2916
2968
|
it { is_expected.to_not be_valid }
|
|
2917
2969
|
end
|
|
2918
2970
|
|
|
2919
2971
|
context "for a valid Gibraltan IBAN" do
|
|
2920
2972
|
let(:iban_code) { "GI75 NWBK 0000 0000 7099 453" }
|
|
2921
|
-
|
|
2922
2973
|
it { is_expected.to be_valid }
|
|
2923
2974
|
end
|
|
2924
2975
|
|
|
2925
2976
|
context "for an invalid Gibraltan IBAN" do
|
|
2926
2977
|
let(:iban_code) { "GI95 NWBK 0000 0000 7099 453" }
|
|
2927
|
-
|
|
2928
2978
|
it { is_expected.to_not be_valid }
|
|
2929
2979
|
end
|
|
2930
2980
|
|
|
2931
2981
|
context "for a valid Greek IBAN" do
|
|
2932
2982
|
let(:iban_code) { "GR16 0110 1250 0000 0001 2300 695" }
|
|
2933
|
-
|
|
2934
2983
|
it { is_expected.to be_valid }
|
|
2935
2984
|
end
|
|
2936
2985
|
|
|
2937
2986
|
context "for an invalid Greek IBAN" do
|
|
2938
2987
|
let(:iban_code) { "GR96 0110 1250 0000 0001 2300 695" }
|
|
2939
|
-
|
|
2940
2988
|
it { is_expected.to_not be_valid }
|
|
2941
2989
|
end
|
|
2942
2990
|
|
|
2943
2991
|
context "for a valid Greenland IBAN" do
|
|
2944
2992
|
let(:iban_code) { "GL56 0444 9876 5432 10" }
|
|
2945
|
-
|
|
2946
2993
|
it { is_expected.to be_valid }
|
|
2947
2994
|
end
|
|
2948
2995
|
|
|
2949
2996
|
context "for an invalid Greenland IBAN" do
|
|
2950
2997
|
let(:iban_code) { "GL96 0444 9876 5432 10" }
|
|
2951
|
-
|
|
2952
2998
|
it { is_expected.to_not be_valid }
|
|
2953
2999
|
end
|
|
2954
3000
|
|
|
2955
3001
|
context "for a valid Hungarian IBAN" do
|
|
2956
3002
|
let(:iban_code) { "HU42 1177 3016 1111 1018 0000 0000" }
|
|
2957
|
-
|
|
2958
3003
|
it { is_expected.to be_valid }
|
|
2959
3004
|
end
|
|
2960
3005
|
|
|
2961
3006
|
context "for an invalid Hungarian IBAN" do
|
|
2962
3007
|
let(:iban_code) { "HU92 1177 3016 1111 1018 0000 0000" }
|
|
2963
|
-
|
|
2964
3008
|
it { is_expected.to_not be_valid }
|
|
2965
3009
|
end
|
|
2966
3010
|
|
|
2967
3011
|
context "for a valid Icelandic IBAN" do
|
|
2968
3012
|
let(:iban_code) { "IS14 0159 2600 7654 5510 7303 39" }
|
|
2969
|
-
|
|
2970
3013
|
it { is_expected.to be_valid }
|
|
2971
3014
|
end
|
|
2972
3015
|
|
|
2973
3016
|
context "for an invalid Icelandic IBAN" do
|
|
2974
3017
|
let(:iban_code) { "IS94 0159 2600 7654 5510 7303 39" }
|
|
2975
|
-
|
|
2976
3018
|
it { is_expected.to_not be_valid }
|
|
2977
3019
|
end
|
|
2978
3020
|
|
|
2979
3021
|
context "for a valid Irish IBAN" do
|
|
2980
3022
|
let(:iban_code) { "IE29 AIBK 9311 5212 3456 78" }
|
|
2981
|
-
|
|
2982
3023
|
it { is_expected.to be_valid }
|
|
2983
3024
|
end
|
|
2984
3025
|
|
|
2985
3026
|
context "for an invalid Irish IBAN" do
|
|
2986
3027
|
let(:iban_code) { "IE99 AIBK 9311 5212 3456 78" }
|
|
2987
|
-
|
|
2988
3028
|
it { is_expected.to_not be_valid }
|
|
2989
3029
|
end
|
|
2990
3030
|
|
|
2991
3031
|
context "for a valid Israeli IBAN" do
|
|
2992
3032
|
let(:iban_code) { "IL62 0108 0000 0009 9999 999" }
|
|
2993
|
-
|
|
2994
3033
|
it { is_expected.to be_valid }
|
|
2995
3034
|
end
|
|
2996
3035
|
|
|
2997
3036
|
context "for an invalid Israeli IBAN" do
|
|
2998
3037
|
let(:iban_code) { "IL92 0108 0000 0009 9999 999" }
|
|
2999
|
-
|
|
3000
3038
|
it { is_expected.to_not be_valid }
|
|
3001
3039
|
end
|
|
3002
3040
|
|
|
3003
3041
|
context "for a valid Italian IBAN" do
|
|
3004
3042
|
let(:iban_code) { "IT40 S054 2811 1010 0000 0123 456" }
|
|
3005
|
-
|
|
3006
3043
|
it { is_expected.to be_valid }
|
|
3007
3044
|
end
|
|
3008
3045
|
|
|
3009
3046
|
context "for an invalid Italian IBAN" do
|
|
3010
3047
|
let(:iban_code) { "IT90 S054 2811 1010 0000 0123 456" }
|
|
3011
|
-
|
|
3012
3048
|
it { is_expected.to_not be_valid }
|
|
3013
3049
|
end
|
|
3014
3050
|
|
|
3015
3051
|
context "for a valid Jordanian IBAN" do
|
|
3016
3052
|
let(:iban_code) { "JO94 CBJO 0010 0000 0000 0131 0003 02" }
|
|
3017
|
-
|
|
3018
3053
|
it { is_expected.to be_valid }
|
|
3019
3054
|
end
|
|
3020
3055
|
|
|
3021
3056
|
context "for an invalid Jordanian IBAN" do
|
|
3022
3057
|
let(:iban_code) { "JO24 CBJO 0010 0000 0000 0131 0003 02" }
|
|
3023
|
-
|
|
3024
3058
|
it { is_expected.to_not be_valid }
|
|
3025
3059
|
end
|
|
3026
3060
|
|
|
3027
3061
|
context "for a valid Kuwaiti IBAN" do
|
|
3028
3062
|
let(:iban_code) { "KW81 CBKU 0000 0000 0000 1234 5601 01" }
|
|
3029
|
-
|
|
3030
3063
|
it { is_expected.to be_valid }
|
|
3031
3064
|
end
|
|
3032
3065
|
|
|
3033
3066
|
context "for an invalid Kuwaiti IBAN" do
|
|
3034
3067
|
let(:iban_code) { "KW91 CBKU 0000 0000 0000 1234 5601 01" }
|
|
3035
|
-
|
|
3036
3068
|
it { is_expected.to_not be_valid }
|
|
3037
3069
|
end
|
|
3038
3070
|
|
|
3039
3071
|
context "for a valid Latvian IBAN" do
|
|
3040
3072
|
let(:iban_code) { "LV80 BANK 0000 4351 9500 1" }
|
|
3041
|
-
|
|
3042
3073
|
it { is_expected.to be_valid }
|
|
3043
3074
|
end
|
|
3044
3075
|
|
|
3045
3076
|
context "for an invalid Latvian IBAN" do
|
|
3046
3077
|
let(:iban_code) { "LV90 BANK 0000 4351 9500 1" }
|
|
3047
|
-
|
|
3048
3078
|
it { is_expected.to_not be_valid }
|
|
3049
3079
|
end
|
|
3050
3080
|
|
|
3051
3081
|
context "for a valid Lebanese IBAN" do
|
|
3052
3082
|
let(:iban_code) { "LB62 0999 0000 0001 0019 0122 9114" }
|
|
3053
|
-
|
|
3054
3083
|
it { is_expected.to be_valid }
|
|
3055
3084
|
end
|
|
3056
3085
|
|
|
3057
3086
|
context "for an invalid Lebanese IBAN" do
|
|
3058
3087
|
let(:iban_code) { "LB92 0999 0000 0001 0019 0122 9114" }
|
|
3059
|
-
|
|
3060
3088
|
it { is_expected.to_not be_valid }
|
|
3061
3089
|
end
|
|
3062
3090
|
|
|
3063
3091
|
context "for a valid Liechtensteinian IBAN" do
|
|
3064
3092
|
let(:iban_code) { "LI21 0881 0000 2324 013A A" }
|
|
3065
|
-
|
|
3066
3093
|
it { is_expected.to be_valid }
|
|
3067
3094
|
end
|
|
3068
3095
|
|
|
3069
3096
|
context "for an invalid Liechtensteinian IBAN" do
|
|
3070
3097
|
let(:iban_code) { "LI91 0881 0000 2324 013A A" }
|
|
3071
|
-
|
|
3072
3098
|
it { is_expected.to_not be_valid }
|
|
3073
3099
|
end
|
|
3074
3100
|
|
|
3075
3101
|
context "for a valid Lithuanian IBAN" do
|
|
3076
3102
|
let(:iban_code) { "LT12 1000 0111 0100 1000" }
|
|
3077
|
-
|
|
3078
3103
|
it { is_expected.to be_valid }
|
|
3079
3104
|
end
|
|
3080
3105
|
|
|
3081
3106
|
context "for an invalid Lithuanian IBAN" do
|
|
3082
3107
|
let(:iban_code) { "LT92 1000 0111 0100 1000" }
|
|
3083
|
-
|
|
3084
3108
|
it { is_expected.to_not be_valid }
|
|
3085
3109
|
end
|
|
3086
3110
|
|
|
3087
3111
|
context "for a valid Luxembourgian IBAN" do
|
|
3088
3112
|
let(:iban_code) { "LU28 0019 4006 4475 0000" }
|
|
3089
|
-
|
|
3090
3113
|
it { is_expected.to be_valid }
|
|
3091
3114
|
end
|
|
3092
3115
|
|
|
3093
3116
|
context "for an invalid Luxembourgian IBAN" do
|
|
3094
3117
|
let(:iban_code) { "LU98 0019 4006 4475 0000" }
|
|
3095
|
-
|
|
3096
3118
|
it { is_expected.to_not be_valid }
|
|
3097
3119
|
end
|
|
3098
3120
|
|
|
3099
3121
|
context "for a valid Macedonian IBAN" do
|
|
3100
3122
|
let(:iban_code) { "MK072 5012 0000 0589 84" }
|
|
3101
|
-
|
|
3102
3123
|
it { is_expected.to be_valid }
|
|
3103
3124
|
end
|
|
3104
3125
|
|
|
3105
3126
|
context "for an invalid Macedonian IBAN" do
|
|
3106
3127
|
let(:iban_code) { "MK972 5012 0000 0589 84" }
|
|
3107
|
-
|
|
3108
3128
|
it { is_expected.to_not be_valid }
|
|
3109
3129
|
end
|
|
3110
3130
|
|
|
3111
3131
|
context "for a valid Maltese IBAN" do
|
|
3112
3132
|
let(:iban_code) { "MT84 MALT 0110 0001 2345 MTLC AST0 01S" }
|
|
3113
|
-
|
|
3114
3133
|
it { is_expected.to be_valid }
|
|
3115
3134
|
end
|
|
3116
3135
|
|
|
3117
3136
|
context "for an invalid Maltese IBAN" do
|
|
3118
3137
|
let(:iban_code) { "MT94 MALT 0110 0001 2345 MTLC AST0 01S" }
|
|
3119
|
-
|
|
3120
3138
|
it { is_expected.to_not be_valid }
|
|
3121
3139
|
end
|
|
3122
3140
|
|
|
3123
3141
|
context "for a valid Maurititanian IBAN" do
|
|
3124
3142
|
let(:iban_code) { "MU17 BOMM 0101 1010 3030 0200 000M UR" }
|
|
3125
|
-
|
|
3126
3143
|
it { is_expected.to be_valid }
|
|
3127
3144
|
end
|
|
3128
3145
|
|
|
3129
3146
|
context "for an invalid Maurititanian IBAN" do
|
|
3130
3147
|
let(:iban_code) { "MU97 BOMM 0101 1010 3030 0200 000M UR" }
|
|
3131
|
-
|
|
3132
3148
|
it { is_expected.to_not be_valid }
|
|
3133
3149
|
end
|
|
3134
3150
|
|
|
3135
3151
|
context "for a valid Moldovan IBAN" do
|
|
3136
3152
|
let(:iban_code) { "MD24 AG00 0225 1000 1310 4168" }
|
|
3137
|
-
|
|
3138
3153
|
it { is_expected.to be_valid }
|
|
3139
3154
|
end
|
|
3140
3155
|
|
|
3141
3156
|
context "for an invalid Moldovan IBAN" do
|
|
3142
3157
|
let(:iban_code) { "MD94 AG00 0225 1000 1310 4168" }
|
|
3143
|
-
|
|
3144
3158
|
it { is_expected.to_not be_valid }
|
|
3145
3159
|
end
|
|
3146
3160
|
|
|
3147
3161
|
context "for a valid Monocan IBAN" do
|
|
3148
3162
|
let(:iban_code) { "MC93 2005 2222 1001 1223 3M44 555" }
|
|
3149
|
-
|
|
3150
3163
|
it { is_expected.to be_valid }
|
|
3151
3164
|
end
|
|
3152
3165
|
|
|
3153
3166
|
context "for an invalid Monocan IBAN" do
|
|
3154
3167
|
let(:iban_code) { "MC23 2005 2222 1001 1223 3M44 555" }
|
|
3155
|
-
|
|
3156
3168
|
it { is_expected.to_not be_valid }
|
|
3157
3169
|
end
|
|
3158
3170
|
|
|
3159
3171
|
context "for a valid Montenegrian IBAN" do
|
|
3160
3172
|
let(:iban_code) { "ME25 5050 0001 2345 6789 51" }
|
|
3161
|
-
|
|
3162
3173
|
it { is_expected.to be_valid }
|
|
3163
3174
|
end
|
|
3164
3175
|
|
|
3165
3176
|
context "for an invalid Montenegrian IBAN" do
|
|
3166
3177
|
let(:iban_code) { "ME95 5050 0001 2345 6789 51" }
|
|
3167
|
-
|
|
3168
3178
|
it { is_expected.to_not be_valid }
|
|
3169
3179
|
end
|
|
3170
3180
|
|
|
3171
3181
|
context "for a valid Dutch IBAN" do
|
|
3172
3182
|
let(:iban_code) { "NL39 RABO 0300 0652 64" }
|
|
3173
|
-
|
|
3174
3183
|
it { is_expected.to be_valid }
|
|
3175
3184
|
end
|
|
3176
3185
|
|
|
3177
3186
|
context "for an invalid Dutch IBAN" do
|
|
3178
3187
|
let(:iban_code) { "NL99 RABO 0300 0652 64" }
|
|
3179
|
-
|
|
3180
3188
|
it { is_expected.to_not be_valid }
|
|
3181
3189
|
end
|
|
3182
3190
|
|
|
3183
3191
|
context "for a valid Norwegian IBAN" do
|
|
3184
3192
|
let(:iban_code) { "NO93 8601 1117 947" }
|
|
3185
|
-
|
|
3186
3193
|
it { is_expected.to be_valid }
|
|
3187
3194
|
end
|
|
3188
3195
|
|
|
3189
3196
|
context "for an invalid Norwegian IBAN" do
|
|
3190
3197
|
let(:iban_code) { "NO23 8601 1117 947" }
|
|
3191
|
-
|
|
3192
3198
|
it { is_expected.to_not be_valid }
|
|
3193
3199
|
end
|
|
3194
3200
|
|
|
3195
3201
|
context "for a valid New Zealand pseudo-IBAN" do
|
|
3196
3202
|
let(:iban_code) { "NZZZ5566667777777088" }
|
|
3197
|
-
|
|
3198
3203
|
it { is_expected.to be_valid }
|
|
3199
3204
|
end
|
|
3200
3205
|
|
|
3201
3206
|
context "for an invalid New Zealand pseudo-IBAN" do
|
|
3202
3207
|
let(:iban_code) { "NZZZ55666677777770888" }
|
|
3203
|
-
|
|
3204
3208
|
it { is_expected.to_not be_valid }
|
|
3205
3209
|
end
|
|
3206
3210
|
|
|
3207
3211
|
context "for a valid Pakistani IBAN" do
|
|
3208
3212
|
let(:iban_code) { "PK36 SCBL 0000 0011 2345 6702" }
|
|
3209
|
-
|
|
3210
3213
|
it { is_expected.to be_valid }
|
|
3211
3214
|
end
|
|
3212
3215
|
|
|
3213
3216
|
context "for an invalid Pakistani IBAN" do
|
|
3214
3217
|
let(:iban_code) { "PK96 SCBL 0000 0011 2345 6702" }
|
|
3215
|
-
|
|
3216
3218
|
it { is_expected.to_not be_valid }
|
|
3217
3219
|
end
|
|
3218
3220
|
|
|
3219
3221
|
context "for a valid Polish IBAN" do
|
|
3220
3222
|
let(:iban_code) { "PL60 1020 1026 0000 0422 7020 1111" }
|
|
3221
|
-
|
|
3222
3223
|
it { is_expected.to be_valid }
|
|
3223
3224
|
end
|
|
3224
3225
|
|
|
3225
3226
|
context "for an invalid Polish IBAN" do
|
|
3226
3227
|
let(:iban_code) { "PL90 1020 1026 0000 0422 7020 1111" }
|
|
3227
|
-
|
|
3228
3228
|
it { is_expected.to_not be_valid }
|
|
3229
3229
|
end
|
|
3230
3230
|
|
|
3231
3231
|
context "for a valid Potuguese IBAN" do
|
|
3232
3232
|
let(:iban_code) { "PT50 0002 0123 1234 5678 9015 4" }
|
|
3233
|
-
|
|
3234
3233
|
it { is_expected.to be_valid }
|
|
3235
3234
|
end
|
|
3236
3235
|
|
|
3237
3236
|
context "for an invalid Potuguese IBAN" do
|
|
3238
3237
|
let(:iban_code) { "PT90 0002 0123 1234 5678 9015 4" }
|
|
3239
|
-
|
|
3240
3238
|
it { is_expected.to_not be_valid }
|
|
3241
3239
|
end
|
|
3242
3240
|
|
|
3243
3241
|
context "for a valid Qatari IBAN" do
|
|
3244
3242
|
let(:iban_code) { "QA58 DOHB 0000 1234 5678 90AB CDEF G" }
|
|
3245
|
-
|
|
3246
3243
|
it { is_expected.to be_valid }
|
|
3247
3244
|
end
|
|
3248
3245
|
|
|
3249
3246
|
context "for an invalid Qatari IBAN" do
|
|
3250
3247
|
let(:iban_code) { "QA98 DOHB 0000 1234 5678 90AB CDEF G" }
|
|
3251
|
-
|
|
3252
3248
|
it { is_expected.to_not be_valid }
|
|
3253
3249
|
end
|
|
3254
3250
|
|
|
3255
3251
|
context "for a valid Romanian IBAN" do
|
|
3256
3252
|
let(:iban_code) { "RO49 AAAA 1B31 0075 9384 0000" }
|
|
3257
|
-
|
|
3258
3253
|
it { is_expected.to be_valid }
|
|
3259
3254
|
end
|
|
3260
3255
|
|
|
3261
3256
|
context "for an invalid Romanian IBAN" do
|
|
3262
3257
|
let(:iban_code) { "RO99 AAAA 1B31 0075 9384 0000" }
|
|
3263
|
-
|
|
3264
3258
|
it { is_expected.to_not be_valid }
|
|
3265
3259
|
end
|
|
3266
3260
|
|
|
3267
3261
|
context "for a valid San Marinian IBAN" do
|
|
3268
3262
|
let(:iban_code) { "SM86 U032 2509 8000 0000 0270 100" }
|
|
3269
|
-
|
|
3270
3263
|
it { is_expected.to be_valid }
|
|
3271
3264
|
end
|
|
3272
3265
|
|
|
3273
3266
|
context "for an invalid San Marinian IBAN" do
|
|
3274
3267
|
let(:iban_code) { "SM96 U032 2509 8000 0000 0270 100" }
|
|
3275
|
-
|
|
3276
3268
|
it { is_expected.to_not be_valid }
|
|
3277
3269
|
end
|
|
3278
3270
|
|
|
3279
3271
|
context "for a valid Saudi IBAN" do
|
|
3280
3272
|
let(:iban_code) { "SA03 8000 0000 6080 1016 7519" }
|
|
3281
|
-
|
|
3282
3273
|
it { is_expected.to be_valid }
|
|
3283
3274
|
end
|
|
3284
3275
|
|
|
3285
3276
|
context "for an invalid Saudi IBAN" do
|
|
3286
3277
|
let(:iban_code) { "SA93 8000 0000 6080 1016 7519" }
|
|
3287
|
-
|
|
3288
3278
|
it { is_expected.to_not be_valid }
|
|
3289
3279
|
end
|
|
3290
3280
|
|
|
3291
3281
|
context "for a valid Serbian IBAN" do
|
|
3292
3282
|
let(:iban_code) { "RS35 2600 0560 1001 6113 79" }
|
|
3293
|
-
|
|
3294
3283
|
it { is_expected.to be_valid }
|
|
3295
3284
|
end
|
|
3296
3285
|
|
|
3297
3286
|
context "for an invalid Serbian IBAN" do
|
|
3298
3287
|
let(:iban_code) { "RS95 2600 0560 1001 6113 79" }
|
|
3299
|
-
|
|
3300
3288
|
it { is_expected.to_not be_valid }
|
|
3301
3289
|
end
|
|
3302
3290
|
|
|
3303
3291
|
context "for a valid Slovakian IBAN" do
|
|
3304
3292
|
let(:iban_code) { "SK31 1200 0000 1987 4263 7541" }
|
|
3305
|
-
|
|
3306
3293
|
it { is_expected.to be_valid }
|
|
3307
3294
|
end
|
|
3308
3295
|
|
|
3309
3296
|
context "for an invalid Slovakian IBAN" do
|
|
3310
3297
|
let(:iban_code) { "SK91 1200 0000 1987 4263 7541" }
|
|
3311
|
-
|
|
3312
3298
|
it { is_expected.to_not be_valid }
|
|
3313
3299
|
end
|
|
3314
3300
|
|
|
3315
3301
|
context "for a valid Slovenian IBAN" do
|
|
3316
3302
|
let(:iban_code) { "SI56 1910 0000 0123 438" }
|
|
3317
|
-
|
|
3318
3303
|
it { is_expected.to be_valid }
|
|
3319
3304
|
end
|
|
3320
3305
|
|
|
3321
3306
|
context "for an invalid Slovenian IBAN" do
|
|
3322
3307
|
let(:iban_code) { "SI96 1910 0000 0123 438" }
|
|
3323
|
-
|
|
3324
3308
|
it { is_expected.to_not be_valid }
|
|
3325
3309
|
end
|
|
3326
3310
|
|
|
3327
3311
|
context "for a valid Spanish IBAN" do
|
|
3328
3312
|
let(:iban_code) { "ES80 2310 0001 1800 0001 2345" }
|
|
3329
|
-
|
|
3330
3313
|
it { is_expected.to be_valid }
|
|
3331
3314
|
end
|
|
3332
3315
|
|
|
3333
3316
|
context "for an invalid Spanish IBAN" do
|
|
3334
3317
|
let(:iban_code) { "ES90 2310 0001 1800 0001 2345" }
|
|
3335
|
-
|
|
3336
3318
|
it { is_expected.to_not be_valid }
|
|
3337
3319
|
end
|
|
3338
3320
|
|
|
3339
3321
|
context "for a valid Swedish IBAN" do
|
|
3340
3322
|
let(:iban_code) { "SE35 5000 0000 0549 1000 0003" }
|
|
3341
|
-
|
|
3342
3323
|
it { is_expected.to be_valid }
|
|
3343
3324
|
end
|
|
3344
3325
|
|
|
3345
3326
|
context "for an invalid Swedish IBAN" do
|
|
3346
3327
|
let(:iban_code) { "SE95 5000 0000 0549 1000 0003" }
|
|
3347
|
-
|
|
3348
3328
|
it { is_expected.to_not be_valid }
|
|
3349
3329
|
end
|
|
3350
3330
|
|
|
3351
3331
|
context "for a valid Swiss IBAN" do
|
|
3352
3332
|
let(:iban_code) { "CH93 0076 2011 6238 5295 7" }
|
|
3353
|
-
|
|
3354
3333
|
it { is_expected.to be_valid }
|
|
3355
3334
|
end
|
|
3356
3335
|
|
|
3357
3336
|
context "for an invalid Swiss IBAN" do
|
|
3358
3337
|
let(:iban_code) { "CH23 0076 2011 6238 5295 7" }
|
|
3359
|
-
|
|
3360
3338
|
it { is_expected.to_not be_valid }
|
|
3361
3339
|
end
|
|
3362
3340
|
|
|
3363
3341
|
context "for a valid Tunisian IBAN" do
|
|
3364
3342
|
let(:iban_code) { "TN59 1000 6035 1835 9847 8831" }
|
|
3365
|
-
|
|
3366
3343
|
it { is_expected.to be_valid }
|
|
3367
3344
|
end
|
|
3368
3345
|
|
|
3369
3346
|
context "for an invalid Tunisian IBAN" do
|
|
3370
3347
|
let(:iban_code) { "TN99 1000 6035 1835 9847 8831" }
|
|
3371
|
-
|
|
3372
3348
|
it { is_expected.to_not be_valid }
|
|
3373
3349
|
end
|
|
3374
3350
|
|
|
3375
3351
|
context "for a valid Turkish IBAN" do
|
|
3376
3352
|
let(:iban_code) { "TR33 0006 1005 1978 6457 8413 26" }
|
|
3377
|
-
|
|
3378
3353
|
it { is_expected.to be_valid }
|
|
3379
3354
|
end
|
|
3380
3355
|
|
|
3381
3356
|
context "for an invalid Turkish IBAN" do
|
|
3382
3357
|
let(:iban_code) { "TR93 0006 1005 1978 6457 8413 26" }
|
|
3383
|
-
|
|
3384
3358
|
it { is_expected.to_not be_valid }
|
|
3385
3359
|
end
|
|
3386
3360
|
|
|
3387
3361
|
context "for a valid UAE IBAN" do
|
|
3388
3362
|
let(:iban_code) { "AE07 0331 2345 6789 0123 456" }
|
|
3389
|
-
|
|
3390
3363
|
it { is_expected.to be_valid }
|
|
3391
3364
|
end
|
|
3392
3365
|
|
|
3393
3366
|
context "for an invalid UAE IBAN" do
|
|
3394
3367
|
let(:iban_code) { "AE97 0331 2345 6789 0123 456" }
|
|
3395
|
-
|
|
3396
3368
|
it { is_expected.to_not be_valid }
|
|
3397
3369
|
end
|
|
3398
3370
|
|
|
3399
3371
|
context "for a valid UK IBAN" do
|
|
3400
3372
|
let(:iban_code) { "GB82 WEST 1234 5698 7654 32" }
|
|
3401
|
-
|
|
3402
3373
|
it { is_expected.to be_valid }
|
|
3403
3374
|
end
|
|
3404
3375
|
|
|
3405
3376
|
context "for an invalid UK IBAN" do
|
|
3406
3377
|
let(:iban_code) { "GB92 WEST 1234 5698 7654 32" }
|
|
3407
|
-
|
|
3408
3378
|
it { is_expected.to_not be_valid }
|
|
3409
3379
|
end
|
|
3410
3380
|
end
|
|
@@ -3412,73 +3382,61 @@ describe Ibandit::IBAN do
|
|
|
3412
3382
|
describe "#local_check_digits" do
|
|
3413
3383
|
context "with a Belgian IBAN" do
|
|
3414
3384
|
let(:iban_code) { "BE62510007547061" }
|
|
3415
|
-
|
|
3416
3385
|
its(:local_check_digits) { is_expected.to eq("61") }
|
|
3417
3386
|
end
|
|
3418
3387
|
|
|
3419
3388
|
context "with a French IBAN" do
|
|
3420
3389
|
let(:iban_code) { "FR1234567890123456789012345" }
|
|
3421
|
-
|
|
3422
3390
|
its(:local_check_digits) { is_expected.to eq("45") }
|
|
3423
3391
|
end
|
|
3424
3392
|
|
|
3425
3393
|
context "with a Monocan IBAN" do
|
|
3426
3394
|
let(:iban_code) { "MC9320052222100112233M44555" }
|
|
3427
|
-
|
|
3428
3395
|
its(:local_check_digits) { is_expected.to eq("55") }
|
|
3429
3396
|
end
|
|
3430
3397
|
|
|
3431
3398
|
context "with a Spanish IBAN" do
|
|
3432
3399
|
let(:iban_code) { "ES1212345678911234567890" }
|
|
3433
|
-
|
|
3434
3400
|
its(:local_check_digits) { is_expected.to eq("91") }
|
|
3435
3401
|
end
|
|
3436
3402
|
|
|
3437
3403
|
context "with an Italian IBAN" do
|
|
3438
3404
|
let(:iban_code) { "IT12A1234567890123456789012" }
|
|
3439
|
-
|
|
3440
3405
|
its(:local_check_digits) { is_expected.to eq("A") }
|
|
3441
3406
|
end
|
|
3442
3407
|
|
|
3443
3408
|
context "with an Estonian IBAN" do
|
|
3444
3409
|
let(:iban_code) { "EE382200221020145685" }
|
|
3445
|
-
|
|
3446
3410
|
its(:local_check_digits) { is_expected.to eq("5") }
|
|
3447
3411
|
end
|
|
3448
3412
|
|
|
3449
3413
|
context "with an Finnish IBAN" do
|
|
3450
3414
|
let(:iban_code) { "FI2112345600000785" }
|
|
3451
|
-
|
|
3452
3415
|
its(:local_check_digits) { is_expected.to eq("5") }
|
|
3453
3416
|
end
|
|
3454
3417
|
|
|
3455
3418
|
context "with an Portuguese IBAN" do
|
|
3456
3419
|
let(:iban_code) { "PT50000201231234567890154" }
|
|
3457
|
-
|
|
3458
3420
|
its(:local_check_digits) { is_expected.to eq("54") }
|
|
3459
3421
|
end
|
|
3460
3422
|
|
|
3461
3423
|
context "with a Norwegian IBAN" do
|
|
3462
3424
|
let(:iban_code) { "NO9386011117947" }
|
|
3463
|
-
|
|
3464
3425
|
its(:local_check_digits) { is_expected.to eq("7") }
|
|
3465
3426
|
end
|
|
3466
3427
|
|
|
3467
3428
|
context "with an Icelandic IBAN" do
|
|
3468
3429
|
let(:iban_code) { "IS250311260024684606972049" }
|
|
3469
|
-
|
|
3470
3430
|
its(:local_check_digits) { is_expected.to eq("4") }
|
|
3471
3431
|
end
|
|
3472
3432
|
|
|
3473
3433
|
context "with a Slovakian IBAN" do
|
|
3474
3434
|
let(:iban_code) { "SK3112000000198742637541" }
|
|
3475
|
-
|
|
3476
3435
|
its(:local_check_digits) { is_expected.to eq("9") }
|
|
3477
3436
|
end
|
|
3478
3437
|
|
|
3479
3438
|
context "with a Dutch IBAN" do
|
|
3480
3439
|
let(:iban_code) { "NL91ABNA0417164300" }
|
|
3481
|
-
|
|
3482
3440
|
its(:local_check_digits) { is_expected.to eq("0") }
|
|
3483
3441
|
end
|
|
3484
3442
|
end
|