cnab240_bancoabc 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (35) hide show
  1. checksums.yaml +7 -0
  2. data/CHANGELOG.md +17 -0
  3. data/LICENSE +21 -0
  4. data/README.md +72 -0
  5. data/Rakefile +48 -0
  6. data/lib/cnab240/bancoabc/entities/base.rb +50 -0
  7. data/lib/cnab240/bancoabc/entities/header.rb +120 -0
  8. data/lib/cnab240/bancoabc/entities/header_builder.rb +91 -0
  9. data/lib/cnab240/bancoabc/entities/header_lote_builder.rb +84 -0
  10. data/lib/cnab240/bancoabc/entities/register_p.rb +183 -0
  11. data/lib/cnab240/bancoabc/entities/register_q.rb +101 -0
  12. data/lib/cnab240/bancoabc/entities/register_r.rb +129 -0
  13. data/lib/cnab240/bancoabc/entities/register_s.rb +73 -0
  14. data/lib/cnab240/bancoabc/entities/register_t.rb +116 -0
  15. data/lib/cnab240/bancoabc/entities/register_u.rb +79 -0
  16. data/lib/cnab240/bancoabc/entities/trailler.rb +54 -0
  17. data/lib/cnab240/bancoabc/entities/trailler_builder.rb +45 -0
  18. data/lib/cnab240/bancoabc/entities/trailler_lote_builder.rb +49 -0
  19. data/lib/cnab240/bancoabc/ocorrencias.rb +68 -0
  20. data/lib/cnab240/bancoabc/services/parse_line.rb +21 -0
  21. data/lib/cnab240/bancoabc/version.rb +14 -0
  22. data/lib/cnab240_bancoabc.rb +25 -0
  23. data/spec/cnab240/bancoabc/entities/base_spec.rb +93 -0
  24. data/spec/cnab240/bancoabc/entities/header_spec.rb +64 -0
  25. data/spec/cnab240/bancoabc/entities/register_p_spec.rb +298 -0
  26. data/spec/cnab240/bancoabc/entities/register_q_spec.rb +149 -0
  27. data/spec/cnab240/bancoabc/entities/register_r_spec.rb +191 -0
  28. data/spec/cnab240/bancoabc/entities/register_t_spec.rb +64 -0
  29. data/spec/cnab240/bancoabc/entities/register_u_spec.rb +49 -0
  30. data/spec/cnab240/bancoabc/entities/trailler_builder_spec.rb +60 -0
  31. data/spec/cnab240/bancoabc/entities/trailler_lote_builder_spec.rb +65 -0
  32. data/spec/cnab240/bancoabc/entities/trailler_spec.rb +73 -0
  33. data/spec/cnab240/bancoabc/services/parse_line_spec.rb +37 -0
  34. data/spec/spec_helper.rb +34 -0
  35. metadata +223 -0
