ibandit 0.11.6 → 0.11.7

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,67 +1,67 @@
1
- require 'spec_helper'
1
+ require "spec_helper"
2
2
 
3
3
  describe Ibandit::IBAN do
4
4
  subject(:iban) { described_class.new(arg) }
5
5
  let(:arg) { iban_code }
6
- let(:iban_code) { 'GB82WEST12345698765432' }
6
+ let(:iban_code) { "GB82WEST12345698765432" }
7
7
 
8
8
  its(:iban) { is_expected.to eq(iban_code) }
9
9
 
10
- context 'with a poorly formatted IBAN' do
10
+ context "with a poorly formatted IBAN" do
11
11
  let(:iban_code) { " gb82 WeSt 1234 5698 7654 32\n" }
12
- its(:iban) { is_expected.to eq('GB82WEST12345698765432') }
12
+ its(:iban) { is_expected.to eq("GB82WEST12345698765432") }
13
13
  end
14
14
 
15
- context 'with nil' do
15
+ context "with nil" do
16
16
  let(:arg) { nil }
17
17
  specify { expect { iban }.to raise_error(TypeError) }
18
18
  end
19
19
 
20
- context 'with an invalid pseudo IBAN' do
21
- let(:arg) { 'dezzzz' }
22
- its(:iban) { is_expected.to eq('DEZZZZ') }
20
+ context "with an invalid pseudo IBAN" do
21
+ let(:arg) { "dezzzz" }
22
+ its(:iban) { is_expected.to eq("DEZZZZ") }
23
23
  end
24
24
 
25
- context 'with local details' do
25
+ context "with local details" do
26
26
  let(:arg) do
27
27
  {
28
- country_code: 'GB',
29
- bank_code: 'WEST',
30
- branch_code: '123456',
31
- account_number: '98765432'
28
+ country_code: "GB",
29
+ bank_code: "WEST",
30
+ branch_code: "123456",
31
+ account_number: "98765432",
32
32
  }
33
33
  end
34
34
 
35
- its(:iban) { is_expected.to eq('GB82WEST12345698765432') }
35
+ its(:iban) { is_expected.to eq("GB82WEST12345698765432") }
36
36
  end
37
37
 
38
- context 'with nil local details' do
38
+ context "with nil local details" do
39
39
  let(:arg) do
40
40
  {
41
41
  country_code: nil,
42
42
  bank_code: nil,
43
43
  branch_code: nil,
44
- account_number: nil
44
+ account_number: nil,
45
45
  }
46
46
  end
47
47
 
48
48
  it { is_expected.to_not be_valid }
49
49
  end
50
50
 
51
- describe 'it decomposes the IBAN' do
52
- its(:country_code) { is_expected.to eq('GB') }
53
- its(:check_digits) { is_expected.to eq('82') }
54
- its(:bank_code) { is_expected.to eq('WEST') }
55
- its(:branch_code) { is_expected.to eq('123456') }
56
- its(:account_number) { is_expected.to eq('98765432') }
57
- its(:swift_bank_code) { is_expected.to eq('WEST') }
58
- its(:swift_branch_code) { is_expected.to eq('123456') }
59
- its(:swift_account_number) { is_expected.to eq('98765432') }
60
- its(:swift_national_id) { is_expected.to eq('WEST123456') }
51
+ describe "it decomposes the IBAN" do
52
+ its(:country_code) { is_expected.to eq("GB") }
53
+ its(:check_digits) { is_expected.to eq("82") }
54
+ its(:bank_code) { is_expected.to eq("WEST") }
55
+ its(:branch_code) { is_expected.to eq("123456") }
56
+ its(:account_number) { is_expected.to eq("98765432") }
57
+ its(:swift_bank_code) { is_expected.to eq("WEST") }
58
+ its(:swift_branch_code) { is_expected.to eq("123456") }
59
+ its(:swift_account_number) { is_expected.to eq("98765432") }
60
+ its(:swift_national_id) { is_expected.to eq("WEST123456") }
61
61
  its(:local_check_digits) { is_expected.to be_nil }
62
62
 
63
- context 'when the IBAN is blank' do
64
- let(:iban_code) { '' }
63
+ context "when the IBAN is blank" do
64
+ let(:iban_code) { "" }
65
65
 
66
66
  its(:country_code) { is_expected.to be_nil }
67
67
  its(:check_digits) { is_expected.to be_nil }
@@ -73,41 +73,41 @@ describe Ibandit::IBAN do
73
73
  its(:local_check_digits) { is_expected.to be_nil }
74
74
  end
75
75
 
76
- context 'when local details are not available' do
77
- let(:iban_code) { 'SE2680000000075071211203' }
76
+ context "when local details are not available" do
77
+ let(:iban_code) { "SE2680000000075071211203" }
78
78
 
79
- its(:country_code) { is_expected.to eq('SE') }
80
- its(:check_digits) { is_expected.to eq('26') }
79
+ its(:country_code) { is_expected.to eq("SE") }
80
+ its(:check_digits) { is_expected.to eq("26") }
81
81
  its(:bank_code) { is_expected.to be_nil }
82
82
  its(:branch_code) { is_expected.to be_nil }
83
83
  its(:account_number) { is_expected.to be_nil }
84
- its(:swift_bank_code) { is_expected.to eq('800') }
84
+ its(:swift_bank_code) { is_expected.to eq("800") }
85
85
  its(:swift_branch_code) { is_expected.to be_nil }
86
- its(:swift_account_number) { is_expected.to eq('00000075071211203') }
87
- its(:swift_national_id) { is_expected.to eq('800') }
86
+ its(:swift_account_number) { is_expected.to eq("00000075071211203") }
87
+ its(:swift_national_id) { is_expected.to eq("800") }
88
88
  its(:local_check_digits) { is_expected.to be_nil }
89
89
  end
90
90
 
91
- context 'when the IBAN was created from a Slovenian IBAN' do
92
- let(:iban_code) { 'SI56 1910 0000 0123 438' }
93
- its(:country_code) { is_expected.to eq('SI') }
94
- its(:bank_code) { is_expected.to eq('19100') }
91
+ context "when the IBAN was created from a Slovenian IBAN" do
92
+ let(:iban_code) { "SI56 1910 0000 0123 438" }
93
+ its(:country_code) { is_expected.to eq("SI") }
94
+ its(:bank_code) { is_expected.to eq("19100") }
95
95
  its(:branch_code) { is_expected.to be_nil }
96
- its(:account_number) { is_expected.to eq('0000123438') }
97
- its(:swift_bank_code) { is_expected.to eq('19100') }
96
+ its(:account_number) { is_expected.to eq("0000123438") }
97
+ its(:swift_bank_code) { is_expected.to eq("19100") }
98
98
  its(:swift_branch_code) { is_expected.to be_nil }
99
- its(:swift_account_number) { is_expected.to eq('0000123438') }
100
- its(:swift_national_id) { is_expected.to eq('19100') }
99
+ its(:swift_account_number) { is_expected.to eq("0000123438") }
100
+ its(:swift_national_id) { is_expected.to eq("19100") }
101
101
  its(:local_check_digits) { is_expected.to be_nil }
102
102
  end
103
103
 
104
- context 'when the IBAN was created with local details' do
104
+ context "when the IBAN was created with local details" do
105
105
  let(:arg) do
106
106
  {
107
- country_code: 'GB',
108
- bank_code: 'WES',
109
- branch_code: '1234',
110
- account_number: '5678'
107
+ country_code: "GB",
108
+ bank_code: "WES",
109
+ branch_code: "1234",
110
+ account_number: "5678",
111
111
  }
112
112
  end
113
113
 
@@ -118,14 +118,17 @@ describe Ibandit::IBAN do
118
118
  its(:swift_bank_code) { is_expected.to eq(arg[:bank_code]) }
119
119
  its(:swift_branch_code) { is_expected.to eq(arg[:branch_code]) }
120
120
  its(:swift_account_number) { is_expected.to eq(arg[:account_number]) }
121
+ its(:pseudo_iban) { is_expected.to be_nil }
122
+ its(:iban) { is_expected.to eq("GB72WES12345678") }
123
+ its(:to_s) { is_expected.to eq("GB72WES12345678") }
121
124
  end
122
125
 
123
- context 'when the IBAN was created with local details for Sweden' do
126
+ context "when the IBAN was created with local details for Sweden" do
124
127
  let(:arg) do
125
128
  {
126
- country_code: 'SE',
127
- branch_code: '1281',
128
- account_number: '0105723'
129
+ country_code: "SE",
130
+ branch_code: "1281",
131
+ account_number: "0105723",
129
132
  }
130
133
  end
131
134
 
@@ -133,842 +136,928 @@ describe Ibandit::IBAN do
133
136
  its(:bank_code) { is_expected.to eq(arg[:bank_code]) }
134
137
  its(:branch_code) { is_expected.to eq(arg[:branch_code]) }
135
138
  its(:account_number) { is_expected.to eq(arg[:account_number]) }
136
- its(:swift_bank_code) { is_expected.to eq('120') }
139
+ its(:swift_bank_code) { is_expected.to eq("120") }
137
140
  its(:swift_branch_code) { is_expected.to be_nil }
138
- its(:swift_account_number) { is_expected.to eq('00000012810105723') }
139
- its(:iban) { is_expected.to eq('SE5412000000012810105723') }
140
- its(:pseudo_iban) { is_expected.to eq('SEZZX1281XXX0105723') }
141
+ its(:swift_account_number) { is_expected.to eq("00000012810105723") }
142
+ its(:iban) { is_expected.to eq("SE5412000000012810105723") }
143
+ its(:pseudo_iban) { is_expected.to eq("SEZZX1281XXX0105723") }
144
+ its(:to_s) { is_expected.to eq("SE5412000000012810105723") }
141
145
  end
142
146
 
143
- context 'when the IBAN was created from a pseudo-IBAN' do
144
- let(:arg) { 'SEZZX1281XXX0105723' }
147
+ context "when the IBAN was created from a pseudo-IBAN" do
148
+ let(:arg) { "SEZZX1281XXX0105723" }
145
149
 
146
- its(:country_code) { is_expected.to eq('SE') }
150
+ its(:country_code) { is_expected.to eq("SE") }
147
151
  its(:bank_code) { is_expected.to be_nil }
148
- its(:branch_code) { is_expected.to eq('1281') }
149
- its(:account_number) { is_expected.to eq('0105723') }
150
- its(:swift_bank_code) { is_expected.to eq('120') }
152
+ its(:branch_code) { is_expected.to eq("1281") }
153
+ its(:account_number) { is_expected.to eq("0105723") }
154
+ its(:swift_bank_code) { is_expected.to eq("120") }
151
155
  its(:swift_branch_code) { is_expected.to be_nil }
152
- its(:swift_account_number) { is_expected.to eq('00000012810105723') }
153
- its(:iban) { is_expected.to eq('SE5412000000012810105723') }
154
- its(:pseudo_iban) { is_expected.to eq('SEZZX1281XXX0105723') }
156
+ its(:swift_account_number) { is_expected.to eq("00000012810105723") }
157
+ its(:iban) { is_expected.to eq("SE5412000000012810105723") }
158
+ its(:pseudo_iban) { is_expected.to eq("SEZZX1281XXX0105723") }
159
+ its(:to_s) { is_expected.to eq("SE5412000000012810105723") }
160
+ end
161
+
162
+ context "when the IBAN was created with local details for Australia" do
163
+ let(:arg) do
164
+ {
165
+ country_code: "AU",
166
+ branch_code: "123-456",
167
+ account_number: "123456789",
168
+ }
169
+ end
170
+
171
+ its(:country_code) { is_expected.to eq(arg[:country_code]) }
172
+ its(:bank_code) { is_expected.to be_nil }
173
+ its(:branch_code) { is_expected.to eq("123456") }
174
+ its(:account_number) { is_expected.to eq("123456789") }
175
+ its(:swift_bank_code) { is_expected.to be_nil }
176
+ its(:swift_branch_code) { is_expected.to eq("123456") }
177
+ its(:swift_account_number) { is_expected.to eq("123456789") }
178
+ its(:iban) { is_expected.to be_nil }
179
+ its(:pseudo_iban) { is_expected.to eq("AUZZ123456123456789") }
180
+ its(:valid?) { is_expected.to eq(true) }
181
+ its(:to_s) { is_expected.to eq("") }
182
+ end
183
+
184
+ context "when the IBAN was created from an Australian pseudo-IBAN" do
185
+ let(:arg) { "AUZZ123456123456789" }
186
+
187
+ its(:country_code) { is_expected.to eq("AU") }
188
+ its(:bank_code) { is_expected.to be_nil }
189
+ its(:branch_code) { is_expected.to eq("123456") }
190
+ its(:account_number) { is_expected.to eq("123456789") }
191
+ its(:swift_bank_code) { is_expected.to be_nil }
192
+ its(:swift_branch_code) { is_expected.to eq("123456") }
193
+ its(:swift_account_number) { is_expected.to eq("123456789") }
194
+ its(:iban) { is_expected.to be_nil }
195
+ its(:pseudo_iban) { is_expected.to eq("AUZZ123456123456789") }
196
+ its(:valid?) { is_expected.to eq(true) }
197
+ its(:to_s) { is_expected.to eq("") }
198
+ end
199
+
200
+ context "when the input is an invalid Australian pseudo-IBAN" do
201
+ let(:arg) { "AUZZ1234561234567899999" }
202
+
203
+ its(:iban) { is_expected.to be_nil }
204
+ its(:pseudo_iban) { is_expected.to eq(arg) }
205
+ it "is invalid and has the correct errors" do
206
+ expect(subject.valid?).to eq(false)
207
+ expect(subject.errors).
208
+ to eq(account_number: "is the wrong length (should be 9 characters)")
209
+ end
210
+ end
211
+
212
+ context "when the input is invalid local details for Australia" do
213
+ let(:arg) do
214
+ {
215
+ country_code: "AU",
216
+ branch_code: "123-4XX",
217
+ account_number: "1234567XX",
218
+ }
219
+ end
220
+
221
+ its(:iban) { is_expected.to be_nil }
222
+ its(:pseudo_iban) { is_expected.to eq("AUZZ1234XX1234567XX") }
223
+ it "is invalid and has the correct errors" do
224
+ expect(subject.valid?).to eq(false)
225
+ expect(subject.errors).to eq(account_number: "is invalid",
226
+ branch_code: "is invalid")
227
+ end
155
228
  end
156
229
  end
157
230
 
158
- describe '#to_s' do
159
- specify { expect(iban.to_s).to eq('GB82WEST12345698765432') }
160
- specify { expect(iban.to_s(:compact)).to eq('GB82WEST12345698765432') }
231
+ describe "#to_s" do
232
+ specify { expect(iban.to_s).to eq("GB82WEST12345698765432") }
233
+ specify { expect(iban.to_s(:compact)).to eq("GB82WEST12345698765432") }
161
234
 
162
- it 'returns a prettified string when passed :formatted' do
163
- expect(iban.to_s(:formatted)).to eq('GB82 WEST 1234 5698 7654 32')
235
+ it "returns a prettified string when passed :formatted" do
236
+ expect(iban.to_s(:formatted)).to eq("GB82 WEST 1234 5698 7654 32")
164
237
  end
165
238
 
166
239
  specify { expect { iban.to_s(:russian) }.to raise_error ArgumentError }
167
240
 
168
- context 'with the IBAN is nil' do
169
- let(:arg) { { country_code: 'GB' } }
241
+ context "with the IBAN is nil" do
242
+ let(:arg) { { country_code: "GB" } }
170
243
  its(:to_s) { is_expected.to_not be_nil }
171
244
  specify { expect(iban.to_s(:formatted)).to be_empty }
172
245
  end
246
+
247
+ context "with Swedish local details" do
248
+ let(:arg) do
249
+ {
250
+ country_code: "SE",
251
+ branch_code: "1281",
252
+ account_number: "0105723",
253
+ }
254
+ end
255
+ specify { expect(iban.to_s).to eq("SE5412000000012810105723") }
256
+ end
257
+
258
+ context "with a Swedish pseudo-IBAN" do
259
+ let(:arg) { "SEZZX1281XXX0105723" }
260
+ specify { expect(iban.to_s).to eq("SE5412000000012810105723") }
261
+ end
173
262
  end
174
263
 
175
264
  ###############
176
265
  # Validations #
177
266
  ###############
178
267
 
179
- describe '#valid_country_code?' do
268
+ describe "#valid_country_code?" do
180
269
  subject { iban.valid_country_code? }
181
270
 
