br_boleto 2.2.7 → 2.2.8

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.
@@ -2,9 +2,9 @@ require 'test_helper'
2
2
 
3
3
  describe BrBoleto::Remessa::Cnab400::Base do
4
4
  subject { FactoryGirl.build(:remessa_cnab400_base, pagamentos: pagamento, conta: conta) }
5
- let(:pagamento) { FactoryGirl.build(:remessa_pagamento) }
6
- let(:conta) { FactoryGirl.build(:conta_sicoob) }
7
- let(:sequence_1) { sequence('sequence_1') }
5
+ let(:pagamento) { FactoryGirl.build(:remessa_pagamento) }
6
+ let(:conta) { FactoryGirl.build(:conta_sicoob) }
7
+ let(:sequence_1) { sequence('sequence_1') }
8
8
 
9
9
  before do
10
10
  BrBoleto::Remessa::Cnab400::Base.any_instance.stubs(:conta_class).returns(conta.class)
@@ -65,7 +65,7 @@ describe BrBoleto::Remessa::Cnab400::Base do
65
65
  end
66
66
  end
67
67
 
68
-
68
+
69
69
  describe '#Header' do
70
70
  it '#monta_header deve chamar os metodos para montar o header' do
71
71
  subject.expects(:header_posicao_001_a_001).in_sequence(sequence_1).returns('001_a_001-')
@@ -136,8 +136,8 @@ describe BrBoleto::Remessa::Cnab400::Base do
136
136
  it "#monta_detalhe - deve montar as 400 posições do com as informações do pagamento" do
137
137
  subject.expects(:detalhe_posicao_001_001).returns('001_001 a-').in_sequence(sequence_1)
138
138
  subject.expects(:detalhe_posicao_002_003).returns('002_003 b-').in_sequence(sequence_1)
139
- subject.expects(:detalhe_posicao_004_017).returns('004_017 c-').in_sequence(sequence_1)
140
- subject.expects(:detalhe_posicao_018_037).returns('018_037 d-').in_sequence(sequence_1)
139
+ subject.expects(:detalhe_posicao_004_017).returns('004_017 c-').in_sequence(sequence_1).with(pagamento, 4)
140
+ subject.expects(:detalhe_posicao_018_037).returns('018_037 d-').in_sequence(sequence_1).with(pagamento, 4)
141
141
  subject.expects(:detalhe_posicao_038_062).returns('038_062 e-').in_sequence(sequence_1)
142
142
  subject.expects(:detalhe_posicao_063_076).returns('063_076 f-').in_sequence(sequence_1).with(pagamento, 4)
143
143
  subject.expects(:detalhe_posicao_077_108).returns('077_108 g-').in_sequence(sequence_1).with(pagamento, 4)
@@ -161,12 +161,12 @@ describe BrBoleto::Remessa::Cnab400::Base do
161
161
 
162
162
  it '#detalhe_posicao_004_017 - deve retornar o cnpj da conta ajustado para 14 digitos' do
163
163
  conta.expects(:cpf_cnpj).returns('1234567890')
164
- subject.detalhe_posicao_004_017.must_equal '00001234567890'
164
+ subject.detalhe_posicao_004_017(pagamento, 3).must_equal '00001234567890'
165
165
  end
166
166
 
167
167
  it '#detalhe_posicao_018_037 - deve retornar as informações da conta' do
168
168
  subject.expects(:informacoes_da_conta).with(:detalhe).returns('informacoes_da_conta')
169
- subject.detalhe_posicao_018_037.must_equal 'informacoes_da_conta'
169
+ subject.detalhe_posicao_018_037(pagamento, 5).must_equal 'informacoes_da_conta'
170
170
 
171
171
  end
172
172
 
@@ -239,7 +239,7 @@ describe BrBoleto::Remessa::Cnab400::Base do
239
239
  end
240
240
 
241
241
  describe '#dados_do_arquivo' do
242
-
242
+
243
243
  it "deve montar os dados do arquivo setando o sequencial e os pagamentos corretamente - com 1 pagamento" do
244
244
  subject.expects(:monta_header).returns('montã_header')
