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,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
|