ibandit 0.7.0 → 0.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,77 @@
1
+ module Ibandit
2
+ class PseudoIBANAssembler
3
+ def initialize(country_code: nil,
4
+ bank_code: nil,
5
+ branch_code: nil,
6
+ account_number: nil)
7
+ @country_code = country_code
8
+ @bank_code = bank_code
9
+ @branch_code = branch_code
10
+ @account_number = account_number
11
+ end
12
+
13
+ def assemble
14
+ return unless can_assemble?
15
+
16
+ [
17
+ @country_code,
18
+ Constants::PSEUDO_IBAN_CHECK_DIGITS,
19
+ padded_bank_code,
20
+ padded_branch_code,
21
+ padded_account_number
22
+ ].join
23
+ end
24
+
25
+ private
26
+
27
+ def can_assemble?
28
+ country_code_valid? &&
29
+ bank_code_valid? &&
30
+ branch_code_valid? &&
31
+ account_number_valid?
32
+ end
33
+
34
+ def country_code_valid?
35
+ Constants::PSEUDO_IBAN_COUNTRY_CODES.include?(@country_code)
36
+ end
37
+
38
+ def bank_code_valid?
39
+ param_valid?(@bank_code, :pseudo_iban_bank_code_length)
40
+ end
41
+
42
+ def branch_code_valid?
43
+ param_valid?(@branch_code, :pseudo_iban_branch_code_length)
44
+ end
45
+
46
+ def account_number_valid?
47
+ param_valid?(@account_number, :pseudo_iban_account_number_length)
48
+ end
49
+
50
+ def param_valid?(value, length_key)
51
+ return true unless value.nil?
52
+ return true if structure[length_key] == 0
53
+ false
54
+ end
55
+
56
+ def padded_bank_code
57
+ pad(@bank_code, :pseudo_iban_bank_code_length)
58
+ end
59
+
60
+ def padded_branch_code
61
+ pad(@branch_code, :pseudo_iban_branch_code_length)
62
+ end
63
+
64
+ def padded_account_number
65
+ pad(@account_number, :pseudo_iban_account_number_length)
66
+ end
67
+
68
+ def pad(number, length_key)
69
+ return if number.nil?
70
+ number.rjust(structure[length_key], 'X')
71
+ end
72
+
73
+ def structure
74
+ Ibandit.structures.fetch(@country_code)
75
+ end
76
+ end
77
+ end
@@ -0,0 +1,86 @@
1
+ module Ibandit
2
+ class PseudoIBANSplitter
3
+ def initialize(pseudo_iban)
4
+ @pseudo_iban = pseudo_iban
5
+ end
6
+
7
+ def split
8
+ return unless decomposable?
9
+
10
+ {
11
+ country_code: country_code,
12
+ bank_code: bank_code,
13
+ branch_code: branch_code,
14
+ account_number: account_number
15
+ }
16
+ end
17
+
18
+ private
19
+
20
+ def country_code
21
+ @pseudo_iban.slice(0, 2)
22
+ end
23
+
24
+ def check_digits
25
+ @pseudo_iban.slice(2, 2)
26
+ end
27
+
28
+ def bank_code
29
+ pseudo_iban_part(bank_code_start_index, :pseudo_iban_bank_code_length)
30
+ end
31
+
32
+ def branch_code
33
+ pseudo_iban_part(branch_code_start_index,
34
+ :pseudo_iban_branch_code_length)
35
+ end
36
+
37
+ def account_number
38
+ pseudo_iban_part(account_number_start_index,
39
+ :pseudo_iban_account_number_length)
40
+ end
41
+
42
+ def pseudo_iban_part(start_index, length_key)
43
+ length = structure.fetch(length_key)
44
+ return if length == 0
45
+
46
+ @pseudo_iban.slice(start_index, length).gsub(/\AX+/, '')
47
+ end
48
+
49
+ def bank_code_start_index
50
+ 4
51
+ end
52
+
53
+ def branch_code_start_index
54
+ bank_code_start_index + structure.fetch(:pseudo_iban_bank_code_length)
55
+ end
56
+
57
+ def account_number_start_index
58
+ branch_code_start_index + structure.fetch(:pseudo_iban_branch_code_length)
59
+ end
60
+
61
+ def expected_length
62
+ account_number_start_index +
63
+ structure.fetch(:pseudo_iban_account_number_length)
64
+ end
65
+
66
+ def decomposable?
67
+ country_code_valid? && check_digits_valid? && correct_length?
68
+ end
69
+
70
+ def country_code_valid?
71
+ Constants::PSEUDO_IBAN_COUNTRY_CODES.include?(country_code)
72
+ end
73
+
74
+ def check_digits_valid?
75
+ check_digits == Constants::PSEUDO_IBAN_CHECK_DIGITS
76
+ end
77
+
78
+ def correct_length?
79
+ @pseudo_iban.length == expected_length
80
+ end
81
+
82
+ def structure
83
+ Ibandit.structures[country_code]
84
+ end
85
+ end
86
+ end
@@ -1,41 +1,92 @@
1
1
  module Ibandit
2
- module SwedishDetailsConverter
3
- def self.convert(account_number)
4
- cleaned_account_number =
5
- account_number.gsub(/[-.\s]/, '').gsub(/\A0+/, '')
6
-
7
- bank_info = bank_info_for(cleaned_account_number.slice(0, 4))
2
+ class SwedishDetailsConverter
3
+ def initialize(branch_code: nil, account_number: nil)
4
+ @branch_code = branch_code
5
+ @account_number = account_number
6
+ end
8
7
 
8
+ def convert
9
9
  if bank_info.nil?
10
- return { bank_code: nil,
11
- account_number: cleaned_account_number.rjust(17, '0') }
10
+ return { swift_bank_code: nil,
11
+ swift_account_number: cleaned_account_number.rjust(17, '0') }
12
12
  end
13
13
 
14
- clearing_code_length = bank_info.fetch(:clearing_code_length)
15
- serial_number_length = bank_info.fetch(:serial_number_length)
14
+ {
15
+ account_number: serial_number,
16
+ branch_code: clearing_code,
17
+ swift_bank_code: bank_info.fetch(:bank_code).to_s,
18
+ swift_account_number: swift_account_number
19
+ }
20
+ end
16
21
 
17
- clearing_code = cleaned_account_number.slice(0, clearing_code_length)
18
- serial_number = cleaned_account_number[clearing_code_length..-1]
22
+ private
19
23
 