245
245
  subject.expects(:monta_detalhe).with(pagamento, 2).returns('mônta_detalhe')
@@ -2,10 +2,10 @@ require 'test_helper'
2
2
 
3
3
  describe BrBoleto::Remessa::Cnab400::Bradesco do
4
4
  subject { FactoryGirl.build(:remessa_cnab400_bradesco, pagamentos: pagamento, conta: conta) }
5
- let(:pagamento) { FactoryGirl.build(:remessa_pagamento, pagador: pagador) }
6
- let(:conta) { FactoryGirl.build(:conta_bradesco) }
7
- let(:pagador) { FactoryGirl.build(:pagador) }
8
-
5
+ let(:pagamento) { FactoryGirl.build(:remessa_pagamento, pagador: pagador) }
6
+ let(:conta) { FactoryGirl.build(:conta_bradesco) }
7
+ let(:pagador) { FactoryGirl.build(:pagador) }
8
+
9
9
  it "deve ter a class para a conta do bradesco" do
10
10
  BrBoleto::Remessa::Cnab400::Bradesco.new.conta_class.must_equal BrBoleto::Conta::Bradesco
11
11
  end
@@ -36,8 +36,8 @@ describe BrBoleto::Remessa::Cnab400::Bradesco do
36
36
  result = subject.informacoes_da_conta(:detalhe)
37
37
 
38
38
  result[0..2].must_equal ' '
39
- result[3].must_equal '0'
40
- result[4..6].must_equal '021'
39
+ result[3].must_equal '0'
40
+ result[4..6].must_equal '021'
41
41
  result[7..11].must_equal '01234' # Agencia
42
42
  result[12..18].must_equal '0089755' # Conta Corrente
43
43
  result[19].must_equal '7' # Conta Corrente DV
@@ -51,7 +51,7 @@ describe BrBoleto::Remessa::Cnab400::Bradesco do
51
51
  subject.complemento_registro[0..7].must_equal ' '
52
52
  subject.complemento_registro[8..9].must_equal 'MX'
53
53
  subject.complemento_registro[10..16].must_equal '0004758'
54
- subject.complemento_registro[17..293].must_equal ''.rjust(277)
54
+ subject.complemento_registro[17..293].must_equal ''.rjust(277)
55
55
 
56
56
  subject.complemento_registro.size.must_equal 294
57
57
  end
@@ -62,7 +62,7 @@ describe BrBoleto::Remessa::Cnab400::Bradesco do
62
62
  end
63
63
 
64
64
  it '#detalhe_posicao_004_017 - deve retornar brancos' do
65
- subject.detalhe_posicao_004_017.must_equal (' ' * 14)
65
+ subject.detalhe_posicao_004_017(pagamento, 0).must_equal (' ' * 14)
66
66
  end
67
67
 
68
68
  describe '#detalhe_posicao_063_108' do
@@ -73,7 +73,7 @@ describe BrBoleto::Remessa::Cnab400::Bradesco do
73
73
  pagamento.assign_attributes(tipo_emissao: 2, codigo_multa: 0)
74
74
  result = subject.detalhe_posicao_063_108(pagamento)
75
75
 
76
- result[0..2].must_equal '000'
76
+ result[0..2].must_equal '000'
77
77
  result[3].must_equal '0' # Identificativos de Multa
78
78
  result[4..7].must_equal '0000' # Percentual de Multa por Atraso
79
79
  result[8..18].must_equal '00000977897' # Identificação do Título no Banco
@@ -114,7 +114,7 @@ describe BrBoleto::Remessa::Cnab400::Bradesco do
114
114
  result.size.must_equal 40
115
115
 
116
116
  result[00..05].must_equal '050829' # "Data Vencimento: Formato DDMMAA Normal ""DDMMAA"" A vista = ""888888"" Contra Apresentação = ""999999"""
117
- result[06..18].must_equal '0000000004756' # Valor do Titulo
117
+ result[06..18].must_equal '0000000004756' # Valor do Titulo
118
118
  result[19..21].must_equal '000' # 000 ou Número Banco
