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
|
@@ -5,7 +5,6 @@ describe Ibandit::IBANSplitter do
|
|
|
5
5
|
|
|
6
6
|
context "with a valid IBAN" do
|
|
7
7
|
let(:iban_code) { "GB82WEST12345698765432" }
|
|
8
|
-
|
|
9
8
|
its([:country_code]) { is_expected.to eq("GB") }
|
|
10
9
|
its([:check_digits]) { is_expected.to eq("82") }
|
|
11
10
|
its([:bank_code]) { is_expected.to eq("WEST") }
|
|
@@ -15,7 +14,6 @@ describe Ibandit::IBANSplitter do
|
|
|
15
14
|
|
|
16
15
|
context "with nil" do
|
|
17
16
|
let(:iban_code) { nil }
|
|
18
|
-
|
|
19
17
|
its([:country_code]) { is_expected.to eq(nil) }
|
|
20
18
|
its([:check_digits]) { is_expected.to eq(nil) }
|
|
21
19
|
its([:bank_code]) { is_expected.to eq(nil) }
|
|
@@ -25,7 +23,6 @@ describe Ibandit::IBANSplitter do
|
|
|
25
23
|
|
|
26
24
|
context "with an empty string" do
|
|
27
25
|
let(:iban_code) { "" }
|
|
28
|
-
|
|
29
26
|
its([:country_code]) { is_expected.to eq(nil) }
|
|
30
27
|
its([:check_digits]) { is_expected.to eq(nil) }
|
|
31
28
|
its([:bank_code]) { is_expected.to eq(nil) }
|
|
@@ -35,7 +32,6 @@ describe Ibandit::IBANSplitter do
|
|
|
35
32
|
|
|
36
33
|
context "with an invalid length IBAN" do
|
|
37
34
|
let(:iban_code) { "MC9320052222100112233M445" }
|
|
38
|
-
|
|
39
35
|
its([:country_code]) { is_expected.to eq("MC") }
|
|
40
36
|
its([:check_digits]) { is_expected.to eq(nil) }
|
|
41
37
|
its([:bank_code]) { is_expected.to eq(nil) }
|
|
@@ -2,7 +2,6 @@ require "spec_helper"
|
|
|
2
2
|
|
|
3
3
|
describe Ibandit::LocalDetailsCleaner do
|
|
4
4
|
subject(:cleaned) { described_class.clean(local_details) }
|
|
5
|
-
|
|
6
5
|
let(:local_details) do
|
|
7
6
|
{
|
|
8
7
|
country_code: country_code,
|
|
@@ -31,7 +30,6 @@ describe Ibandit::LocalDetailsCleaner do
|
|
|
31
30
|
|
|
32
31
|
context "with an unsupported country code" do
|
|
33
32
|
let(:country_code) { "FU" }
|
|
34
|
-
|
|
35
33
|
it { is_expected.to eq(local_details_with_swift) }
|
|
36
34
|
end
|
|
37
35
|
|
|
@@ -44,43 +42,36 @@ describe Ibandit::LocalDetailsCleaner do
|
|
|
44
42
|
|
|
45
43
|
context "with an account number which needs zero-padding" do
|
|
46
44
|
let(:account_number) { "234573201" }
|
|
47
|
-
|
|
48
45
|
its([:account_number]) { is_expected.to eq("00234573201") }
|
|
49
46
|
end
|
|
50
47
|
|
|
51
48
|
context "with an account number under 4 digits" do
|
|
52
49
|
let(:account_number) { "123" }
|
|
53
|
-
|
|
54
50
|
its([:account_number]) { is_expected.to eq("123") }
|
|
55
51
|
end
|
|
56
52
|
|
|
57
53
|
context "with a long account number" do
|
|
58
54
|
let(:account_number) { "234573201999" }
|
|
59
|
-
|
|
60
55
|
it { is_expected.to eq(local_details_with_swift) }
|
|
61
56
|
end
|
|
62
57
|
|
|
63
58
|
context "without an account number" do
|
|
64
59
|
let(:account_number) { nil }
|
|
65
|
-
|
|
66
60
|
it { is_expected.to eq(local_details_with_swift) }
|
|
67
61
|
end
|
|
68
62
|
|
|
69
63
|
context "with a short bank code" do
|
|
70
64
|
let(:bank_code) { "1904" }
|
|
71
|
-
|
|
72
65
|
it { is_expected.to eq(local_details_with_swift) }
|
|
73
66
|
end
|
|
74
67
|
|
|
75
68
|
context "with a long bank code" do
|
|
76
69
|
let(:bank_code) { "190430" }
|
|
77
|
-
|
|
78
70
|
it { is_expected.to eq(local_details_with_swift) }
|
|
79
71
|
end
|
|
80
72
|
|
|
81
73
|
context "without a bank code" do
|
|
82
74
|
let(:bank_code) { nil }
|
|
83
|
-
|
|
84
75
|
it { is_expected.to eq(local_details_with_swift) }
|
|
85
76
|
end
|
|
86
77
|
end
|
|
@@ -116,14 +107,12 @@ describe Ibandit::LocalDetailsCleaner do
|
|
|
116
107
|
|
|
117
108
|
context "with dashes" do
|
|
118
109
|
let(:account_number) { "510-0075470-61" }
|
|
119
|
-
|
|
120
110
|
its([:bank_code]) { is_expected.to eq("510") }
|
|
121
111
|
its([:account_number]) { is_expected.to eq("510007547061") }
|
|
122
112
|
end
|
|
123
113
|
|
|
124
114
|
context "without an account number" do
|
|
125
115
|
let(:account_number) { nil }
|
|
126
|
-
|
|
127
116
|
it { is_expected.to eq(local_details_with_swift) }
|
|
128
117
|
end
|
|
129
118
|
end
|
|
@@ -138,19 +127,16 @@ describe Ibandit::LocalDetailsCleaner do
|
|
|
138
127
|
|
|
139
128
|
context "without an account number" do
|
|
140
129
|
let(:account_number) { nil }
|
|
141
|
-
|
|
142
130
|
it { is_expected.to eq(local_details_with_swift) }
|
|
143
131
|
end
|
|
144
132
|
|
|
145
133
|
context "without a branch code" do
|
|
146
134
|
let(:branch_code) { nil }
|
|
147
|
-
|
|
148
135
|
it { is_expected.to eq(local_details_with_swift) }
|
|
149
136
|
end
|
|
150
137
|
|
|
151
138
|
context "without a bank code" do
|
|
152
139
|
let(:bank_code) { nil }
|
|
153
|
-
|
|
154
140
|
it { is_expected.to eq(local_details_with_swift) }
|
|
155
141
|
end
|
|
156
142
|
end
|
|
@@ -177,39 +163,33 @@ describe Ibandit::LocalDetailsCleaner do
|
|
|
177
163
|
|
|
178
164
|
context "with a short account number" do
|
|
179
165
|
let(:account_number) { "1200527600" }
|
|
180
|
-
|
|
181
166
|
its([:account_number]) { is_expected.to eq("0000001200527600") }
|
|
182
167
|
end
|
|
183
168
|
|
|
184
169
|
context "with a too-short account number" do
|
|
185
170
|
let(:account_number) { "123456" }
|
|
186
|
-
|
|
187
171
|
its([:account_number]) { is_expected.to eq(account_number) }
|
|
188
172
|
end
|
|
189
173
|
|
|
190
174
|
context "with a long account number" do
|
|
191
175
|
let(:account_number) { "00000001200527600" }
|
|
192
|
-
|
|
193
176
|
it { is_expected.to eq(local_details_with_swift) }
|
|
194
177
|
end
|
|
195
178
|
|
|
196
179
|
context "without an account number" do
|
|
197
180
|
let(:account_number) { nil }
|
|
198
|
-
|
|
199
181
|
it { is_expected.to eq(local_details_with_swift) }
|
|
200
182
|
end
|
|
201
183
|
|
|
202
184
|
context "with the branch code in the bank code field" do
|
|
203
185
|
let(:bank_code) { "002 00128" }
|
|
204
186
|
let(:branch_code) { nil }
|
|
205
|
-
|
|
206
187
|
its([:bank_code]) { is_expected.to eq("002") }
|
|
207
188
|
its([:branch_code]) { is_expected.to eq("00128") }
|
|
208
189
|
end
|
|
209
190
|
|
|
210
191
|
context "without a bank code" do
|
|
211
192
|
let(:bank_code) { nil }
|
|
212
|
-
|
|
213
193
|
it { is_expected.to eq(local_details_with_swift) }
|
|
214
194
|
end
|
|
215
195
|
end
|
|
@@ -224,27 +204,23 @@ describe Ibandit::LocalDetailsCleaner do
|
|
|
224
204
|
context "with an account number prefix" do
|
|
225
205
|
let(:prefix) { "000019" }
|
|
226
206
|
let(:account_number) { "2000145399" }
|
|
227
|
-
|
|
228
207
|
before { local_details.merge!(account_number_prefix: prefix) }
|
|
229
208
|
|
|
230
209
|
its([:account_number]) { is_expected.to eq("0000192000145399") }
|
|
231
210
|
|
|
232
211
|
context "which needs zero-padding" do
|
|
233
212
|
let(:prefix) { "19" }
|
|
234
|
-
|
|
235
213
|
its([:account_number]) { is_expected.to eq("0000192000145399") }
|
|
236
214
|
end
|
|
237
215
|
end
|
|
238
216
|
|
|
239
217
|
context "without a bank code" do
|
|
240
218
|
let(:bank_code) { nil }
|
|
241
|
-
|
|
242
219
|
it { is_expected.to eq(local_details_with_swift) }
|
|
243
220
|
end
|
|
244
221
|
|
|
245
222
|
context "without an account number" do
|
|
246
223
|
let(:account_number) { nil }
|
|
247
|
-
|
|
248
224
|
it { is_expected.to eq(local_details_with_swift) }
|
|
249
225
|
end
|
|
250
226
|
end
|
|
@@ -258,26 +234,22 @@ describe Ibandit::LocalDetailsCleaner do
|
|
|
258
234
|
|
|
259
235
|
context "without a bank code" do
|
|
260
236
|
let(:bank_code) { nil }
|
|
261
|
-
|
|
262
237
|
it { is_expected.to eq(local_details_with_swift) }
|
|
263
238
|
end
|
|
264
239
|
|
|
265
240
|
context "without an account number" do
|
|
266
241
|
let(:account_number) { nil }
|
|
267
|
-
|
|
268
242
|
it { is_expected.to eq(local_details_with_swift) }
|
|
269
243
|
end
|
|
270
244
|
|
|
271
245
|
context "with an excessively short account number" do
|
|
272
246
|
let(:account_number) { "666" }
|
|
273
|
-
|
|
274
247
|
its([:account_number]) { is_expected.to eq(account_number) }
|
|
275
248
|
end
|
|
276
249
|
|
|
277
250
|
context "with a pseudo account number" do
|
|
278
251
|
let(:bank_code) { "37080040" }
|
|
279
252
|
let(:account_number) { "111" }
|
|
280
|
-
|
|
281
253
|
its([:bank_code]) { is_expected.to eq(bank_code) }
|
|
282
254
|
its([:account_number]) { is_expected.to eq("0215022000") }
|
|
283
255
|
end
|
|
@@ -285,7 +257,6 @@ describe Ibandit::LocalDetailsCleaner do
|
|
|
285
257
|
context "with unsupported account details" do
|
|
286
258
|
let(:account_number) { "7955791111" }
|
|
287
259
|
let(:bank_code) { "20000000" }
|
|
288
|
-
|
|
289
260
|
it { is_expected.to eq(local_details_with_swift) }
|
|
290
261
|
end
|
|
291
262
|
end
|
|
@@ -326,7 +297,6 @@ describe Ibandit::LocalDetailsCleaner do
|
|
|
326
297
|
|
|
327
298
|
context "without an account number" do
|
|
328
299
|
let(:account_number) { nil }
|
|
329
|
-
|
|
330
300
|
it { is_expected.to eq(local_details_with_swift) }
|
|
331
301
|
end
|
|
332
302
|
end
|
|
@@ -340,14 +310,12 @@ describe Ibandit::LocalDetailsCleaner do
|
|
|
340
310
|
|
|
341
311
|
context "with an account number that needs translating" do
|
|
342
312
|
let(:account_number) { "111020145685" }
|
|
343
|
-
|
|
344
313
|
its([:bank_code]) { is_expected.to eq("22") }
|
|
345
314
|
its([:account_number]) { is_expected.to eq("00111020145685") }
|
|
346
315
|
end
|
|
347
316
|
|
|
348
317
|
context "without an account number" do
|
|
349
318
|
let(:account_number) { nil }
|
|
350
|
-
|
|
351
319
|
it { is_expected.to eq(local_details_with_swift) }
|
|
352
320
|
end
|
|
353
321
|
end
|
|
@@ -372,13 +340,11 @@ describe Ibandit::LocalDetailsCleaner do
|
|
|
372
340
|
|
|
373
341
|
context "with spaces in the account number" do
|
|
374
342
|
let(:account_number) { "18 0000012345" }
|
|
375
|
-
|
|
376
343
|
its([:account_number]) { is_expected.to eq("180000012345") }
|
|
377
344
|
end
|
|
378
345
|
|
|
379
346
|
context "without an account number" do
|
|
380
347
|
let(:account_number) { nil }
|
|
381
|
-
|
|
382
348
|
it { is_expected.to eq(local_details_with_swift) }
|
|
383
349
|
end
|
|
384
350
|
end
|
|
@@ -392,7 +358,6 @@ describe Ibandit::LocalDetailsCleaner do
|
|
|
392
358
|
|
|
393
359
|
context "with a shorter account number" do
|
|
394
360
|
let(:account_number) { "785" }
|
|
395
|
-
|
|
396
361
|
its([:account_number]) { is_expected.to eq("00000785") }
|
|
397
362
|
end
|
|
398
363
|
|
|
@@ -406,13 +371,11 @@ describe Ibandit::LocalDetailsCleaner do
|
|
|
406
371
|
|
|
407
372
|
context "without an account number" do
|
|
408
373
|
let(:account_number) { nil }
|
|
409
|
-
|
|
410
374
|
it { is_expected.to eq(local_details_with_swift) }
|
|
411
375
|
end
|
|
412
376
|
|
|
413
377
|
context "without a bank code" do
|
|
414
378
|
let(:bank_code) { nil }
|
|
415
|
-
|
|
416
379
|
it { is_expected.to eq(local_details_with_swift) }
|
|
417
380
|
end
|
|
418
381
|
end
|
|
@@ -427,37 +390,31 @@ describe Ibandit::LocalDetailsCleaner do
|
|
|
427
390
|
|
|
428
391
|
context "with the RIB key spaced in the account number" do
|
|
429
392
|
let(:account_number) { "0500013M026 06" }
|
|
430
|
-
|
|
431
393
|
its([:account_number]) { is_expected.to eq("0500013M02606") }
|
|
432
394
|
end
|
|
433
395
|
|
|
434
396
|
context "with the RIB key hyphenated in the account number" do
|
|
435
397
|
let(:account_number) { "0500013M026-06" }
|
|
436
|
-
|
|
437
398
|
its([:account_number]) { is_expected.to eq("0500013M02606") }
|
|
438
399
|
end
|
|
439
400
|
|
|
440
401
|
context "with the RIB key missing" do
|
|
441
402
|
let(:account_number) { "0500013M026" }
|
|
442
|
-
|
|
443
403
|
it { is_expected.to eq(local_details_with_swift) }
|
|
444
404
|
end
|
|
445
405
|
|
|
446
406
|
context "without a bank code" do
|
|
447
407
|
let(:bank_code) { nil }
|
|
448
|
-
|
|
449
408
|
it { is_expected.to eq(local_details_with_swift) }
|
|
450
409
|
end
|
|
451
410
|
|
|
452
411
|
context "without a branch code" do
|
|
453
412
|
let(:branch_code) { nil }
|
|
454
|
-
|
|
455
413
|
it { is_expected.to eq(local_details_with_swift) }
|
|
456
414
|
end
|
|
457
415
|
|
|
458
416
|
context "without an account number" do
|
|
459
417
|
let(:account_number) { nil }
|
|
460
|
-
|
|
461
418
|
it { is_expected.to eq(local_details_with_swift) }
|
|
462
419
|
end
|
|
463
420
|
end
|
|
@@ -472,62 +429,52 @@ describe Ibandit::LocalDetailsCleaner do
|
|
|
472
429
|
|
|
473
430
|
context "with the sort code is hyphenated" do
|
|
474
431
|
let(:branch_code) { "20-00-00" }
|
|
475
|
-
|
|
476
432
|
its([:branch_code]) { is_expected.to eq("200000") }
|
|
477
433
|
its([:swift_branch_code]) { is_expected.to eq("200000") }
|
|
478
434
|
end
|
|
479
435
|
|
|
480
436
|
context "with the sort code spaced" do
|
|
481
437
|
let(:branch_code) { "20 00 00" }
|
|
482
|
-
|
|
483
438
|
its([:branch_code]) { is_expected.to eq("200000") }
|
|
484
439
|
end
|
|
485
440
|
|
|
486
441
|
context "with a short account number" do
|
|
487
442
|
let(:account_number) { "579135" }
|
|
488
|
-
|
|
489
443
|
its([:account_number]) { is_expected.to eq("00579135") }
|
|
490
444
|
its([:swift_account_number]) { is_expected.to eq("00579135") }
|
|
491
445
|
end
|
|
492
446
|
|
|
493
447
|
context "with a too-short account number" do
|
|
494
448
|
let(:account_number) { "5678" }
|
|
495
|
-
|
|
496
449
|
its([:account_number]) { is_expected.to eq(account_number) }
|
|
497
450
|
end
|
|
498
451
|
|
|
499
452
|
context "with the account number spaced" do
|
|
500
453
|
let(:account_number) { "5577 9911" }
|
|
501
|
-
|
|
502
454
|
its([:account_number]) { is_expected.to eq("55779911") }
|
|
503
455
|
end
|
|
504
456
|
|
|
505
457
|
context "with the account number hyphenated" do
|
|
506
458
|
let(:account_number) { "5577-9911" }
|
|
507
|
-
|
|
508
459
|
its([:account_number]) { is_expected.to eq("55779911") }
|
|
509
460
|
end
|
|
510
461
|
|
|
511
462
|
context "without a branch code" do
|
|
512
463
|
let(:branch_code) { nil }
|
|
513
|
-
|
|
514
464
|
it { is_expected.to eq(local_details_with_swift) }
|
|
515
465
|
end
|
|
516
466
|
|
|
517
467
|
context "without a bank code" do
|
|
518
468
|
let(:bank_code) { nil }
|
|
519
|
-
|
|
520
469
|
it { is_expected.to eq(local_details_with_swift) }
|
|
521
470
|
|
|
522
471
|
context "with a BIC finder set" do
|
|
523
472
|
let(:bic_finder) { double }
|
|
524
|
-
|
|
525
473
|
before do
|
|
526
474
|
allow(bic_finder).to receive(:call).with("GB", "200000").
|
|
527
475
|
and_return("BARCGB22XXX")
|
|
528
476
|
Ibandit.bic_finder = bic_finder
|
|
529
477
|
end
|
|
530
|
-
|
|
531
478
|
after { Ibandit.bic_finder = nil }
|
|
532
479
|
|
|
533
480
|
its([:bank_code]) { is_expected.to eq("BARC") }
|
|
@@ -538,13 +485,11 @@ describe Ibandit::LocalDetailsCleaner do
|
|
|
538
485
|
context "with a bank code and BIC finder set" do
|
|
539
486
|
let(:bank_code) { "OVERRIDE" }
|
|
540
487
|
let(:bic_finder) { double }
|
|
541
|
-
|
|
542
488
|
before do
|
|
543
489
|
allow(bic_finder).to receive(:call).with("GB", "200000").
|
|
544
490
|
and_return("BARCGB22XXX")
|
|
545
491
|
Ibandit.bic_finder = bic_finder
|
|
546
492
|
end
|
|
547
|
-
|
|
548
493
|
after { Ibandit.bic_finder = nil }
|
|
549
494
|
|
|
550
495
|
its([:bank_code]) { is_expected.to eq("OVERRIDE") }
|
|
@@ -561,19 +506,16 @@ describe Ibandit::LocalDetailsCleaner do
|
|
|
561
506
|
|
|
562
507
|
context "without an account number" do
|
|
563
508
|
let(:account_number) { nil }
|
|
564
|
-
|
|
565
509
|
it { is_expected.to eq(local_details_with_swift) }
|
|
566
510
|
end
|
|
567
511
|
|
|
568
512
|
context "without a bank code" do
|
|
569
513
|
let(:bank_code) { nil }
|
|
570
|
-
|
|
571
514
|
it { is_expected.to eq(local_details_with_swift) }
|
|
572
515
|
end
|
|
573
516
|
|
|
574
517
|
context "without a branch code" do
|
|
575
518
|
let(:branch_code) { nil }
|
|
576
|
-
|
|
577
519
|
it { is_expected.to eq(local_details_with_swift) }
|
|
578
520
|
end
|
|
579
521
|
end
|
|
@@ -595,14 +537,12 @@ describe Ibandit::LocalDetailsCleaner do
|
|
|
595
537
|
|
|
596
538
|
context "with a badly formatted account number" do
|
|
597
539
|
let(:account_number) { "1863000160" }
|
|
598
|
-
|
|
599
540
|
it { is_expected.to eq(local_details_with_swift) }
|
|
600
541
|
end
|
|
601
542
|
end
|
|
602
543
|
|
|
603
544
|
context "without an account number" do
|
|
604
545
|
let(:account_number) { nil }
|
|
605
|
-
|
|
606
546
|
it { is_expected.to eq(local_details_with_swift) }
|
|
607
547
|
end
|
|
608
548
|
end
|
|
@@ -637,21 +577,18 @@ describe Ibandit::LocalDetailsCleaner do
|
|
|
637
577
|
|
|
638
578
|
context "with an invalid length account number" do
|
|
639
579
|
let(:account_number) { "11773016-1111101" }
|
|
640
|
-
|
|
641
580
|
it { is_expected.to eq(local_details_with_swift) }
|
|
642
581
|
end
|
|
643
582
|
|
|
644
583
|
context "with a bank code, too" do
|
|
645
584
|
let(:account_number) { "11773016-11111018" }
|
|
646
585
|
let(:bank_code) { "117" }
|
|
647
|
-
|
|
648
586
|
it { is_expected.to eq(local_details_with_swift) }
|
|
649
587
|
end
|
|
650
588
|
end
|
|
651
589
|
|
|
652
590
|
context "without an account number" do
|
|
653
591
|
let(:account_number) { nil }
|
|
654
|
-
|
|
655
592
|
it { is_expected.to eq(local_details_with_swift) }
|
|
656
593
|
end
|
|
657
594
|
end
|
|
@@ -666,60 +603,50 @@ describe Ibandit::LocalDetailsCleaner do
|
|
|
666
603
|
|
|
667
604
|
context "with the sort code is hyphenated" do
|
|
668
605
|
let(:branch_code) { "93-11-52" }
|
|
669
|
-
|
|
670
606
|
its([:branch_code]) { is_expected.to eq("931152") }
|
|
671
607
|
end
|
|
672
608
|
|
|
673
609
|
context "with the sort code spaced" do
|
|
674
610
|
let(:branch_code) { "93 11 52" }
|
|
675
|
-
|
|
676
611
|
its([:branch_code]) { is_expected.to eq("931152") }
|
|
677
612
|
end
|
|
678
613
|
|
|
679
614
|
context "with a short account number" do
|
|
680
615
|
let(:account_number) { "579135" }
|
|
681
|
-
|
|
682
616
|
its([:account_number]) { is_expected.to eq("00579135") }
|
|
683
617
|
end
|
|
684
618
|
|
|
685
619
|
context "with a too-short account number" do
|
|
686
620
|
let(:account_number) { "5678" }
|
|
687
|
-
|
|
688
621
|
its([:account_number]) { is_expected.to eq(account_number) }
|
|
689
622
|
end
|
|
690
623
|
|
|
691
624
|
context "with the account number spaced" do
|
|
692
625
|
let(:account_number) { "5577 9911" }
|
|
693
|
-
|
|
694
626
|
its([:account_number]) { is_expected.to eq("55779911") }
|
|
695
627
|
end
|
|
696
628
|
|
|
697
629
|
context "with the account number hyphenated" do
|
|
698
630
|
let(:account_number) { "5577-9911" }
|
|
699
|
-
|
|
700
631
|
its([:account_number]) { is_expected.to eq("55779911") }
|
|
701
632
|
end
|
|
702
633
|
|
|
703
634
|
context "without a branch code" do
|
|
704
635
|
let(:branch_code) { nil }
|
|
705
|
-
|
|
706
636
|
it { is_expected.to eq(local_details_with_swift) }
|
|
707
637
|
end
|
|
708
638
|
|
|
709
639
|
context "without a bank code" do
|
|
710
640
|
let(:bank_code) { nil }
|
|
711
|
-
|
|
712
641
|
it { is_expected.to eq(local_details_with_swift) }
|
|
713
642
|
|
|
714
643
|
context "with a BIC finder set" do
|
|
715
644
|
let(:bic_finder) { double }
|
|
716
|
-
|
|
717
645
|
before do
|
|
718
646
|
allow(bic_finder).to receive(:call).with("IE", "931152").
|
|
719
647
|
and_return("AIBKIE22XXX")
|
|
720
648
|
Ibandit.bic_finder = bic_finder
|
|
721
649
|
end
|
|
722
|
-
|
|
723
650
|
after { Ibandit.bic_finder = nil }
|
|
724
651
|
|
|
725
652
|
its([:bank_code]) { is_expected.to eq("AIBK") }
|
|
@@ -729,13 +656,11 @@ describe Ibandit::LocalDetailsCleaner do
|
|
|
729
656
|
context "with a bank code and BIC finder set" do
|
|
730
657
|
let(:bank_code) { "OVERRIDE" }
|
|
731
658
|
let(:bic_finder) { double }
|
|
732
|
-
|
|
733
659
|
before do
|
|
734
660
|
allow(bic_finder).to receive(:call).with("IE", "931152").
|
|
735
661
|
and_return("AIBKIE22XXX")
|
|
736
662
|
Ibandit.bic_finder = bic_finder
|
|
737
663
|
end
|
|
738
|
-
|
|
739
664
|
after { Ibandit.bic_finder = nil }
|
|
740
665
|
|
|
741
666
|
its([:bank_code]) { is_expected.to eq("OVERRIDE") }
|
|
@@ -778,14 +703,12 @@ describe Ibandit::LocalDetailsCleaner do
|
|
|
778
703
|
|
|
779
704
|
context "without a hyphen" do
|
|
780
705
|
let(:account_number) { "26-2468-606972049" }
|
|
781
|
-
|
|
782
706
|
its([:account_number]) { is_expected.to eq("260024680606972049") }
|
|
783
707
|
end
|
|
784
708
|
end
|
|
785
709
|
|
|
786
710
|
context "without an account number" do
|
|
787
711
|
let(:account_number) { nil }
|
|
788
|
-
|
|
789
712
|
it { is_expected.to eq(local_details_with_swift) }
|
|
790
713
|
end
|
|
791
714
|
end
|
|
@@ -800,31 +723,26 @@ describe Ibandit::LocalDetailsCleaner do
|
|
|
800
723
|
|
|
801
724
|
context "with an explicit check digit" do
|
|
802
725
|
before { local_details.merge!(check_digit: "Y") }
|
|
803
|
-
|
|
804
726
|
it { is_expected.to eq(local_details_with_swift) }
|
|
805
727
|
end
|
|
806
728
|
|
|
807
729
|
context "with the account number not zero-padded" do
|
|
808
730
|
let(:account_number) { "123456" }
|
|
809
|
-
|
|
810
731
|
its([:account_number]) { is_expected.to eq("000000123456") }
|
|
811
732
|
end
|
|
812
733
|
|
|
813
734
|
context "without a bank code" do
|
|
814
735
|
let(:bank_code) { nil }
|
|
815
|
-
|
|
816
736
|
it { is_expected.to eq(local_details_with_swift) }
|
|
817
737
|
end
|
|
818
738
|
|
|
819
739
|
context "without a branch code" do
|
|
820
740
|
let(:branch_code) { nil }
|
|
821
|
-
|
|
822
741
|
it { is_expected.to eq(local_details_with_swift) }
|
|
823
742
|
end
|
|
824
743
|
|
|
825
744
|
context "without an account number" do
|
|
826
745
|
let(:account_number) { nil }
|
|
827
|
-
|
|
828
746
|
it { is_expected.to eq(local_details_with_swift) }
|
|
829
747
|
end
|
|
830
748
|
end
|
|
@@ -838,13 +756,11 @@ describe Ibandit::LocalDetailsCleaner do
|
|
|
838
756
|
|
|
839
757
|
context "without an account number" do
|
|
840
758
|
let(:account_number) { nil }
|
|
841
|
-
|
|
842
759
|
it { is_expected.to eq(local_details_with_swift) }
|
|
843
760
|
end
|
|
844
761
|
|
|
845
762
|
context "without a bank code" do
|
|
846
763
|
let(:bank_code) { nil }
|
|
847
|
-
|
|
848
764
|
it { is_expected.to eq(local_details_with_swift) }
|
|
849
765
|
end
|
|
850
766
|
end
|
|
@@ -858,13 +774,11 @@ describe Ibandit::LocalDetailsCleaner do
|
|
|
858
774
|
|
|
859
775
|
context "without an account number" do
|
|
860
776
|
let(:account_number) { nil }
|
|
861
|
-
|
|
862
777
|
it { is_expected.to eq(local_details_with_swift) }
|
|
863
778
|
end
|
|
864
779
|
|
|
865
780
|
context "without a bank code" do
|
|
866
781
|
let(:bank_code) { nil }
|
|
867
|
-
|
|
868
782
|
it { is_expected.to eq(local_details_with_swift) }
|
|
869
783
|
end
|
|
870
784
|
end
|
|
@@ -878,13 +792,11 @@ describe Ibandit::LocalDetailsCleaner do
|
|
|
878
792
|
|
|
879
793
|
context "without an account number" do
|
|
880
794
|
let(:account_number) { nil }
|
|
881
|
-
|
|
882
795
|
it { is_expected.to eq(local_details_with_swift) }
|
|
883
796
|
end
|
|
884
797
|
|
|
885
798
|
context "without a bank code" do
|
|
886
799
|
let(:bank_code) { nil }
|
|
887
|
-
|
|
888
800
|
it { is_expected.to eq(local_details_with_swift) }
|
|
889
801
|
end
|
|
890
802
|
end
|
|
@@ -899,37 +811,31 @@ describe Ibandit::LocalDetailsCleaner do
|
|
|
899
811
|
|
|
900
812
|
context "with the RIB key spaced in the account number" do
|
|
901
813
|
let(:account_number) { "0500013M026 06" }
|
|
902
|
-
|
|
903
814
|
its([:account_number]) { is_expected.to eq("0500013M02606") }
|
|
904
815
|
end
|
|
905
816
|
|
|
906
817
|
context "with the RIB key hyphenated in the account number" do
|
|
907
818
|
let(:account_number) { "0500013M026-06" }
|
|
908
|
-
|
|
909
819
|
its([:account_number]) { is_expected.to eq("0500013M02606") }
|
|
910
820
|
end
|
|
911
821
|
|
|
912
822
|
context "with the RIB key missing" do
|
|
913
823
|
let(:account_number) { "0500013M026" }
|
|
914
|
-
|
|
915
824
|
it { is_expected.to eq(local_details_with_swift) }
|
|
916
825
|
end
|
|
917
826
|
|
|
918
827
|
context "without a bank code" do
|
|
919
828
|
let(:bank_code) { nil }
|
|
920
|
-
|
|
921
829
|
it { is_expected.to eq(local_details_with_swift) }
|
|
922
830
|
end
|
|
923
831
|
|
|
924
832
|
context "without a branch code" do
|
|
925
833
|
let(:branch_code) { nil }
|
|
926
|
-
|
|
927
834
|
it { is_expected.to eq(local_details_with_swift) }
|
|
928
835
|
end
|
|
929
836
|
|
|
930
837
|
context "without an account number" do
|
|
931
838
|
let(:account_number) { nil }
|
|
932
|
-
|
|
933
839
|
it { is_expected.to eq(local_details_with_swift) }
|
|
934
840
|
end
|
|
935
841
|
end
|
|
@@ -944,36 +850,30 @@ describe Ibandit::LocalDetailsCleaner do
|
|
|
944
850
|
|
|
945
851
|
context "with the account number spaced" do
|
|
946
852
|
let(:account_number) { "9027 2930 51" }
|
|
947
|
-
|
|
948
853
|
its([:account_number]) { is_expected.to eq("000000009027293051") }
|
|
949
854
|
end
|
|
950
855
|
|
|
951
856
|
context "with the account number hyphenated" do
|
|
952
857
|
let(:account_number) { "9027-2930-51" }
|
|
953
|
-
|
|
954
858
|
its([:account_number]) { is_expected.to eq("000000009027293051") }
|
|
955
859
|
end
|
|
956
860
|
|
|
957
861
|
context "without a branch code" do
|
|
958
862
|
let(:branch_code) { nil }
|
|
959
|
-
|
|
960
863
|
it { is_expected.to eq(local_details_with_swift) }
|
|
961
864
|
end
|
|
962
865
|
|
|
963
866
|
context "without a bank code" do
|
|
964
867
|
let(:bank_code) { nil }
|
|
965
|
-
|
|
966
868
|
it { is_expected.to eq(local_details_with_swift) }
|
|
967
869
|
|
|
968
870
|
context "with a BIC finder set" do
|
|
969
871
|
let(:bic_finder) { double }
|
|
970
|
-
|
|
971
872
|
before do
|
|
972
873
|
allow(bic_finder).to receive(:call).with("MT", "44093").
|
|
973
874
|
and_return("MMEBMTMTXXX")
|
|
974
875
|
Ibandit.bic_finder = bic_finder
|
|
975
876
|
end
|
|
976
|
-
|
|
977
877
|
after { Ibandit.bic_finder = nil }
|
|
978
878
|
|
|
979
879
|
its([:bank_code]) { is_expected.to eq("MMEB") }
|
|
@@ -983,13 +883,11 @@ describe Ibandit::LocalDetailsCleaner do
|
|
|
983
883
|
context "with a bank code and BIC finder set" do
|
|
984
884
|
let(:bank_code) { "OVERRIDE" }
|
|
985
885
|
let(:bic_finder) { double }
|
|
986
|
-
|
|
987
886
|
before do
|
|
988
887
|
allow(bic_finder).to receive(:call).with("MT", "44093").
|
|
989
888
|
and_return("MMEBMTMTXXX")
|
|
990
889
|
Ibandit.bic_finder = bic_finder
|
|
991
890
|
end
|
|
992
|
-
|
|
993
891
|
after { Ibandit.bic_finder = nil }
|
|
994
892
|
|
|
995
893
|
its([:bank_code]) { is_expected.to eq("OVERRIDE") }
|
|
@@ -1005,25 +903,21 @@ describe Ibandit::LocalDetailsCleaner do
|
|
|
1005
903
|
|
|
1006
904
|
context "without a bank code" do
|
|
1007
905
|
let(:bank_code) { nil }
|
|
1008
|
-
|
|
1009
906
|
it { is_expected.to eq(local_details_with_swift) }
|
|
1010
907
|
end
|
|
1011
908
|
|
|
1012
909
|
context "without a branch code" do
|
|
1013
910
|
let(:branch_code) { nil }
|
|
1014
|
-
|
|
1015
911
|
it { is_expected.to eq(local_details_with_swift) }
|
|
1016
912
|
end
|
|
1017
913
|
|
|
1018
914
|
context "without an account number" do
|
|
1019
915
|
let(:account_number) { nil }
|
|
1020
|
-
|
|
1021
916
|
it { is_expected.to eq(local_details_with_swift) }
|
|
1022
917
|
end
|
|
1023
918
|
|
|
1024
919
|
context "with an account number that needs zero-padding" do
|
|
1025
920
|
let(:account_number) { "417164300" }
|
|
1026
|
-
|
|
1027
921
|
its([:account_number]) { is_expected.to eq("0417164300") }
|
|
1028
922
|
end
|
|
1029
923
|
end
|
|
@@ -1046,7 +940,6 @@ describe Ibandit::LocalDetailsCleaner do
|
|
|
1046
940
|
|
|
1047
941
|
context "without an account number" do
|
|
1048
942
|
let(:account_number) { nil }
|
|
1049
|
-
|
|
1050
943
|
it { is_expected.to eq(local_details_with_swift) }
|
|
1051
944
|
end
|
|
1052
945
|
end
|
|
@@ -1078,14 +971,12 @@ describe Ibandit::LocalDetailsCleaner do
|
|
|
1078
971
|
|
|
1079
972
|
context "when the account number is shorter than 6 chars" do
|
|
1080
973
|
let(:account_number) { "12345" }
|
|
1081
|
-
|
|
1082
974
|
its([:account_number]) { is_expected.to be_nil }
|
|
1083
975
|
end
|
|
1084
976
|
end
|
|
1085
977
|
|
|
1086
978
|
context "without an account number" do
|
|
1087
979
|
let(:account_number) { nil }
|
|
1088
|
-
|
|
1089
980
|
it { is_expected.to eq(local_details_with_swift) }
|
|
1090
981
|
end
|
|
1091
982
|
end
|
|
@@ -1108,7 +999,6 @@ describe Ibandit::LocalDetailsCleaner do
|
|
|
1108
999
|
|
|
1109
1000
|
context "without an account number" do
|
|
1110
1001
|
let(:account_number) { nil }
|
|
1111
|
-
|
|
1112
1002
|
it { is_expected.to eq(local_details_with_swift) }
|
|
1113
1003
|
end
|
|
1114
1004
|
end
|
|
@@ -1123,19 +1013,16 @@ describe Ibandit::LocalDetailsCleaner do
|
|
|
1123
1013
|
|
|
1124
1014
|
context "without a bank code" do
|
|
1125
1015
|
let(:bank_code) { nil }
|
|
1126
|
-
|
|
1127
1016
|
it { is_expected.to eq(local_details_with_swift) }
|
|
1128
1017
|
end
|
|
1129
1018
|
|
|
1130
1019
|
context "without a branch code" do
|
|
1131
1020
|
let(:branch_code) { nil }
|
|
1132
|
-
|
|
1133
1021
|
it { is_expected.to eq(local_details_with_swift) }
|
|
1134
1022
|
end
|
|
1135
1023
|
|
|
1136
1024
|
context "without an account number" do
|
|
1137
1025
|
let(:account_number) { nil }
|
|
1138
|
-
|
|
1139
1026
|
it { is_expected.to eq(local_details_with_swift) }
|
|
1140
1027
|
end
|
|
1141
1028
|
end
|
|
@@ -1149,13 +1036,11 @@ describe Ibandit::LocalDetailsCleaner do
|
|
|
1149
1036
|
|
|
1150
1037
|
context "without an account number" do
|
|
1151
1038
|
let(:account_number) { nil }
|
|
1152
|
-
|
|
1153
1039
|
it { is_expected.to eq(local_details_with_swift) }
|
|
1154
1040
|
end
|
|
1155
1041
|
|
|
1156
1042
|
context "without a bank code" do
|
|
1157
1043
|
let(:bank_code) { nil }
|
|
1158
|
-
|
|
1159
1044
|
it { is_expected.to eq(local_details_with_swift) }
|
|
1160
1045
|
end
|
|
1161
1046
|
end
|
|
@@ -1172,7 +1057,6 @@ describe Ibandit::LocalDetailsCleaner do
|
|
|
1172
1057
|
|
|
1173
1058
|
context "without an account number" do
|
|
1174
1059
|
let(:account_number) { nil }
|
|
1175
|
-
|
|
1176
1060
|
it { is_expected.to eq(local_details_with_swift) }
|
|
1177
1061
|
end
|
|
1178
1062
|
|
|
@@ -1196,19 +1080,16 @@ describe Ibandit::LocalDetailsCleaner do
|
|
|
1196
1080
|
|
|
1197
1081
|
context "with an account number which needs zero-padding" do
|
|
1198
1082
|
let(:account_number) { "123438" }
|
|
1199
|
-
|
|
1200
1083
|
its([:account_number]) { is_expected.to eq("0000123438") }
|
|
1201
1084
|
end
|
|
1202
1085
|
|
|
1203
1086
|
context "without a bank code" do
|
|
1204
1087
|
let(:bank_code) { nil }
|
|
1205
|
-
|
|
1206
1088
|
it { is_expected.to eq(local_details_with_swift) }
|
|
1207
1089
|
end
|
|
1208
1090
|
|
|
1209
1091
|
context "without an account number" do
|
|
1210
1092
|
let(:account_number) { nil }
|
|
1211
|
-
|
|
1212
1093
|
it { is_expected.to eq(local_details_with_swift) }
|
|
1213
1094
|
end
|
|
1214
1095
|
end
|
|
@@ -1223,27 +1104,23 @@ describe Ibandit::LocalDetailsCleaner do
|
|
|
1223
1104
|
context "with an account number prefix" do
|
|
1224
1105
|
let(:prefix) { "000019" }
|
|
1225
1106
|
let(:account_number) { "8742637541" }
|
|
1226
|
-
|
|
1227
1107
|
before { local_details.merge!(account_number_prefix: prefix) }
|
|
1228
1108
|
|
|
1229
1109
|
its([:account_number]) { is_expected.to eq("0000198742637541") }
|
|
1230
1110
|
|
|
1231
1111
|
context "which needs zero-padding" do
|
|
1232
1112
|
let(:prefix) { "19" }
|
|
1233
|
-
|
|
1234
1113
|
its([:account_number]) { is_expected.to eq("0000198742637541") }
|
|
1235
1114
|
end
|
|
1236
1115
|
end
|
|
1237
1116
|
|
|
1238
1117
|
context "without a bank code" do
|
|
1239
1118
|
let(:bank_code) { nil }
|
|
1240
|
-
|
|
1241
1119
|
it { is_expected.to eq(local_details_with_swift) }
|
|
1242
1120
|
end
|
|
1243
1121
|
|
|
1244
1122
|
context "without an account number" do
|
|
1245
1123
|
let(:account_number) { nil }
|
|
1246
|
-
|
|
1247
1124
|
it { is_expected.to eq(local_details_with_swift) }
|
|
1248
1125
|
end
|
|
1249
1126
|
end
|
|
@@ -1258,31 +1135,26 @@ describe Ibandit::LocalDetailsCleaner do
|
|
|
1258
1135
|
|
|
1259
1136
|
context "with an explicit check digit" do
|
|
1260
1137
|
before { local_details.merge!(check_digit: "Y") }
|
|
1261
|
-
|
|
1262
1138
|
it { is_expected.to eq(local_details_with_swift) }
|
|
1263
1139
|
end
|
|
1264
1140
|
|
|
1265
1141
|
context "with the account number not zero-padded" do
|
|
1266
1142
|
let(:account_number) { "123456" }
|
|
1267
|
-
|
|
1268
1143
|
its([:account_number]) { is_expected.to eq("000000123456") }
|
|
1269
1144
|
end
|
|
1270
1145
|
|
|
1271
1146
|
context "without a bank code" do
|
|
1272
1147
|
let(:bank_code) { nil }
|
|
1273
|
-
|
|
1274
1148
|
it { is_expected.to eq(local_details_with_swift) }
|
|
1275
1149
|
end
|
|
1276
1150
|
|
|
1277
1151
|
context "without a branch code" do
|
|
1278
1152
|
let(:branch_code) { nil }
|
|
1279
|
-
|
|
1280
1153
|
it { is_expected.to eq(local_details_with_swift) }
|
|
1281
1154
|
end
|
|
1282
1155
|
|
|
1283
1156
|
context "without an account number" do
|
|
1284
1157
|
let(:account_number) { nil }
|
|
1285
|
-
|
|
1286
1158
|
it { is_expected.to eq(local_details_with_swift) }
|
|
1287
1159
|
end
|
|
1288
1160
|
end
|