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.
@@ -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(described_class))
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(described_class))
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(described_class))
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(described_class))
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.valid_nz_details?
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