119
119
  result[22..26].must_equal "00000" # 000000 ou Agencia
120
120
  result[27..28].must_equal "02" # Espécie do Título
@@ -169,7 +169,7 @@ describe BrBoleto::Remessa::Cnab400::Bradesco do
169
169
  result[00..01].must_equal "01" # Tipo de Inscrição do Pagador: "01" = CPF / "02" = CNPJ
170
170
  result[02..15].must_equal '00012345678901' # Número do CNPJ ou CPF do Pagador
171
171
  result[16..55].must_equal 'nome pagador'.adjust_size_to(40) # Nome do Pagador
172
-
172
+
173
173
  result[56..73].must_equal 'rua do pagador'.adjust_size_to(18) # Endereço do Pagador
174
174
  result[74..83].must_equal 'bairro do pagador'.adjust_size_to(10) # Endereço do Pagador
175
175
  result[84..93].must_equal 'Chapecó'.adjust_size_to(10) # Endereço do Pagador
@@ -2,9 +2,9 @@ require 'test_helper'
2
2
 
3
3
  describe BrBoleto::Remessa::Cnab400::Sicredi do
4
4
  subject { FactoryGirl.build(:remessa_cnab400_sicredi, pagamentos: pagamento, conta: conta) }
5
- let(:pagamento) { FactoryGirl.build(:remessa_pagamento, pagador: pagador) }
6
- let(:conta) { FactoryGirl.build(:conta_sicredi) }
7
- let(:pagador) { FactoryGirl.build(:pagador) }
5
+ let(:pagamento) { FactoryGirl.build(:remessa_pagamento, pagador: pagador) }
6
+ let(:conta) { FactoryGirl.build(:conta_sicredi) }
7
+ let(:pagador) { FactoryGirl.build(:pagador) }
8
8
 
9
9
 
10
10
  context "HEADER" do
@@ -29,7 +29,7 @@ describe BrBoleto::Remessa::Cnab400::Sicredi do
29
29
  result[0..4].must_equal '89755' # Conta Corrente
30
30
  result[5..18].must_equal '00012345678901' # CPF/CNPJ
31
31
  result[19].must_equal ''.rjust(1) # Branco
32
-
32
+
33
33
  result.size.must_equal 20
34
34
  end
35
35
  it "deve retornar com 21 caracteres" do
@@ -72,7 +72,7 @@ describe BrBoleto::Remessa::Cnab400::Sicredi do
72
72
 
73
73
  subject.header_posicao_103_a_394[0..7].must_equal ''.rjust(8)
74
74
  subject.header_posicao_103_a_394[8..14].must_equal '0004758'
75
- subject.header_posicao_103_a_394[15..287].must_equal ''.rjust(273)
75
+ subject.header_posicao_103_a_394[15..287].must_equal ''.rjust(273)
76
76
  subject.header_posicao_103_a_394[288..291].must_equal '2.00'
77
77
 
78
78
  subject.header_posicao_103_a_394.size.must_equal 292
@@ -81,24 +81,37 @@ describe BrBoleto::Remessa::Cnab400::Sicredi do
81
81
  end
82
82
 
83
83
  context "DETALHE" do
84
- describe "#detalhe_posicao_002_004(pagamento)" do
85
- it { subject.detalhe_posicao_002_004(pagamento).size.must_equal 3 }
84
+ describe "#detalhe_posicao_002_003(pagamento)" do
85
+ it { subject.detalhe_posicao_002_003(pagamento).size.must_equal 2 }
86
86
  it "deve conter as informações nas posições corretas" do
87
- result = subject.detalhe_posicao_002_004(pagamento)
87
+ result = subject.detalhe_posicao_002_003(pagamento)
88
88
  result[0].must_equal 'A' # Tipo de cobrança
89
89
  result[1].must_equal 'A' # Tipo de carteira
90
- result[2].must_equal 'A' # Tipo de Impressão
90
+ end
91
+ end
92
+
93
+ describe "#detalhe_posicao_004_017" do
94
+ it { subject.detalhe_posicao_004_017(pagamento, 1).size.must_equal 14 }
95
+ it "deve conter as informações nas posições corretas" do
96
+ result = subject.detalhe_posicao_004_017(pagamento, 1)
91
97
 
