cnab240_bancoabc 1.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/CHANGELOG.md +17 -0
- data/LICENSE +21 -0
- data/README.md +72 -0
- data/Rakefile +48 -0
- data/lib/cnab240/bancoabc/entities/base.rb +50 -0
- data/lib/cnab240/bancoabc/entities/header.rb +120 -0
- data/lib/cnab240/bancoabc/entities/header_builder.rb +91 -0
- data/lib/cnab240/bancoabc/entities/header_lote_builder.rb +84 -0
- data/lib/cnab240/bancoabc/entities/register_p.rb +183 -0
- data/lib/cnab240/bancoabc/entities/register_q.rb +101 -0
- data/lib/cnab240/bancoabc/entities/register_r.rb +129 -0
- data/lib/cnab240/bancoabc/entities/register_s.rb +73 -0
- data/lib/cnab240/bancoabc/entities/register_t.rb +116 -0
- data/lib/cnab240/bancoabc/entities/register_u.rb +79 -0
- data/lib/cnab240/bancoabc/entities/trailler.rb +54 -0
- data/lib/cnab240/bancoabc/entities/trailler_builder.rb +45 -0
- data/lib/cnab240/bancoabc/entities/trailler_lote_builder.rb +49 -0
- data/lib/cnab240/bancoabc/ocorrencias.rb +68 -0
- data/lib/cnab240/bancoabc/services/parse_line.rb +21 -0
- data/lib/cnab240/bancoabc/version.rb +14 -0
- data/lib/cnab240_bancoabc.rb +25 -0
- data/spec/cnab240/bancoabc/entities/base_spec.rb +93 -0
- data/spec/cnab240/bancoabc/entities/header_spec.rb +64 -0
- data/spec/cnab240/bancoabc/entities/register_p_spec.rb +298 -0
- data/spec/cnab240/bancoabc/entities/register_q_spec.rb +149 -0
- data/spec/cnab240/bancoabc/entities/register_r_spec.rb +191 -0
- data/spec/cnab240/bancoabc/entities/register_t_spec.rb +64 -0
- data/spec/cnab240/bancoabc/entities/register_u_spec.rb +49 -0
- data/spec/cnab240/bancoabc/entities/trailler_builder_spec.rb +60 -0
- data/spec/cnab240/bancoabc/entities/trailler_lote_builder_spec.rb +65 -0
- data/spec/cnab240/bancoabc/entities/trailler_spec.rb +73 -0
- data/spec/cnab240/bancoabc/services/parse_line_spec.rb +37 -0
- data/spec/spec_helper.rb +34 -0
- metadata +223 -0
@@ -0,0 +1,191 @@
|
|
1
|
+
# frozen_string_literal: false
|
2
|
+
|
3
|
+
require "spec_helper"
|
4
|
+
|
5
|
+
describe CNAB240::BancoABC::Entities::RegisterR 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("002") }
|
16
|
+
end
|
17
|
+
|
18
|
+
describe "#lote_servico" do
|
19
|
+
subject { described_class.new.lote_servico(2) }
|
20
|
+
|
21
|
+
it { expect(subject).to eq("0002") }
|
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("R") }
|
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("01") }
|
52
|
+
end
|
53
|
+
|
54
|
+
describe "#uso_exclusivo" do
|
55
|
+
subject { described_class.new.uso_exclusivo(31234) }
|
56
|
+
|
57
|
+
it { expect(subject).to eq("31234 ") }
|
58
|
+
end
|
59
|
+
|
60
|
+
describe "#cod_desconto_2" do
|
61
|
+
subject { described_class.new.cod_desconto_2(820123) }
|
62
|
+
|
63
|
+
it { expect(subject).to eq("820123") }
|
64
|
+
end
|
65
|
+
|
66
|
+
describe "#data_desconto_2" do
|
67
|
+
subject { described_class.new.data_desconto_2(820123) }
|
68
|
+
|
69
|
+
it { expect(subject).to eq("00820123") }
|
70
|
+
end
|
71
|
+
|
72
|
+
describe "#valor_desconto_2" do
|
73
|
+
subject { described_class.new.valor_desconto_2(820123) }
|
74
|
+
|
75
|
+
it { expect(subject).to eq("000000000820123") }
|
76
|
+
end
|
77
|
+
|
78
|
+
describe "#cod_desconto_3" do
|
79
|
+
subject { described_class.new.cod_desconto_3(820123) }
|
80
|
+
|
81
|
+
it { expect(subject).to eq("820123") }
|
82
|
+
end
|
83
|
+
|
84
|
+
describe "#data_desconto_3" do
|
85
|
+
subject { described_class.new.data_desconto_3(820123) }
|
86
|
+
|
87
|
+
it { expect(subject).to eq("00820123") }
|
88
|
+
end
|
89
|
+
|
90
|
+
describe "#valor_desconto_3" do
|
91
|
+
subject { described_class.new.valor_desconto_3(820123) }
|
92
|
+
|
93
|
+
it { expect(subject).to eq("000000000820123") }
|
94
|
+
end
|
95
|
+
|
96
|
+
describe "#cod_multa" do
|
97
|
+
subject { described_class.new.cod_multa(820123) }
|
98
|
+
|
99
|
+
it { expect(subject).to eq("820123") }
|
100
|
+
end
|
101
|
+
|
102
|
+
describe "#data_multa" do
|
103
|
+
subject { described_class.new.data_multa(820123) }
|
104
|
+
|
105
|
+
it { expect(subject).to eq("00820123") }
|
106
|
+
end
|
107
|
+
|
108
|
+
describe "#valor_multa" do
|
109
|
+
subject { described_class.new.valor_multa(820123) }
|
110
|
+
|
111
|
+
it { expect(subject).to eq("000000000820123") }
|
112
|
+
end
|
113
|
+
|
114
|
+
describe "#informacao_sacado" do
|
115
|
+
subject { described_class.new.informacao_sacado(820123) }
|
116
|
+
|
117
|
+
it { expect(subject).to eq("0000820123") }
|
118
|
+
end
|
119
|
+
|
120
|
+
describe "#mensagem_3" do
|
121
|
+
subject { described_class.new.mensagem_3(820123) }
|
122
|
+
|
123
|
+
it { expect(subject).to eq("820123 ") }
|
124
|
+
end
|
125
|
+
|
126
|
+
describe "#mensagem_4" do
|
127
|
+
subject { described_class.new.mensagem_4(820123) }
|
128
|
+
|
129
|
+
it { expect(subject).to eq("820123 ") }
|
130
|
+
end
|
131
|
+
|
132
|
+
describe "#uso_exclusivo" do
|
133
|
+
subject { described_class.new.uso_exclusivo(820123) }
|
134
|
+
|
135
|
+
it { expect(subject).to eq("820123 ") }
|
136
|
+
end
|
137
|
+
|
138
|
+
describe "#cod_ocorrencia_sacado" do
|
139
|
+
subject { described_class.new.cod_ocorrencia_sacado(820123) }
|
140
|
+
|
141
|
+
it { expect(subject).to eq("00820123") }
|
142
|
+
end
|
143
|
+
|
144
|
+
describe "#cod_banco_conta_debito" do
|
145
|
+
subject { described_class.new.cod_banco_conta_debito(820123) }
|
146
|
+
|
147
|
+
it { expect(subject).to eq("820") }
|
148
|
+
end
|
149
|
+
|
150
|
+
describe "#cod_agencia_debito" do
|
151
|
+
subject { described_class.new.cod_agencia_debito(820123) }
|
152
|
+
|
153
|
+
it { expect(subject).to eq("82012") }
|
154
|
+
end
|
155
|
+
|
156
|
+
describe "#digito_verificador_agencia" do
|
157
|
+
subject { described_class.new.digito_verificador_agencia(820123) }
|
158
|
+
|
159
|
+
it { expect(subject).to eq("8") }
|
160
|
+
end
|
161
|
+
|
162
|
+
describe "#conta_corrente_debito" do
|
163
|
+
subject { described_class.new.conta_corrente_debito(820123) }
|
164
|
+
|
165
|
+
it { expect(subject).to eq("820123 ") }
|
166
|
+
end
|
167
|
+
|
168
|
+
describe "#digito_verificador_conta" do
|
169
|
+
subject { described_class.new.digito_verificador_conta(820123) }
|
170
|
+
|
171
|
+
it { expect(subject).to eq("8") }
|
172
|
+
end
|
173
|
+
|
174
|
+
describe "#aviso_debito_automatico" do
|
175
|
+
subject { described_class.new.aviso_debito_automatico(2820123) }
|
176
|
+
|
177
|
+
it { expect(subject).to eq("2820123") }
|
178
|
+
end
|
179
|
+
|
180
|
+
describe "#uso_exclusivo_cnab" do
|
181
|
+
subject { described_class.new.uso_exclusivo_cnab(2820123) }
|
182
|
+
|
183
|
+
it { expect(subject).to eq("2820123 ") }
|
184
|
+
end
|
185
|
+
|
186
|
+
describe "#digito_verificador_agencia_conta" do
|
187
|
+
subject { described_class.new.digito_verificador_agencia_conta(2820123) }
|
188
|
+
|
189
|
+
it { expect(subject).to eq("2") }
|
190
|
+
end
|
191
|
+
end
|
@@ -0,0 +1,64 @@
|
|
1
|
+
# frozen_string_literal: false
|
2
|
+
|
3
|
+
require "spec_helper"
|
4
|
+
|
5
|
+
describe CNAB240::BancoABC::Entities::RegisterT do
|
6
|
+
let(:header) { 13.times.map { rand(10) }.join }
|
7
|
+
let(:segmento) { 1.times.map { rand(10) }.join }
|
8
|
+
let(:segmento_space) { 1.times.map { rand(10) }.join }
|
9
|
+
let(:codigo_movimento) { 2.times.map { rand(10) }.join }
|
10
|
+
let(:codigo_movimento_space) { 29.times.map { rand(10) }.join }
|
11
|
+
let(:identificacao_do_titulo) { 11.times.map { rand(10) }.join }
|
12
|
+
let(:codigo_carteira) { 1.times.map { rand(10) }.join }
|
13
|
+
let(:numero_documento) { 15.times.map { rand(10) }.join }
|
14
|
+
let(:data_vencimento) { 8.times.map { rand(10) }.join }
|
15
|
+
let(:valor_titulo) { 15.times.map { rand(10) }.join }
|
16
|
+
let(:numero_do_banco) { 3.times.map { rand(10) }.join }
|
17
|
+
let(:agencia) { 5.times.map { rand(10) }.join }
|
18
|
+
let(:digito_verificador) { 1.times.map { rand(10) }.join }
|
19
|
+
let(:uso_empresa) { 25.times.map { rand(10) }.join }
|
20
|
+
let(:uso_empresa_space) { 2.times.map { rand(10) }.join }
|
21
|
+
let(:tipo_inscricao) { 1.times.map { rand(10) }.join }
|
22
|
+
let(:numero_inscricao) { 15.times.map { rand(10) }.join }
|
23
|
+
let(:nome) { 40.times.map { rand(10) }.join }
|
24
|
+
let(:nome_space) { 10.times.map { rand(10) }.join }
|
25
|
+
let(:motivo_ocorrencia) { 10.times.map { rand(10) }.join }
|
26
|
+
let(:valor_de_tarifas_custas_correspondentes) { 15.times.map { rand(10) }.join }
|
27
|
+
let(:ocorrencia) { described_class.new(line).ocorrencia }
|
28
|
+
|
29
|
+
let(:line) do
|
30
|
+
header + segmento + segmento_space + codigo_movimento + codigo_movimento_space + identificacao_do_titulo + codigo_carteira +
|
31
|
+
numero_documento + data_vencimento + valor_titulo + numero_do_banco + agencia + digito_verificador +
|
32
|
+
uso_empresa + uso_empresa_space + tipo_inscricao + numero_inscricao + nome + nome_space + valor_de_tarifas_custas_correspondentes + motivo_ocorrencia
|
33
|
+
end
|
34
|
+
|
35
|
+
describe "#register?" do
|
36
|
+
subject { described_class.new(line).register? }
|
37
|
+
|
38
|
+
it { expect(subject).to be_truthy }
|
39
|
+
end
|
40
|
+
|
41
|
+
describe "#data" do
|
42
|
+
subject { described_class.new(line).data }
|
43
|
+
|
44
|
+
it { expect(subject).to eq({
|
45
|
+
segmento: segmento.strip,
|
46
|
+
codigo_movimento: codigo_movimento.strip,
|
47
|
+
ocorrencia:,
|
48
|
+
identificacao_do_titulo: identificacao_do_titulo.strip,
|
49
|
+
codigo_carteira: codigo_carteira.strip,
|
50
|
+
numero_documento: numero_documento.strip,
|
51
|
+
data_vencimento: data_vencimento.strip,
|
52
|
+
valor_titulo: valor_titulo.strip,
|
53
|
+
numero_do_banco: numero_do_banco.strip,
|
54
|
+
agencia: agencia.strip,
|
55
|
+
digito_verificador: digito_verificador.strip,
|
56
|
+
uso_empresa: uso_empresa.strip,
|
57
|
+
tipo_inscricao: tipo_inscricao.strip,
|
58
|
+
numero_inscricao: numero_inscricao.strip,
|
59
|
+
nome: nome.strip,
|
60
|
+
valor_de_tarifas_custas_correspondentes: valor_de_tarifas_custas_correspondentes.strip,
|
61
|
+
motivo_ocorrencia:
|
62
|
+
}) }
|
63
|
+
end
|
64
|
+
end
|
@@ -0,0 +1,49 @@
|
|
1
|
+
# frozen_string_literal: false
|
2
|
+
|
3
|
+
require "spec_helper"
|
4
|
+
|
5
|
+
describe CNAB240::BancoABC::Entities::RegisterU do
|
6
|
+
let(:header) { 13.times.map { rand(10) }.join }
|
7
|
+
let(:segmento) { 1.times.map { rand(10) }.join }
|
8
|
+
let(:segmento_space) { 3.times.map { rand(10) }.join }
|
9
|
+
let(:acrescimos) { 15.times.map { rand(10) }.join }
|
10
|
+
let(:valor_desconto) { 15.times.map { rand(10) }.join }
|
11
|
+
let(:valor_abatimento) { 15.times.map { rand(10) }.join }
|
12
|
+
let(:valor_iof) { 15.times.map { rand(10) }.join }
|
13
|
+
let(:valor_pago) { 15.times.map { rand(10) }.join }
|
14
|
+
let(:valor_liquido) { 15.times.map { rand(10) }.join }
|
15
|
+
let(:valor_outras_despesas) { 15.times.map { rand(10) }.join }
|
16
|
+
let(:valor_outros_creditos) { 15.times.map { rand(10) }.join }
|
17
|
+
let(:data_ocorrencia) { 8.times.map { rand(10) }.join }
|
18
|
+
let(:data_credito) { 8.times.map { rand(10) }.join }
|
19
|
+
|
20
|
+
let(:line) do
|
21
|
+
header + segmento + segmento_space + acrescimos + valor_desconto + valor_abatimento +
|
22
|
+
valor_iof + valor_pago + valor_liquido + valor_outras_despesas + valor_outros_creditos +
|
23
|
+
data_ocorrencia + data_credito
|
24
|
+
end
|
25
|
+
|
26
|
+
describe "#register?" do
|
27
|
+
subject { described_class.new(line).register? }
|
28
|
+
|
29
|
+
it { expect(subject).to be_truthy }
|
30
|
+
end
|
31
|
+
|
32
|
+
describe "#data" do
|
33
|
+
subject { described_class.new(line).data }
|
34
|
+
|
35
|
+
it { expect(subject).to eq({
|
36
|
+
segmento:,
|
37
|
+
acrescimos:,
|
38
|
+
valor_desconto:,
|
39
|
+
valor_abatimento:,
|
40
|
+
valor_iof:,
|
41
|
+
valor_pago:,
|
42
|
+
valor_liquido:,
|
43
|
+
valor_outras_despesas:,
|
44
|
+
valor_outros_creditos:,
|
45
|
+
data_ocorrencia:,
|
46
|
+
data_credito:
|
47
|
+
}) }
|
48
|
+
end
|
49
|
+
end
|
@@ -0,0 +1,60 @@
|
|
1
|
+
# frozen_string_literal: false
|
2
|
+
|
3
|
+
require "spec_helper"
|
4
|
+
|
5
|
+
describe CNAB240::BancoABC::Entities::TraillerBuilder do
|
6
|
+
describe "#trailler?" do
|
7
|
+
subject { described_class.new.trailler? }
|
8
|
+
|
9
|
+
it { expect(subject).to be_truthy }
|
10
|
+
end
|
11
|
+
|
12
|
+
describe "#codigo_banco" do
|
13
|
+
subject { described_class.new.codigo_banco }
|
14
|
+
|
15
|
+
it { expect(subject).to eq("246") }
|
16
|
+
end
|
17
|
+
|
18
|
+
describe "#lote_do_servico" do
|
19
|
+
subject { described_class.new.lote_do_servico }
|
20
|
+
|
21
|
+
it { expect(subject).to eq("9999") }
|
22
|
+
end
|
23
|
+
|
24
|
+
|
25
|
+
describe "#tipo_registro" do
|
26
|
+
subject { described_class.new.tipo_registro }
|
27
|
+
|
28
|
+
it { expect(subject).to eq("9") }
|
29
|
+
end
|
30
|
+
|
31
|
+
describe "#quantidade_lotes" do
|
32
|
+
subject { described_class.new.quantidade_lotes }
|
33
|
+
|
34
|
+
it { expect(subject).to eq("000001") }
|
35
|
+
end
|
36
|
+
|
37
|
+
describe "#quantidade_registros" do
|
38
|
+
subject { described_class.new.quantidade_registros("1") }
|
39
|
+
|
40
|
+
it { expect(subject).to eq("000001") }
|
41
|
+
end
|
42
|
+
|
43
|
+
describe "#quantidade_contas_para_conciliacao" do
|
44
|
+
subject { described_class.new.quantidade_contas_para_conciliacao }
|
45
|
+
|
46
|
+
it { expect(subject).to eq("000000") }
|
47
|
+
end
|
48
|
+
|
49
|
+
describe "#uso_exclusivo_febraban_1" do
|
50
|
+
subject { described_class.new.uso_exclusivo_febraban_1(234) }
|
51
|
+
|
52
|
+
it { expect(subject).to eq("234 ") }
|
53
|
+
end
|
54
|
+
|
55
|
+
describe "#uso_exclusivo_febraban_2" do
|
56
|
+
subject { described_class.new.uso_exclusivo_febraban_2(234) }
|
57
|
+
|
58
|
+
it { expect(subject).to eq("234#{' ' * 202}") }
|
59
|
+
end
|
60
|
+
end
|
@@ -0,0 +1,65 @@
|
|
1
|
+
# frozen_string_literal: false
|
2
|
+
|
3
|
+
require "spec_helper"
|
4
|
+
|
5
|
+
describe CNAB240::BancoABC::Entities::TraillerLoteBuilder do
|
6
|
+
describe "#trailler?" do
|
7
|
+
subject { described_class.new.trailler? }
|
8
|
+
|
9
|
+
it { expect(subject).to be_truthy }
|
10
|
+
end
|
11
|
+
|
12
|
+
describe "#codigo_banco" do
|
13
|
+
subject { described_class.new.codigo_banco }
|
14
|
+
|
15
|
+
it { expect(subject).to eq("246") }
|
16
|
+
end
|
17
|
+
|
18
|
+
describe "#lote_do_servico" do
|
19
|
+
subject { described_class.new.lote_do_servico }
|
20
|
+
|
21
|
+
it { expect(subject).to eq("0001") }
|
22
|
+
end
|
23
|
+
|
24
|
+
describe "#tipo_registro" do
|
25
|
+
subject { described_class.new.tipo_registro }
|
26
|
+
|
27
|
+
it { expect(subject).to eq("5") }
|
28
|
+
end
|
29
|
+
|
30
|
+
describe "#quantidade_registros_lotes" do
|
31
|
+
subject { described_class.new.quantidade_registros_lotes(123456) }
|
32
|
+
|
33
|
+
it { expect(subject).to eq("123456") }
|
34
|
+
end
|
35
|
+
|
36
|
+
describe "#uso_exclusivo_febraban" do
|
37
|
+
subject { described_class.new.uso_exclusivo_febraban(1234567890) }
|
38
|
+
|
39
|
+
it { expect(subject).to eq("123456789") }
|
40
|
+
end
|
41
|
+
|
42
|
+
describe "#quantidade_titulos_cobranca" do
|
43
|
+
subject { described_class.new.quantidade_titulos_cobranca }
|
44
|
+
|
45
|
+
it { expect(subject).to eq("0" * 6) }
|
46
|
+
end
|
47
|
+
|
48
|
+
describe "#valor_total_titulos_carteira" do
|
49
|
+
subject { described_class.new.valor_total_titulos_carteira }
|
50
|
+
|
51
|
+
it { expect(subject).to eq("0" * 17) }
|
52
|
+
end
|
53
|
+
|
54
|
+
describe "#uso_abc" do
|
55
|
+
subject { described_class.new.uso_abc(123456789) }
|
56
|
+
|
57
|
+
it { expect(subject).to eq("12345678") }
|
58
|
+
end
|
59
|
+
|
60
|
+
describe "#uso_exclusivo" do
|
61
|
+
subject { described_class.new.uso_exclusivo("0" * 117) }
|
62
|
+
|
63
|
+
it { expect(subject).to eq("0" * 117) }
|
64
|
+
end
|
65
|
+
end
|
@@ -0,0 +1,73 @@
|
|
1
|
+
# frozen_string_literal: false
|
2
|
+
|
3
|
+
require "spec_helper"
|
4
|
+
|
5
|
+
describe CNAB240::BancoABC::Entities::Trailler do
|
6
|
+
let(:codigo_banco) { 3.times.map { rand(10) }.join }
|
7
|
+
let(:lote_do_servico) { 4.times.map { rand(10) }.join }
|
8
|
+
let(:tipo_registro) { 1.times.map { rand(10) }.join }
|
9
|
+
let(:uso_exclusivo_febraban_1) { 9.times.map { rand(10) }.join }
|
10
|
+
let(:quantidade_lotes) { 6.times.map { rand(10) }.join }
|
11
|
+
let(:quantidade_registros) { 6.times.map { rand(10) }.join }
|
12
|
+
let(:quantidade_contas_para_conciliacao) { 6.times.map { rand(10) }.join }
|
13
|
+
let(:uso_exclusivo_febraban_2) { 204.times.map { rand(10) }.join }
|
14
|
+
|
15
|
+
let(:line) do
|
16
|
+
codigo_banco + lote_do_servico + tipo_registro + uso_exclusivo_febraban_1 + quantidade_lotes +
|
17
|
+
quantidade_registros + quantidade_contas_para_conciliacao + uso_exclusivo_febraban_2
|
18
|
+
end
|
19
|
+
|
20
|
+
describe "#trailler?" do
|
21
|
+
subject { described_class.new(line).trailler? }
|
22
|
+
|
23
|
+
it { expect(subject).to be_truthy }
|
24
|
+
end
|
25
|
+
|
26
|
+
describe "#codigo_banco" do
|
27
|
+
subject { described_class.new(line).codigo_banco }
|
28
|
+
|
29
|
+
it { expect(subject).to eq(codigo_banco) }
|
30
|
+
end
|
31
|
+
|
32
|
+
describe "#lote_do_servico" do
|
33
|
+
subject { described_class.new(line).lote_do_servico }
|
34
|
+
|
35
|
+
it { expect(subject).to eq(lote_do_servico) }
|
36
|
+
end
|
37
|
+
|
38
|
+
describe "#tipo_registro" do
|
39
|
+
subject { described_class.new(line).tipo_registro }
|
40
|
+
|
41
|
+
it { expect(subject).to eq(tipo_registro) }
|
42
|
+
end
|
43
|
+
|
44
|
+
describe "#uso_exclusivo_febraban_1" do
|
45
|
+
subject { described_class.new(line).uso_exclusivo_febraban_1 }
|
46
|
+
|
47
|
+
it { expect(subject).to eq(uso_exclusivo_febraban_1) }
|
48
|
+
end
|
49
|
+
|
50
|
+
describe "#quantidade_lotes" do
|
51
|
+
subject { described_class.new(line).quantidade_lotes }
|
52
|
+
|
53
|
+
it { expect(subject).to eq(quantidade_lotes) }
|
54
|
+
end
|
55
|
+
|
56
|
+
describe "#quantidade_registros" do
|
57
|
+
subject { described_class.new(line).quantidade_registros }
|
58
|
+
|
59
|
+
it { expect(subject).to eq(quantidade_registros) }
|
60
|
+
end
|
61
|
+
|
62
|
+
describe "#quantidade_contas_para_conciliacao" do
|
63
|
+
subject { described_class.new(line).quantidade_contas_para_conciliacao }
|
64
|
+
|
65
|
+
it { expect(subject).to eq(quantidade_contas_para_conciliacao) }
|
66
|
+
end
|
67
|
+
|
68
|
+
describe "#uso_exclusivo_febraban_2" do
|
69
|
+
subject { described_class.new(line).uso_exclusivo_febraban_2 }
|
70
|
+
|
71
|
+
it { expect(subject).to eq(uso_exclusivo_febraban_2) }
|
72
|
+
end
|
73
|
+
end
|
@@ -0,0 +1,37 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "spec_helper"
|
4
|
+
|
5
|
+
describe CNAB240::BancoABC::Services::ParseLine do
|
6
|
+
context "when it receives a line and pass type 0" do
|
7
|
+
it "returns a Header" do
|
8
|
+
line = described_class.call("00000", "0")
|
9
|
+
|
10
|
+
expect(line.header?).to eq(true)
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
context "when it receives a line and pass type 1" do
|
15
|
+
it "returns a Register T format" do
|
16
|
+
line = described_class.call("00000000000000T", "1")
|
17
|
+
|
18
|
+
expect(line.register?).to eq(true)
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
context "when it receives a line and pass type 2" do
|
23
|
+
it "returns a Register U format" do
|
24
|
+
line = described_class.call("00000000000000U", "2")
|
25
|
+
|
26
|
+
expect(line.register?).to eq(true)
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
context "when it receives a line and pass type 9" do
|
31
|
+
it "returns a Trailler" do
|
32
|
+
line = described_class.call("90000", "9")
|
33
|
+
|
34
|
+
expect(line.trailler?).to eq(true)
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1,34 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "simplecov"
|
4
|
+
require "bundler"
|
5
|
+
require "pry"
|
6
|
+
|
7
|
+
SimpleCov.formatters = [SimpleCov::Formatter::HTMLFormatter]
|
8
|
+
SimpleCov.minimum_coverage 70.0
|
9
|
+
|
10
|
+
SimpleCov.start do
|
11
|
+
add_filter "/spec/"
|
12
|
+
minimum_coverage 70
|
13
|
+
minimum_coverage_by_file 50
|
14
|
+
end
|
15
|
+
|
16
|
+
Dir["./lib/**/*.rb"].sort.each { |file| require file }
|
17
|
+
|
18
|
+
begin
|
19
|
+
Bundler.setup(:default, :development, :test)
|
20
|
+
rescue Bundler::BundlerError => e
|
21
|
+
warn e.message
|
22
|
+
warn "Run `bundle install` to install missing gems"
|
23
|
+
|
24
|
+
exit e.status_code
|
25
|
+
end
|
26
|
+
|
27
|
+
RSpec.configure do |config|
|
28
|
+
# Enable flags like --only-failures and --next-failure
|
29
|
+
config.example_status_persistence_file_path = ".rspec_status"
|
30
|
+
|
31
|
+
config.expect_with :rspec do |c|
|
32
|
+
c.syntax = :expect
|
33
|
+
end
|
34
|
+
end
|