20
- if bank_info.fetch(:zerofill_serial_number)
21
- serial_number = serial_number.rjust(serial_number_length, '0')
22
- end
24
+ def cleaned_account_number
25
+ # Don't trim leading zeroes if the account number we are given is a
26
+ # serial number (i.e. if the clearing code is separate).
27
+ @cleaned_account_number ||= if @branch_code.nil?
28
+ clean_account_number(@account_number)
29
+ else
30
+ remove_bad_chars(@account_number)
31
+ end
32
+ end
23
33
 
24
- iban_account_number =
25
- if bank_info.fetch(:include_clearing_code)
26
- (clearing_code + serial_number).rjust(17, '0')
27
- else
28
- serial_number.rjust(17, '0')
29
- end
34
+ def cleaned_branch_code
35
+ @cleaned_branch_code ||= remove_bad_chars(@branch_code)
36
+ end
30
37
 
31
- {
32
- bank_code: bank_info.fetch(:bank_code).to_s,
33
- account_number: iban_account_number
34
- }
38
+ def remove_bad_chars(number)
39
+ return if number.nil?
40
+ number.gsub(/[-.\s]/, '')
41
+ end
42
+
43
+ def clean_account_number(number)
44
+ return if number.nil?
45
+ remove_bad_chars(number).gsub(/\A0+/, '')
46
+ end
47
+
48
+ def bank_info
49
+ @bank_info ||= self.class.bank_info_for(bank_info_key)
35
50
  end
36
51
 
37
- def self.valid_bank_code?(bank_code: bank_code,
38
- account_number: account_number)
52
+ def bank_info_key
53
+ (cleaned_branch_code || cleaned_account_number).slice(0, 4)
54
+ end
55
+
56
+ def clearing_code_length
57
+ bank_info.fetch(:clearing_code_length)
58
+ end
59
+
60
+ def serial_number_length
61
+ bank_info.fetch(:serial_number_length)
62
+ end
63
+
64
+ def clearing_code
65
+ cleaned_branch_code ||
66
+ cleaned_account_number.slice(0, clearing_code_length)
67
+ end
68
+
69
+ def serial_number
70
+ serial_number = if @branch_code.nil?
71
+ cleaned_account_number[clearing_code_length..-1]
72
+ else
73
+ cleaned_account_number
74
+ end
75
+
76
+ return serial_number unless bank_info.fetch(:zerofill_serial_number)
77
+
78
+ serial_number.rjust(serial_number_length, '0')
79
+ end
80
+
81
+ def swift_account_number
82
+ if bank_info.fetch(:include_clearing_code)
83
+ (clearing_code + serial_number).rjust(17, '0')
84
+ else
85
+ serial_number.rjust(17, '0')
86
+ end
87
+ end
88
+
89
+ def self.valid_bank_code?(bank_code: nil, account_number: nil)
39
90
  possible_bank_infos = possible_bank_info_for(
40
91
  bank_code: bank_code, account_number: account_number
41
92
  )
@@ -43,7 +94,7 @@ module Ibandit
43
94
  possible_bank_infos.any?
44
95
  end
45
96
 
46
- def self.valid_length?(bank_code: bank_code, account_number: account_number)
97
+ def self.valid_length?(bank_code: nil, account_number: nil)
47
98
  return unless valid_bank_code?(
48
99
  bank_code: bank_code, account_number: account_number
49
100
  )
@@ -68,15 +119,11 @@ module Ibandit
68
119
  end
69
120
  end
70
121
 
71
- private
72
-
73
122
  def self.bank_info_for(clearing_code)
74
123
  bank_info_table.find { |bank| bank[:range].include?(clearing_code.to_i) }
75
124
  end
76
- private_class_method :bank_info_for
77
125
 
78
- def self.possible_bank_info_for(bank_code: bank_code,
79
- account_number: account_number)
126
+ def self.possible_bank_info_for(bank_code: nil, account_number: nil)
80
127
  clearing_number = account_number.gsub(/\A0+/, '').slice(0, 4).to_i
81
128
 
82
129
  possible_bank_infos = bank_info_table.select do |bank|
@@ -1,3 +1,3 @@
1
1
  module Ibandit
2
- VERSION = '0.7.0'.freeze
2
+ VERSION = '0.8.0'.freeze
3
3
  end
@@ -6,9 +6,9 @@ describe Ibandit::IBANAssembler do
6
6
  let(:args) do
7
7
  {
8
8
  country_code: iban.country_code,
9
- account_number: iban.account_number,
10
- branch_code: iban.branch_code,
11
- bank_code: iban.bank_code
9
+ account_number: iban.swift_account_number,
10
+ branch_code: iban.swift_branch_code,
11
+ bank_code: iban.swift_bank_code
12
12
  }.reject { |_key, value| value.nil? }
13
13
  end
14
14
 
@@ -49,6 +49,9 @@ describe Ibandit::IBAN do
49
49
  its(:bank_code) { is_expected.to eq('WEST') }
50
50
  its(:branch_code) { is_expected.to eq('123456') }
51
51
  its(:account_number) { is_expected.to eq('98765432') }
52
+ its(:swift_bank_code) { is_expected.to eq('WEST') }
53
+ its(:swift_branch_code) { is_expected.to eq('123456') }
54
+ its(:swift_account_number) { is_expected.to eq('98765432') }
52
55
  its(:iban_national_id) { is_expected.to eq('WEST123456') }
53
56
  its(:local_check_digits) { is_expected.to be_nil }
54
57
 
@@ -65,6 +68,21 @@ describe Ibandit::IBAN do
65
68
  its(:local_check_digits) { is_expected.to be_nil }
66
69
  end
67
70
 
71
+ context 'when local details are not available' do
72
+ let(:iban_code) { 'SE2680000000075071211203' }
73
+
74
+ its(:country_code) { is_expected.to eq('SE') }
75
+ its(:check_digits) { is_expected.to eq('26') }
76
+ its(:bank_code) { is_expected.to be_nil }
77
+ its(:branch_code) { is_expected.to be_nil }
78
+ its(:account_number) { is_expected.to be_nil }
79
+ its(:swift_bank_code) { is_expected.to eq('800') }
80
+ its(:swift_branch_code) { is_expected.to be_nil }
81
+ its(:swift_account_number) { is_expected.to eq('00000075071211203') }
82
+ its(:iban_national_id) { is_expected.to eq('800') }
83
+ its(:local_check_digits) { is_expected.to be_nil }
84
+ end
85
+
68
86
  context 'when the IBAN was created with local details' do