92
- result.size.must_equal 3
98
+ result[0].must_equal 'A' # Tipo de Impressão
99
+ result[1..12].must_equal ''.rjust(12) # Brancos
100
+ result[13].must_equal 'A' # "A" - Real
93
101
  end
94
102
  end
95
103
 
96
- describe "#detalhe_posicao_005_016" do
97
- it { subject.detalhe_posicao_005_016.size.must_equal 12 }
104
+ describe "#detalhe_posicao_018_037" do
105
+ it { subject.detalhe_posicao_018_037(pagamento, 1).size.must_equal 20 }
106
+
98
107
  it "deve conter as informações nas posições corretas" do
99
- result = subject.detalhe_posicao_005_016
100
- result.must_equal ''.rjust(12) # Brancos
101
- result.size.must_equal 12
108
+ pagamento.cod_desconto = '1'
109
+ pagamento.codigo_juros = '2'
110
+ result = subject.detalhe_posicao_018_037(pagamento, 1)
111
+
112
+ result[0].must_equal 'A' # Tipo de desconto
113
+ result[1].must_equal 'B' # Tipo de juros
114
+ result[2..19].must_equal ''.rjust(18) # Brancos
102
115
  end
103
116
  end
104
117
 
@@ -153,7 +166,7 @@ describe BrBoleto::Remessa::Cnab400::Sicredi do
153
166
  pagamento.data_emissao = Date.parse('15/09/2017')
154
167
  result = subject.informacoes_do_pagamento(pagamento, 4)
155
168
  result[00..05].must_equal '050829' # "Data Vencimento: Formato DDMMAA Normal ""DDMMAA"" A vista = ""888888"" Contra Apresentação = ""999999"""
156
- result[06..18].must_equal '0000000004756' # Valor do Titulo
169
+ result[06..18].must_equal '0000000004756' # Valor do Titulo
157
170
  result[19..27].must_equal ' ' # Brancos
158
171
  result[28..28].must_equal "C" # Espécie do Título
159
172
  result[ 29 ].must_equal "N" # dentificação (Sempre 'N')
@@ -164,7 +177,7 @@ describe BrBoleto::Remessa::Cnab400::Sicredi do
164
177
  result.size.must_equal 40
165
178
  end
166
179
  end
167
-
180
+
168
181
  describe '#detalhe_multas_e_juros_do_pagamento' do
169
182
  it "deve ter o tamanho de 58 digitos" do
170
183
  subject.detalhe_multas_e_juros_do_pagamento(pagamento, 2).size.must_equal 58
@@ -208,7 +221,7 @@ describe BrBoleto::Remessa::Cnab400::Sicredi do
208
221
  result[00..01].must_equal "10" # Tipo de Inscrição do Pagador: "01" = CPF / "02" = CNPJ
209
222
  result[02..15].must_equal '00012345678901' # Número do CNPJ ou CPF do Pagador
210
223
  result[16..55].must_equal 'nome pagador'.adjust_size_to(40) # Nome do Pagador
211
-
224
+
212
225
  result[56..73].must_equal 'rua do pagador'.adjust_size_to(18) # Endereço do Pagador
213
226
  result[74..83].must_equal 'bairro do pagador'.adjust_size_to(10) # Endereço do Pagador
214
227
  result[84..93].must_equal 'Chapecó'.adjust_size_to(10) # Endereço do Pagador
@@ -7,13 +7,13 @@ describe BrBoleto::Remessa::Pagamento do
7
7
  it "deve conter o mdule HavePagador" do
8
8
  subject.class.included_modules.must_include BrBoleto::HavePagador
9
9
  end
10
-
11
-
10
+
11
+
12
12
  describe "validations" do
13
13
  it { must validate_presence_of(:nosso_numero) }
14
14
  it { must validate_presence_of(:data_vencimento) }
15
15
  it { must validate_presence_of(:valor_documento) }
16
-
16
+
17
17
  describe '#tipo_impressao' do