182
- context 'with valid details' do
271
+ context "with valid details" do
183
272
  it { is_expected.to eq(true) }
184
273
  end
185
274
 
186
- context 'with an unknown country code' do
275
+ context "with an unknown country code" do
187
276
  before { iban.valid_country_code? }
188
- let(:iban_code) { 'AA123456789123456' }
277
+ let(:iban_code) { "AA123456789123456" }
189
278
  it { is_expected.to eq(false) }
190
279
 
191
- context 'locale en', locale: :en do
192
- it 'sets errors on the IBAN' do
280
+ context "locale en", locale: :en do
281
+ it "sets errors on the IBAN" do
193
282
  iban.valid_country_code?
194
283
  expect(iban.errors).
195
284
  to include(country_code: "'AA' is not a valid ISO 3166-1 IBAN " \
196
- 'country code')
285
+ "country code")
197
286
  end
198
287
  end
199
288
 
200
- context 'locale de', locale: :de do
201
- it 'sets errors on the IBAN' do
289
+ context "locale de", locale: :de do
290
+ it "sets errors on the IBAN" do
202
291
  iban.valid_country_code?
203
292
  expect(iban.errors).
204
293
  to include(country_code: "'AA' ist keine gültige IBAN " \
205
- 'Länderkennung')
294
+ "Länderkennung")
206
295
  end
207
296
  end
208
297
 
209
- context 'locale pt', locale: :pt do
210
- it 'sets errors on the IBAN' do
298
+ context "locale pt", locale: :pt do
299
+ it "sets errors on the IBAN" do
211
300
  iban.valid_country_code?
212
301
  expect(iban.errors).
213
302
  to include(country_code: "'AA' não é um código IBAN válido para " \
214
- 'país segundo o ISO 3166-1')
303
+ "país segundo o ISO 3166-1")
215
304
  end
216
305
  end
217
306
 
218
- context 'locale nl', locale: :nl do
219
- it 'sets errors on the IBAN' do
307
+ context "locale nl", locale: :nl do
308
+ it "sets errors on the IBAN" do
220
309
  iban.valid_country_code?
221
310
  expect(iban.errors).
222
311
  to include(country_code: "'AA' is geen geldig ISO 3166-1 IBAN " \
223
- 'landcode')
312
+ "landcode")
224
313
  end
225
314
  end
226
315
  end
227
316
  end
228
317
 
229
- describe '#valid_check_digits?' do
318
+ describe "#valid_check_digits?" do
230
319
  subject { iban.valid_check_digits? }
231
320
 
232
- context 'with valid details' do
233
- let(:iban_code) { 'GB82WEST12345698765432' }
321
+ context "with valid details" do
322
+ let(:iban_code) { "GB82WEST12345698765432" }
234
323
  it { is_expected.to eq(true) }
235
324
 
236
- context 'where the check digit is zero-padded' do
237
- let(:iban_code) { 'GB06WEST12345698765442' }
325
+ context "where the check digit is zero-padded" do
326
+ let(:iban_code) { "GB06WEST12345698765442" }
238
327
  it { is_expected.to eq(true) }
239
328
  end
240
329
  end
241
330
 
242
- context 'with invalid details' do
243
- let(:iban_code) { 'GB12WEST12345698765432' }
331
+ context "with invalid details" do
332
+ let(:iban_code) { "GB12WEST12345698765432" }
244
333
  it { is_expected.to eq(false) }
245
334
 
246
- context 'locale en', locale: :en do
247
- it 'sets errors on the IBAN' do
335
+ context "locale en", locale: :en do
336
+ it "sets errors on the IBAN" do
248
337
  iban.valid_check_digits?
249
338
  expect(iban.errors).