69
87
  let(:arg) do
70
88
  {
@@ -79,6 +97,43 @@ describe Ibandit::IBAN do
79
97
  its(:bank_code) { is_expected.to eq(arg[:bank_code]) }
80
98
  its(:branch_code) { is_expected.to eq(arg[:branch_code]) }
81
99
  its(:account_number) { is_expected.to eq(arg[:account_number]) }
100
+ its(:swift_bank_code) { is_expected.to eq(arg[:bank_code]) }
101
+ its(:swift_branch_code) { is_expected.to eq(arg[:branch_code]) }
102
+ its(:swift_account_number) { is_expected.to eq(arg[:account_number]) }
103
+ end
104
+
105
+ context 'when the IBAN was created with local details for Sweden' do
106
+ let(:arg) do
107
+ {
108
+ country_code: 'SE',
109
+ branch_code: '1281',
110
+ account_number: '0105723'
111
+ }
112
+ end
113
+
114
+ its(:country_code) { is_expected.to eq(arg[:country_code]) }
115
+ its(:bank_code) { is_expected.to eq(arg[:bank_code]) }
116
+ its(:branch_code) { is_expected.to eq(arg[:branch_code]) }
117
+ its(:account_number) { is_expected.to eq(arg[:account_number]) }
118
+ its(:swift_bank_code) { is_expected.to eq('120') }
119
+ its(:swift_branch_code) { is_expected.to be_nil }
120
+ its(:swift_account_number) { is_expected.to eq('00000012810105723') }
121
+ its(:iban) { is_expected.to eq('SE5412000000012810105723') }
122
+ its(:pseudo_iban) { is_expected.to eq('SEZZX1281XXX0105723') }
123
+ end
124
+
125
+ context 'when the IBAN was created from a pseudo-IBAN' do
126
+ let(:arg) { 'SEZZX1281XXX0105723' }
127
+
128
+ its(:country_code) { is_expected.to eq('SE') }
129
+ its(:bank_code) { is_expected.to be_nil }
130
+ its(:branch_code) { is_expected.to eq('1281') }
131
+ its(:account_number) { is_expected.to eq('0105723') }
132
+ its(:swift_bank_code) { is_expected.to eq('120') }
133
+ its(:swift_branch_code) { is_expected.to be_nil }
134
+ its(:swift_account_number) { is_expected.to eq('00000012810105723') }
135
+ its(:iban) { is_expected.to eq('SE5412000000012810105723') }
136
+ its(:pseudo_iban) { is_expected.to eq('SEZZX1281XXX0105723') }
82
137
  end
83
138
  end
84
139
 
@@ -358,7 +413,7 @@ describe Ibandit::IBAN do
358
413
  end
359
414
 
360
415
  context 'with invalid details' do
361
- before { allow(iban).to receive(:bank_code).and_return('WES') }
416
+ before { allow(iban).to receive(:swift_bank_code).and_return('WES') }
362
417
  it { is_expected.to eq(false) }
363
418
 
364
419
  context 'locale en', locale: :en do
@@ -444,7 +499,7 @@ describe Ibandit::IBAN do
444
499
  end
445
500
 
446
501
  context 'with invalid details' do
447
- before { allow(iban).to receive(:branch_code).and_return('12345') }
502
+ before { allow(iban).to receive(:swift_branch_code).and_return('12345') }
448
503
  it { is_expected.to eq(false) }
449
504
 
450
505
  context 'locale en', locale: :en do
@@ -512,7 +567,7 @@ describe Ibandit::IBAN do
512
567
  end
513
568
 
514
569
  context 'without a branch code' do
515
- before { allow(iban).to receive(:branch_code).and_return(nil) }
570
+ before { allow(iban).to receive(:swift_branch_code).and_return(nil) }
516
571
  it { is_expected.to eq(false) }
517
572
 
518
573
  context 'locale en', locale: :en do
@@ -584,7 +639,9 @@ describe Ibandit::IBAN do
584
639
  end
585
640
 
586
641
  context 'with an invalid account_number' do
587
- before { allow(iban).to receive(:account_number).and_return('1234567') }
642
+ before do
643
+ allow(iban).to receive(:swift_account_number).and_return('1234567')
644
+ end
588
645
  it { is_expected.to eq(false) }
589
646
 
590
647
  context 'locale en', locale: :en do
@@ -10,18 +10,27 @@ describe Ibandit::LocalDetailsCleaner do
10
10
  account_number: account_number
11
11
  }
12
12
  end
13
+
14
+ let(:local_details_with_swift) do
15
+ local_details.merge(
16
+ swift_bank_code: bank_code,
17
+ swift_branch_code: branch_code,
18
+ swift_account_number: account_number
19
+ )
20
+ end
21
+
13
22
  let(:country_code) { nil }
14
23
  let(:bank_code) { nil }
15
24
  let(:branch_code) { nil }
16
25
  let(:account_number) { nil }
17
26
 
18
27
  context 'without country code' do
19
- it { is_expected.to eq(local_details) }
28
+ it { is_expected.to eq(local_details_with_swift) }
20
29
  end
21
30
 
22
31
  context 'with an unsupported country code' do
23
32
  let(:country_code) { 'FU' }
24
- it { is_expected.to eq(local_details) }
33
+ it { is_expected.to eq(local_details_with_swift) }
25
34
  end
26
35
 
27
36
  context 'Austria' do
@@ -29,7 +38,7 @@ describe Ibandit::LocalDetailsCleaner do
29
38
  let(:bank_code) { '19043' }
30
39
  let(:account_number) { '00234573201' }
31
40
 
32
- it { is_expected.to eq(local_details) }
41
+ it { is_expected.to eq(local_details_with_swift) }
33
42
 
34
43
  context 'with an account number which needs zero-padding' do
35
44
  let(:account_number) { '234573201' }
@@ -43,27 +52,27 @@ describe Ibandit::LocalDetailsCleaner do
43
52
 
44
53
  context 'with a long account number' do
45
54
  let(:account_number) { '234573201999' }
46
- it { is_expected.to eq(local_details) }
55
+ it { is_expected.to eq(local_details_with_swift) }
47
56
  end
48
57
 
49
58
  context 'without an account number' do
50
59
  let(:account_number) { nil }
51
- it { is_expected.to eq(local_details) }
60
+ it { is_expected.to eq(local_details_with_swift) }
52
61
  end
