ibandit 0.11.22 → 0.11.23

Sign up to get free protection for your applications and to get access to all the features.
@@ -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