250
- to include(check_digits: 'Check digits failed modulus check. ' \
339
+ to include(check_digits: "Check digits failed modulus check. " \
251
340
  "Expected '82', received '12'.")
252
341
  end
253
342
  end
254
343
 
255
- context 'locale fr', locale: :fr do
256
- it 'sets errors on the IBAN' do
344
+ context "locale fr", locale: :fr do
345
+ it "sets errors on the IBAN" do
257
346
  iban.valid_check_digits?
258
347
  expect(iban.errors).
259
- to include(check_digits: 'Les chiffres de vérification ont ' \
348
+ to include(check_digits: "Les chiffres de vérification ont " \
260
349
  "échoué les tests de modulo. '82' " \
261
350
  "attendu, '12' reçu.")
262
351
  end
263
352
  end
264
353
 
265
- context 'locale de', locale: :de do
266
- it 'sets errors on the IBAN' do
354
+ context "locale de", locale: :de do
355
+ it "sets errors on the IBAN" do
267
356
  iban.valid_check_digits?
268
357
  expect(iban.errors).
269
- to include(check_digits: 'Die Prüfzahlen sind inkorrekt. ' \
358
+ to include(check_digits: "Die Prüfzahlen sind inkorrekt. " \
270
359
  "Erwartet wurde '82', tatsächlich " \
271
360
  "erhalten '12'.")
272
361
  end
273
362
  end
274
363
 
275
- context 'locale pt', locale: :pt do
276
- it 'sets errors on the IBAN' do
364
+ context "locale pt", locale: :pt do
365
+ it "sets errors on the IBAN" do
277
366
  iban.valid_check_digits?
278
367
  expect(iban.errors).
279
- to include(check_digits: 'Dígitos de controlo falharam a ' \
368
+ to include(check_digits: "Dígitos de controlo falharam a " \
280
369
  "verificação. Esperados '82', " \
281
370
  "recebidos '12'.")
282
371
  end
283
372
  end
284
373
 
285
- context 'locale es', locale: :es do
286
- it 'sets errors on the IBAN' do
374
+ context "locale es", locale: :es do
375
+ it "sets errors on the IBAN" do
287
376
  iban.valid_check_digits?
288
377
  expect(iban.errors).
289
- to include(check_digits: 'Los dígitos de control no han pasado ' \
290
- 'la verificación de módulo. Se ' \
378
+ to include(check_digits: "Los dígitos de control no han pasado " \
379
+ "la verificación de módulo. Se " \
291
380
  "esperaba '82', se ha recibido '12'.")
292
381
  end
293
382
  end
294
383
 
295
- context 'locale it', locale: :it do
296
- it 'sets errors on the IBAN' do
384
+ context "locale it", locale: :it do
385
+ it "sets errors on the IBAN" do
297
386
  iban.valid_check_digits?
298
387
  expect(iban.errors).
299
- to include(check_digits: 'la cifra di controllo non ha superato ' \
388
+ to include(check_digits: "la cifra di controllo non ha superato " \
300
389
  "il controllo del modulo. Previsto '82'" \
301
390
  ", ricevuto '12'.")
302
391
  end
303
392
  end
304
393
 
305
- context 'locale nl', locale: :nl do
306
- it 'sets errors on the IBAN' do
394
+ context "locale nl", locale: :nl do
395
+ it "sets errors on the IBAN" do
307
396
  iban.valid_check_digits?
308
397
  expect(iban.errors).
309
- to include(check_digits: 'Controlegetal mislukte modulus check. ' \
398
+ to include(check_digits: "Controlegetal mislukte modulus check. " \
310
399
  "Verwachte '82', ontvangen '12'.")
311
400
  end
312
401
  end
313
402
  end
314
403
 
315
- context 'with invalid characters' do
316
- let(:iban_code) { 'AA82-EST123456987654' }
404
+ context "with invalid characters" do
405
+ let(:iban_code) { "AA82-EST123456987654" }
317
406
  it { is_expected.to be_nil }
318
407
 
319
- it 'does not set errors on the IBAN' do
408
+ it "does not set errors on the IBAN" do
320
409
  iban.valid_check_digits?
321
410
  expect(iban.errors).to_not include(:check_digits)
322
411
  end
323
412
  end
324
413
 
325
- context 'with an empty IBAN' do
326
- let(:iban_code) { '' }
414
+ context "with an empty IBAN" do
415
+ let(:iban_code) { "" }
327
416
  it { is_expected.to be_nil }
328
417
 
329
- it 'does not set errors on the IBAN' do
418
+ it "does not set errors on the IBAN" do
330
419
  iban.valid_check_digits?
331
420
  expect(iban.errors).to_not include(:check_digits)
332
421
  end
333
422
  end
334
423
  end
335
424
 
336
- describe '#valid_length?' do
425
+ describe "#valid_length?" do
337
426
  subject { iban.valid_length? }
338
427
 
339
- context 'with valid details' do
428
+ context "with valid details" do
340
429
  it { is_expected.to eq(true) }
341
430
  end
342
431
 
343
- context 'with invalid details' do
344
- let(:iban_code) { 'GB82WEST123456987654' }
432
+ context "with invalid details" do
433
+ let(:iban_code) { "GB82WEST123456987654" }
345
434
  it { is_expected.to eq(false) }
346
435
 
347
- context 'locale en', locale: :en do
348
- it 'sets errors on the IBAN' do
436
+ context "locale en", locale: :en do
437
+ it "sets errors on the IBAN" do
349
438
  iban.valid_length?
350
439
  expect(iban.errors).
351
440
  to include(length: "Length doesn't match SWIFT specification " \
352
- '(expected 22 characters, received 20)')
441
+ "(expected 22 characters, received 20)")
353
442
  end
354
443
  end
355
444
 
356
- context 'locale fr', locale: :fr do
357
- it 'sets errors on the IBAN' do
445
+ context "locale fr", locale: :fr do
446
+ it "sets errors on the IBAN" do
358
447
  iban.valid_length?
359
448
  expect(iban.errors).
360
- to include(length: 'La longueur ne correspond pas aux ' \
361
- 'spécifications SWIFT (22 caractères ' \
362
- 'attendus, 20 reçus)')
449
+ to include(length: "La longueur ne correspond pas aux " \
450
+ "spécifications SWIFT (22 caractères " \
451
+ "attendus, 20 reçus)")
363
452
  end
364
453
  end
365
454
 
366
- context 'locale de', locale: :de do
367
- it 'sets errors on the IBAN' do
455
+ context "locale de", locale: :de do
456
+ it "sets errors on the IBAN" do
368
457
  iban.valid_length?
369
458
  expect(iban.errors).
370
- to include(length: 'Die Länge stimmt nicht mit der SWIFT ' \
371
- 'Spezifikation überein (erwartet wurden 22 ' \
372
- 'Zeichen, tatsächlich erhalten 20)')
459
+ to include(length: "Die Länge stimmt nicht mit der SWIFT " \
460
+ "Spezifikation überein (erwartet wurden 22 " \
461
+ "Zeichen, tatsächlich erhalten 20)")
373
462
  end
374
463
  end
375
464
 
376
- context 'locale pt', locale: :pt do
377
- it 'sets errors on the IBAN' do
465
+ context "locale pt", locale: :pt do
466
+ it "sets errors on the IBAN" do
378
467
  iban.valid_length?
379
468
  expect(iban.errors).
380
- to include(length: 'O tamanho não está segundo a especificação ' \
381
- 'SWIFT (esperados 22 caracteres, recebidos 20)')
469
+ to include(length: "O tamanho não está segundo a especificação " \
470
+ "SWIFT (esperados 22 caracteres, recebidos 20)")
382
471
  end
383
472
  end
384
473
 
385
- context 'locale es', locale: :es do
386
- it 'sets errors on the IBAN' do
474
+ context "locale es", locale: :es do
475
+ it "sets errors on the IBAN" do
387
476
  iban.valid_length?
388
477
  expect(iban.errors).
389
- to include(length: 'La longitud no corresponde a la ' \
390
- 'especificación SWIFT (Se esperaba 22 ' \
391
- 'símbolos, se ha recibido 20)')
478
+ to include(length: "La longitud no corresponde a la " \
479
+ "especificación SWIFT (Se esperaba 22 " \
480
+ "símbolos, se ha recibido 20)")
392
481
  end
393
482
  end
394
483
 
395
- context 'locale it', locale: :it do
396
- it 'sets errors on the IBAN' do
484
+ context "locale it", locale: :it do
485
+ it "sets errors on the IBAN" do
397
486
  iban.valid_length?
398
487
  expect(iban.errors).
399
- to include(length: 'La lunghezza non corrisponde ai requisiti ' \
400
- 'SWIFT (Previsti 22 caratteri, ricevuti 20)')
488
+ to include(length: "La lunghezza non corrisponde ai requisiti " \
489
+ "SWIFT (Previsti 22 caratteri, ricevuti 20)")
401
490
  end
402
491
  end
403
492
 
404
- context 'locale nl', locale: :nl do
405
- it 'sets errors on the IBAN' do
493
+ context "locale nl", locale: :nl do
494
+ it "sets errors on the IBAN" do
406
495
  iban.valid_length?
407
496
  expect(iban.errors).
408
- to include(length: 'Lengte komt niet overeen met SWIFT-' \
409
- 'specificatie (verwachte 22 karakters, ' \
410
- 'ontvangen 20)')
497
+ to include(length: "Lengte komt niet overeen met SWIFT-" \
498
+ "specificatie (verwachte 22 karakters, " \
499
+ "ontvangen 20)")
411
500
  end
412
501
  end
413
502
  end
414
503
 
415
- context 'with an invalid country_code' do
416
- let(:iban_code) { 'AA82WEST123456987654' }
504
+ context "with an invalid country_code" do
505
+ let(:iban_code) { "AA82WEST123456987654" }
417
506
  it { is_expected.to be_nil }
418
507
 
419
- it 'does not set errors on the IBAN' do
508
+ it "does not set errors on the IBAN" do
420
509
  iban.valid_length?
421
510
  expect(iban.errors).to_not include(:length)
422
511
  end
423
512
  end
424
513
  end
425
514
 
426
- describe '#valid_bank_code_length?' do
515
+ describe "#valid_bank_code_length?" do
427
516
  subject { iban.valid_bank_code_length? }
428
517
 
429
- context 'with valid details' do
518
+ context "with valid details" do
430
519
  it { is_expected.to eq(true) }
431
520
  end
432
521
 
433
- context 'with invalid details' do
434
- before { allow(iban).to receive(:swift_bank_code).and_return('WES') }
522
+ context "with invalid details" do
523
+ before { allow(iban).to receive(:swift_bank_code).and_return("WES") }
435
524
  it { is_expected.to eq(false) }
436
525
 
437
- context 'locale en', locale: :en do
438
- it 'sets errors on the IBAN' do
526
+ context "locale en", locale: :en do
527
+ it "sets errors on the IBAN" do
439
528
  iban.valid_bank_code_length?
440
529
  expect(iban.errors).
441
- to include(bank_code: 'is the wrong length (should be 4 ' \
442
- 'characters)')
530
+ to include(bank_code: "is the wrong length (should be 4 " \
531
+ "characters)")
443
532
  end
444
533
  end
445
534
 
446
- context 'locale fr', locale: :fr do
447
- it 'sets errors on the IBAN' do
535
+ context "locale fr", locale: :fr do
536
+ it "sets errors on the IBAN" do
448
537
  iban.valid_bank_code_length?
449
538
  expect(iban.errors).
450
539
  to include(bank_code: "n'a pas la bonne longueur (doit avoir 4 " \
451
- 'caractères)')
540
+ "caractères)")
452
541
  end
453
542
  end
454
543
 
455
- context 'locale de', locale: :de do
456
- it 'sets errors on the IBAN' do
544
+ context "locale de", locale: :de do
545
+ it "sets errors on the IBAN" do
457
546
  iban.valid_bank_code_length?
458
547
  expect(iban.errors).
459
- to include(bank_code: 'hat die falsche Länge (muss genau 4 ' \
460
- 'Zeichen haben)')
548
+ to include(bank_code: "hat die falsche Länge (muss genau 4 " \
549
+ "Zeichen haben)")
461
550
  end
462
551
  end
463
552
 
464
- context 'locale pt', locale: :pt do
465
- it 'sets errors on the IBAN' do
553
+ context "locale pt", locale: :pt do
554
+ it "sets errors on the IBAN" do
466
555
  iban.valid_bank_code_length?
467
556
  expect(iban.errors).
468
- to include(bank_code: 'tem o tamanho errado (deve ter 4 ' \
469
- 'caracteres)')
557
+ to include(bank_code: "tem o tamanho errado (deve ter 4 " \
558
+ "caracteres)")
470
559
  end
471
560
  end
472
561
 
473
- context 'locale es', locale: :es do
474
- it 'sets errors on the IBAN' do
562
+ context "locale es", locale: :es do
563
+ it "sets errors on the IBAN" do
475
564
  iban.valid_bank_code_length?
476
565
  expect(iban.errors).
477
- to include(bank_code: 'tiene la longitud equivocada (debería ' \
478
- 'formarse de 4 símbolos)')
566
+ to include(bank_code: "tiene la longitud equivocada (debería " \
567
+ "formarse de 4 símbolos)")
479
568
  end
480
569
  end
481
570
 
482
- context 'locale it', locale: :it do
483
- it 'sets errors on the IBAN' do
571
+ context "locale it", locale: :it do
572
+ it "sets errors on the IBAN" do
484
573
  iban.valid_bank_code_length?
485
574
  expect(iban.errors).
486
- to include(bank_code: 'è della lunghezza sbagliata (dovrebbe ' \
487
- 'essere di 4 caratteri)')
575
+ to include(bank_code: "è della lunghezza sbagliata (dovrebbe " \
576
+ "essere di 4 caratteri)")
488
577
  end
489
578
  end
490
579
 
491
- context 'locale nl', locale: :nl do
492
- it 'sets errors on the IBAN' do
580
+ context "locale nl", locale: :nl do
581
+ it "sets errors on the IBAN" do
493
582
  iban.valid_bank_code_length?
494
583
  expect(iban.errors).
495
- to include(bank_code: 'heeft onjuiste lengte (moet 4 tekens ' \
496
- 'lang zijn)')
584
+ to include(bank_code: "heeft onjuiste lengte (moet 4 tekens " \
585
+ "lang zijn)")
497
586
  end
498
587
  end
499
588
  end
500
589
 
501
- context 'with an invalid country_code' do
502
- before { allow(iban).to receive(:country_code).and_return('AA') }
590
+ context "with an invalid country_code" do
591
+ before { allow(iban).to receive(:country_code).and_return("AA") }
503
592
  it { is_expected.to be_nil }
504
593
 
505
- it 'does not set errors on the IBAN' do
594
+ it "does not set errors on the IBAN" do
506
595
  iban.valid_bank_code_length?
507
596
  expect(iban.errors).to_not include(:bank_code)
508
597
  end
509
598
  end
510
599
  end
511
600
 
512
- describe '#valid_branch_code_length?' do
601
+ describe "#valid_branch_code_length?" do
513
602
  subject { iban.valid_branch_code_length? }
514
603
 
515
- context 'with valid details' do
604
+ context "with valid details" do
516
605
  it { is_expected.to eq(true) }
517
606
  end
518
607
 
519
- context 'with invalid details' do
520
- before { allow(iban).to receive(:swift_branch_code).and_return('12345') }
608
+ context "with invalid details" do
609
+ before { allow(iban).to receive(:swift_branch_code).and_return("12345") }
521
610
  it { is_expected.to eq(false) }
522
611
 
523
- context 'locale en', locale: :en do
524
- it 'sets errors on the IBAN' do
612
+ context "locale en", locale: :en do
613
+ it "sets errors on the IBAN" do
525
614
  iban.valid_branch_code_length?
526
615
  expect(iban.errors).
527
- to include(branch_code: 'is the wrong length (should be 6 ' \
528
- 'characters)')
616
+ to include(branch_code: "is the wrong length (should be 6 " \
617
+ "characters)")
529
618
  end
530
619
  end
531
620
 
532
- context 'locale fr', locale: :fr do
533
- it 'sets errors on the IBAN' do
621
+ context "locale fr", locale: :fr do
622
+ it "sets errors on the IBAN" do
534
623
  iban.valid_branch_code_length?
535
624
  expect(iban.errors).
536
625
  to include(branch_code: "n'a pas la bonne longueur (doit avoir 6 " \
537
- 'caractères)')
626
+ "caractères)")
538
627
  end
539
628
  end
540
629
 
541
- context 'locale de', locale: :de do
542
- it 'sets errors on the IBAN' do
630
+ context "locale de", locale: :de do
631
+ it "sets errors on the IBAN" do
543
632
  iban.valid_branch_code_length?
544
633
  expect(iban.errors).
545
- to include(branch_code: 'hat die falsche Länge (muss genau 6 ' \
546
- 'Zeichen haben)')
634
+ to include(branch_code: "hat die falsche Länge (muss genau 6 " \
635
+ "Zeichen haben)")
547
636
  end
548
637
  end
549
638
 
550
- context 'locale pt', locale: :pt do
551
- it 'sets errors on the IBAN' do
639
+ context "locale pt", locale: :pt do
640
+ it "sets errors on the IBAN" do
552
641
  iban.valid_branch_code_length?
553
642
  expect(iban.errors).
554
- to include(branch_code: 'tem o tamanho errado (deve ter 6 ' \
555
- 'caracteres)')
643
+ to include(branch_code: "tem o tamanho errado (deve ter 6 " \
644
+ "caracteres)")
556
645
  end
557
646
  end
558
647
 
559
- context 'locale es', locale: :es do
560
- it 'sets errors on the IBAN' do
648
+ context "locale es", locale: :es do
649
+ it "sets errors on the IBAN" do
561
650
  iban.valid_branch_code_length?
562
651
  expect(iban.errors).
563
- to include(branch_code: 'tiene la longitud equivocada (debería ' \
564
- 'formarse de 6 símbolos)')
652
+ to include(branch_code: "tiene la longitud equivocada (debería " \
653
+ "formarse de 6 símbolos)")
565
654
  end
566
655
  end
567
656
 
568
- context 'locale it', locale: :it do
569
- it 'sets errors on the IBAN' do
657
+ context "locale it", locale: :it do
658
+ it "sets errors on the IBAN" do
570
659
  iban.valid_branch_code_length?
571
660
  expect(iban.errors).
572
- to include(branch_code: 'è della lunghezza sbagliata (dovrebbe ' \
573
- 'essere di 6 caratteri)')
661
+ to include(branch_code: "è della lunghezza sbagliata (dovrebbe " \
662
+ "essere di 6 caratteri)")
574
663
  end
575
664
  end
576
665
 
577
- context 'locale nl', locale: :nl do
578
- it 'sets errors on the IBAN' do
666
+ context "locale nl", locale: :nl do
667
+ it "sets errors on the IBAN" do
579
668
  iban.valid_branch_code_length?
580
669
  expect(iban.errors).
581
- to include(branch_code: 'heeft onjuiste lengte (moet 6 tekens ' \
582
- 'lang zijn)')
670
+ to include(branch_code: "heeft onjuiste lengte (moet 6 tekens " \
671
+ "lang zijn)")
583
672
  end
584
673
  end
585
674
  end
586
675
 
587
- context 'without a branch code' do
676
+ context "without a branch code" do
588
677
  before { allow(iban).to receive(:swift_branch_code).and_return(nil) }
589
678
  it { is_expected.to eq(false) }
590
679
 
591
- context 'locale en', locale: :en do
592
- it 'sets errors on the IBAN' do
680
+ context "locale en", locale: :en do
681
+ it "sets errors on the IBAN" do
593
682
  iban.valid_branch_code_length?
594
- expect(iban.errors).to include(branch_code: 'is required')
683
+ expect(iban.errors).to include(branch_code: "is required")
595
684
  end
596
685
  end
597
686
 
598
- context 'locale fr', locale: :fr do
599
- it 'sets errors on the IBAN' do
687
+ context "locale fr", locale: :fr do
688
+ it "sets errors on the IBAN" do
600
689
  iban.valid_branch_code_length?
601
- expect(iban.errors).to include(branch_code: 'est requis')
690
+ expect(iban.errors).to include(branch_code: "est requis")
602
691
  end
603
692
  end
604
693
 
605
- context 'locale de', locale: :de do
606
- it 'sets errors on the IBAN' do
694
+ context "locale de", locale: :de do
695
+ it "sets errors on the IBAN" do
607
696
  iban.valid_branch_code_length?
608
- expect(iban.errors).to include(branch_code: 'muss ausgefüllt werden')
697
+ expect(iban.errors).to include(branch_code: "muss ausgefüllt werden")
609
698
  end
610
699
  end
611
700
 
612
- context 'locale pt', locale: :pt do
613
- it 'sets errors on the IBAN' do
701
+ context "locale pt", locale: :pt do
702
+ it "sets errors on the IBAN" do
614
703
  iban.valid_branch_code_length?
615
- expect(iban.errors).to include(branch_code: 'é requerido')
704
+ expect(iban.errors).to include(branch_code: "é requerido")
616
705
  end
617
706
  end
618
707
 
619
- context 'locale es', locale: :es do
620
- it 'sets errors on the IBAN' do
708
+ context "locale es", locale: :es do
709
+ it "sets errors on the IBAN" do
621
710
  iban.valid_branch_code_length?
622
- expect(iban.errors).to include(branch_code: 'es obligatorio')
711
+ expect(iban.errors).to include(branch_code: "es obligatorio")
623
712
  end
624
713
  end
625
714
 
626
- context 'locale it', locale: :it do
627
- it 'sets errors on the IBAN' do
715
+ context "locale it", locale: :it do
716
+ it "sets errors on the IBAN" do
628
717
  iban.valid_branch_code_length?
629
- expect(iban.errors).to include(branch_code: 'è obbligatorio')
718
+ expect(iban.errors).to include(branch_code: "è obbligatorio")
630
719
  end
631
720
  end
632
721
 
633
- context 'locale nl', locale: :nl do
634
- it 'sets errors on the IBAN' do
722
+ context "locale nl", locale: :nl do
723
+ it "sets errors on the IBAN" do
635
724
  iban.valid_branch_code_length?
636
- expect(iban.errors).to include(branch_code: 'moet opgegeven zijn')
725
+ expect(iban.errors).to include(branch_code: "moet opgegeven zijn")
637
726
  end
638
727
  end
639
728
  end
640
729
 
641
- context 'with an invalid country_code' do
642
- before { allow(iban).to receive(:country_code).and_return('AA') }
730
+ context "with an invalid country_code" do
731
+ before { allow(iban).to receive(:country_code).and_return("AA") }
643
732
  it { is_expected.to be_nil }
644
733
 
645
- it 'does not set errors on the IBAN' do
734
+ it "does not set errors on the IBAN" do
646
735
  iban.valid_branch_code_length?
647
736
  expect(iban.errors).to_not include(:branch_code)
648
737
  end
649
738
  end
650
739
  end
651
740
 
652
- describe '#valid_account_number_length?' do
741
+ describe "#valid_account_number_length?" do
653
742
  subject { iban.valid_account_number_length? }
654
743
 
655
- context 'with valid details' do
744
+ context "with valid details" do
656
745
  it { is_expected.to eq(true) }
657
746
  end
658
747
 
659
- context 'with an invalid account_number' do
748
+ context "with an invalid account_number" do
660
749
  before do
661
- allow(iban).to receive(:swift_account_number).and_return('1234567')
750
+ allow(iban).to receive(:swift_account_number).and_return("1234567")
662
751
  end
663
752
  it { is_expected.to eq(false) }
664
753
 
665
- context 'locale en', locale: :en do
666
- it 'sets errors on the IBAN' do
754
+ context "locale en", locale: :en do
755
+ it "sets errors on the IBAN" do
667
756
  iban.valid_account_number_length?
668
757
  expect(iban.errors).
669
- to include(account_number: 'is the wrong length (should be 8 ' \
670
- 'characters)')
758
+ to include(account_number: "is the wrong length (should be 8 " \
759
+ "characters)")
671
760
  end
672
761
  end
673
762
 
674
- context 'locale fr', locale: :fr do
675
- it 'sets errors on the IBAN' do
763
+ context "locale fr", locale: :fr do
764
+ it "sets errors on the IBAN" do
676
765
  iban.valid_account_number_length?
677
766
  expect(iban.errors).
678
767
  to include(account_number: "n'a pas la bonne longueur (doit " \
679
- 'avoir 8 caractères)')
768
+ "avoir 8 caractères)")
680
769
  end
681
770
  end
682
771
 
683
- context 'locale de', locale: :de do
684
- it 'sets errors on the IBAN' do
772
+ context "locale de", locale: :de do
773
+ it "sets errors on the IBAN" do
685
774
  iban.valid_account_number_length?
686
775
  expect(iban.errors).
687
- to include(account_number: 'hat die falsche Länge (muss genau ' \
688
- '8 Zeichen haben)')
776
+ to include(account_number: "hat die falsche Länge (muss genau " \
777
+ "8 Zeichen haben)")
689
778
  end
690
779
  end
691
780
 
692
- context 'locale pt', locale: :pt do
693
- it 'sets errors on the IBAN' do
781
+ context "locale pt", locale: :pt do
782
+ it "sets errors on the IBAN" do
694
783
  iban.valid_account_number_length?
695
784
  expect(iban.errors).
696
- to include(account_number: 'tem o tamanho errado (deve ter 8 ' \
697
- 'caracteres)')
785
+ to include(account_number: "tem o tamanho errado (deve ter 8 " \
786
+ "caracteres)")
698
787
  end
699
788
  end
700
789
 
701
- context 'locale es', locale: :es do
702
- it 'sets errors on the IBAN' do
790
+ context "locale es", locale: :es do
791
+ it "sets errors on the IBAN" do
703
792
  iban.valid_account_number_length?
704
793
  expect(iban.errors).
705
- to include(account_number: 'tiene la longitud equivocada ' \
706
- '(debería formarse de 8 símbolos)')
794
+ to include(account_number: "tiene la longitud equivocada " \
795
+ "(debería formarse de 8 símbolos)")
707
796
  end
708
797
  end
709
798
 
710
- context 'locale it', locale: :it do
711
- it 'sets errors on the IBAN' do
799
+ context "locale it", locale: :it do
800
+ it "sets errors on the IBAN" do
712
801
  iban.valid_account_number_length?
713
802
  expect(iban.errors).
714
- to include(account_number: 'è della lunghezza sbagliata ' \
715
- '(dovrebbe essere di 8 caratteri)')
803
+ to include(account_number: "è della lunghezza sbagliata " \
804
+ "(dovrebbe essere di 8 caratteri)")
716
805
  end
717
806
  end
718
807
 
719
- context 'locale nl', locale: :nl do
720
- it 'sets errors on the IBAN' do
808
+ context "locale nl", locale: :nl do
809
+ it "sets errors on the IBAN" do
721
810
  iban.valid_account_number_length?
722
811
  expect(iban.errors).
723
- to include(account_number: 'heeft onjuiste lengte (moet 8 ' \
724
- 'tekens lang zijn)')
812
+ to include(account_number: "heeft onjuiste lengte (moet 8 " \
813
+ "tekens lang zijn)")
725
814
  end
726
815
  end
727
816
  end
728
817
 
729
- context 'with an invalid country_code' do
730
- before { allow(iban).to receive(:country_code).and_return('AA') }
818
+ context "with an invalid country_code" do
819
+ before { allow(iban).to receive(:country_code).and_return("AA") }
731
820
  it { is_expected.to be_nil }
732
821
 
733
- it 'does not set errors on the IBAN' do
822
+ it "does not set errors on the IBAN" do
734
823
  iban.valid_account_number_length?
735
824
  expect(iban.errors).to_not include(:account_number)
736
825
  end
737
826
  end
738
827
  end
739
828
 
740
- describe '#valid_characters?' do
829
+ describe "#valid_characters?" do
741
830
  subject { iban.valid_characters? }
742
831
 
743
- context 'with valid details' do
744
- let(:iban_code) { 'GB82WEST12345698765432' }
832
+ context "with valid details" do
833
+ let(:iban_code) { "GB82WEST12345698765432" }
745
834
  it { is_expected.to eq(true) }
746
835
  end
747
836
 
748
- context 'with invalid details' do
749
- let(:iban_code) { 'GB-123ABCD' }
837
+ context "with invalid details" do
838
+ let(:iban_code) { "GB-123ABCD" }
750
839
  it { is_expected.to eq(false) }
751
840
 
752
- context 'locale en', locale: :en do
753
- it 'sets errors on the IBAN' do
841
+ context "locale en", locale: :en do
842
+ it "sets errors on the IBAN" do
754
843
  iban.valid_characters?
755
844
  expect(iban.errors).
756
- to include(characters: 'Non-alphanumeric characters found: -')
845
+ to include(characters: "Non-alphanumeric characters found: -")
757
846
  end
758
847
  end
759
848
 
760
- context 'locale fr', locale: :fr do
761
- it 'sets errors on the IBAN' do
849
+ context "locale fr", locale: :fr do
850
+ it "sets errors on the IBAN" do
762
851
  iban.valid_characters?
763
852
  expect(iban.errors).
764
- to include(characters: 'Caractères non alphanumériques présents ' \
765
- ': -')
853
+ to include(characters: "Caractères non alphanumériques présents " \
854
+ ": -")
766
855
  end
767
856
  end
768
857
 
769
- context 'locale de', locale: :de do
770
- it 'sets errors on the IBAN' do
858
+ context "locale de", locale: :de do
859
+ it "sets errors on the IBAN" do
771
860
  iban.valid_characters?
772
861
  expect(iban.errors).
773
- to include(characters: 'Nicht-alphanumerische Zeichen gefunden: -')
862
+ to include(characters: "Nicht-alphanumerische Zeichen gefunden: -")
774
863
  end
775
864
  end
776
865
 
777
- context 'locale pt', locale: :pt do
778
- it 'sets errors on the IBAN' do
866
+ context "locale pt", locale: :pt do
867
+ it "sets errors on the IBAN" do
779
868
  iban.valid_characters?
780
869
  expect(iban.errors).
781
- to include(characters: 'Caracteres não alfanuméricos ' \
782
- 'encontrados: -')
870
+ to include(characters: "Caracteres não alfanuméricos " \
871
+ "encontrados: -")
783
872
  end
784
873
  end
785
874
 
786
- context 'locale es', locale: :es do
787
- it 'sets errors on the IBAN' do
875
+ context "locale es", locale: :es do
876
+ it "sets errors on the IBAN" do
788
877
  iban.valid_characters?
789
878
  expect(iban.errors).
790
- to include(characters: 'Se han econtrado símbolos no ' \
791
- 'alfanuméricos: -')
879
+ to include(characters: "Se han econtrado símbolos no " \
880
+ "alfanuméricos: -")
792
881
  end
793
882
  end
794
883
 
795
- context 'locale it', locale: :it do
796
- it 'sets errors on the IBAN' do
884
+ context "locale it", locale: :it do
885
+ it "sets errors on the IBAN" do
797
886
  iban.valid_characters?
798
887
  expect(iban.errors).
799
- to include(characters: 'Un carattere non-alfanumerico è stato ' \
800
- 'trovato: -')
888
+ to include(characters: "Un carattere non-alfanumerico è stato " \
889
+ "trovato: -")
801
890
  end
802
891
  end
803
892
 
804
- context 'locale nl', locale: :nl do
805
- it 'sets errors on the IBAN' do
893
+ context "locale nl", locale: :nl do
894
+ it "sets errors on the IBAN" do
806
895
  iban.valid_characters?
807
896
  expect(iban.errors).
808
- to include(characters: 'Niet-alfanumerieke tekens gevonden: -')
897
+ to include(characters: "Niet-alfanumerieke tekens gevonden: -")
809
898
  end
810
899
  end
811
900
  end
812
901
  end
813
902
 
814
- describe '#valid_format?' do
903
+ describe "#valid_format?" do
815
904
  subject { iban.valid_format? }
816
905
 
817
- context 'with valid details' do
818
- let(:iban_code) { 'GB82WEST12345698765432' }
906
+ context "with valid details" do
907
+ let(:iban_code) { "GB82WEST12345698765432" }
819
908
  it { is_expected.to eq(true) }
820
909
  end
821
910
 
822
- context 'with invalid details' do
823
- let(:iban_code) { 'GB82WEST12AAAAAA7654' }
911
+ context "with invalid details" do
912
+ let(:iban_code) { "GB82WEST12AAAAAA7654" }
824
913
  it { is_expected.to eq(false) }
825
914
 
826
- context 'locale en', locale: :en do
827
- it 'sets errors on the IBAN' do
915
+ context "locale en", locale: :en do
916
+ it "sets errors on the IBAN" do
828
917
  iban.valid_format?
829
918
  expect(iban.errors).
830
- to include(format: 'Unexpected format for a GB IBAN.')
919
+ to include(format: "Unexpected format for a GB IBAN.")
831
920
  end
832
921
  end
833
922
 
834
- context 'locale fr', locale: :fr do
835
- it 'sets errors on the IBAN' do
923
+ context "locale fr", locale: :fr do
924
+ it "sets errors on the IBAN" do
836
925
  iban.valid_format?
837
926
  expect(iban.errors).
838
927
  to include(format: "Format inconnu pour l'IBAN GB.")
839
928
  end
840
929
  end
841
930
 
842
- context 'locale de', locale: :de do
843
- it 'sets errors on the IBAN' do
931
+ context "locale de", locale: :de do
932
+ it "sets errors on the IBAN" do
844
933
  iban.valid_format?
845
934
  expect(iban.errors).
846
- to include(format: 'Unerwartetes Format für eine GB IBAN.')
935
+ to include(format: "Unerwartetes Format für eine GB IBAN.")
847
936
  end
848
937
  end
849
938
 
850
- context 'locale pt', locale: :pt do
851
- it 'sets errors on the IBAN' do
939
+ context "locale pt", locale: :pt do
940
+ it "sets errors on the IBAN" do
852
941
  iban.valid_format?
853
942
  expect(iban.errors).
854
- to include(format: 'Formato errado para um IBAN GB.')
943
+ to include(format: "Formato errado para um IBAN GB.")
855
944
  end
856
945
  end
857
946
 
858
- context 'locale es', locale: :es do
859
- it 'sets errors on the IBAN' do
947
+ context "locale es", locale: :es do
948
+ it "sets errors on the IBAN" do
860
949
  iban.valid_format?
861
950
  expect(iban.errors).
862
- to include(format: 'Formato inesperado para un IBAN de GB.')
951
+ to include(format: "Formato inesperado para un IBAN de GB.")
863
952
  end
864
953
  end
865
954
 
866
- context 'locale it', locale: :it do
867
- it 'sets errors on the IBAN' do
955
+ context "locale it", locale: :it do
956
+ it "sets errors on the IBAN" do
868
957
  iban.valid_format?
869
958
  expect(iban.errors).
870
- to include(format: 'Formato non atteso per un IBAN GB.')
959
+ to include(format: "Formato non atteso per un IBAN GB.")
871
960
  end
872
961
  end
873
962
 
874
- context 'locale nl', locale: :nl do
875
- it 'sets errors on the IBAN' do
963
+ context "locale nl", locale: :nl do
964
+ it "sets errors on the IBAN" do
876
965
  iban.valid_format?
877
966
  expect(iban.errors).
878
- to include(format: 'Onverwachte formaat voor een GB IBAN.')
967
+ to include(format: "Onverwachte formaat voor een GB IBAN.")
879
968
  end
880
969
  end
881
970
  end
882
971
 
883
- context 'with an invalid country_code' do
884
- let(:iban_code) { 'AA82WEST12AAAAAA7654' }
972
+ context "with an invalid country_code" do
973
+ let(:iban_code) { "AA82WEST12AAAAAA7654" }
885
974
  it { is_expected.to be_nil }
886
975
 
887
- it 'does not set errors on the IBAN' do
976
+ it "does not set errors on the IBAN" do
888
977
  iban.valid_format?
889
978
  expect(iban.errors).to_not include(:format)
890
979
  end
891
980
  end
892
981
  end
893
982
 
894
- describe '#valid_bank_code_format?' do
983
+ describe "#valid_bank_code_format?" do
895
984
  subject { iban.valid_bank_code_format? }
896
985
 
897
- context 'GB numeric bank code' do
986
+ context "GB numeric bank code" do
898
987
  let(:arg) do
899
988
  {
900
- country_code: 'GB',
901
- bank_code: '1234',
902
- branch_code: '200000',
903
- account_number: '55779911'
989
+ country_code: "GB",
990
+ bank_code: "1234",
991
+ branch_code: "200000",
992
+ account_number: "55779911",
904
993
  }
905
994
  end
906
995
 
907
996
  it { is_expected.to eq(false) }
908
997
 
909
- context 'locale en', locale: :en do
910
- it 'sets errors on the IBAN' do
998
+ context "locale en", locale: :en do
999
+ it "sets errors on the IBAN" do
911
1000
  iban.valid_bank_code_format?
912
- expect(iban.errors).to include(bank_code: 'is invalid')
1001
+ expect(iban.errors).to include(bank_code: "is invalid")
913
1002
  end
914
1003
  end
915
1004
 
916
- context 'locale fr', locale: :fr do
917
- it 'sets errors on the IBAN' do
1005
+ context "locale fr", locale: :fr do
1006
+ it "sets errors on the IBAN" do
918
1007
  iban.valid_bank_code_format?
919
- expect(iban.errors).to include(bank_code: 'est invalide')
1008
+ expect(iban.errors).to include(bank_code: "est invalide")
920
1009
  end
921
1010
  end
922
1011
 
923
- context 'locale de', locale: :de do
924
- it 'sets errors on the IBAN' do
1012
+ context "locale de", locale: :de do
1013
+ it "sets errors on the IBAN" do
925
1014
  iban.valid_bank_code_format?
926
- expect(iban.errors).to include(bank_code: 'ist nicht gültig')
1015
+ expect(iban.errors).to include(bank_code: "ist nicht gültig")
927
1016
  end
928
1017
  end
929
1018
 
930
- context 'locale pt', locale: :pt do
931
- it 'sets errors on the IBAN' do
1019
+ context "locale pt", locale: :pt do
1020
+ it "sets errors on the IBAN" do
932
1021
  iban.valid_bank_code_format?
933
- expect(iban.errors).to include(bank_code: 'é inválido')
1022
+ expect(iban.errors).to include(bank_code: "é inválido")
934
1023
  end
935
1024
  end
936
1025
 
937
- context 'locale es', locale: :es do
938
- it 'sets errors on the IBAN' do
1026
+ context "locale es", locale: :es do
1027
+ it "sets errors on the IBAN" do
939
1028
  iban.valid_bank_code_format?
940
- expect(iban.errors).to include(bank_code: 'es inválido')
1029
+ expect(iban.errors).to include(bank_code: "es inválido")
941
1030
  end
942
1031
  end
943
1032
 
944
- context 'locale it', locale: :it do
945
- it 'sets errors on the IBAN' do
1033
+ context "locale it", locale: :it do
1034
+ it "sets errors on the IBAN" do
946
1035
  iban.valid_bank_code_format?
947
- expect(iban.errors).to include(bank_code: 'non è valido')
1036
+ expect(iban.errors).to include(bank_code: "non è valido")
948
1037
  end
949
1038
  end
950
1039
 
951
- context 'locale nl', locale: :nl do
952
- it 'sets errors on the IBAN' do
1040
+ context "locale nl", locale: :nl do
1041
+ it "sets errors on the IBAN" do
953
1042
  iban.valid_bank_code_format?
954
- expect(iban.errors).to include(bank_code: 'is ongeldig')
1043
+ expect(iban.errors).to include(bank_code: "is ongeldig")
955
1044
  end
956
1045
  end
957
1046
  end
958
1047
 
959
- context 'with an invalid country code' do
960
- let(:iban_code) { 'AA821234BANK121234567B' }
1048
+ context "with an invalid country code" do
1049
+ let(:iban_code) { "AA821234BANK121234567B" }
961
1050
 
962
1051
  it { is_expected.to be_nil }
963
1052
  end
964
1053
 
965
- context 'with a wrong-length bank code' do
1054
+ context "with a wrong-length bank code" do
966
1055
  let(:arg) do
967
1056
  {
968
- country_code: 'FR',
969
- bank_code: '1234',
970
- branch_code: '12345',
971
- account_number: '123456789123'
1057
+ country_code: "FR",
1058
+ bank_code: "1234",
1059
+ branch_code: "12345",
1060
+ account_number: "123456789123",
972
1061
  }
973
1062
  end
974
1063
 
@@ -976,84 +1065,84 @@ describe Ibandit::IBAN do
976
1065
  end
977
1066
  end
978
1067
 
979
- describe '#valid_branch_code_format?' do
1068
+ describe "#valid_branch_code_format?" do
980
1069
  subject { iban.valid_branch_code_format? }
981
1070
 
982
- context 'IT non-numeric branch code' do
1071
+ context "IT non-numeric branch code" do
983
1072
  let(:arg) do
984
1073
  {
985
- country_code: 'IT',
986
- bank_code: '12345',
987
- branch_code: 'ABCDE',
988
- account_number: '123456789012'
1074
+ country_code: "IT",
1075
+ bank_code: "12345",
1076
+ branch_code: "ABCDE",
1077
+ account_number: "123456789012",
989
1078
  }
990
1079
  end
991
1080
 
992
1081
  it { is_expected.to eq(false) }
993
1082
 
994
- context 'locale en', locale: :en do
995
- it 'sets errors on the IBAN' do
1083
+ context "locale en", locale: :en do
1084
+ it "sets errors on the IBAN" do
996
1085
  iban.valid_branch_code_format?
997
- expect(iban.errors).to include(branch_code: 'is invalid')
1086
+ expect(iban.errors).to include(branch_code: "is invalid")
998
1087
  end
999
1088
  end
1000
1089
 
1001
- context 'locale fr', locale: :fr do
1002
- it 'sets errors on the IBAN' do
1090
+ context "locale fr", locale: :fr do
1091
+ it "sets errors on the IBAN" do
1003
1092
  iban.valid_branch_code_format?
1004
- expect(iban.errors).to include(branch_code: 'est invalide')
1093
+ expect(iban.errors).to include(branch_code: "est invalide")
1005
1094
  end
1006
1095
  end
1007
1096
 
1008
- context 'locale de', locale: :de do
1009
- it 'sets errors on the IBAN' do
1097
+ context "locale de", locale: :de do
1098
+ it "sets errors on the IBAN" do
1010
1099
  iban.valid_branch_code_format?
1011
- expect(iban.errors).to include(branch_code: 'ist nicht gültig')
1100
+ expect(iban.errors).to include(branch_code: "ist nicht gültig")
1012
1101
  end
1013
1102
  end
1014
1103
 
1015
- context 'locale pt', locale: :pt do
1016
- it 'sets errors on the IBAN' do
1104
+ context "locale pt", locale: :pt do
1105
+ it "sets errors on the IBAN" do
1017
1106
  iban.valid_branch_code_format?
1018
- expect(iban.errors).to include(branch_code: 'é inválido')
1107
+ expect(iban.errors).to include(branch_code: "é inválido")
1019
1108
  end
1020
1109
  end
1021
1110
 
1022
- context 'locale es', locale: :es do
1023
- it 'sets errors on the IBAN' do
1111
+ context "locale es", locale: :es do
1112
+ it "sets errors on the IBAN" do
1024
1113
  iban.valid_branch_code_format?
1025
- expect(iban.errors).to include(branch_code: 'es inválido')
1114
+ expect(iban.errors).to include(branch_code: "es inválido")
1026
1115
  end
1027
1116
  end
1028
1117
 
1029
- context 'locale it', locale: :it do
1030
- it 'sets errors on the IBAN' do
1118
+ context "locale it", locale: :it do
1119
+ it "sets errors on the IBAN" do
1031
1120
  iban.valid_branch_code_format?
1032
- expect(iban.errors).to include(branch_code: 'non è valido')
1121
+ expect(iban.errors).to include(branch_code: "non è valido")
1033
1122
  end
1034
1123
  end
1035
1124
 
1036
- context 'locale nl', locale: :nl do
1037
- it 'sets errors on the IBAN' do
1125
+ context "locale nl", locale: :nl do
1126
+ it "sets errors on the IBAN" do
1038
1127
  iban.valid_branch_code_format?
1039
- expect(iban.errors).to include(branch_code: 'is ongeldig')
1128
+ expect(iban.errors).to include(branch_code: "is ongeldig")
1040
1129
  end
1041
1130
  end
1042
1131
  end
1043
1132
 
1044
- context 'with an invalid country code' do
1045
- let(:iban_code) { 'AA821234BANK121234567B' }
1133
+ context "with an invalid country code" do
1134
+ let(:iban_code) { "AA821234BANK121234567B" }
1046
1135
 
1047
1136
  it { is_expected.to be_nil }
1048
1137
  end
1049
1138
 
1050
- context 'with a wrong-length branch code' do
1139
+ context "with a wrong-length branch code" do
1051
1140
  let(:arg) do
1052
1141
  {
1053
- country_code: 'PT',
1054
- bank_code: '1234',
1055
- branch_code: 'ABC',
1056
- account_number: '123456789123'
1142
+ country_code: "PT",
1143
+ bank_code: "1234",
1144
+ branch_code: "ABC",
1145
+ account_number: "123456789123",
1057
1146
  }
1058
1147
  end
1059
1148
 
@@ -1061,82 +1150,82 @@ describe Ibandit::IBAN do
1061
1150
  end
1062
1151
  end
1063
1152
 
1064
- describe '#valid_account_number_format?' do
1153
+ describe "#valid_account_number_format?" do
1065
1154
  subject { iban.valid_account_number_format? }
1066
1155
 
1067
- context 'DE non-numeric account number' do
1156
+ context "DE non-numeric account number" do
1068
1157
  let(:arg) do
1069
1158
  {
1070
- country_code: 'DE',
1071
- bank_code: '12345678',
1072
- account_number: '55779911AA'
1159
+ country_code: "DE",
1160
+ bank_code: "12345678",
1161
+ account_number: "55779911AA",
1073
1162
  }
1074
1163
  end
1075
1164
 
1076
1165
  it { is_expected.to eq(false) }
1077
1166
 
1078
- context 'locale en', locale: :en do
1079
- it 'sets errors on the IBAN' do
1167
+ context "locale en", locale: :en do
1168
+ it "sets errors on the IBAN" do
1080
1169
  iban.valid_account_number_format?
1081
- expect(iban.errors).to include(account_number: 'is invalid')
1170
+ expect(iban.errors).to include(account_number: "is invalid")
1082
1171
  end
1083
1172
  end
1084
1173
 
1085
- context 'locale fr', locale: :fr do
1086
- it 'sets errors on the IBAN' do
1174
+ context "locale fr", locale: :fr do
1175
+ it "sets errors on the IBAN" do
1087
1176
  iban.valid_account_number_format?
1088
- expect(iban.errors).to include(account_number: 'est invalide')
1177
+ expect(iban.errors).to include(account_number: "est invalide")
1089
1178
  end
1090
1179
  end
1091
1180
 
1092
- context 'locale de', locale: :de do
1093
- it 'sets errors on the IBAN' do
1181
+ context "locale de", locale: :de do
1182
+ it "sets errors on the IBAN" do
1094
1183
  iban.valid_account_number_format?
1095
- expect(iban.errors).to include(account_number: 'ist nicht gültig')
1184
+ expect(iban.errors).to include(account_number: "ist nicht gültig")
1096
1185
  end
1097
1186
  end
1098
1187
 
1099
- context 'locale pt', locale: :pt do
1100
- it 'sets errors on the IBAN' do
1188
+ context "locale pt", locale: :pt do
1189
+ it "sets errors on the IBAN" do
1101
1190
  iban.valid_account_number_format?
1102
- expect(iban.errors).to include(account_number: 'é inválido')
1191
+ expect(iban.errors).to include(account_number: "é inválido")
1103
1192
  end
1104
1193
  end
1105
1194
 
1106
- context 'locale es', locale: :es do
1107
- it 'sets errors on the IBAN' do
1195
+ context "locale es", locale: :es do
1196
+ it "sets errors on the IBAN" do
1108
1197
  iban.valid_account_number_format?
1109
- expect(iban.errors).to include(account_number: 'es inválido')
1198
+ expect(iban.errors).to include(account_number: "es inválido")
1110
1199
  end
1111
1200
  end
1112
1201
 
1113
- context 'locale it', locale: :it do
1114
- it 'sets errors on the IBAN' do
1202
+ context "locale it", locale: :it do
1203
+ it "sets errors on the IBAN" do
1115
1204
  iban.valid_account_number_format?
1116
- expect(iban.errors).to include(account_number: 'non è valido')
1205
+ expect(iban.errors).to include(account_number: "non è valido")
1117
1206
  end
1118
1207
  end
1119
1208
 
1120
- context 'locale nl', locale: :nl do
1121
- it 'sets errors on the IBAN' do
1209
+ context "locale nl", locale: :nl do
1210
+ it "sets errors on the IBAN" do
1122
1211
  iban.valid_account_number_format?
1123
- expect(iban.errors).to include(account_number: 'is ongeldig')
1212
+ expect(iban.errors).to include(account_number: "is ongeldig")
1124
1213
  end
1125
1214
  end
1126
1215
  end
1127
1216
 
1128
- context 'with an invalid country code' do
1129
- let(:iban_code) { 'AA821234BANK121234567B' }
1217
+ context "with an invalid country code" do
1218
+ let(:iban_code) { "AA821234BANK121234567B" }
1130
1219
 
1131
1220
  it { is_expected.to be_nil }
1132
1221
  end
1133
1222
 
1134
- context 'with a wrong-length account number' do
1223
+ context "with a wrong-length account number" do
1135
1224
  let(:arg) do
1136
1225
  {
1137
- country_code: 'NL',
1138
- bank_code: 'ABCD',
1139
- account_number: nil
1226
+ country_code: "NL",
1227
+ bank_code: "ABCD",
1228
+ account_number: nil,
1140
1229
  }
1141
1230
  end
1142
1231
 
@@ -1144,30 +1233,31 @@ describe Ibandit::IBAN do
1144
1233
  end
1145
1234
  end
1146
1235
 
1147
- describe '#valid_local_modulus_check?' do
1236
+ describe "#valid_local_modulus_check?" do
1148
1237
  subject(:valid_local_modulus_check?) { iban.valid_local_modulus_check? }
1149
1238
 
1150
- context 'without a modulus checker defined' do
1239
+ context "without a modulus checker defined" do
1151
1240
  it { is_expected.to be(true) }
1152
1241
  end
1153
1242
 
1154
- context 'with a modulus checker defined' do
1243
+ context "with a modulus checker defined" do
1155
1244
  before do
1156
1245
  Ibandit.modulus_checker = double(
1157
1246
  valid_bank_code?: valid_bank_code,
1158
1247
  valid_branch_code?: valid_branch_code,
1159
- valid_account_number?: valid_account_number)
1248
+ valid_account_number?: valid_account_number,
1249
+ )
1160
1250
  end
1161
1251
  after { Ibandit.modulus_checker = nil }
1162
1252
  before { iban.valid_local_modulus_check? }
1163
1253
 
1164
- context 'with an invalid bank code' do
1165
- let(:iban_code) { 'AT611904300234573201' }
1254
+ context "with an invalid bank code" do
1255
+ let(:iban_code) { "AT611904300234573201" }
1166
1256
  let(:valid_bank_code) { false }
1167
1257
  let(:valid_branch_code) { true }
1168
1258
  let(:valid_account_number) { true }
1169
1259
 
1170
- it 'calls valid_bank_code? with an IBAN object' do
1260
+ it "calls valid_bank_code? with an IBAN object" do
1171
1261
  expect(Ibandit.modulus_checker).
1172
1262
  to receive(:valid_bank_code?).
1173
1263
  with(instance_of(Ibandit::IBAN))
@@ -1177,47 +1267,47 @@ describe Ibandit::IBAN do
1177
1267
 
1178
1268
  it { is_expected.to be(false) }
1179
1269
 
1180
- context 'locale en', locale: :en do
1181
- specify { expect(iban.errors).to include(bank_code: 'is invalid') }
1270
+ context "locale en", locale: :en do
1271
+ specify { expect(iban.errors).to include(bank_code: "is invalid") }
1182
1272
  end
1183
1273
 
1184
- context 'locale fr', locale: :fr do
1185
- specify { expect(iban.errors).to include(bank_code: 'est invalide') }
1274
+ context "locale fr", locale: :fr do
1275
+ specify { expect(iban.errors).to include(bank_code: "est invalide") }
1186
1276
  end
1187
1277
 
1188
- context 'locale de', locale: :de do
1278
+ context "locale de", locale: :de do
1189
1279
  specify do
1190
- expect(iban.errors).to include(bank_code: 'ist nicht gültig')
1280
+ expect(iban.errors).to include(bank_code: "ist nicht gültig")
1191
1281
  end
1192
1282
  end
1193
1283
 
1194
- context 'locale pt', locale: :pt do
1195
- specify { expect(iban.errors).to include(bank_code: 'é inválido') }
1284
+ context "locale pt", locale: :pt do
1285
+ specify { expect(iban.errors).to include(bank_code: "é inválido") }
1196
1286
  end
1197
1287
 
1198
- context 'locale es', locale: :es do
1199
- specify { expect(iban.errors).to include(bank_code: 'es inválido') }
1288
+ context "locale es", locale: :es do
1289
+ specify { expect(iban.errors).to include(bank_code: "es inválido") }
1200
1290
  end
1201
1291
 
1202
- context 'locale it', locale: :it do
1203
- specify { expect(iban.errors).to include(bank_code: 'non è valido') }
1292
+ context "locale it", locale: :it do
1293
+ specify { expect(iban.errors).to include(bank_code: "non è valido") }
1204
1294
  end
1205
1295
 
1206
- context 'locale nl', locale: :nl do
1207
- specify { expect(iban.errors).to include(bank_code: 'is ongeldig') }
1296
+ context "locale nl", locale: :nl do
1297
+ specify { expect(iban.errors).to include(bank_code: "is ongeldig") }
1208
1298
  end
1209
1299
  end
1210
1300
 
1211
- context 'with an invalid branch code' do
1212
- let(:iban_code) { 'GB60BARC20000055779911' }
1213
- before { Ibandit.bic_finder = double(call: 'BARCGB22XXX') }
1301
+ context "with an invalid branch code" do
1302
+ let(:iban_code) { "GB60BARC20000055779911" }
1303
+ before { Ibandit.bic_finder = double(call: "BARCGB22XXX") }
1214
1304
  after { Ibandit.bic_finder = nil }
1215
1305
  before { iban.valid_local_modulus_check? }
1216
1306
  let(:valid_bank_code) { true }
1217
1307
  let(:valid_branch_code) { false }
1218
1308
  let(:valid_account_number) { true }
1219
1309
 
1220
- it 'calls valid_branch_code? with an IBAN object' do
1310
+ it "calls valid_branch_code? with an IBAN object" do
1221
1311
  expect(Ibandit.modulus_checker).
1222
1312
  to receive(:valid_branch_code?).
1223
1313
  with(instance_of(Ibandit::IBAN))
@@ -1227,55 +1317,55 @@ describe Ibandit::IBAN do
1227
1317
 
1228
1318
  it { is_expected.to be(false) }
1229
1319
 
1230
- context 'locale en', locale: :en do
1320
+ context "locale en", locale: :en do
1231
1321
  specify do
1232
- expect(iban.errors).to include(branch_code: 'is invalid')
1322
+ expect(iban.errors).to include(branch_code: "is invalid")
1233
1323
  end
1234
1324
  end
1235
1325
 
1236
- context 'locale fr', locale: :fr do
1326
+ context "locale fr", locale: :fr do
1237
1327
  specify do
1238
- expect(iban.errors).to include(branch_code: 'est invalide')
1328
+ expect(iban.errors).to include(branch_code: "est invalide")
1239
1329
  end
1240
1330
  end
1241
1331
 
1242
- context 'locale de', locale: :de do
1332
+ context "locale de", locale: :de do
1243
1333
  specify do
1244
- expect(iban.errors).to include(branch_code: 'ist nicht gültig')
1334
+ expect(iban.errors).to include(branch_code: "ist nicht gültig")
1245
1335
  end
1246
1336
  end
1247
1337
 
1248
- context 'locale pt', locale: :pt do
1338
+ context "locale pt", locale: :pt do
1249
1339
  specify do
1250
- expect(iban.errors).to include(branch_code: 'é inválido')
1340
+ expect(iban.errors).to include(branch_code: "é inválido")
1251
1341
  end
1252
1342
  end
1253
1343
 
1254
- context 'locale es', locale: :es do
1344
+ context "locale es", locale: :es do
1255
1345
  specify do
1256
- expect(iban.errors).to include(branch_code: 'es inválido')
1346
+ expect(iban.errors).to include(branch_code: "es inválido")
1257
1347
  end
1258
1348
  end
1259
1349
 
1260
- context 'locale it', locale: :it do
1350
+ context "locale it", locale: :it do
1261
1351
  specify do
1262
- expect(iban.errors).to include(branch_code: 'non è valido')
1352
+ expect(iban.errors).to include(branch_code: "non è valido")
1263
1353
  end
1264
1354
  end
1265
1355
 
1266
- context 'locale nl', locale: :nl do
1356
+ context "locale nl", locale: :nl do
1267
1357
  specify do
1268
- expect(iban.errors).to include(branch_code: 'is ongeldig')
1358
+ expect(iban.errors).to include(branch_code: "is ongeldig")
1269
1359
  end
1270
1360
  end
1271
1361
  end
1272
1362
 
1273
- context 'with an invalid account number' do
1363
+ context "with an invalid account number" do
1274
1364
  let(:valid_bank_code) { true }
1275
1365
  let(:valid_branch_code) { true }
1276
1366
  let(:valid_account_number) { false }
1277
1367
 
1278
- it 'calls valid_account_number? with an IBAN object' do
1368
+ it "calls valid_account_number? with an IBAN object" do
1279
1369
  expect(Ibandit.modulus_checker).
1280
1370
  to receive(:valid_account_number?).
1281
1371
  with(instance_of(Ibandit::IBAN))
@@ -1285,141 +1375,141 @@ describe Ibandit::IBAN do
1285
1375
 
1286
1376
  it { is_expected.to be(false) }
1287
1377
 
1288
- context 'locale en', locale: :en do
1378
+ context "locale en", locale: :en do
1289
1379
  specify do
1290
- expect(iban.errors).to include(account_number: 'is invalid')
1380
+ expect(iban.errors).to include(account_number: "is invalid")
1291
1381
  end
1292
1382
  end
1293
1383
 
1294
- context 'locale fr', locale: :fr do
1384
+ context "locale fr", locale: :fr do
1295
1385
  specify do
1296
- expect(iban.errors).to include(account_number: 'est invalide')
1386
+ expect(iban.errors).to include(account_number: "est invalide")
1297
1387
  end
1298
1388
  end
1299
1389
 
1300
- context 'locale de', locale: :de do
1390
+ context "locale de", locale: :de do
1301
1391
  specify do
1302
- expect(iban.errors).to include(account_number: 'ist nicht gültig')
1392
+ expect(iban.errors).to include(account_number: "ist nicht gültig")
1303
1393
  end
1304
1394
  end
1305
1395
 
1306
- context 'locale pt', locale: :pt do
1396
+ context "locale pt", locale: :pt do
1307
1397
  specify do
1308
- expect(iban.errors).to include(account_number: 'é inválido')
1398
+ expect(iban.errors).to include(account_number: "é inválido")
1309
1399
  end
1310
1400
  end
1311
1401
 
1312
- context 'locale es', locale: :es do
1402
+ context "locale es", locale: :es do
1313
1403
  specify do
1314
- expect(iban.errors).to include(account_number: 'es inválido')
1404
+ expect(iban.errors).to include(account_number: "es inválido")
1315
1405
  end
1316
1406
  end
1317
1407
 
1318
- context 'locale it', locale: :it do
1408
+ context "locale it", locale: :it do
1319
1409
  specify do
1320
- expect(iban.errors).to include(account_number: 'non è valido')
1410
+ expect(iban.errors).to include(account_number: "non è valido")
1321
1411
  end
1322
1412
  end
1323
1413
 
1324
- context 'locale nl', locale: :nl do
1414
+ context "locale nl", locale: :nl do
1325
1415
  specify do
1326
- expect(iban.errors).to include(account_number: 'is ongeldig')
1416
+ expect(iban.errors).to include(account_number: "is ongeldig")
1327
1417
  end
1328
1418
  end
1329
1419
  end
1330
1420
  end
1331
1421
 
1332
- describe 'supports_iban_determination?' do
1422
+ describe "supports_iban_determination?" do
1333
1423
  subject { iban.supports_iban_determination? }
1334
1424
 
1335
- context 'with unsupported account details' do
1425
+ context "with unsupported account details" do
1336
1426
  let(:arg) do
1337
1427
  {
1338
- country_code: 'DE',
1339
- bank_code: '20000000',
1340
- account_number: '7955791111'
1428
+ country_code: "DE",
1429
+ bank_code: "20000000",
1430
+ account_number: "7955791111",
1341
1431
  }
1342
1432
  end
1343
1433
 
1344
1434
  it { is_expected.to eq(false) }
1345
1435
 
1346
- context 'locale en', locale: :en do
1436
+ context "locale en", locale: :en do
1347
1437
  specify do
1348
1438
  iban.supports_iban_determination?
1349
1439
  expect(iban.errors).
1350
- to include(account_number: 'does not support payments')
1440
+ to include(account_number: "does not support payments")
1351
1441
  end
1352
1442
  end
1353
1443
 
1354
- context 'locale fr', locale: :fr do
1444
+ context "locale fr", locale: :fr do
1355
1445
  specify do
1356
1446
  iban.supports_iban_determination?
1357
1447
  expect(iban.errors).
1358
- to include(account_number: 'ne supporte pas les paiements')
1448
+ to include(account_number: "ne supporte pas les paiements")
1359
1449
  end
1360
1450
  end
1361
1451
 
1362
- context 'locale de', locale: :de do
1452
+ context "locale de", locale: :de do
1363
1453
  specify do
1364
1454
  iban.supports_iban_determination?
1365
1455
  expect(iban.errors).
1366
- to include(account_number: 'nicht Zahlungsverkehr unterstützt')
1456
+ to include(account_number: "nicht Zahlungsverkehr unterstützt")
1367
1457
  end
1368
1458
  end
1369
1459
 
1370
- context 'locale pt', locale: :pt do
1460
+ context "locale pt", locale: :pt do
1371
1461
  specify do
1372
1462
  iban.supports_iban_determination?
1373
1463
  expect(iban.errors).
1374
- to include(account_number: 'não suporta pagamentos')
1464
+ to include(account_number: "não suporta pagamentos")
1375
1465
  end
1376
1466
  end
1377
1467
 
1378
- context 'locale es', locale: :es do
1468
+ context "locale es", locale: :es do
1379
1469
  specify do
1380
1470
  iban.supports_iban_determination?
1381
1471
  expect(iban.errors).
1382
- to include(account_number: 'no admite pagos')
1472
+ to include(account_number: "no admite pagos")
1383
1473
  end
1384
1474
  end
1385
1475
 
1386
- context 'locale it', locale: :it do
1476
+ context "locale it", locale: :it do
1387
1477
  specify do
1388
1478
  iban.supports_iban_determination?
1389
1479
  expect(iban.errors).
1390
- to include(account_number: 'non supporta pagamenti')
1480
+ to include(account_number: "non supporta pagamenti")
1391
1481
  end
1392
1482
  end
1393
1483
 
1394
- context 'locale nl', locale: :nl do
1484
+ context "locale nl", locale: :nl do
1395
1485
  specify do
1396
1486
  iban.supports_iban_determination?
1397
1487
  expect(iban.errors).
1398
- to include(account_number: 'ondersteunt geen betalingen')
1488
+ to include(account_number: "ondersteunt geen betalingen")
1399
1489
  end
1400
1490
  end
1401
1491
  end
1402
1492
  end
1403
1493
 
1404
- describe 'valid_swedish_details?' do
1494
+ describe "valid_swedish_details?" do
1405
1495
  subject { iban.valid_swedish_details? }
1406
1496
 
1407
- context 'with SWIFT details' do
1408
- context 'with an account number that is too long' do
1497
+ context "with SWIFT details" do
1498
+ context "with an account number that is too long" do
1409
1499
  let(:arg) do
1410
1500
  {
1411
- country_code: 'SE',
1412
- bank_code: '500',
1413
- account_number: '00000543910240391'
1501
+ country_code: "SE",
1502
+ bank_code: "500",
1503
+ account_number: "00000543910240391",
1414
1504
  }
1415
1505
  end
1416
1506
 
1417
1507
  it { is_expected.to eq(false) }
1418
1508
 
1419
- context 'locale en', locale: :en do
1509
+ context "locale en", locale: :en do
1420
1510
  specify do
1421
1511
  iban.valid_swedish_details?
1422
- expect(iban.errors).to eq(account_number: 'is invalid')
1512
+ expect(iban.errors).to eq(account_number: "is invalid")
1423
1513
  end
1424
1514
  end
1425
1515
  end
@@ -1427,89 +1517,89 @@ describe Ibandit::IBAN do
1427
1517
  context "with an account number that doesn't have a bank code" do
1428
1518
  let(:arg) do
1429
1519
  {
1430
- country_code: 'SE',
1520
+ country_code: "SE",
1431
1521
  bank_code: nil,
1432
- account_number: '00000000000010011'
1522
+ account_number: "00000000000010011",
1433
1523
  }
1434
1524
  end
1435
1525
 
1436
1526
  it { is_expected.to eq(false) }
1437
1527
 
1438
- context 'locale en', locale: :en do
1528
+ context "locale en", locale: :en do
1439
1529
  specify do
1440
1530
  iban.valid?
1441
- expect(iban.errors).to include(account_number: 'is invalid')
1531
+ expect(iban.errors).to include(account_number: "is invalid")
1442
1532
  expect(iban.errors).to_not include(:bank_code)
1443
1533
  end
1444
1534
  end
1445
1535
  end
1446
1536
 
1447
- context 'with a bank code that does not match' do
1537
+ context "with a bank code that does not match" do
1448
1538
  let(:arg) do
1449
1539
  {
1450
- country_code: 'SE',
1451
- bank_code: '902',
1452
- account_number: '00000054391024039'
1540
+ country_code: "SE",
1541
+ bank_code: "902",
1542
+ account_number: "00000054391024039",
1453
1543
  }
1454
1544
  end
1455
1545
 
1456
1546
  it { is_expected.to eq(false) }
1457
1547
 
1458
- context 'locale en', locale: :en do
1548
+ context "locale en", locale: :en do
1459
1549
  specify do
1460
1550
  iban.valid_swedish_details?
1461
- expect(iban.errors).to eq(account_number: 'is invalid')
1551
+ expect(iban.errors).to eq(account_number: "is invalid")
1462
1552
  end
1463
1553
  end
1464
1554
  end
1465
1555
  end
1466
1556
 
1467
- context 'with local details' do
1468
- context 'with good details' do
1557
+ context "with local details" do
1558
+ context "with good details" do
1469
1559
  let(:arg) do
1470
1560
  {
1471
- country_code: 'SE',
1472
- account_number: '5439-0240391'
1561
+ country_code: "SE",
1562
+ account_number: "5439-0240391",
1473
1563
  }
1474
1564
  end
1475
1565
 
1476
1566
  it { is_expected.to eq(true) }
1477
1567
  end
1478
1568
 
1479
- context 'with a clearing code that is too long' do
1569
+ context "with a clearing code that is too long" do
1480
1570
  let(:arg) do
1481
1571
  {
1482
- country_code: 'SE',
1483
- branch_code: '54391',
1484
- account_number: '0240391'
1572
+ country_code: "SE",
1573
+ branch_code: "54391",
1574
+ account_number: "0240391",
1485
1575
  }
1486
1576
  end
1487
1577
 
1488
1578
  it { is_expected.to eq(false) }
1489
1579
 
1490
- context 'locale en', locale: :en do
1580
+ context "locale en", locale: :en do
1491
1581
  specify do
1492
1582
  iban.valid_swedish_details?
1493
- expect(iban.errors).to eq(branch_code: 'is invalid')
1583
+ expect(iban.errors).to eq(branch_code: "is invalid")
1494
1584
  end
1495
1585
  end
1496
1586
  end
1497
1587
 
1498
- context 'with a serial number that is too long' do
1588
+ context "with a serial number that is too long" do
1499
1589
  let(:arg) do
1500
1590
  {
1501
- country_code: 'SE',
1502
- branch_code: '5439',
1503
- account_number: '024039111'
1591
+ country_code: "SE",
1592
+ branch_code: "5439",
1593
+ account_number: "024039111",
1504
1594
  }
1505
1595
  end
1506
1596
 
1507
1597
  it { is_expected.to eq(false) }
1508
1598
 
1509
- context 'locale en', locale: :en do
1599
+ context "locale en", locale: :en do
1510
1600
  specify do
1511
1601
  iban.valid_swedish_details?
1512
- expect(iban.errors).to eq(account_number: 'is invalid')
1602
+ expect(iban.errors).to eq(account_number: "is invalid")
1513
1603
  end
1514
1604
  end
1515
1605
  end
@@ -1517,8 +1607,8 @@ describe Ibandit::IBAN do
1517
1607
  end
1518
1608
  end
1519
1609
 
1520
- describe '#valid?' do
1521
- describe 'validations called' do
1610
+ describe "#valid?" do
1611
+ describe "validations called" do
1522
1612
  after { iban.valid? }
1523
1613
 
1524
1614
  specify { expect(iban).to receive(:valid_country_code?).at_least(1) }
@@ -1529,381 +1619,666 @@ describe Ibandit::IBAN do
1529
1619
  specify { expect(iban).to receive(:valid_format?).at_least(1) }
1530
1620
  specify { expect(iban).to receive(:valid_bank_code_format?).at_least(1) }
1531
1621
 
1532
- it 'validates the branch code length' do
1622
+ it "validates the branch code length" do
1533
1623
  expect(iban).to receive(:valid_branch_code_length?).at_least(1)
1534
1624
  end
1535
1625
 
1536
- it 'validates the account number length' do
1626
+ it "validates the account number length" do
1537
1627
  expect(iban).to receive(:valid_account_number_length?).at_least(1)
1538
1628
  end
1539
1629
 
1540
- it 'validates the branch code format' do
1630
+ it "validates the branch code format" do
1541
1631
  expect(iban).to receive(:valid_branch_code_format?).at_least(1)
1542
1632
  end
1543
1633
 
1544
- it 'validates the account number format' do
1634
+ it "validates the account number format" do
1545
1635
  expect(iban).to receive(:valid_account_number_format?).at_least(1)
1546
1636
  end
1547
1637
 
1548
- it 'runs local modulus checks' do
1638
+ it "runs local modulus checks" do
1549
1639
  expect(iban).to receive(:valid_local_modulus_check?).at_least(1)
1550
1640
  end
1551
1641
 
1552
- it 'runs country specific checks' do
1642
+ it "runs country specific checks" do
1553
1643
  expect(iban).to receive(:passes_country_specific_checks?).at_least(1)
1554
1644
  end
1555
1645
  end
1556
1646
 
1557
- context 'for a valid Albanian IBAN' do
1558
- let(:iban_code) { 'AL47 2121 1009 0000 0002 3569 8741' }
1647
+ context "for a valid Albanian IBAN" do
1648
+ let(:iban_code) { "AL47 2121 1009 0000 0002 3569 8741" }
1559
1649
  it { is_expected.to be_valid }
1560
1650
  end
1561
1651
 
1562
- context 'for a valid Andorran IBAN' do
1563
- let(:iban_code) { 'AD12 0001 2030 2003 5910 0100' }
1652
+ context "for a valid Andorran IBAN" do
1653
+ let(:iban_code) { "AD12 0001 2030 2003 5910 0100" }
1564
1654
  it { is_expected.to be_valid }
1565
1655
  end
1566
1656
 
1567
- context 'for a valid Austrian IBAN' do
1568
- let(:iban_code) { 'AT61 1904 3002 3457 3201' }
1657
+ context "for a valid Austrian IBAN" do
1658
+ let(:iban_code) { "AT61 1904 3002 3457 3201" }
1569
1659
  it { is_expected.to be_valid }
1570
1660
  end
1571
1661
 
1572
- context 'for a valid Azerbaijanian IBAN' do
1573
- let(:iban_code) { 'AZ21 NABZ 0000 0000 1370 1000 1944' }
1662
+ context "for a valid Australian pseudo-IBAN" do
1663
+ let(:iban_code) { "AUZZ123456123456789" }
1664
+ it { is_expected.to be_valid }
1665
+ end
1666
+
1667
+ context "for an invalid Australian pseudo-IBAN" do
1668
+ let(:iban_code) { "AU99123456123456789" }
1669
+ it { is_expected.to_not be_valid }
1670
+ end
1671
+
1672
+ context "for a valid Azerbaijanian IBAN" do
1673
+ let(:iban_code) { "AZ21 NABZ 0000 0000 1370 1000 1944" }
1574
1674
  it { is_expected.to be_valid }
1575
1675
  end
1576
1676
 
1577
- context 'for a valid Bahrainian IBAN' do
1578
- let(:iban_code) { 'BH67 BMAG 0000 1299 1234 56' }
1677
+ context "for an invalid Azerbaijanian IBAN" do
1678
+ let(:iban_code) { "AZ91 NABZ 0000 0000 1370 1000 1944" }
1679
+ it { is_expected.to_not be_valid }
1680
+ end
1681
+
1682
+ context "for a valid Bahrainian IBAN" do
1683
+ let(:iban_code) { "BH67 BMAG 0000 1299 1234 56" }
1579
1684
  it { is_expected.to be_valid }
1580
1685
  end
1581
1686
 
1582
- context 'for a valid Belgian IBAN' do
1583
- let(:iban_code) { 'BE62 5100 0754 7061' }
1687
+ context "for an invalid Bahrainian IBAN" do
1688
+ let(:iban_code) { "BH97 BMAG 0000 1299 1234 56" }
1689
+ it { is_expected.to_not be_valid }
1690
+ end
1691
+
1692
+ context "for a valid Belgian IBAN" do
1693
+ let(:iban_code) { "BE62 5100 0754 7061" }
1584
1694
  it { is_expected.to be_valid }
1585
1695
  end
1586
1696
 
1587
- context 'for a valid Bosnian IBAN' do
1588
- let(:iban_code) { 'BA39 1290 0794 0102 8494' }
1697
+ context "for an invalid Belgian IBAN" do
1698
+ let(:iban_code) { "BE92 5100 0754 7061" }
1699
+ it { is_expected.to_not be_valid }
1700
+ end
1701
+
1702
+ context "for a valid Bosnian IBAN" do
1703
+ let(:iban_code) { "BA39 1290 0794 0102 8494" }
1589
1704
  it { is_expected.to be_valid }
1590
1705
  end
1591
1706
 
1592
- context 'for a valid Bulgarian IBAN' do
1593
- let(:iban_code) { 'BG80 BNBG 9661 1020 3456 78' }
1707
+ context "for an invalid Bosnian IBAN" do
1708
+ let(:iban_code) { "BA99 1290 0794 0102 8494" }
1709
+ it { is_expected.to_not be_valid }
1710
+ end
1711
+
1712
+ context "for a valid Bulgarian IBAN" do
1713
+ let(:iban_code) { "BG80 BNBG 9661 1020 3456 78" }
1594
1714
  it { is_expected.to be_valid }
1595
1715
  end
1596
1716
 
1597
- context 'for a valid Croatian IBAN' do
1598
- let(:iban_code) { 'HR12 1001 0051 8630 0016 0' }
1717
+ context "for an invalid Bulgarian IBAN" do
1718
+ let(:iban_code) { "BG90 BNBG 9661 1020 3456 78" }
1719
+ it { is_expected.to_not be_valid }
1720
+ end
1721
+
1722
+ context "for a valid Croatian IBAN" do
1723
+ let(:iban_code) { "HR12 1001 0051 8630 0016 0" }
1599
1724
  it { is_expected.to be_valid }
1600
1725
  end
1601
1726
 
1602
- context 'for a valid Cypriot IBAN' do
1603
- let(:iban_code) { 'CY17 0020 0128 0000 0012 0052 7600' }
1727
+ context "for an invalid Croatian IBAN" do
1728
+ let(:iban_code) { "HR92 1001 0051 8630 0016 0" }
1729
+ it { is_expected.to_not be_valid }
1730
+ end
1731
+
1732
+ context "for a valid Cypriot IBAN" do
1733
+ let(:iban_code) { "CY17 0020 0128 0000 0012 0052 7600" }
1604
1734
  it { is_expected.to be_valid }
1605
1735
  end
1606
1736
 
1607
- context 'for a valid Czech IBAN' do
1608
- let(:iban_code) { 'CZ65 0800 0000 1920 0014 5399' }
1737
+ context "for an invalid Cypriot IBAN" do
1738
+ let(:iban_code) { "CY97 0020 0128 0000 0012 0052 7600" }
1739
+ it { is_expected.to_not be_valid }
1740
+ end
1741
+
1742
+ context "for a valid Czech IBAN" do
1743
+ let(:iban_code) { "CZ65 0800 0000 1920 0014 5399" }
1609
1744
  it { is_expected.to be_valid }
1610
1745
  end
1611
1746
 
1612
- context 'for a valid Danish IBAN' do
1613
- let(:iban_code) { 'DK50 0040 0440 1162 43' }
1747
+ context "for an invalid Czech IBAN" do
1748
+ let(:iban_code) { "CZ95 0800 0000 1920 0014 5399" }
1749
+ it { is_expected.to_not be_valid }
1750
+ end
1751
+
1752
+ context "for a valid Danish IBAN" do
1753
+ let(:iban_code) { "DK50 0040 0440 1162 43" }
1614
1754
  it { is_expected.to be_valid }
1615
1755
  end
1616
1756
 
1617
- context 'for a valid Estonian IBAN' do
1618
- let(:iban_code) { 'EE38 2200 2210 2014 5685' }
1757
+ context "for an invalid Danish IBAN" do
1758
+ let(:iban_code) { "DK90 0040 0440 1162 43" }
1759
+ it { is_expected.to_not be_valid }
1760
+ end
1761
+
1762
+ context "for a valid Estonian IBAN" do
1763
+ let(:iban_code) { "EE38 2200 2210 2014 5685" }
1619
1764
  it { is_expected.to be_valid }
1620
1765
  end
1621
1766
 
1622
- context 'for a valid Faroe Islands IBAN' do
1623
- let(:iban_code) { 'FO97 5432 0388 8999 44' }
1767
+ context "for an invalid Estonian IBAN" do
1768
+ let(:iban_code) { "EE98 2200 2210 2014 5685" }
1769
+ it { is_expected.to_not be_valid }
1770
+ end
1771
+
1772
+ context "for a valid Faroe Islands IBAN" do
1773
+ let(:iban_code) { "FO97 5432 0388 8999 44" }
1624
1774
  it { is_expected.to be_valid }
1625
1775
  end
1626
1776
 
1627
- context 'for a valid Finnish IBAN' do
1628
- let(:iban_code) { 'FI21 1234 5600 0007 85' }
1777
+ context "for an invalid Faroe Islands IBAN" do
1778
+ let(:iban_code) { "FO27 5432 0388 8999 44" }
1779
+ it { is_expected.to_not be_valid }
1780
+ end
1781
+
1782
+ context "for a valid Finnish IBAN" do
1783
+ let(:iban_code) { "FI21 1234 5600 0007 85" }
1629
1784
  it { is_expected.to be_valid }
1630
1785
  end
1631
1786
 
1632
- context 'for a valid French IBAN' do
1633
- let(:iban_code) { 'FR14 2004 1010 0505 0001 3M02 606' }
1787
+ context "for an invalid Finnish IBAN" do
1788
+ let(:iban_code) { "FI91 1234 5600 0007 85" }
1789
+ it { is_expected.to_not be_valid }
1790
+ end
1791
+
1792
+ context "for a valid French IBAN" do
1793
+ let(:iban_code) { "FR14 2004 1010 0505 0001 3M02 606" }
1634
1794
  it { is_expected.to be_valid }
1635
1795
  end
1636
1796
 
1637
- context 'for a valid Georgian IBAN' do
1638
- let(:iban_code) { 'GE29 NB00 0000 0101 9049 17' }
1797
+ context "for an invalid French IBAN" do
1798
+ let(:iban_code) { "FR94 2004 1010 0505 0001 3M02 606" }
1799
+ it { is_expected.to_not be_valid }
1800
+ end
1801
+
1802
+ context "for a valid Georgian IBAN" do
1803
+ let(:iban_code) { "GE29 NB00 0000 0101 9049 17" }
1639
1804
  it { is_expected.to be_valid }
1640
1805
  end
1641
1806
 
1642
- context 'for a valid German IBAN' do
1643
- let(:iban_code) { 'DE89 3704 0044 0532 0130 00' }
1807
+ context "for an invalid Georgian IBAN" do
1808
+ let(:iban_code) { "GE99 NB00 0000 0101 9049 17" }
1809
+ it { is_expected.to_not be_valid }
1810
+ end
1811
+
1812
+ context "for a valid German IBAN" do
1813
+ let(:iban_code) { "DE89 3704 0044 0532 0130 00" }
1644
1814
  it { is_expected.to be_valid }
1645
1815
  end
1646
1816
 
1647
- context 'for a valid Gibraltan IBAN' do
1648
- let(:iban_code) { 'GI75 NWBK 0000 0000 7099 453' }
1817
+ context "for an invalid German IBAN" do
1818
+ let(:iban_code) { "DE99 3704 0044 0532 0130 00" }
1819
+ it { is_expected.to_not be_valid }
1820
+ end
1821
+
1822
+ context "for a valid Gibraltan IBAN" do
1823
+ let(:iban_code) { "GI75 NWBK 0000 0000 7099 453" }
1649
1824
  it { is_expected.to be_valid }
1650
1825
  end
1651
1826
 
1652
- context 'for a valid Greek IBAN' do
1653
- let(:iban_code) { 'GR16 0110 1250 0000 0001 2300 695' }
1827
+ context "for an invalid Gibraltan IBAN" do
1828
+ let(:iban_code) { "GI95 NWBK 0000 0000 7099 453" }
1829
+ it { is_expected.to_not be_valid }
1830
+ end
1831
+
1832
+ context "for a valid Greek IBAN" do
1833
+ let(:iban_code) { "GR16 0110 1250 0000 0001 2300 695" }
1654
1834
  it { is_expected.to be_valid }
1655
1835
  end
1656
1836
 
1657
- context 'for a valid Greenland IBAN' do
1658
- let(:iban_code) { 'GL56 0444 9876 5432 10' }
1837
+ context "for an invalid Greek IBAN" do
1838
+ let(:iban_code) { "GR96 0110 1250 0000 0001 2300 695" }
1839
+ it { is_expected.to_not be_valid }
1840
+ end
1841
+
1842
+ context "for a valid Greenland IBAN" do
1843
+ let(:iban_code) { "GL56 0444 9876 5432 10" }
1659
1844
  it { is_expected.to be_valid }
1660
1845
  end
1661
1846
 
1662
- context 'for a valid Hungarian IBAN' do
1663
- let(:iban_code) { 'HU42 1177 3016 1111 1018 0000 0000' }
1847
+ context "for an invalid Greenland IBAN" do
1848
+ let(:iban_code) { "GL96 0444 9876 5432 10" }
1849
+ it { is_expected.to_not be_valid }
1850
+ end
1851
+
1852
+ context "for a valid Hungarian IBAN" do
1853
+ let(:iban_code) { "HU42 1177 3016 1111 1018 0000 0000" }
1664
1854
  it { is_expected.to be_valid }
1665
1855
  end
1666
1856
 
1667
- context 'for a valid Icelandic IBAN' do
1668
- let(:iban_code) { 'IS14 0159 2600 7654 5510 7303 39' }
1857
+ context "for an invalid Hungarian IBAN" do
1858
+ let(:iban_code) { "HU92 1177 3016 1111 1018 0000 0000" }
1859
+ it { is_expected.to_not be_valid }
1860
+ end
1861
+
1862
+ context "for a valid Icelandic IBAN" do
1863
+ let(:iban_code) { "IS14 0159 2600 7654 5510 7303 39" }
1669
1864
  it { is_expected.to be_valid }
1670
1865
  end
1671
1866
 
1672
- context 'for a valid Irish IBAN' do
1673
- let(:iban_code) { 'IE29 AIBK 9311 5212 3456 78' }
1867
+ context "for an invalid Icelandic IBAN" do
1868
+ let(:iban_code) { "IS94 0159 2600 7654 5510 7303 39" }
1869
+ it { is_expected.to_not be_valid }
1870
+ end
1871
+
1872
+ context "for a valid Irish IBAN" do
1873
+ let(:iban_code) { "IE29 AIBK 9311 5212 3456 78" }
1674
1874
  it { is_expected.to be_valid }
1675
1875
  end
1676
1876
 
1677
- context 'for a valid Israeli IBAN' do
1678
- let(:iban_code) { 'IL62 0108 0000 0009 9999 999' }
1877
+ context "for an invalid Irish IBAN" do
1878
+ let(:iban_code) { "IE99 AIBK 9311 5212 3456 78" }
1879
+ it { is_expected.to_not be_valid }
1880
+ end
1881
+
1882
+ context "for a valid Israeli IBAN" do
1883
+ let(:iban_code) { "IL62 0108 0000 0009 9999 999" }
1679
1884
  it { is_expected.to be_valid }
1680
1885
  end
1681
1886
 
1682
- context 'for a valid Italian IBAN' do
1683
- let(:iban_code) { 'IT40 S054 2811 1010 0000 0123 456' }
1887
+ context "for an invalid Israeli IBAN" do
1888
+ let(:iban_code) { "IL92 0108 0000 0009 9999 999" }
1889
+ it { is_expected.to_not be_valid }
1890
+ end
1891
+
1892
+ context "for a valid Italian IBAN" do
1893
+ let(:iban_code) { "IT40 S054 2811 1010 0000 0123 456" }
1684
1894
  it { is_expected.to be_valid }
1685
1895
  end
1686
1896
 
1687
- context 'for a valid Jordanian IBAN' do
1688
- let(:iban_code) { 'JO94 CBJO 0010 0000 0000 0131 0003 02' }
1897
+ context "for an invalid Italian IBAN" do
1898
+ let(:iban_code) { "IT90 S054 2811 1010 0000 0123 456" }
1899
+ it { is_expected.to_not be_valid }
1900
+ end
1901
+
1902
+ context "for a valid Jordanian IBAN" do
1903
+ let(:iban_code) { "JO94 CBJO 0010 0000 0000 0131 0003 02" }
1689
1904
  it { is_expected.to be_valid }
1690
1905
  end
1691
1906
 
1692
- context 'for a valid Kuwaiti IBAN' do
1693
- let(:iban_code) { 'KW81 CBKU 0000 0000 0000 1234 5601 01' }
1907
+ context "for an invalid Jordanian IBAN" do
1908
+ let(:iban_code) { "JO24 CBJO 0010 0000 0000 0131 0003 02" }
1909
+ it { is_expected.to_not be_valid }
1910
+ end
1911
+
1912
+ context "for a valid Kuwaiti IBAN" do
1913
+ let(:iban_code) { "KW81 CBKU 0000 0000 0000 1234 5601 01" }
1694
1914
  it { is_expected.to be_valid }
1695
1915
  end
1696
1916
 
1697
- context 'for a valid Latvian IBAN' do
1698
- let(:iban_code) { 'LV80 BANK 0000 4351 9500 1' }
1917
+ context "for an invalid Kuwaiti IBAN" do
1918
+ let(:iban_code) { "KW91 CBKU 0000 0000 0000 1234 5601 01" }
1919
+ it { is_expected.to_not be_valid }
1920
+ end
1921
+
1922
+ context "for a valid Latvian IBAN" do
1923
+ let(:iban_code) { "LV80 BANK 0000 4351 9500 1" }
1699
1924
  it { is_expected.to be_valid }
1700
1925
  end
1701
1926
 
1702
- context 'for a valid Lebanese IBAN' do
1703
- let(:iban_code) { 'LB62 0999 0000 0001 0019 0122 9114' }
1927
+ context "for an invalid Latvian IBAN" do
1928
+ let(:iban_code) { "LV90 BANK 0000 4351 9500 1" }
1929
+ it { is_expected.to_not be_valid }
1930
+ end
1931
+
1932
+ context "for a valid Lebanese IBAN" do
1933
+ let(:iban_code) { "LB62 0999 0000 0001 0019 0122 9114" }
1704
1934
  it { is_expected.to be_valid }
1705
1935
  end
1706
1936
 
1707
- context 'for a valid Liechtensteinian IBAN' do
1708
- let(:iban_code) { 'LI21 0881 0000 2324 013A A' }
1937
+ context "for an invalid Lebanese IBAN" do
1938
+ let(:iban_code) { "LB92 0999 0000 0001 0019 0122 9114" }
1939
+ it { is_expected.to_not be_valid }
1940
+ end
1941
+
1942
+ context "for a valid Liechtensteinian IBAN" do
1943
+ let(:iban_code) { "LI21 0881 0000 2324 013A A" }
1709
1944
  it { is_expected.to be_valid }
1710
1945
  end
1711
1946
 
1712
- context 'for a valid Lithuanian IBAN' do
1713
- let(:iban_code) { 'LT12 1000 0111 0100 1000' }
1947
+ context "for an invalid Liechtensteinian IBAN" do
1948
+ let(:iban_code) { "LI91 0881 0000 2324 013A A" }
1949
+ it { is_expected.to_not be_valid }
1950
+ end
1951
+
1952
+ context "for a valid Lithuanian IBAN" do
1953
+ let(:iban_code) { "LT12 1000 0111 0100 1000" }
1714
1954
  it { is_expected.to be_valid }
1715
1955
  end
1716
1956
 
1717
- context 'for a valid Luxembourgian IBAN' do
1718
- let(:iban_code) { 'LU28 0019 4006 4475 0000' }
1957
+ context "for an invalid Lithuanian IBAN" do
1958
+ let(:iban_code) { "LT92 1000 0111 0100 1000" }
1959
+ it { is_expected.to_not be_valid }
1960
+ end
1961
+
1962
+ context "for a valid Luxembourgian IBAN" do
1963
+ let(:iban_code) { "LU28 0019 4006 4475 0000" }
1719
1964
  it { is_expected.to be_valid }
1720
1965
  end
1721
1966
 
1722
- context 'for a valid Macedonian IBAN' do
1723
- let(:iban_code) { 'MK072 5012 0000 0589 84' }
1967
+ context "for an invalid Luxembourgian IBAN" do
1968
+ let(:iban_code) { "LU98 0019 4006 4475 0000" }
1969
+ it { is_expected.to_not be_valid }
1970
+ end
1971
+
1972
+ context "for a valid Macedonian IBAN" do
1973
+ let(:iban_code) { "MK072 5012 0000 0589 84" }
1724
1974
  it { is_expected.to be_valid }
1725
1975
  end
1726
1976
 
1727
- context 'for a valid Maltese IBAN' do
1728
- let(:iban_code) { 'MT84 MALT 0110 0001 2345 MTLC AST0 01S' }
1977
+ context "for an invalid Macedonian IBAN" do
1978
+ let(:iban_code) { "MK972 5012 0000 0589 84" }
1979
+ it { is_expected.to_not be_valid }
1980
+ end
1981
+
1982
+ context "for a valid Maltese IBAN" do
1983
+ let(:iban_code) { "MT84 MALT 0110 0001 2345 MTLC AST0 01S" }
1729
1984
  it { is_expected.to be_valid }
1730
1985
  end
1731
1986
 
1732
- context 'for a valid Maurititanian IBAN' do
1733
- let(:iban_code) { 'MU17 BOMM 0101 1010 3030 0200 000M UR' }
1987
+ context "for an invalid Maltese IBAN" do
1988
+ let(:iban_code) { "MT94 MALT 0110 0001 2345 MTLC AST0 01S" }
1989
+ it { is_expected.to_not be_valid }
1990
+ end
1991
+
1992
+ context "for a valid Maurititanian IBAN" do
1993
+ let(:iban_code) { "MU17 BOMM 0101 1010 3030 0200 000M UR" }
1734
1994
  it { is_expected.to be_valid }
1735
1995
  end
1736
1996
 
1737
- context 'for a valid Moldovan IBAN' do
1738
- let(:iban_code) { 'MD24 AG00 0225 1000 1310 4168' }
1997
+ context "for an invalid Maurititanian IBAN" do
1998
+ let(:iban_code) { "MU97 BOMM 0101 1010 3030 0200 000M UR" }
1999
+ it { is_expected.to_not be_valid }
2000
+ end
2001
+
2002
+ context "for a valid Moldovan IBAN" do
2003
+ let(:iban_code) { "MD24 AG00 0225 1000 1310 4168" }
1739
2004
  it { is_expected.to be_valid }
1740
2005
  end
1741
2006
 
1742
- context 'for a valid Monocan IBAN' do
1743
- let(:iban_code) { 'MC93 2005 2222 1001 1223 3M44 555' }
2007
+ context "for an invalid Moldovan IBAN" do
2008
+ let(:iban_code) { "MD94 AG00 0225 1000 1310 4168" }
2009
+ it { is_expected.to_not be_valid }
2010
+ end
2011
+
2012
+ context "for a valid Monocan IBAN" do
2013
+ let(:iban_code) { "MC93 2005 2222 1001 1223 3M44 555" }
1744
2014
  it { is_expected.to be_valid }
1745
2015
  end
1746
2016
 
1747
- context 'for a valid Montenegrian IBAN' do
1748
- let(:iban_code) { 'ME25 5050 0001 2345 6789 51' }
2017
+ context "for an invalid Monocan IBAN" do
2018
+ let(:iban_code) { "MC23 2005 2222 1001 1223 3M44 555" }
2019
+ it { is_expected.to_not be_valid }
2020
+ end
2021
+
2022
+ context "for a valid Montenegrian IBAN" do
2023
+ let(:iban_code) { "ME25 5050 0001 2345 6789 51" }
1749
2024
  it { is_expected.to be_valid }
1750
2025
  end
1751
2026
 
1752
- context 'for a valid Dutch IBAN' do
1753
- let(:iban_code) { 'NL39 RABO 0300 0652 64' }
2027
+ context "for an invalid Montenegrian IBAN" do
2028
+ let(:iban_code) { "ME95 5050 0001 2345 6789 51" }
2029
+ it { is_expected.to_not be_valid }
2030
+ end
2031
+
2032
+ context "for a valid Dutch IBAN" do
2033
+ let(:iban_code) { "NL39 RABO 0300 0652 64" }
1754
2034
  it { is_expected.to be_valid }
1755
2035
  end
1756
2036
 
1757
- context 'for a valid Norwegian IBAN' do
1758
- let(:iban_code) { 'NO93 8601 1117 947' }
2037
+ context "for an invalid Dutch IBAN" do
2038
+ let(:iban_code) { "NL99 RABO 0300 0652 64" }
2039
+ it { is_expected.to_not be_valid }
2040
+ end
2041
+
2042
+ context "for a valid Norwegian IBAN" do
2043
+ let(:iban_code) { "NO93 8601 1117 947" }
1759
2044
  it { is_expected.to be_valid }
1760
2045
  end
1761
2046
 
1762
- context 'for a valid Pakistani IBAN' do
1763
- let(:iban_code) { 'PK36 SCBL 0000 0011 2345 6702' }
2047
+ context "for an invalid Norwegian IBAN" do
2048
+ let(:iban_code) { "NO23 8601 1117 947" }
2049
+ it { is_expected.to_not be_valid }
2050
+ end
2051
+
2052
+ context "for a valid Pakistani IBAN" do
2053
+ let(:iban_code) { "PK36 SCBL 0000 0011 2345 6702" }
1764
2054
  it { is_expected.to be_valid }
1765
2055
  end
1766
2056
 
1767
- context 'for a valid Polish IBAN' do
1768
- let(:iban_code) { 'PL60 1020 1026 0000 0422 7020 1111' }
2057
+ context "for an invalid Pakistani IBAN" do
2058
+ let(:iban_code) { "PK96 SCBL 0000 0011 2345 6702" }
2059
+ it { is_expected.to_not be_valid }
2060
+ end
2061
+
2062
+ context "for a valid Polish IBAN" do
2063
+ let(:iban_code) { "PL60 1020 1026 0000 0422 7020 1111" }
1769
2064
  it { is_expected.to be_valid }
1770
2065
  end
1771
2066
 
1772
- context 'for a valid Potuguese IBAN' do
1773
- let(:iban_code) { 'PT50 0002 0123 1234 5678 9015 4' }
2067
+ context "for an invalid Polish IBAN" do
2068
+ let(:iban_code) { "PL90 1020 1026 0000 0422 7020 1111" }
2069
+ it { is_expected.to_not be_valid }
2070
+ end
2071
+
2072
+ context "for a valid Potuguese IBAN" do
2073
+ let(:iban_code) { "PT50 0002 0123 1234 5678 9015 4" }
1774
2074
  it { is_expected.to be_valid }
1775
2075
  end
1776
2076
 
1777
- context 'for a valid Qatari IBAN' do
1778
- let(:iban_code) { 'QA58 DOHB 0000 1234 5678 90AB CDEF G' }
2077
+ context "for an invalid Potuguese IBAN" do
2078
+ let(:iban_code) { "PT90 0002 0123 1234 5678 9015 4" }
2079
+ it { is_expected.to_not be_valid }
2080
+ end
2081
+
2082
+ context "for a valid Qatari IBAN" do
2083
+ let(:iban_code) { "QA58 DOHB 0000 1234 5678 90AB CDEF G" }
1779
2084
  it { is_expected.to be_valid }
1780
2085
  end
1781
2086
 
1782
- context 'for a valid Romanian IBAN' do
1783
- let(:iban_code) { 'RO49 AAAA 1B31 0075 9384 0000' }
2087
+ context "for an invalid Qatari IBAN" do
2088
+ let(:iban_code) { "QA98 DOHB 0000 1234 5678 90AB CDEF G" }
2089
+ it { is_expected.to_not be_valid }
2090
+ end
2091
+
2092
+ context "for a valid Romanian IBAN" do
2093
+ let(:iban_code) { "RO49 AAAA 1B31 0075 9384 0000" }
1784
2094
  it { is_expected.to be_valid }
1785
2095
  end
1786
2096
 
1787
- context 'for a valid San Marinian IBAN' do
1788
- let(:iban_code) { 'SM86 U032 2509 8000 0000 0270 100' }
2097
+ context "for an invalid Romanian IBAN" do
2098
+ let(:iban_code) { "RO99 AAAA 1B31 0075 9384 0000" }
2099
+ it { is_expected.to_not be_valid }
2100
+ end
2101
+
2102
+ context "for a valid San Marinian IBAN" do
2103
+ let(:iban_code) { "SM86 U032 2509 8000 0000 0270 100" }
1789
2104
  it { is_expected.to be_valid }
1790
2105
  end
1791
2106
 
1792
- context 'for a valid Saudi IBAN' do
1793
- let(:iban_code) { 'SA03 8000 0000 6080 1016 7519' }
2107
+ context "for an invalid San Marinian IBAN" do
2108
+ let(:iban_code) { "SM96 U032 2509 8000 0000 0270 100" }
2109
+ it { is_expected.to_not be_valid }
2110
+ end
2111
+
2112
+ context "for a valid Saudi IBAN" do
2113
+ let(:iban_code) { "SA03 8000 0000 6080 1016 7519" }
1794
2114
  it { is_expected.to be_valid }
1795
2115
  end
1796
2116
 
1797
- context 'for a valid Serbian IBAN' do
1798
- let(:iban_code) { 'RS35 2600 0560 1001 6113 79' }
2117
+ context "for an invalid Saudi IBAN" do
2118
+ let(:iban_code) { "SA93 8000 0000 6080 1016 7519" }
2119
+ it { is_expected.to_not be_valid }
2120
+ end
2121
+
2122
+ context "for a valid Serbian IBAN" do
2123
+ let(:iban_code) { "RS35 2600 0560 1001 6113 79" }
1799
2124
  it { is_expected.to be_valid }
1800
2125
  end
1801
2126
 
1802
- context 'for a valid Slovakian IBAN' do
1803
- let(:iban_code) { 'SK31 1200 0000 1987 4263 7541' }
2127
+ context "for an invalid Serbian IBAN" do
2128
+ let(:iban_code) { "RS95 2600 0560 1001 6113 79" }
2129
+ it { is_expected.to_not be_valid }
2130
+ end
2131
+
2132
+ context "for a valid Slovakian IBAN" do
2133
+ let(:iban_code) { "SK31 1200 0000 1987 4263 7541" }
1804
2134
  it { is_expected.to be_valid }
1805
2135
  end
1806
2136
 
1807
- context 'for a valid Slovenian IBAN' do
1808
- let(:iban_code) { 'SI56 1910 0000 0123 438' }
2137
+ context "for an invalid Slovakian IBAN" do
2138
+ let(:iban_code) { "SK91 1200 0000 1987 4263 7541" }
2139
+ it { is_expected.to_not be_valid }
2140
+ end
2141
+
2142
+ context "for a valid Slovenian IBAN" do
2143
+ let(:iban_code) { "SI56 1910 0000 0123 438" }
1809
2144
  it { is_expected.to be_valid }
1810
2145
  end
1811
2146
 
1812
- context 'for a valid Spanish IBAN' do
1813
- let(:iban_code) { 'ES80 2310 0001 1800 0001 2345' }
2147
+ context "for an invalid Slovenian IBAN" do
2148
+ let(:iban_code) { "SI96 1910 0000 0123 438" }
2149
+ it { is_expected.to_not be_valid }
2150
+ end
2151
+
2152
+ context "for a valid Spanish IBAN" do
2153
+ let(:iban_code) { "ES80 2310 0001 1800 0001 2345" }
1814
2154
  it { is_expected.to be_valid }
1815
2155
  end
1816
2156
 
1817
- context 'for a valid Swedish IBAN' do
1818
- let(:iban_code) { 'SE35 5000 0000 0549 1000 0003' }
2157
+ context "for an invalid Spanish IBAN" do
2158
+ let(:iban_code) { "ES90 2310 0001 1800 0001 2345" }
2159
+ it { is_expected.to_not be_valid }
2160
+ end
2161
+
2162
+ context "for a valid Swedish IBAN" do
2163
+ let(:iban_code) { "SE35 5000 0000 0549 1000 0003" }
1819
2164
  it { is_expected.to be_valid }
1820
2165
  end
1821
2166
 
1822
- context 'for a valid Swiss IBAN' do
1823
- let(:iban_code) { 'CH93 0076 2011 6238 5295 7' }
2167
+ context "for an invalid Swedish IBAN" do
2168
+ let(:iban_code) { "SE95 5000 0000 0549 1000 0003" }
2169
+ it { is_expected.to_not be_valid }
2170
+ end
2171
+
2172
+ context "for a valid Swiss IBAN" do
2173
+ let(:iban_code) { "CH93 0076 2011 6238 5295 7" }
1824
2174
  it { is_expected.to be_valid }
1825
2175
  end
1826
2176
 
1827
- context 'for a valid Tunisian IBAN' do
1828
- let(:iban_code) { 'TN59 1000 6035 1835 9847 8831' }
2177
+ context "for an invalid Swiss IBAN" do
2178
+ let(:iban_code) { "CH23 0076 2011 6238 5295 7" }
2179
+ it { is_expected.to_not be_valid }
2180
+ end
2181
+
2182
+ context "for a valid Tunisian IBAN" do
2183
+ let(:iban_code) { "TN59 1000 6035 1835 9847 8831" }
1829
2184
  it { is_expected.to be_valid }
1830
2185
  end
1831
2186
 
1832
- context 'for a valid Turkish IBAN' do
1833
- let(:iban_code) { 'TR33 0006 1005 1978 6457 8413 26' }
2187
+ context "for an invalid Tunisian IBAN" do
2188
+ let(:iban_code) { "TN99 1000 6035 1835 9847 8831" }
2189
+ it { is_expected.to_not be_valid }
2190
+ end
2191
+
2192
+ context "for a valid Turkish IBAN" do
2193
+ let(:iban_code) { "TR33 0006 1005 1978 6457 8413 26" }
1834
2194
  it { is_expected.to be_valid }
1835
2195
  end
1836
2196
 
1837
- context 'for a valid UAE IBAN' do
1838
- let(:iban_code) { 'AE07 0331 2345 6789 0123 456' }
2197
+ context "for an invalid Turkish IBAN" do
2198
+ let(:iban_code) { "TR93 0006 1005 1978 6457 8413 26" }
2199
+ it { is_expected.to_not be_valid }
2200
+ end
2201
+
2202
+ context "for a valid UAE IBAN" do
2203
+ let(:iban_code) { "AE07 0331 2345 6789 0123 456" }
1839
2204
  it { is_expected.to be_valid }
1840
2205
  end
1841
2206
 
1842
- context 'for a valid UK IBAN' do
1843
- let(:iban_code) { 'GB82 WEST 1234 5698 7654 32' }
2207
+ context "for an invalid UAE IBAN" do
2208
+ let(:iban_code) { "AE97 0331 2345 6789 0123 456" }
2209
+ it { is_expected.to_not be_valid }
2210
+ end
2211
+
2212
+ context "for a valid UK IBAN" do
2213
+ let(:iban_code) { "GB82 WEST 1234 5698 7654 32" }
1844
2214
  it { is_expected.to be_valid }
1845
2215
  end
2216
+
2217
+ context "for an invalid UK IBAN" do
2218
+ let(:iban_code) { "GB92 WEST 1234 5698 7654 32" }
2219
+ it { is_expected.to_not be_valid }
2220
+ end
1846
2221
  end
1847
2222
 
1848
- describe '#local_check_digits' do
1849
- context 'with a Belgian IBAN' do
1850
- let(:iban_code) { 'BE62510007547061' }
1851
- its(:local_check_digits) { is_expected.to eq('61') }
2223
+ describe "#local_check_digits" do
2224
+ context "with a Belgian IBAN" do
2225
+ let(:iban_code) { "BE62510007547061" }
2226
+ its(:local_check_digits) { is_expected.to eq("61") }
1852
2227
  end
1853
2228
 
1854
- context 'with a French IBAN' do
1855
- let(:iban_code) { 'FR1234567890123456789012345' }
1856
- its(:local_check_digits) { is_expected.to eq('45') }
2229
+ context "with a French IBAN" do
2230
+ let(:iban_code) { "FR1234567890123456789012345" }
2231
+ its(:local_check_digits) { is_expected.to eq("45") }
1857
2232
  end
1858
2233
 
1859
- context 'with a Monocan IBAN' do
1860
- let(:iban_code) { 'MC9320052222100112233M44555' }
1861
- its(:local_check_digits) { is_expected.to eq('55') }
2234
+ context "with a Monocan IBAN" do
2235
+ let(:iban_code) { "MC9320052222100112233M44555" }
2236
+ its(:local_check_digits) { is_expected.to eq("55") }
1862
2237
  end
1863
2238
 
1864
- context 'with a Spanish IBAN' do
1865
- let(:iban_code) { 'ES1212345678911234567890' }
1866
- its(:local_check_digits) { is_expected.to eq('91') }
2239
+ context "with a Spanish IBAN" do
2240
+ let(:iban_code) { "ES1212345678911234567890" }
2241
+ its(:local_check_digits) { is_expected.to eq("91") }
1867
2242
  end
1868
2243
 
1869
- context 'with an Italian IBAN' do
1870
- let(:iban_code) { 'IT12A1234567890123456789012' }
1871
- its(:local_check_digits) { is_expected.to eq('A') }
2244
+ context "with an Italian IBAN" do
2245
+ let(:iban_code) { "IT12A1234567890123456789012" }
2246
+ its(:local_check_digits) { is_expected.to eq("A") }
1872
2247
  end
1873
2248
 
1874
- context 'with an Estonian IBAN' do
1875
- let(:iban_code) { 'EE382200221020145685' }
1876
- its(:local_check_digits) { is_expected.to eq('5') }
2249
+ context "with an Estonian IBAN" do
2250
+ let(:iban_code) { "EE382200221020145685" }
2251
+ its(:local_check_digits) { is_expected.to eq("5") }
1877
2252
  end
1878
2253
 
1879
- context 'with an Finnish IBAN' do
1880
- let(:iban_code) { 'FI2112345600000785' }
1881
- its(:local_check_digits) { is_expected.to eq('5') }
2254
+ context "with an Finnish IBAN" do
2255
+ let(:iban_code) { "FI2112345600000785" }
2256
+ its(:local_check_digits) { is_expected.to eq("5") }
1882
2257
  end
1883
2258
 
1884
- context 'with an Portuguese IBAN' do
1885
- let(:iban_code) { 'PT50000201231234567890154' }
1886
- its(:local_check_digits) { is_expected.to eq('54') }
2259
+ context "with an Portuguese IBAN" do
2260
+ let(:iban_code) { "PT50000201231234567890154" }
2261
+ its(:local_check_digits) { is_expected.to eq("54") }
1887
2262
  end
1888
2263
 
1889
- context 'with a Norwegian IBAN' do
1890
- let(:iban_code) { 'NO9386011117947' }
1891
- its(:local_check_digits) { is_expected.to eq('7') }
2264
+ context "with a Norwegian IBAN" do
2265
+ let(:iban_code) { "NO9386011117947" }
2266
+ its(:local_check_digits) { is_expected.to eq("7") }
1892
2267
  end
1893
2268
 
1894
- context 'with an Icelandic IBAN' do
1895
- let(:iban_code) { 'IS250311260024684606972049' }
1896
- its(:local_check_digits) { is_expected.to eq('4') }
2269
+ context "with an Icelandic IBAN" do
2270
+ let(:iban_code) { "IS250311260024684606972049" }
2271
+ its(:local_check_digits) { is_expected.to eq("4") }
1897
2272
  end
1898
2273
 
1899
- context 'with a Slovakian IBAN' do
1900
- let(:iban_code) { 'SK3112000000198742637541' }
1901
- its(:local_check_digits) { is_expected.to eq('9') }
2274
+ context "with a Slovakian IBAN" do
2275
+ let(:iban_code) { "SK3112000000198742637541" }
2276
+ its(:local_check_digits) { is_expected.to eq("9") }
1902
2277
  end
1903
2278
 
1904
- context 'with a Dutch IBAN' do
1905
- let(:iban_code) { 'NL91ABNA0417164300' }
1906
- its(:local_check_digits) { is_expected.to eq('0') }
2279
+ context "with a Dutch IBAN" do
2280
+ let(:iban_code) { "NL91ABNA0417164300" }
2281
+ its(:local_check_digits) { is_expected.to eq("0") }
1907
2282
  end
1908
2283
  end
1909
2284
  end