53
62
 
54
63
  context 'with a short bank code' do
55
64
  let(:bank_code) { '1904' }
56
- it { is_expected.to eq(local_details) }
65
+ it { is_expected.to eq(local_details_with_swift) }
57
66
  end
58
67
 
59
68
  context 'with a long bank code' do
60
69
  let(:bank_code) { '190430' }
61
- it { is_expected.to eq(local_details) }
70
+ it { is_expected.to eq(local_details_with_swift) }
62
71
  end
63
72
 
64
73
  context 'without a bank code' do
65
74
  let(:bank_code) { nil }
66
- it { is_expected.to eq(local_details) }
75
+ it { is_expected.to eq(local_details_with_swift) }
67
76
  end
68
77
  end
69
78
 
@@ -83,7 +92,7 @@ describe Ibandit::LocalDetailsCleaner do
83
92
 
84
93
  context 'without an account number' do
85
94
  let(:account_number) { nil }
86
- it { is_expected.to eq(local_details) }
95
+ it { is_expected.to eq(local_details_with_swift) }
87
96
  end
88
97
  end
89
98
 
@@ -93,21 +102,21 @@ describe Ibandit::LocalDetailsCleaner do
93
102
  let(:branch_code) { '9661' }
94
103
  let(:account_number) { '1020345678' }
95
104
 
96
- it { is_expected.to eq(local_details) }
105
+ it { is_expected.to eq(local_details_with_swift) }
97
106
 
98
107
  context 'without an account number' do
99
108
  let(:account_number) { nil }
100
- it { is_expected.to eq(local_details) }
109
+ it { is_expected.to eq(local_details_with_swift) }
101
110
  end
102
111
 
103
112
  context 'without a branch code' do
104
113
  let(:branch_code) { nil }
105
- it { is_expected.to eq(local_details) }
114
+ it { is_expected.to eq(local_details_with_swift) }
106
115
  end
107
116
 
108
117
  context 'without a bank code' do
109
118
  let(:bank_code) { nil }
110
- it { is_expected.to eq(local_details) }
119
+ it { is_expected.to eq(local_details_with_swift) }
111
120
  end
112
121
  end
113
122
 
@@ -117,7 +126,7 @@ describe Ibandit::LocalDetailsCleaner do
117
126
  let(:bank_code) { '002' }
118
127
  let(:branch_code) { '00128' }
119
128
 
120
- it { is_expected.to eq(local_details) }
129
+ it { is_expected.to eq(local_details_with_swift) }
121
130
 
122
131
  context 'with a short account number' do
123
132
  let(:account_number) { '1200527600' }
@@ -131,12 +140,12 @@ describe Ibandit::LocalDetailsCleaner do
131
140
 
132
141
  context 'with a long account number' do
133
142
  let(:account_number) { '00000001200527600' }
134
- it { is_expected.to eq(local_details) }
143
+ it { is_expected.to eq(local_details_with_swift) }
135
144
  end
136
145
 
137
146
  context 'without an account number' do
138
147
  let(:account_number) { nil }
139
- it { is_expected.to eq(local_details) }
148
+ it { is_expected.to eq(local_details_with_swift) }
140
149
  end
141
150
 
142
151
  context 'with the branch code in the bank code field' do
@@ -148,7 +157,7 @@ describe Ibandit::LocalDetailsCleaner do
148
157
 
149
158
  context 'without a bank code' do
150
159
  let(:bank_code) { nil }
151
- it { is_expected.to eq(local_details) }
160
+ it { is_expected.to eq(local_details_with_swift) }
152
161
  end
153
162
  end
154
163
 
@@ -157,7 +166,7 @@ describe Ibandit::LocalDetailsCleaner do
157
166
  let(:bank_code) { '0800' }
158
167
  let(:account_number) { '0000192000145399' }
159
168
 
160
- it { is_expected.to eq(local_details) }
169
+ it { is_expected.to eq(local_details_with_swift) }
161
170
 
162
171
  context 'with an account number prefix' do
163
172
  let(:prefix) { '000019' }
@@ -174,12 +183,12 @@ describe Ibandit::LocalDetailsCleaner do
174
183
 
175
184
  context 'without a bank code' do
176
185
  let(:bank_code) { nil }
177
- it { is_expected.to eq(local_details) }
186
+ it { is_expected.to eq(local_details_with_swift) }
178
187
  end
179
188
 
180
189
  context 'without an account number' do
181
190
  let(:account_number) { nil }
182
- it { is_expected.to eq(local_details) }
191
+ it { is_expected.to eq(local_details_with_swift) }
183
192
  end
184
193
  end
185
194
 
@@ -188,16 +197,16 @@ describe Ibandit::LocalDetailsCleaner do
188
197
  let(:bank_code) { '37040044' }
189
198
  let(:account_number) { '0532013000' }
190
199
 
191
- it { is_expected.to eq(local_details) }
200
+ it { is_expected.to eq(local_details_with_swift) }
192
201
 
193
202
  context 'without a bank code' do
194
203
  let(:bank_code) { nil }
195
- it { is_expected.to eq(local_details) }
204
+ it { is_expected.to eq(local_details_with_swift) }
196
205
  end
197
206
 
198
207
  context 'without an account number' do
199
208
  let(:account_number) { nil }
200
- it { is_expected.to eq(local_details) }
209
+ it { is_expected.to eq(local_details_with_swift) }
201
210
  end
202
211
 
203
212
  context 'with an excessively short account number' do
@@ -215,7 +224,7 @@ describe Ibandit::LocalDetailsCleaner do
215
224
  context 'with unsupported account details' do
216
225
  let(:account_number) { '7955791111' }
217
226
  let(:bank_code) { '20000000' }
218
- it { is_expected.to eq(local_details) }
227
+ it { is_expected.to eq(local_details_with_swift) }
219
228
  end
220
229
  end
221
230
 
@@ -238,7 +247,7 @@ describe Ibandit::LocalDetailsCleaner do
238
247
 
239
248
  context 'without an account number' do
240
249
  let(:account_number) { nil }
241
- it { is_expected.to eq(local_details) }
250
+ it { is_expected.to eq(local_details_with_swift) }
242
251
  end
243
252
  end
244
253
 
@@ -257,7 +266,7 @@ describe Ibandit::LocalDetailsCleaner do
257
266
 
258
267
  context 'without an account number' do
259
268
  let(:account_number) { nil }
260
- it { is_expected.to eq(local_details) }
269
+ it { is_expected.to eq(local_details_with_swift) }
261
270
  end
262
271
  end
263
272
 
@@ -267,7 +276,7 @@ describe Ibandit::LocalDetailsCleaner do
267
276
  let(:branch_code) { '0001' }
268
277
  let(:account_number) { '180000012345' }
269
278
 
270
- it { is_expected.to eq(local_details) }
279
+ it { is_expected.to eq(local_details_with_swift) }
271
280
 
272
281
  context 'with bank and branch codes in the account number' do
273
282
  let(:bank_code) { nil }
@@ -281,7 +290,7 @@ describe Ibandit::LocalDetailsCleaner do
281
290
 
282
291
  context 'without an account number' do
283
292
  let(:account_number) { nil }
284
- it { is_expected.to eq(local_details) }
293
+ it { is_expected.to eq(local_details_with_swift) }
285
294
  end
286
295
  end
287
296
 
@@ -290,7 +299,7 @@ describe Ibandit::LocalDetailsCleaner do
290
299
  let(:bank_code) { '123456' }
291
300
  let(:account_number) { '00000785' }
292
301
 
293
- it { is_expected.to eq(local_details) }
302
+ it { is_expected.to eq(local_details_with_swift) }
294
303
 
295
304
  context 'with a shorter account number' do
296
305
  let(:account_number) { '785' }
@@ -307,12 +316,12 @@ describe Ibandit::LocalDetailsCleaner do
307
316
 
308
317
  context 'without an account number' do
309
318
  let(:account_number) { nil }
310
- it { is_expected.to eq(local_details) }
319
+ it { is_expected.to eq(local_details_with_swift) }
311
320
  end
312
321
 
313
322
  context 'without a bank code' do
314
323
  let(:bank_code) { nil }
315
- it { is_expected.to eq(local_details) }
324
+ it { is_expected.to eq(local_details_with_swift) }
316
325
  end
317
326
  end
318
327
 
@@ -322,7 +331,7 @@ describe Ibandit::LocalDetailsCleaner do
322
331
  let(:branch_code) { '01005' }
323
332
  let(:account_number) { '0500013M02606' }
324
333
 
325
- it { is_expected.to eq(local_details) }
334
+ it { is_expected.to eq(local_details_with_swift) }
326
335
 
327
336
  context 'with the RIB key spaced in the account number' do
328
337
  let(:account_number) { '0500013M026 06' }
@@ -336,22 +345,22 @@ describe Ibandit::LocalDetailsCleaner do
336
345
 
337
346
  context 'with the RIB key missing' do
338
347
  let(:account_number) { '0500013M026' }
339
- it { is_expected.to eq(local_details) }
348
+ it { is_expected.to eq(local_details_with_swift) }
340
349
  end
341
350
 
342
351
  context 'without a bank code' do
343
352
  let(:bank_code) { nil }
344
- it { is_expected.to eq(local_details) }
353
+ it { is_expected.to eq(local_details_with_swift) }
345
354
  end
346
355
 
347
356
  context 'without a branch code' do
348
357
  let(:branch_code) { nil }
349
- it { is_expected.to eq(local_details) }
358
+ it { is_expected.to eq(local_details_with_swift) }
350
359
  end
351
360
 
352
361
  context 'without an account number' do
353
362
  let(:account_number) { nil }
354
- it { is_expected.to eq(local_details) }
363
+ it { is_expected.to eq(local_details_with_swift) }
355
364
  end
356
365
  end
357
366
 
@@ -361,7 +370,7 @@ describe Ibandit::LocalDetailsCleaner do
361
370
  let(:branch_code) { '200000' }
362
371
  let(:account_number) { '55779911' }
363
372
 
364
- it { is_expected.to eq(local_details) }
373
+ it { is_expected.to eq(local_details_with_swift) }
365
374
 
366
375
  context 'with the sort code is hyphenated' do
367
376
  let(:branch_code) { '20-00-00' }
@@ -395,12 +404,12 @@ describe Ibandit::LocalDetailsCleaner do
395
404
 
396
405
  context 'without a branch code' do
397
406
  let(:branch_code) { nil }
398
- it { is_expected.to eq(local_details) }
407
+ it { is_expected.to eq(local_details_with_swift) }
399
408
  end
400
409
 
401
410
  context 'without a bank code' do
402
411
  let(:bank_code) { nil }
403
- it { is_expected.to eq(local_details) }
412
+ it { is_expected.to eq(local_details_with_swift) }
404
413
 
405
414
  context 'with a BIC finder set' do
406
415
  let(:bic_finder) { double }
@@ -435,21 +444,21 @@ describe Ibandit::LocalDetailsCleaner do
435
444
  let(:branch_code) { '0125' }
436
445
  let(:account_number) { '0000000012300695' }
437
446
 
438
- it { is_expected.to eq(local_details) }
447
+ it { is_expected.to eq(local_details_with_swift) }
439
448
 
440
449
  context 'without an account number' do
441
450
  let(:account_number) { nil }
442
- it { is_expected.to eq(local_details) }
451
+ it { is_expected.to eq(local_details_with_swift) }
443
452
  end
444
453
 
445
454
  context 'without a bank code' do
446
455
  let(:bank_code) { nil }
447
- it { is_expected.to eq(local_details) }
456
+ it { is_expected.to eq(local_details_with_swift) }
448
457
  end
449
458
 
450
459
  context 'without a branch code' do
451
460
  let(:branch_code) { nil }
452
- it { is_expected.to eq(local_details) }
461
+ it { is_expected.to eq(local_details_with_swift) }
453
462
  end
454
463
  end
455
464
 
@@ -458,7 +467,7 @@ describe Ibandit::LocalDetailsCleaner do
458
467
  let(:bank_code) { '1001005' }
459
468
  let(:account_number) { '1863000160' }
460
469
 
461
- it { is_expected.to eq(local_details) }
470
+ it { is_expected.to eq(local_details_with_swift) }
462
471
 
463
472
  context 'with bank code in the account number' do
464
473
  let(:bank_code) { nil }
@@ -470,13 +479,13 @@ describe Ibandit::LocalDetailsCleaner do
470
479
 
471
480
  context 'with a badly formatted account number' do
472
481
  let(:account_number) { '1863000160' }
473
- it { is_expected.to eq(local_details) }
482
+ it { is_expected.to eq(local_details_with_swift) }
474
483
  end
475
484
  end
476
485
 