18
18
  it { wont validate_presence_of(:tipo_impressao) }
19
19
 
@@ -21,9 +21,9 @@ describe BrBoleto::Remessa::Pagamento do
21
21
  subject.valid_tipo_impressao_required = true
22
22
  must validate_presence_of(:tipo_impressao)
23
23
  end
24
-
24
+
25
25
  end
26
-
26
+
27
27
  describe '#cod_desconto' do
28
28
  before { subject.cod_desconto = '555' }
29
29
 
@@ -197,7 +197,7 @@ describe BrBoleto::Remessa::Pagamento do
197
197
 
198
198
 
199
199
  describe "default_values" do
200
- let(:object) { subject.class.new() }
200
+ let(:object) { subject.class.new() }
201
201
  it "for data_emissao" do object.data_emissao.must_equal Date.today end
202
202
  it "for valor_desconto" do object.valor_desconto.must_equal 0.0 end
203
203
  it "for valor_iof" do object.valor_iof.must_equal 0.0 end
@@ -217,7 +217,7 @@ describe BrBoleto::Remessa::Pagamento do
217
217
  it "for identificacao_ocorrencia" do object.identificacao_ocorrencia.must_equal '01' end
218
218
  it "for especie_titulo" do object.especie_titulo.must_equal '01' end
219
219
  it "for codigo_moeda" do object.codigo_moeda.must_equal '9' end
220
- it "for forma_cadastramento" do object.forma_cadastramento.must_equal '0' end
220
+ it "for forma_cadastramento" do object.forma_cadastramento.must_equal '1' end
221
221
  it "for emissao_boleto" do object.emissao_boleto.must_equal '2' end
222
222
  it "for distribuicao_boleto" do object.distribuicao_boleto.must_equal '2' end
223
223
  end
@@ -430,7 +430,7 @@ describe BrBoleto::Remessa::Pagamento do
430
430
  end
431
431
 
432
432
  describe '#percentual_multa_formatado' do
433
- let(:number) { BrBoleto::Helper::Number.new(5.47) }
433
+ let(:number) { BrBoleto::Helper::Number.new(5.47) }
434
434
  it "deve formatar o valor no formato de valores em percentual" do
435
435
  subject.stubs(:percentual_multa).returns(72.50)
436
436
  number
@@ -451,7 +451,7 @@ describe BrBoleto::Remessa::Pagamento do
451
451
  end
452
452
  end
453
453
  describe '#percentual_juros_formatado' do
454
- let(:number) { BrBoleto::Helper::Number.new(5.47) }
454
+ let(:number) { BrBoleto::Helper::Number.new(5.47) }
455
455
  it "deve formatar o valor no formato de valores em percentual" do
456
456
  subject.stubs(:percentual_juros).returns(7.50)
457
457
  number
@@ -1,6 +1,6 @@
1
1
  10400000 2334864510001300000000000000000000007506082819600000000EMPRESA EMITENTE CAIXA ECONOMICA FEDERAL 1141120160931470000010500000000000000000000000000000000000000000000000000
2
2
  10400011R0100030 20334864510001308281960000000000000007506082819600000000EMPRESA EMITENTE 000000011411201600000000
3
- 1040001300001P 0107506082819600000000000141400000000000001022000000000002 1411201600000000000100000000002N1411201631611201600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000023001000090000000000
3
+ 1040001300001P 0107506082819600000000000141400000000000001222000000000002 1411201600000000000100000000002N1411201631611201600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000023001060090000000000
4
4
  1040001300002Q 011000078793321112BENJAMIN FRANCISCO MARCOS VINICIUS FERNARUA PRINCIPAL S/N 881 CENTRO 79210972ANASTACIO MS0000000000000000
5
5
  1040001300003R 01000000000000000000000000000000000000000000000000315112016000000000000000 0000000000000000 000000000000 0
6
6
  1040001300004S 01100 00
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: br_boleto
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.2.7
4
+ version: 2.2.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Bruno M. Mergen
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-04-11 00:00:00.000000000 Z
11
+ date: 2018-11-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake