br_boleto 2.2.7 → 2.2.8

Sign up to get free protection for your applications and to get access to all the features.
@@ -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