477
486
  context 'without an account number' do
478
487
  let(:account_number) { nil }
479
- it { is_expected.to eq(local_details) }
488
+ it { is_expected.to eq(local_details_with_swift) }
480
489
  end
481
490
  end
482
491
 
@@ -486,7 +495,7 @@ describe Ibandit::LocalDetailsCleaner do
486
495
  let(:branch_code) { '7301' }
487
496
  let(:account_number) { '61111101800000000' }
488
497
 
489
- it { is_expected.to eq(local_details) }
498
+ it { is_expected.to eq(local_details_with_swift) }
490
499
 
491
500
  context 'with bank and branch codes in the account number' do
492
501
  let(:bank_code) { nil }
@@ -510,19 +519,19 @@ describe Ibandit::LocalDetailsCleaner do
510
519
 
511
520
  context 'with an invalid length account number' do
512
521
  let(:account_number) { '11773016-1111101' }
513
- it { is_expected.to eq(local_details) }
522
+ it { is_expected.to eq(local_details_with_swift) }
514
523
  end
515
524
 
516
525
  context 'with a bank code, too' do
517
526
  let(:account_number) { '11773016-11111018' }
518
527
  let(:bank_code) { '117' }
519
- it { is_expected.to eq(local_details) }
528
+ it { is_expected.to eq(local_details_with_swift) }
520
529
  end
521
530
  end
522
531
 
523
532
  context 'without an account number' do
524
533
  let(:account_number) { nil }
525
- it { is_expected.to eq(local_details) }
534
+ it { is_expected.to eq(local_details_with_swift) }
526
535
  end
527
536
  end
528
537
 
@@ -532,7 +541,7 @@ describe Ibandit::LocalDetailsCleaner do
532
541
  let(:branch_code) { '931152' }
533
542
  let(:account_number) { '12345678' }
534
543
 
535
- it { is_expected.to eq(local_details) }
544
+ it { is_expected.to eq(local_details_with_swift) }
536
545
 
537
546
  context 'with the sort code is hyphenated' do
538
547
  let(:branch_code) { '93-11-52' }
@@ -566,12 +575,12 @@ describe Ibandit::LocalDetailsCleaner do
566
575
 
567
576
  context 'without a branch code' do
568
577
  let(:branch_code) { nil }
569
- it { is_expected.to eq(local_details) }
578
+ it { is_expected.to eq(local_details_with_swift) }
570
579
  end
571
580
 
572
581
  context 'without a bank code' do
573
582
  let(:bank_code) { nil }
574
- it { is_expected.to eq(local_details) }
583
+ it { is_expected.to eq(local_details_with_swift) }
575
584
 
576
585
  context 'with a BIC finder set' do
577
586
  let(:bic_finder) { double }
@@ -642,7 +651,7 @@ describe Ibandit::LocalDetailsCleaner do
642
651
 
643
652
  context 'without an account number' do
644
653
  let(:account_number) { nil }
645
- it { is_expected.to eq(local_details) }
654
+ it { is_expected.to eq(local_details_with_swift) }
646
655
  end
647
656
  end
648
657
 
@@ -652,11 +661,11 @@ describe Ibandit::LocalDetailsCleaner do
652
661
  let(:branch_code) { '11101' }
653
662
  let(:account_number) { '000000123456' }
654
663
 
655
- it { is_expected.to eq(local_details) }
664
+ it { is_expected.to eq(local_details_with_swift) }
656
665
 
657
666
  context 'with an explicit check digit' do
658
667
  before { local_details.merge!(check_digit: 'Y') }
659
- it { is_expected.to eq(local_details) }
668
+ it { is_expected.to eq(local_details_with_swift) }
660
669
  end
661
670
 
662
671
  context 'with the account number not zero-padded' do
@@ -666,17 +675,17 @@ describe Ibandit::LocalDetailsCleaner do
666
675
 
667
676
  context 'without a bank code' do
668
677
  let(:bank_code) { nil }
669
- it { is_expected.to eq(local_details) }
678
+ it { is_expected.to eq(local_details_with_swift) }
670
679
  end
671
680
 
672
681
  context 'without a branch code' do
673
682
  let(:branch_code) { nil }
674
- it { is_expected.to eq(local_details) }
683
+ it { is_expected.to eq(local_details_with_swift) }
675
684
  end
676
685
 
677
686
  context 'without an account number' do
678
687
  let(:account_number) { nil }
679
- it { is_expected.to eq(local_details) }
688
+ it { is_expected.to eq(local_details_with_swift) }
680
689
  end
681
690
  end
682
691
 
@@ -685,16 +694,16 @@ describe Ibandit::LocalDetailsCleaner do
685
694
  let(:bank_code) { '10000' }
686
695
  let(:account_number) { '11101001000' }
687
696
 
688
- it { is_expected.to eq(local_details) }
697
+ it { is_expected.to eq(local_details_with_swift) }
689
698
 
690
699
  context 'without an account number' do
691
700
  let(:account_number) { nil }
692
- it { is_expected.to eq(local_details) }
701
+ it { is_expected.to eq(local_details_with_swift) }
693
702
  end
694
703
 
695
704
  context 'without a bank code' do
696
705
  let(:bank_code) { nil }
697
- it { is_expected.to eq(local_details) }
706
+ it { is_expected.to eq(local_details_with_swift) }
698
707
  end
699
708
  end
700
709
 
@@ -703,16 +712,16 @@ describe Ibandit::LocalDetailsCleaner do
703
712
  let(:bank_code) { '001' }
704
713
  let(:account_number) { '9400644750000' }
705
714
 
706
- it { is_expected.to eq(local_details) }
715
+ it { is_expected.to eq(local_details_with_swift) }
707
716
 
708
717
  context 'without an account number' do
709
718
  let(:account_number) { nil }
710
- it { is_expected.to eq(local_details) }
719
+ it { is_expected.to eq(local_details_with_swift) }
711
720
  end
712
721
 
713
722
  context 'without a bank code' do
714
723
  let(:bank_code) { nil }
715
- it { is_expected.to eq(local_details) }
724
+ it { is_expected.to eq(local_details_with_swift) }
716
725
  end
717
726
  end
718
727
 
@@ -721,16 +730,16 @@ describe Ibandit::LocalDetailsCleaner do
721
730
  let(:bank_code) { 'BANK' }
722
731
  let(:account_number) { '1234567890123' }
723
732
 