@@ -0,0 +1,21 @@
1
+ # frozen_string_literal: true
2
+
3
+ module CNAB240
4
+ module BancoABC
5
+ module Services
6
+ class ParseLine
7
+ HEADER = "0"
8
+ REGISTERT = "1"
9
+ REGISTERU = "2"
10
+ TRAILLER = "9"
11
+
12
+ def self.call(line, type)
13
+ return CNAB240::BancoABC::Entities::Header.new(line) if type == HEADER
14
+ return CNAB240::BancoABC::Entities::RegisterT.new(line) if type == REGISTERT
15
+ return CNAB240::BancoABC::Entities::RegisterU.new(line) if type == REGISTERU
16
+ return CNAB240::BancoABC::Entities::Trailler.new(line) if type == TRAILLER
17
+ end
18
+ end
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,14 @@
1
+ # frozen_string_literal: true
2
+
3
+ module CNAB240
4
+ module BancoABC
5
+ # When updating version, keep in mind Semantic Versioning http://semver.org/
6
+ # TL;DR; (Major.Minor.Patch)
7
+ # Releases before 1.0.0 are in active development and can change anytime
8
+ # 1.0.0 and up is indication and declaration of a stable public API
9
+ # Major - Incremented for incompatible changes with previous release (or big enough new features)
10
+ # Minor - Incremented for new backwards-compatible features + deprecations
11
+ # Patch - Incremented for backwards-compatible bug fixes
12
+ VERSION = "1.1.0"
13
+ end
14
+ end
@@ -0,0 +1,25 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "cnab240/bancoabc/version"
4
+ require "cnab240/bancoabc/ocorrencias"
5
+
6
+ require "cnab240/bancoabc/services/parse_line"
7
+
8
+ require "cnab240/bancoabc/entities/base"
9
+ require "cnab240/bancoabc/entities/header_builder"
10
+ require "cnab240/bancoabc/entities/header_lote_builder"
11
+ require "cnab240/bancoabc/entities/header"
12
+ require "cnab240/bancoabc/entities/register_p"
13
+ require "cnab240/bancoabc/entities/register_q"
14
+ require "cnab240/bancoabc/entities/register_r"
15
+ require "cnab240/bancoabc/entities/register_s"
16
+ require "cnab240/bancoabc/entities/register_t"
17
+ require "cnab240/bancoabc/entities/register_u"
18
+ require "cnab240/bancoabc/entities/trailler_builder"
19
+ require "cnab240/bancoabc/entities/trailler"
20
+ require "cnab240/bancoabc/entities/trailler_lote_builder"
21
+
22
+ module CNAB240
23
+ module BancoABC
24
+ end
25
+ end
@@ -0,0 +1,93 @@
1
+ # frozen_string_literal: false
2
+
3
+ require "spec_helper"
4
+
5
+ describe CNAB240::BancoABC::Entities::Base do
6
+ describe "#header?" do
7
+ subject { described_class.new.header? }
8
+
9
+ it { expect(subject).to be_falsey }
10
+ end
11
+
12
+ describe "#trailler?" do
13
+ subject { described_class.new.trailler? }
14
+
15
+ it { expect(subject).to be_falsey }
16
+ end
17
+
18
+ describe "#register?" do
19
+ subject { described_class.new.register? }
20
+
21
+ it { expect(subject).to be_falsey }
22
+ end
23
+
24
+ describe "#white_space" do
25
+ subject { described_class.new.send(:white_space, 3) }
26
+
27
+ it { expect(subject).to eq(" ") }
28
+ end
29
+
30
+ describe "#prepend_zero" do
31
+ subject { described_class.new.send(:prepend_zero, data, range) }
32
+
33
+ context "when data is null" do
34
+ let(:data) { nil }
35
+ let(:range) { 2 }
36
+
37
+ it { expect(subject).to eq(" ") }
38
+ end
39
+
40
+ context "when data has the same length as range" do
41
+ let(:data) { "10" }
42
+ let(:range) { 2 }
43
+
44
+ it { expect(subject).to eq(data) }
45
+ end
46
+
47
+ context "when data has the length greater than range" do
48
+ let(:data) { "101" }
49
+ let(:range) { 2 }
50
+
51
+ it { expect(subject).to eq(data) }
52
+ end
53
+
54
+ context "when range has the length greater than data" do
55
+ let(:data) { "10" }
56
+ let(:range) { 3 }
57
+
58
+ it { expect(subject).to eq("#{data}") }
59
+ end
60
+ end
61
+
62
+ describe "#append_space" do
63
+ subject { described_class.new.send(:append_space, data, range) }
64
+
65
+ context "when data is null" do
66
+ let(:data) { nil }
67
+ let(:range) { 2 }
68
+
69
+ it { expect(subject).to eq(" ") }
70
+ end
71
+
72
+ context "when data has the same length as range" do
73
+ let(:data) { "10" }
74
+ let(:range) { 2 }
75
+
76
+ it { expect(subject).to eq(data) }
77
+ end
78
+
79
+ context "when data has the length greater than range" do
80
+ let(:data) { "101" }
81
+ let(:range) { 2 }
82
+
83
+ it { expect(subject).to eq("10") }
84
+ end
85
+
86
+ context "when range has the length greater than data" do
87
+ let(:data) { "10" }
88
+ let(:range) { 3 }
89
+
90
+ it { expect(subject).to eq("#{data} ") }
91
+ end
92
+ end
93
+ end
@@ -0,0 +1,64 @@
1
+ # frozen_string_literal: false
2
+
3
+ require "spec_helper"
4
+
5
+ describe CNAB240::BancoABC::Entities::Header do
6
+ let(:codigo_do_banco) { 3.times.map { rand(10) }.join }
7
+ let(:lote_servico) { 4.times.map { rand(10) }.join }
8
+ let(:tipo_servico) { 1.times.map { rand(10) }.join }
9
+ let(:uso_exclusivo_febraban_1) { 9.times.map { rand(10) }.join }
10
+ let(:tipo_inscricao_da_empresa) { 1.times.map { rand(10) }.join }
11
+ let(:numero_inscricao_da_empresa) { 14.times.map { rand(10) }.join }
12
+ let(:codigo_identificacao_empresa_banco) { 40.times.map { rand(10) }.join }
13
+ let(:nome_empresa) { 30.times.map { rand(10) }.join }
14
+ let(:nome_banco) { 30.times.map { rand(10) }.join }
15
+ let(:uso_exclusivo_febraban_2) { 10.times.map { rand(10) }.join }
16
+ let(:codigo_retorno) { 1.times.map { rand(10) }.join }
17
+ let(:data_geracao) { 8.times.map { rand(10) }.join }
18
+ let(:hora_geracao) { 6.times.map { rand(10) }.join }
19
+ let(:numero_sequencial) { 6.times.map { rand(10) }.join }
20
+ let(:numero_versao_layout) { 3.times.map { rand(10) }.join }
21
+ let(:desidade_gravacao_arquivo) { 5.times.map { rand(10) }.join }
22
+ let(:uso_reservado_banco) { 20.times.map { rand(10) }.join }
23
+ let(:uso_reservado_empresa) { 20.times.map { rand(10) }.join }
24
+ let(:uso_exclusivo_febraban_3) { 28.times.map { rand(10) }.join }
25
+
26
+ let(:line) do
27
+ codigo_do_banco + lote_servico + tipo_servico + uso_exclusivo_febraban_1 + tipo_inscricao_da_empresa +
28
+ numero_inscricao_da_empresa + codigo_identificacao_empresa_banco + nome_empresa + nome_banco + uso_exclusivo_febraban_2 +
29
+ codigo_retorno + data_geracao + hora_geracao + numero_sequencial + numero_versao_layout + desidade_gravacao_arquivo +
30
+ uso_reservado_banco + uso_reservado_empresa + uso_exclusivo_febraban_3
31
+ end
32
+
33
+ describe "#header?" do
34
+ subject { described_class.new(line).header? }
35
+
36
+ it { expect(subject).to be_truthy }
37
+ end
38
+
39
+ describe "#data" do
40
+ subject { described_class.new(line).data }
41
+
42
+ it { expect(subject).to eq({
43
+ codigo_do_banco: codigo_do_banco.strip,
44
+ lote_servico: lote_servico.strip,
45
+ tipo_servico: tipo_servico.strip,
46
+ uso_exclusivo_febraban_1: uso_exclusivo_febraban_1.strip,
47
+ tipo_inscricao_da_empresa: tipo_inscricao_da_empresa.strip,
48
+ numero_inscricao_da_empresa: numero_inscricao_da_empresa.strip,
49
+ codigo_identificacao_empresa_banco: codigo_identificacao_empresa_banco.strip,
50
+ nome_empresa: nome_empresa.strip,
51
+ nome_banco: nome_banco.strip,
52
+ uso_exclusivo_febraban_2: uso_exclusivo_febraban_2.strip,
53
+ codigo_retorno: codigo_retorno.strip,
54
+ data_geracao: data_geracao.strip,
55
+ hora_geracao: hora_geracao.strip,
56
+ numero_sequencial: numero_sequencial.strip,
57
+ numero_versao_layout: numero_versao_layout.strip,
58
+ desidade_gravacao_arquivo: desidade_gravacao_arquivo.strip,
59
+ uso_reservado_banco: uso_reservado_banco.strip,
60
+ uso_reservado_empresa: uso_reservado_empresa.strip,
61
+ uso_exclusivo_febraban_3: uso_exclusivo_febraban_3.strip
62
+ }) }
63
+ end
64
+ end
@@ -0,0 +1,298 @@
1
+ # frozen_string_literal: false
2
+
3
+ require "spec_helper"
4
+
5
+ describe CNAB240::BancoABC::Entities::RegisterP do
6
+ describe "#register?" do
7
+ subject { described_class.new.register? }
8
+
9
+ it { expect(subject).to be_truthy }
10
+ end
11
+
12
+ describe "#codigo_banco" do
13
+ subject { described_class.new.codigo_banco(2) }
14
+
15
+ it { expect(subject).to eq("2 ") }
16
+ end
17
+
18
+ describe "#lote_servico" do
19
+ subject { described_class.new.lote_servico(2) }
20
+
21
+ it { expect(subject).to eq("2 ") }
22
+ end
23
+
24
+ describe "#tipo_registro" do
25
+ subject { described_class.new.tipo_registro(2) }
26
+
27
+ it { expect(subject).to eq("2") }
28
+ end
29
+
30
+ describe "#numero_registro" do
31
+ subject { described_class.new.numero_registro(2) }
32
+
33
+ it { expect(subject).to eq("00002") }
34
+ end
35
+
36
+ describe "#segmento" do
37
+ subject { described_class.new.segmento }
38
+
39
+ it { expect(subject).to eq("P") }
40
+ end
41
+
42
+ describe "#cnab" do
43
+ subject { described_class.new.cnab("1") }
44
+
45
+ it { expect(subject).to eq("1") }
46
+ end
47
+
48
+ describe "#codigo_movimento" do
49
+ subject { described_class.new.codigo_movimento("1") }
50
+
51
+ it { expect(subject).to eq("1 ") }
52
+ end
53
+
54
+ describe "#direcionamento_cobranca" do
55
+ subject { described_class.new.direcionamento_cobranca(23) }
56
+
57
+ it { expect(subject).to eq("2") }
58
+ end
59
+
60
+ describe "#identificacao_empresa" do
61
+ subject { described_class.new.identificacao_empresa }
62
+
63
+ it { expect(subject).to eq("00019070022307900000") }
64
+ end
65
+
66
+ describe "#modalidade_cobranca" do
67
+ subject { described_class.new.modalidade_cobranca }
68
+
69
+ it { expect(subject).to eq("000") }
70
+ end
71
+
72
+ describe "#uso_exclusivo_abc" do
73
+ subject { described_class.new.uso_exclusivo_abc(1) }
74
+
75
+ it { expect(subject).to eq("1 ") }
76
+ end
77
+
78
+ describe "#modalidade_banco_cedente" do
79
+ subject { described_class.new.modalidade_banco_cedente(1) }
80
+
81
+ it { expect(subject).to eq("1 ") }
82
+ end
83
+
84
+ describe "#identificacao_do_titulo" do
85
+ subject { described_class.new.identificacao_do_titulo(1234567) }
86
+
87
+ it { expect(subject).to eq("1234567 ") }
88
+ end
89
+
90
+ describe "#carteira" do
91
+ subject { described_class.new.carteira(1234567) }
92
+
93
+ it { expect(subject).to eq("1") }
94
+ end
95
+
96
+ describe "#cadastramento" do
97
+ subject { described_class.new.cadastramento("P") }
98
+
99
+ it { expect(subject).to eq("P") }
100
+ end
101
+
102
+ describe "#documento" do
103
+ subject { described_class.new.documento("D") }
104
+
105
+ it { expect(subject).to eq("D") }
106
+ end
107
+
108
+ describe "#dist_boleto" do
109
+ subject { described_class.new.dist_boleto("B") }
110
+
111
+ it { expect(subject).to eq("B") }
112
+ end
113
+
114
+ describe "#numero_documento" do
115
+ subject { described_class.new.numero_documento("987654321") }
116
+
117
+ it { expect(subject).to eq("987654321 ") }
118
+ end
119
+
120
+ describe "#emissao_boleto" do
121
+ subject { described_class.new.emissao_boleto("B") }
122
+
123
+ it { expect(subject).to eq("B") }
124
+ end
125
+
126
+ describe "#data_vencimento" do
127
+ subject { described_class.new.data_vencimento("987654321") }
128
+
129
+ it { expect(subject).to eq("98765432") }
130
+ end
131
+
132
+ describe "#valor_titulo" do
133
+ subject { described_class.new.valor_titulo("987654321") }
134
+
135
+ it { expect(subject).to eq("000000987654321") }
136
+ end
137
+
138
+ describe "#agencia" do
139
+ subject { described_class.new.agencia("987654321") }
140
+
141
+ it { expect(subject).to eq("98765") }
142
+ end
143
+
144
+ describe "#digito_verificador" do
145
+ subject { described_class.new.digito_verificador("98765") }
146
+
147
+ it { expect(subject).to eq("9") }
148
+ end
149
+
150
+ describe "#especie_titulo" do
151
+ subject { described_class.new.especie_titulo("98765") }
152
+
153
+ it { expect(subject).to eq("98") }
154
+ end
155
+
156
+ describe "#aceite" do
157
+ subject { described_class.new.aceite }
158
+
159
+ it { expect(subject).to eq("N") }
160
+ end
161
+
162
+ describe "#data_emissao" do
163
+ subject { described_class.new.data_emissao(82108431331244) }
164
+
165
+ it { expect(subject).to eq("82108431") }
166
+ end
167
+
168
+ describe "#codigo_juros_mora" do
169
+ subject { described_class.new.codigo_juros_mora(82108431331244) }
170
+
171
+ it { expect(subject).to eq("8") }
172
+ end
173
+
174
+ describe "#data_juros_mora" do
175
+ subject { described_class.new.data_juros_mora(82108431331244) }
176
+
177
+ it { expect(subject).to eq("82108431") }
178
+ end
179
+
180
+ describe "#juros_mora" do
181
+ subject { described_class.new.juros_mora(82108431331244) }
182
+
183
+ it { expect(subject).to eq("082108431331244") }
184
+ end
185
+
186
+ describe "#cod_desconto" do
187
+ subject { described_class.new.cod_desconto(82) }
188
+
189
+ it { expect(subject).to eq("8") }
190
+ end
191
+
192
+ describe "#data_desconto" do
193
+ subject { described_class.new.data_desconto(82) }
194
+
195
+ it { expect(subject).to eq("82 ") }
196
+ end
197
+
198
+ describe "#valor_desconto" do
199
+ subject { described_class.new.valor_desconto(820123) }
200
+
201
+ it { expect(subject).to eq("000000000820123") }
202
+ end
203
+
204
+ describe "#valor_iof" do
205
+ subject { described_class.new.valor_iof(820123) }
206
+
207
+ it { expect(subject).to eq("000000000820123") }
208
+ end
209
+
210
+ describe "#valor_abatimento" do
211
+ subject { described_class.new.valor_abatimento(820123) }
212
+
213
+ it { expect(subject).to eq("000000000820123") }
214
+ end
215
+
216
+ describe "#uso_empresa_cedente" do
217
+ subject { described_class.new.uso_empresa_cedente(820123) }
218
+
219
+ it { expect(subject).to eq("820123 ") }
220
+ end
221
+
222
+ describe "#codigo_protesto" do
223
+ subject { described_class.new.codigo_protesto(codigo_protesto) }
224
+
225
+ context "when instrucao type is Protestar" do
226
+ let(:codigo_protesto) { 1 }
227
+
228
+ it { expect(subject).to eq("1") }
229
+ end
230
+
231
+ context "when protestar_titulos flag is true" do
232
+ let(:codigo_protesto) { 1 }
233
+
234
+ it { expect(subject).to eq("1") }
235
+ end
236
+
237
+ context "when protestar_titulos flag is false and instrucao type is not Protestar" do
238
+ let(:codigo_protesto) { 3 }
239
+
240
+ it { expect(subject).to eq("3") }
241
+ end
242
+ end
243
+
244
+ describe "#prazo_protesto" do
245
+ subject { described_class.new.prazo_protesto(dias_protesto, codigo_protesto) }
246
+
247
+ context "when codigo protesto is dias corridos" do
248
+ let(:codigo_protesto) { 1 }
249
+ let(:dias_protesto) { 10 }
250
+
251
+ it { expect(subject).to eq("10") }
252
+ end
253
+
254
+ context "when codigo protesto is dias úteis" do
255
+ let(:codigo_protesto) { 2 }
256
+ let(:dias_protesto) { 5 }
257
+
258
+ it { expect(subject).to eq("05") }
259
+ end
260
+
261
+ context "when codigo protesto is isento" do
262
+ let(:codigo_protesto) { 3 }
263
+ let(:dias_protesto) { 15 }
264
+
265
+ it { expect(subject).to eq("00") }
266
+ end
267
+ end
268
+
269
+ describe "#codigo_baixa_devolucao" do
270
+ subject { described_class.new.codigo_baixa_devolucao }
271
+
272
+ it { expect(subject).to eq("2") }
273
+ end
274
+
275
+ describe "#prazo_baixa_devolucao" do
276
+ subject { described_class.new.prazo_baixa_devolucao }
277
+
278
+ it { expect(subject).to eq("000") }
279
+ end
280
+
281
+ describe "#codigo_moeda" do
282
+ subject { described_class.new.codigo_moeda(31234) }
283
+
284
+ it { expect(subject).to eq("31") }
285
+ end
286
+
287
+ describe "#numero_contrato" do
288
+ subject { described_class.new.numero_contrato(31234) }
289
+
290
+ it { expect(subject).to eq("31234 ") }
291
+ end
292
+
293
+ describe "#uso_livre" do
294
+ subject { described_class.new.uso_livre(31234) }
295
+
296
+ it { expect(subject).to eq("3") }
297
+ end
298
+ end
@@ -0,0 +1,149 @@
1
+ # frozen_string_literal: false
2
+
3
+ require "spec_helper"
4
+
5
+ describe CNAB240::BancoABC::Entities::RegisterQ do
6
+ describe "#register?" do
7
+ subject { described_class.new.register? }
8
+
9
+ it { expect(subject).to be_truthy }
10
+ end
11
+
12
+ describe "#codigo_banco" do
13
+ subject { described_class.new.codigo_banco(2) }
14
+
15
+ it { expect(subject).to eq("2 ") }
16
+ end
17
+
18
+ describe "#lote_servico" do
19
+ subject { described_class.new.lote_servico(2) }
20
+
21
+ it { expect(subject).to eq("2 ") }
22
+ end
23
+
24
+ describe "#tipo_registro" do
25
+ subject { described_class.new.tipo_registro(2) }
26
+
27
+ it { expect(subject).to eq("2") }
28
+ end
29
+
30
+ describe "#numero_registro" do
31
+ subject { described_class.new.numero_registro(2) }
32
+
33
+ it { expect(subject).to eq("00002") }
34
+ end
35
+
36
+ describe "#segmento" do
37
+ subject { described_class.new.segmento }
38
+
39
+ it { expect(subject).to eq("Q") }
40
+ end
41
+
42
+ describe "#cnab" do
43
+ subject { described_class.new.cnab("1") }
44
+
45
+ it { expect(subject).to eq("1") }
46
+ end
47
+
48
+ describe "#codigo_movimento" do
49
+ subject { described_class.new.codigo_movimento("1") }
50
+
51
+ it { expect(subject).to eq("1 ") }
52
+ end
53
+
54
+ describe "#uso_livre" do
55
+ subject { described_class.new.uso_livre(31234) }
56
+
57
+ it { expect(subject).to eq("31234 ") }
58
+ end
59
+
60
+ describe "#tipo_inscricao" do
61
+ subject { described_class.new.tipo_inscricao(31234) }
62
+
63
+ it { expect(subject).to eq("3") }
64
+ end
65
+
66
+ describe "#numero_inscricao" do
67
+ subject { described_class.new.numero_inscricao(31234) }
68
+
69
+ it { expect(subject).to eq("000000000031234") }
70
+ end
71
+
72
+ describe "#nome" do
73
+ subject { described_class.new.nome(31234) }
74
+
75
+ it { expect(subject).to eq("31234 ") }
76
+ end
77
+
78
+ describe "#endereco" do
79
+ subject { described_class.new.endereco(31234) }
80
+
81
+ it { expect(subject).to eq("31234 ") }
82
+ end
83
+
84
+ describe "#bairro" do
85
+ subject { described_class.new.bairro(31234) }
86
+
87
+ it { expect(subject).to eq("31234 ") }
88
+ end
89
+
90
+ describe "#cep" do
91
+ subject { described_class.new.cep(31233242342344) }
92
+
93
+ it { expect(subject).to eq("31233") }
94
+ end
95
+
96
+ describe "#sufixo_cep" do
97
+ subject { described_class.new.sufixo_cep(2341) }
98
+
99
+ it { expect(subject).to eq("234") }
100
+ end
101
+
102
+ describe "#cidade" do
103
+ subject { described_class.new.cidade("RIO CLARO") }
104
+
105
+ it { expect(subject).to eq("RIO CLARO ") }
106
+ end
107
+
108
+ describe "#cidade" do
109
+ subject { described_class.new.uf("SPF") }
110
+
111
+ it { expect(subject).to eq("SP") }
112
+ end
113
+
114
+ describe "#uf" do
115
+ subject { described_class.new.uf("SPF") }
116
+
117
+ it { expect(subject).to eq("SP") }
118
+ end
119
+
120
+ describe "#tipo_inscricao_sac" do
121
+ subject { described_class.new.tipo_inscricao_sac("SPF") }
122
+
123
+ it { expect(subject).to eq("S") }
124
+ end
125
+
126
+ describe "#numero_inscricao_sac" do
127
+ subject { described_class.new.numero_inscricao_sac("SP12312314123123F") }
128
+
129
+ it { expect(subject).to eq("SP12312314123123F") }
130
+ end
131
+
132
+ describe "#nome_sac" do
133
+ subject { described_class.new.nome_sac("SP12312314123123F") }
134
+
135
+ it { expect(subject).to eq("SP12312314123123F ") }
136
+ end
137
+
138
+ describe "#banco_correspondente" do
139
+ subject { described_class.new.banco_correspondente }
140
+
141
+ it { expect(subject).to eq("000") }
142
+ end
143
+
144
+ describe "#nosso_numero_banco" do
145
+ subject { described_class.new.nosso_numero_banco(13948129038) }
146
+
147
+ it { expect(subject).to eq("13948129038 ") }
148
+ end
149
+ end