724
- it { is_expected.to eq(local_details) }
733
+ it { is_expected.to eq(local_details_with_swift) }
725
734
 
726
735
  context 'without an account number' do
727
736
  let(:account_number) { nil }
728
- it { is_expected.to eq(local_details) }
737
+ it { is_expected.to eq(local_details_with_swift) }
729
738
  end
730
739
 
731
740
  context 'without a bank code' do
732
741
  let(:bank_code) { nil }
733
- it { is_expected.to eq(local_details) }
742
+ it { is_expected.to eq(local_details_with_swift) }
734
743
  end
735
744
  end
736
745
 
@@ -740,7 +749,7 @@ describe Ibandit::LocalDetailsCleaner do
740
749
  let(:branch_code) { '01005' }
741
750
  let(:account_number) { '0500013M02606' }
742
751
 
743
- it { is_expected.to eq(local_details) }
752
+ it { is_expected.to eq(local_details_with_swift) }
744
753
 
745
754
  context 'with the RIB key spaced in the account number' do
746
755
  let(:account_number) { '0500013M026 06' }
@@ -754,22 +763,22 @@ describe Ibandit::LocalDetailsCleaner do
754
763
 
755
764
  context 'with the RIB key missing' do
756
765
  let(:account_number) { '0500013M026' }
757
- it { is_expected.to eq(local_details) }
766
+ it { is_expected.to eq(local_details_with_swift) }
758
767
  end
759
768
 
760
769
  context 'without a bank code' do
761
770
  let(:bank_code) { nil }
762
- it { is_expected.to eq(local_details) }
771
+ it { is_expected.to eq(local_details_with_swift) }
763
772
  end
764
773
 
765
774
  context 'without a branch code' do
766
775
  let(:branch_code) { nil }
767
- it { is_expected.to eq(local_details) }
776
+ it { is_expected.to eq(local_details_with_swift) }
768
777
  end
769
778
 
770
779
  context 'without an account number' do
771
780
  let(:account_number) { nil }
772
- it { is_expected.to eq(local_details) }
781
+ it { is_expected.to eq(local_details_with_swift) }
773
782
  end
774
783
  end
775
784
 
@@ -779,7 +788,7 @@ describe Ibandit::LocalDetailsCleaner do
779
788
  let(:branch_code) { '44093' }
780
789
  let(:account_number) { '000000009027293051' }
781
790
 
782
- it { is_expected.to eq(local_details) }
791
+ it { is_expected.to eq(local_details_with_swift) }
783
792
 
784
793
  context 'with the account number spaced' do
785
794
  let(:account_number) { '9027 2930 51' }
@@ -793,12 +802,12 @@ describe Ibandit::LocalDetailsCleaner do
793
802
 
794
803
  context 'without a branch code' do
795
804
  let(:branch_code) { nil }
796
- it { is_expected.to eq(local_details) }
805
+ it { is_expected.to eq(local_details_with_swift) }
797
806
  end
798
807
 
799
808
  context 'without a bank code' do
800
809
  let(:bank_code) { nil }
801
- it { is_expected.to eq(local_details) }
810
+ it { is_expected.to eq(local_details_with_swift) }
802
811
 
803
812
  context 'with a BIC finder set' do
804
813
  let(:bic_finder) { double }
@@ -832,21 +841,21 @@ describe Ibandit::LocalDetailsCleaner do
832
841
  let(:bank_code) { 'ABNA' }
833
842
  let(:account_number) { '0417164300' }
834
843
 
835
- it { is_expected.to eq(local_details) }
844
+ it { is_expected.to eq(local_details_with_swift) }
836
845
 
837
846
  context 'without a bank code' do
838
847
  let(:bank_code) { nil }
839
- it { is_expected.to eq(local_details) }
848
+ it { is_expected.to eq(local_details_with_swift) }
840
849
  end
841
850
 
842
851
  context 'without a branch code' do
843
852
  let(:branch_code) { nil }
844
- it { is_expected.to eq(local_details) }
853
+ it { is_expected.to eq(local_details_with_swift) }
845
854
  end
846
855
 
847
856
  context 'without an account number' do
848
857
  let(:account_number) { nil }
849
- it { is_expected.to eq(local_details) }
858
+ it { is_expected.to eq(local_details_with_swift) }
850
859
  end
851
860
 
852
861
  context 'with an account number that needs zero-padding' do
@@ -860,7 +869,7 @@ describe Ibandit::LocalDetailsCleaner do
860
869
  let(:bank_code) { '8601' }
861
870
  let(:account_number) { '1117947' }
862
871
 
863
- it { is_expected.to eq(local_details) }
872
+ it { is_expected.to eq(local_details_with_swift) }
864
873
 
865
874
  context 'with bank and branch codes in the account number' do
866
875
  let(:bank_code) { nil }
@@ -873,7 +882,7 @@ describe Ibandit::LocalDetailsCleaner do
873
882
 
874
883
  context 'without an account number' do
875
884
  let(:account_number) { nil }
876
- it { is_expected.to eq(local_details) }
885
+ it { is_expected.to eq(local_details_with_swift) }
877
886
  end
878
887
  end
879
888
 
@@ -882,7 +891,7 @@ describe Ibandit::LocalDetailsCleaner do
882
891
  let(:bank_code) { '10201026' }
883
892
  let(:account_number) { '0000042270201111' }
884
893
 
885
- it { is_expected.to eq(local_details) }
894
+ it { is_expected.to eq(local_details_with_swift) }
886
895
 
887
896
  context 'with a full length account number' do
888
897
  let(:bank_code) { nil }
@@ -895,7 +904,7 @@ describe Ibandit::LocalDetailsCleaner do
895
904
 
896
905
  context 'without an account number' do
897
906
  let(:account_number) { nil }
898
- it { is_expected.to eq(local_details) }
907
+ it { is_expected.to eq(local_details_with_swift) }
899
908
  end
900
909
  end
901
910
 
@@ -905,21 +914,21 @@ describe Ibandit::LocalDetailsCleaner do
905
914
  let(:branch_code) { '0023' }
906
915
  let(:account_number) { '0023843000578' }
907
916
 
908
- it { is_expected.to eq(local_details) }
917
+ it { is_expected.to eq(local_details_with_swift) }
909
918
 
910
919
  context 'without a bank code' do
911
920
  let(:bank_code) { nil }
912
- it { is_expected.to eq(local_details) }
921
+ it { is_expected.to eq(local_details_with_swift) }
913
922
  end
914
923
 
915
924
  context 'without a branch code' do
916
925
  let(:branch_code) { nil }
917
- it { is_expected.to eq(local_details) }
926
+ it { is_expected.to eq(local_details_with_swift) }
918
927
  end
919
928
 
920
929
  context 'without an account number' do
921
930
  let(:account_number) { nil }
922
- it { is_expected.to eq(local_details) }
931
+ it { is_expected.to eq(local_details_with_swift) }
923
932
  end
924
933
  end
925
934
 
@@ -928,16 +937,16 @@ describe Ibandit::LocalDetailsCleaner do
928
937
  let(:bank_code) { 'AAAA' }
929
938
  let(:account_number) { '1B31007593840000' }
930
939
 
931
- it { is_expected.to eq(local_details) }
940
+ it { is_expected.to eq(local_details_with_swift) }
932
941
 
933
942
  context 'without an account number' do
934
943
  let(:account_number) { nil }
935
- it { is_expected.to eq(local_details) }
944
+ it { is_expected.to eq(local_details_with_swift) }
936
945
  end
937
946
 
938
947
  context 'without a bank code' do
939
948
  let(:bank_code) { nil }
940
- it { is_expected.to eq(local_details) }
949
+ it { is_expected.to eq(local_details_with_swift) }
941
950
  end
942
951
  end
943
952
 
@@ -946,8 +955,10 @@ describe Ibandit::LocalDetailsCleaner do
946
955
  let(:bank_code) { '501' }
947
956
  let(:account_number) { '5013-1007270' }
948
957
 
949
- its([:bank_code]) { is_expected.to eq('501') }
950
- its([:account_number]) { is_expected.to eq('00000050131007270') }
958
+ its([:account_number]) { is_expected.to eq('1007270') }
959
+ its([:branch_code]) { is_expected.to eq('5013') }
960
+ its([:swift_bank_code]) { is_expected.to eq('501') }
961
+ its([:swift_account_number]) { is_expected.to eq('00000050131007270') }
951
962
 
952
963
  context 'without an account number' do
953
964
  let(:account_number) { nil }
@@ -957,8 +968,9 @@ describe Ibandit::LocalDetailsCleaner do
957
968
  context 'without a bank code' do
958
969
  let(:bank_code) { nil }
959
970
 
960
- its([:bank_code]) { is_expected.to eq('500') }
961
- its([:account_number]) { is_expected.to eq('00000050131007270') }
971
+ its([:swift_bank_code]) { is_expected.to eq('500') }
972
+ its([:account_number]) { is_expected.to eq('1007270') }
973
+ its([:swift_account_number]) { is_expected.to eq('00000050131007270') }
962
974
  end
963
975
  end
964
976
 
@@ -967,7 +979,7 @@ describe Ibandit::LocalDetailsCleaner do
967
979
  let(:bank_code) { '19100' }
968
980
  let(:account_number) { '0000123438' }
969
981
 
970
- it { is_expected.to eq(local_details) }
982
+ it { is_expected.to eq(local_details_with_swift) }
971
983
 
972
984
  context 'with an account number which needs zero-padding' do
973
985
  let(:account_number) { '123438' }
@@ -976,12 +988,12 @@ describe Ibandit::LocalDetailsCleaner do
976
988
 
977
989
  context 'without a bank code' do
978
990
  let(:bank_code) { nil }
979
- it { is_expected.to eq(local_details) }
991
+ it { is_expected.to eq(local_details_with_swift) }
980
992
  end
981
993
 
982
994
  context 'without an account number' do
983
995
  let(:account_number) { nil }
984
- it { is_expected.to eq(local_details) }
996
+ it { is_expected.to eq(local_details_with_swift) }
985
997
  end
986
998
  end
987
999
 
@@ -990,7 +1002,7 @@ describe Ibandit::LocalDetailsCleaner do
990
1002
  let(:bank_code) { '1200' }
991
1003
  let(:account_number) { '0000198742637541' }
992
1004
 
993
- it { is_expected.to eq(local_details) }
1005
+ it { is_expected.to eq(local_details_with_swift) }
994
1006
 
995
1007
  context 'with an account number prefix' do
996
1008
  let(:prefix) { '000019' }
@@ -1007,12 +1019,12 @@ describe Ibandit::LocalDetailsCleaner do
1007
1019
 
1008
1020
  context 'without a bank code' do
1009
1021
  let(:bank_code) { nil }
1010
- it { is_expected.to eq(local_details) }
1022
+ it { is_expected.to eq(local_details_with_swift) }
1011
1023
  end
1012
1024
 
1013
1025
  context 'without an account number' do
1014
1026
  let(:account_number) { nil }
1015
- it { is_expected.to eq(local_details) }
1027
+ it { is_expected.to eq(local_details_with_swift) }
1016
1028
  end
1017
1029
  end
1018
1030
 
@@ -1022,11 +1034,11 @@ describe Ibandit::LocalDetailsCleaner do
1022
1034
  let(:branch_code) { '11101' }
1023
1035
  let(:account_number) { '000000123456' }
1024
1036
 
1025
- it { is_expected.to eq(local_details) }
1037
+ it { is_expected.to eq(local_details_with_swift) }
1026
1038
 
1027
1039
  context 'with an explicit check digit' do
1028
1040
  before { local_details.merge!(check_digit: 'Y') }
1029
- it { is_expected.to eq(local_details) }
1041
+ it { is_expected.to eq(local_details_with_swift) }
1030
1042
  end
1031
1043
 
1032
1044
  context 'with the account number not zero-padded' do
@@ -1036,17 +1048,17 @@ describe Ibandit::LocalDetailsCleaner do
1036
1048
 
1037
1049
  context 'without a bank code' do
1038
1050
  let(:bank_code) { nil }
1039
- it { is_expected.to eq(local_details) }
1051
+ it { is_expected.to eq(local_details_with_swift) }
1040
1052
  end
1041
1053
 
1042
1054
  context 'without a branch code' do
1043
1055
  let(:branch_code) { nil }
1044
- it { is_expected.to eq(local_details) }
1056
+ it { is_expected.to eq(local_details_with_swift) }
1045
1057
  end
1046
1058
 
1047
1059
  context 'without an account number' do
1048
1060
  let(:account_number) { nil }
1049
- it { is_expected.to eq(local_details) }
1061
+ it { is_expected.to eq(local_details_with_swift) }
1050
1062
  end
1051
1063
  end
1052
1064
  end