brcobranca 10.0.0 → 10.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (82) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +47 -21
  3. data/README.md +5 -0
  4. data/lib/brcobranca/arquivos/templates/modelo_generico2.eps +9967 -0
  5. data/lib/brcobranca/boleto/banco_brasil.rb +5 -1
  6. data/lib/brcobranca/boleto/base.rb +2 -0
  7. data/lib/brcobranca/boleto/template/base.rb +4 -0
  8. data/lib/brcobranca/boleto/template/rghost2.rb +255 -0
  9. data/lib/brcobranca/boleto/template/rghost_bolepix.rb +279 -0
  10. data/lib/brcobranca/remessa/pagamento.rb +13 -11
  11. data/lib/brcobranca/retorno/cnab400/banco_brasil.rb +3 -0
  12. data/lib/brcobranca/retorno/cnab400/base.rb +1 -1
  13. data/lib/brcobranca/version.rb +1 -1
  14. data/lib/brcobranca.rb +2 -0
  15. metadata +8 -139
  16. data/spec/brcobranca/base_spec.rb +0 -179
  17. data/spec/brcobranca/boleto/ailos_spec.rb +0 -148
  18. data/spec/brcobranca/boleto/banco_brasil_spec.rb +0 -336
  19. data/spec/brcobranca/boleto/banco_brasilia_spec.rb +0 -153
  20. data/spec/brcobranca/boleto/banco_nordeste_spec.rb +0 -160
  21. data/spec/brcobranca/boleto/banestes_spec.rb +0 -193
  22. data/spec/brcobranca/boleto/banrisul_spec.rb +0 -180
  23. data/spec/brcobranca/boleto/bradesco_spec.rb +0 -214
  24. data/spec/brcobranca/boleto/caixa_spec.rb +0 -160
  25. data/spec/brcobranca/boleto/citibank_spec.rb +0 -195
  26. data/spec/brcobranca/boleto/credisis_spec.rb +0 -160
  27. data/spec/brcobranca/boleto/hsbc_spec.rb +0 -171
  28. data/spec/brcobranca/boleto/itau_spec.rb +0 -261
  29. data/spec/brcobranca/boleto/safra_spec.rb +0 -171
  30. data/spec/brcobranca/boleto/santander_spec.rb +0 -142
  31. data/spec/brcobranca/boleto/sicoob_spec.rb +0 -192
  32. data/spec/brcobranca/boleto/sicredi_spec.rb +0 -194
  33. data/spec/brcobranca/boleto/unicred_spec.rb +0 -139
  34. data/spec/brcobranca/boletos_em_lote_spec.rb +0 -38
  35. data/spec/brcobranca/calculo_data_spec.rb +0 -33
  36. data/spec/brcobranca/calculo_spec.rb +0 -187
  37. data/spec/brcobranca/currency_spec.rb +0 -79
  38. data/spec/brcobranca/formatacao_spec.rb +0 -46
  39. data/spec/brcobranca/formatacao_string_spec.rb +0 -31
  40. data/spec/brcobranca/limpeza_spec.rb +0 -10
  41. data/spec/brcobranca/remessa/base_spec.rb +0 -66
  42. data/spec/brcobranca/remessa/cnab240/ailos_spec.rb +0 -165
  43. data/spec/brcobranca/remessa/cnab240/banco_brasil_spec.rb +0 -222
  44. data/spec/brcobranca/remessa/cnab240/base_spec.rb +0 -114
  45. data/spec/brcobranca/remessa/cnab240/caixa_spec.rb +0 -165
  46. data/spec/brcobranca/remessa/cnab240/sicoob_banco_brasil_spec.rb +0 -272
  47. data/spec/brcobranca/remessa/cnab240/sicoob_spec.rb +0 -200
  48. data/spec/brcobranca/remessa/cnab240/sicredi_spec.rb +0 -203
  49. data/spec/brcobranca/remessa/cnab240/unicred_spec.rb +0 -195
  50. data/spec/brcobranca/remessa/cnab400/banco_brasil_spec.rb +0 -190
  51. data/spec/brcobranca/remessa/cnab400/banco_brasilia_spec.rb +0 -188
  52. data/spec/brcobranca/remessa/cnab400/banco_nordeste_spec.rb +0 -192
  53. data/spec/brcobranca/remessa/cnab400/banrisul_spec.rb +0 -192
  54. data/spec/brcobranca/remessa/cnab400/base_spec.rb +0 -68
  55. data/spec/brcobranca/remessa/cnab400/bradesco_spec.rb +0 -203
  56. data/spec/brcobranca/remessa/cnab400/citibank_spec.rb +0 -128
  57. data/spec/brcobranca/remessa/cnab400/credisis_spec.rb +0 -190
  58. data/spec/brcobranca/remessa/cnab400/itau_spec.rb +0 -192
  59. data/spec/brcobranca/remessa/cnab400/santander_spec.rb +0 -154
  60. data/spec/brcobranca/remessa/cnab400/sicoob_spec.rb +0 -217
  61. data/spec/brcobranca/remessa/cnab400/unicred_spec.rb +0 -186
  62. data/spec/brcobranca/remessa/pagamento_spec.rb +0 -228
  63. data/spec/brcobranca/retorno/cnab240/base_spec.rb +0 -24
  64. data/spec/brcobranca/retorno/cnab240/cecred_spec.rb +0 -52
  65. data/spec/brcobranca/retorno/cnab240/santander_spec.rb +0 -52
  66. data/spec/brcobranca/retorno/cnab240/sicoob_spec.rb +0 -52
  67. data/spec/brcobranca/retorno/cnab240/sicredi_spec.rb +0 -33
  68. data/spec/brcobranca/retorno/cnab400/banco_brasilia_spec.rb +0 -37
  69. data/spec/brcobranca/retorno/cnab400/banco_nordeste_spec.rb +0 -40
  70. data/spec/brcobranca/retorno/cnab400/banrisul_spec.rb +0 -42
  71. data/spec/brcobranca/retorno/cnab400/base_spec.rb +0 -57
  72. data/spec/brcobranca/retorno/cnab400/bradesco_spec.rb +0 -59
  73. data/spec/brcobranca/retorno/cnab400/credisis_spec.rb +0 -26
  74. data/spec/brcobranca/retorno/cnab400/itau_spec.rb +0 -60
  75. data/spec/brcobranca/retorno/cnab400/santander_spec.rb +0 -40
  76. data/spec/brcobranca/retorno/cnab400/unicred_spec.rb +0 -38
  77. data/spec/brcobranca/retorno/retorno_cbr643_spec.rb +0 -69
  78. data/spec/brcobranca/retorno/retorno_cnab400_spec.rb +0 -58
  79. data/spec/brcobranca/retorno/retorno_cnab_240_spec.rb +0 -53
  80. data/spec/brcobranca/rghost_spec.rb +0 -29
  81. data/spec/brcobranca/util/empresa_spec.rb +0 -35
  82. data/spec/brcobranca_spec.rb +0 -33
@@ -1,336 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'spec_helper'
4
-
5
- RSpec.describe Brcobranca::Boleto::BancoBrasil do # :nodoc:[all]
6
- before do
7
- @valid_attributes = {
8
- valor: 0.0,
9
- local_pagamento: 'QUALQUER BANCO ATÉ O VENCIMENTO',
10
- cedente: 'Kivanio Barbosa',
11
- documento_cedente: '12345678912',
12
- sacado: 'Claudio Pozzebom',
13
- sacado_documento: '12345678900',
14
- agencia: '4042',
15
- conta_corrente: '61900',
16
- convenio: 12_387_989,
17
- nosso_numero: '777700168'
18
- }
19
- end
20
-
21
- it 'Criar nova instancia com atributos padrões' do
22
- boleto_novo = described_class.new
23
- expect(boleto_novo.banco).to eql('001')
24
- expect(boleto_novo.especie_documento).to eql('DM')
25
- expect(boleto_novo.especie).to eql('R$')
26
- expect(boleto_novo.moeda).to eql('9')
27
- expect(boleto_novo.data_processamento).to eql(Date.current)
28
- expect(boleto_novo.data_vencimento).to eql(Date.current)
29
- expect(boleto_novo.aceite).to eql('S')
30
- expect(boleto_novo.quantidade).to be(1)
31
- expect(boleto_novo.valor).to eq(0.0)
32
- expect(boleto_novo.valor_documento).to eq(0.0)
33
- expect(boleto_novo.local_pagamento).to eql('QUALQUER BANCO ATÉ O VENCIMENTO')
34
- expect(boleto_novo.carteira).to eql('18')
35
- expect(boleto_novo.codigo_servico).to be_falsey
36
- end
37
-
38
- it 'Criar nova instancia com atributos válidos' do
39
- boleto_novo = described_class.new(@valid_attributes)
40
- expect(boleto_novo.banco).to eql('001')
41
- expect(boleto_novo.especie_documento).to eql('DM')
42
- expect(boleto_novo.especie).to eql('R$')
43
- expect(boleto_novo.moeda).to eql('9')
44
- expect(boleto_novo.data_processamento).to eql(Date.current)
45
- expect(boleto_novo.data_vencimento).to eql(Date.current)
46
- expect(boleto_novo.aceite).to eql('S')
47
- expect(boleto_novo.quantidade).to be(1)
48
- expect(boleto_novo.valor).to eq(0.0)
49
- expect(boleto_novo.valor_documento).to eq(0.0)
50
- expect(boleto_novo.local_pagamento).to eql('QUALQUER BANCO ATÉ O VENCIMENTO')
51
- expect(boleto_novo.cedente).to eql('Kivanio Barbosa')
52
- expect(boleto_novo.documento_cedente).to eql('12345678912')
53
- expect(boleto_novo.sacado).to eql('Claudio Pozzebom')
54
- expect(boleto_novo.sacado_documento).to eql('12345678900')
55
- expect(boleto_novo.conta_corrente).to eql('00061900')
56
- expect(boleto_novo.agencia).to eql('4042')
57
- expect(boleto_novo.convenio).to be(12_387_989)
58
- expect(boleto_novo.nosso_numero).to eql('777700168')
59
- expect(boleto_novo.carteira).to eql('18')
60
- expect(boleto_novo.codigo_servico).to be_falsey
61
- end
62
-
63
- it 'Montar código de barras para convenio de 8 digitos e nosso número de 9' do
64
- @valid_attributes[:valor] = 135.00
65
- @valid_attributes[:data_documento] = Date.parse('2008-02-01')
66
- @valid_attributes[:data_vencimento] = Date.parse('2008-02-01')
67
- boleto_novo = described_class.new(@valid_attributes)
68
-
69
- expect(boleto_novo.codigo_barras_segunda_parte).to eql('0000001238798977770016818')
70
- expect(boleto_novo.codigo_barras).to eql('00193376900000135000000001238798977770016818')
71
- expect(boleto_novo.codigo_barras.linha_digitavel).to eql('00190.00009 01238.798977 77700.168188 3 37690000013500')
72
- expect(boleto_novo.conta_corrente_dv).to be(0)
73
- expect(boleto_novo.nosso_numero_dv).to be(7)
74
-
75
- @valid_attributes[:data_vencimento] = Date.parse('2008-02-02')
76
- @valid_attributes[:nosso_numero] = '7700168'
77
- boleto_novo = described_class.new(@valid_attributes)
78
-
79
- expect(boleto_novo.codigo_barras_segunda_parte).to eql('0000001238798900770016818')
80
- expect(boleto_novo.codigo_barras).to eql('00193377000000135000000001238798900770016818')
81
- expect(boleto_novo.codigo_barras.linha_digitavel).to eql('00190.00009 01238.798902 07700.168185 3 37700000013500')
82
- expect(boleto_novo.conta_corrente_dv).to be(0)
83
- expect(boleto_novo.nosso_numero_dv).to be(7)
84
- end
85
-
86
- it 'Montar código de barras para convenio de 7 digitos e nosso numero de 10' do
87
- @valid_attributes[:valor] = 135.00
88
- @valid_attributes[:data_documento] = Date.parse('2008-02-01')
89
- @valid_attributes[:data_vencimento] = Date.parse('2008-02-03')
90
- @valid_attributes[:convenio] = 1_238_798
91
- @valid_attributes[:nosso_numero] = '7777700168'
92
- boleto_novo = described_class.new(@valid_attributes)
93
-
94
- expect(boleto_novo.codigo_barras_segunda_parte).to eql('0000001238798777770016818')
95
- expect(boleto_novo.codigo_barras).to eql('00193377100000135000000001238798777770016818')
96
- expect(boleto_novo.codigo_barras.linha_digitavel).to eql('00190.00009 01238.798779 77700.168188 3 37710000013500')
97
- expect(boleto_novo.conta_corrente_dv).to be(0)
98
-
99
- @valid_attributes[:valor] = 723.56
100
- @valid_attributes[:data_documento] = Date.parse('2008-02-01')
101
- @valid_attributes[:data_vencimento] = Date.parse('2008-02-03')
102
- @valid_attributes[:convenio] = 1_238_798
103
- @valid_attributes[:nosso_numero] = '7777700168'
104
- boleto_novo = described_class.new(@valid_attributes)
105
-
106
- expect(boleto_novo.codigo_barras_segunda_parte).to eql('0000001238798777770016818')
107
- expect(boleto_novo.codigo_barras).to eql('00195377100000723560000001238798777770016818')
108
- expect(boleto_novo.codigo_barras.linha_digitavel).to eql('00190.00009 01238.798779 77700.168188 5 37710000072356')
109
- expect(boleto_novo.conta_corrente_dv).to be(0)
110
-
111
- @valid_attributes[:valor] = 723.56
112
- @valid_attributes[:data_documento] = Date.parse('2008-02-01')
113
- @valid_attributes[:data_vencimento] = Date.parse('2008-02-01')
114
- @valid_attributes[:convenio] = 1_238_798
115
- @valid_attributes[:nosso_numero] = '7777700168'
116
- boleto_novo = described_class.new(@valid_attributes)
117
-
118
- expect(boleto_novo.codigo_barras_segunda_parte).to eql('0000001238798777770016818')
119
- expect(boleto_novo.codigo_barras).to eql('00194376900000723560000001238798777770016818')
120
- expect(boleto_novo.codigo_barras.linha_digitavel).to eql('00190.00009 01238.798779 77700.168188 4 37690000072356')
121
- expect(boleto_novo.conta_corrente_dv).to be(0)
122
- end
123
-
124
- it 'Montar código de barras para convenio de 6 digitos e nosso numero de 5' do
125
- @valid_attributes[:valor] = 135.00
126
- @valid_attributes[:data_documento] = Date.parse('2008-02-01')
127
- @valid_attributes[:data_vencimento] = Date.parse('2008-02-01')
128
- @valid_attributes[:convenio] = 123_879
129
- @valid_attributes[:nosso_numero] = '1234'
130
- boleto_novo = described_class.new(@valid_attributes)
131
-
132
- expect(boleto_novo.conta_corrente_dv).to be(0)
133
- expect(boleto_novo.codigo_barras_segunda_parte).to eql('1238790123440420006190018')
134
- expect(boleto_novo.codigo_barras).to eql('00192376900000135001238790123440420006190018')
135
- expect(boleto_novo.codigo_barras.linha_digitavel).to eql('00191.23876 90123.440423 00061.900189 2 37690000013500')
136
- end
137
-
138
- it 'Montar código de barras para convenio de 6 digitos, nosso numero de 17 e carteira 16' do
139
- @valid_attributes[:valor] = 135.00
140
- @valid_attributes[:data_documento] = Date.parse('2008-02-01')
141
- @valid_attributes[:data_vencimento] = Date.parse('2008-02-01')
142
- @valid_attributes[:convenio] = 123_879
143
- @valid_attributes[:nosso_numero] = '1234567899'
144
- @valid_attributes[:carteira] = '16'
145
- @valid_attributes[:codigo_servico] = true
146
- boleto_novo = described_class.new(@valid_attributes)
147
-
148
- expect(boleto_novo.conta_corrente_dv).to be(0)
149
- expect(boleto_novo.codigo_barras_segunda_parte).to eql('1238790000000123456789921')
150
- expect(boleto_novo.codigo_barras).to eql('00199376900000135001238790000000123456789921')
151
- expect(boleto_novo.codigo_barras.linha_digitavel).to eql('00191.23876 90000.000126 34567.899215 9 37690000013500')
152
- end
153
-
154
- it 'Montar código de barras para convenio de 6 digitos, nosso numero de 17 e carteira 18' do
155
- @valid_attributes[:valor] = 135.00
156
- @valid_attributes[:data_documento] = Date.parse('2008-02-01')
157
- @valid_attributes[:data_vencimento] = Date.parse('2008-02-01')
158
- @valid_attributes[:convenio] = 123_879
159
- @valid_attributes[:nosso_numero] = '1234567899'
160
- @valid_attributes[:carteira] = '18'
161
- @valid_attributes[:codigo_servico] = true
162
- boleto_novo = described_class.new(@valid_attributes)
163
-
164
- expect(boleto_novo.conta_corrente_dv).to be(0)
165
- expect(boleto_novo.codigo_barras_segunda_parte).to eql('1238790000000123456789921')
166
- expect(boleto_novo.codigo_barras).to eql('00199376900000135001238790000000123456789921')
167
- expect(boleto_novo.codigo_barras.linha_digitavel).to eql('00191.23876 90000.000126 34567.899215 9 37690000013500')
168
- end
169
-
170
- it 'Não montar código de barras para convenio de 6 digitos, nosso numero de 17 e carteira 17' do
171
- @valid_attributes[:valor] = 135.00
172
- @valid_attributes[:data_documento] = Date.parse('2008-02-01')
173
- @valid_attributes[:data_vencimento] = Date.parse('2008-02-01')
174
- @valid_attributes[:convenio] = 123_879
175
- @valid_attributes[:nosso_numero] = '1234567899'
176
- @valid_attributes[:carteira] = '17'
177
- @valid_attributes[:codigo_servico] = true
178
- boleto_novo = described_class.new(@valid_attributes)
179
-
180
- expect(boleto_novo.conta_corrente_dv).to be(0)
181
- expect { boleto_novo.codigo_barras_segunda_parte }.to raise_error(RuntimeError)
182
- expect do
183
- boleto_novo.codigo_barras_segunda_parte
184
- end.to raise_error('Só é permitido emitir boletos com nosso número de 17 dígitos com carteiras 16 ou 18. Sua carteira atual é 17')
185
- end
186
-
187
- it 'Montar código de barras para convenio de 4 digitos e nosso numero de 7' do
188
- @valid_attributes[:valor] = 135.00
189
- @valid_attributes[:data_documento] = Date.parse('2008-02-01')
190
- @valid_attributes[:data_vencimento] = Date.parse('2008-02-01')
191
- @valid_attributes[:convenio] = 1238
192
- @valid_attributes[:nosso_numero] = '123456'
193
- @valid_attributes[:codigo_servico] = true
194
- boleto_novo = described_class.new(@valid_attributes)
195
-
196
- expect(boleto_novo.conta_corrente_dv).to be(0)
197
- expect(boleto_novo.codigo_barras_segunda_parte).to eql('1238012345640420006190018')
198
- expect(boleto_novo.codigo_barras).to eql('00191376900000135001238012345640420006190018')
199
- expect(boleto_novo.codigo_barras.linha_digitavel).to eql('00191.23801 12345.640424 00061.900189 1 37690000013500')
200
- end
201
-
202
- it 'Montar código de barras para convenio de 7 digitos e nosso número de 10 e carteira 17' do
203
- valid_attributes = {
204
- valor: 2246.74,
205
- local_pagamento: 'QUALQUER BANCO ATÉ O VENCIMENTO',
206
- cedente: 'Kivanio Barbosa',
207
- documento_cedente: '12345678912',
208
- sacado: 'Claudio Pozzebom',
209
- sacado_documento: '12345678900',
210
- agencia: '3174',
211
- conta_corrente: '00011672',
212
- convenio: 1_474_166,
213
- nosso_numero: '0000000328',
214
- carteira: '17',
215
- data_documento: Date.parse('2016-07-05'),
216
- data_vencimento: Date.parse('2016-07-05')
217
- }
218
-
219
- boleto_novo = described_class.new(valid_attributes)
220
-
221
- expect(boleto_novo.codigo_barras_segunda_parte).to eql('0000001474166000000032817')
222
- expect(boleto_novo.codigo_barras).to eql('00191684600002246740000001474166000000032817')
223
- expect(boleto_novo.codigo_barras.linha_digitavel).to eql('00190.00009 01474.166004 00000.328179 1 68460000224674')
224
- expect(boleto_novo.conta_corrente_dv).to be(6)
225
- expect(boleto_novo.nosso_numero_dv).to be(4)
226
- end
227
-
228
- it 'Não permitir gerar boleto com atributos inválido' do
229
- boleto_novo = described_class.new
230
- expect { boleto_novo.codigo_barras }.to raise_error(Brcobranca::NaoImplementado)
231
- expect(boleto_novo.errors.count).to be(2)
232
- end
233
-
234
- it 'Calcular agencia_dv' do
235
- boleto_novo = described_class.new(@valid_attributes)
236
- boleto_novo.agencia = '85068014982'
237
- expect(boleto_novo.agencia_dv).to be(9)
238
- boleto_novo.agencia = '05009401448'
239
- expect(boleto_novo.agencia_dv).to be(1)
240
- boleto_novo.agencia = '12387987777700168'
241
- expect(boleto_novo.agencia_dv).to be(2)
242
- boleto_novo.agencia = '4042'
243
- expect(boleto_novo.agencia_dv).to be(8)
244
- boleto_novo.agencia = '61900'
245
- expect(boleto_novo.agencia_dv).to be(0)
246
- boleto_novo.agencia = '0719'
247
- expect(boleto_novo.agencia_dv).to be(6)
248
- boleto_novo.agencia = 85_068_014_982
249
- expect(boleto_novo.agencia_dv).to be(9)
250
- boleto_novo.agencia = 5_009_401_448
251
- expect(boleto_novo.agencia_dv).to be(1)
252
- boleto_novo.agencia = 12_387_987_777_700_168
253
- expect(boleto_novo.agencia_dv).to be(2)
254
- boleto_novo.agencia = 4042
255
- expect(boleto_novo.agencia_dv).to be(8)
256
- boleto_novo.agencia = 61_900
257
- expect(boleto_novo.agencia_dv).to be(0)
258
- boleto_novo.agencia = 719
259
- expect(boleto_novo.agencia_dv).to be(6)
260
- end
261
-
262
- it 'Montar nosso_numero_boleto' do
263
- boleto_novo = described_class.new(@valid_attributes)
264
- boleto_novo.nosso_numero = '4042'
265
- expect(boleto_novo.nosso_numero_boleto).to eql('12387989000004042')
266
- expect(boleto_novo.nosso_numero_dv).to be(4)
267
- boleto_novo.nosso_numero = '61900'
268
- expect(boleto_novo.nosso_numero_boleto).to eql('12387989000061900')
269
- expect(boleto_novo.nosso_numero_dv).to be(7)
270
- boleto_novo.nosso_numero = '0719'
271
- expect(boleto_novo.nosso_numero_boleto).to eql('12387989000000719')
272
- expect(boleto_novo.nosso_numero_dv).to be(2)
273
- boleto_novo.nosso_numero = 4042
274
- expect(boleto_novo.nosso_numero_boleto).to eql('12387989000004042')
275
- expect(boleto_novo.nosso_numero_dv).to be(4)
276
- boleto_novo.nosso_numero = 61_900
277
- expect(boleto_novo.nosso_numero_boleto).to eql('12387989000061900')
278
- expect(boleto_novo.nosso_numero_dv).to be(7)
279
- boleto_novo.nosso_numero = 719
280
- expect(boleto_novo.nosso_numero_boleto).to eql('12387989000000719')
281
- expect(boleto_novo.nosso_numero_dv).to be(2)
282
- end
283
-
284
- it 'Montar agencia_conta_boleto' do
285
- boleto_novo = described_class.new(@valid_attributes)
286
-
287
- expect(boleto_novo.agencia_conta_boleto).to eql('4042-8 / 00061900-0')
288
- boleto_novo.agencia = '0719'
289
- expect(boleto_novo.agencia_conta_boleto).to eql('0719-6 / 00061900-0')
290
- boleto_novo.agencia = '0548'
291
- boleto_novo.conta_corrente = '1448'
292
- expect(boleto_novo.agencia_conta_boleto).to eql('0548-7 / 00001448-6')
293
- end
294
-
295
- describe 'Busca logotipo do banco' do
296
- it_behaves_like 'busca_logotipo'
297
- end
298
-
299
- it 'Gerar boleto nos formatos válidos com método to_' do
300
- @valid_attributes[:valor] = 135.00
301
- @valid_attributes[:data_documento] = Date.parse('2008-02-01')
302
- @valid_attributes[:data_vencimento] = Date.parse('2008-02-03')
303
- @valid_attributes[:convenio] = 1_238_798
304
- @valid_attributes[:nosso_numero] = '7777700168'
305
- boleto_novo = described_class.new(@valid_attributes)
306
- %w[pdf jpg tif png].each do |format|
307
- file_body = boleto_novo.send("to_#{format}".to_sym)
308
- tmp_file = Tempfile.new(['foobar.', format])
309
- tmp_file.puts file_body
310
- tmp_file.close
311
- expect(File).to exist(tmp_file.path)
312
- expect(File.stat(tmp_file.path)).not_to be_zero
313
- expect(File.delete(tmp_file.path)).to be(1)
314
- expect(File).not_to exist(tmp_file.path)
315
- end
316
- end
317
-
318
- it 'Gerar boleto nos formatos válidos' do
319
- @valid_attributes[:valor] = 135.00
320
- @valid_attributes[:data_documento] = Date.parse('2008-02-01')
321
- @valid_attributes[:data_vencimento] = Date.parse('2008-02-03')
322
- @valid_attributes[:convenio] = 1_238_798
323
- @valid_attributes[:nosso_numero] = '7777700168'
324
- boleto_novo = described_class.new(@valid_attributes)
325
- %w[pdf jpg tif png].each do |format|
326
- file_body = boleto_novo.to(format)
327
- tmp_file = Tempfile.new(['foobar.', format])
328
- tmp_file.puts file_body
329
- tmp_file.close
330
- expect(File).to exist(tmp_file.path)
331
- expect(File.stat(tmp_file.path)).not_to be_zero
332
- expect(File.delete(tmp_file.path)).to be(1)
333
- expect(File).not_to exist(tmp_file.path)
334
- end
335
- end
336
- end
@@ -1,153 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'spec_helper'
4
-
5
- RSpec.describe Brcobranca::Boleto::BancoBrasilia do # :nodoc:[all]
6
- before do
7
- @valid_attributes = {
8
- valor: 10.00,
9
- cedente: 'PREFEITURA MUNICIPAL DE VILHENA',
10
- documento_cedente: '04092706000181',
11
- sacado: 'João Paulo Barbosa',
12
- sacado_documento: '77777777777',
13
- agencia: '082',
14
- conta_corrente: '0000528',
15
- nosso_numero: '000001'
16
- }
17
- end
18
-
19
- it 'Criar nova instância com atributos padrões' do
20
- boleto_novo = described_class.new
21
- expect(boleto_novo.banco).to eql('070')
22
- expect(boleto_novo.especie_documento).to eql('DM')
23
- expect(boleto_novo.especie).to eql('R$')
24
- expect(boleto_novo.moeda).to eql('9')
25
- expect(boleto_novo.data_processamento).to eql(Date.current)
26
- expect(boleto_novo.data_vencimento).to eql(Date.current)
27
- expect(boleto_novo.aceite).to eql('S')
28
- expect(boleto_novo.quantidade).to be(1)
29
- expect(boleto_novo.valor).to be(0.0)
30
- expect(boleto_novo.valor_documento).to be(0.0)
31
- expect(boleto_novo.local_pagamento).to eql('PAGÁVEL EM QUALQUER BANCO ATÉ O VENCIMENTO')
32
- expect(boleto_novo.codigo_servico).to be_falsey
33
- expect(boleto_novo.carteira).to eql('2')
34
- end
35
-
36
- it 'Criar nova instancia com atributos válidos' do
37
- boleto_novo = described_class.new @valid_attributes
38
- @valid_attributes.each_key do |key|
39
- expect(boleto_novo.send(key)).to eql(@valid_attributes[key])
40
- end
41
- expect(boleto_novo).to be_valid
42
- end
43
-
44
- it 'Gerar o código de barras' do
45
- @valid_attributes[:data_documento] = Date.parse('2015-04-30')
46
- @valid_attributes[:data_vencimento] = Date.parse('2015-04-30')
47
-
48
- boleto_novo = described_class.new @valid_attributes
49
-
50
- expect(boleto_novo.codigo_barras_segunda_parte).to eql('0000820000528200000107013')
51
- expect(boleto_novo.codigo_barras).to eql('07099641400000010000000820000528200000107013')
52
- expect(boleto_novo.codigo_barras.linha_digitavel).to eql('07090.00087 20000.528206 00001.070135 9 64140000001000')
53
-
54
- @valid_attributes[:data_documento] = Date.parse('2016-07-25')
55
- @valid_attributes[:data_vencimento] = Date.parse('2016-07-25')
56
- @valid_attributes[:valor] = 372.77
57
- @valid_attributes[:carteira] = 1
58
- @valid_attributes[:agencia] = 240
59
- @valid_attributes[:conta_corrente] = 44_990
60
- @valid_attributes[:nosso_numero] = 1
61
- @valid_attributes[:nosso_numero_incremento] = 2
62
-
63
- boleto_novo = described_class.new @valid_attributes
64
- expect(boleto_novo.codigo_barras_segunda_parte).to eql('0022400044990100000107070')
65
- expect(boleto_novo.codigo_barras).to eql('07099686600000372770022400044990100000107070')
66
- expect(boleto_novo.codigo_barras.linha_digitavel).to eql('07090.02240 00044.990109 00001.070705 9 68660000037277')
67
- end
68
-
69
- it 'Não permitir gerar boleto com atributos inválidos' do
70
- boleto_novo = described_class.new
71
- expect { boleto_novo.codigo_barras }.to raise_error(Brcobranca::BoletoInvalido)
72
- end
73
-
74
- it 'Tamanho do número da agência deve ser de 3 dígitos' do
75
- boleto_novo = described_class.new @valid_attributes.merge(agencia: '80')
76
- expect(boleto_novo.agencia).to eq('080')
77
-
78
- boleto_novo = described_class.new @valid_attributes.merge(agencia: '0080')
79
- expect(boleto_novo).not_to be_valid
80
- end
81
-
82
- it 'Tamanho do número de nosso_numero_incremento deve ser de 3 dígitos' do
83
- boleto_novo = described_class.new @valid_attributes.merge(nosso_numero_incremento: '12345678')
84
- expect(boleto_novo).not_to be_valid
85
- end
86
-
87
- it 'Tamanho do número de conta corrente deve ser de 7 dígitos' do
88
- boleto_novo = described_class.new @valid_attributes.merge(conta_corrente: '12345678')
89
- expect(boleto_novo).not_to be_valid
90
- end
91
-
92
- it 'Número do conta corrente deve ser preenchido com zeros à esquerda quando menor que 7 dígitos' do
93
- boleto_novo = described_class.new @valid_attributes.merge(conta_corrente: '12345')
94
- expect(boleto_novo.conta_corrente).to eq('0012345')
95
- expect(boleto_novo).to be_valid
96
- end
97
-
98
- it 'Tamanho da carteira deve ser de 1 dígitos' do
99
- boleto_novo = described_class.new @valid_attributes.merge(carteira: '145')
100
- expect(boleto_novo).not_to be_valid
101
-
102
- boleto_novo = described_class.new @valid_attributes.merge(carteira: '24')
103
- expect(boleto_novo).not_to be_valid
104
- end
105
-
106
- it 'Tamanho do número documento deve ser de 6 dígitos' do
107
- boleto_novo = described_class.new @valid_attributes.merge(nosso_numero: '1234567')
108
- expect(boleto_novo).not_to be_valid
109
- end
110
-
111
- it 'Número do documento deve ser preenchido com zeros à esquerda quando menor que 6 dígitos' do
112
- boleto_novo = described_class.new @valid_attributes.merge(nosso_numero: '1')
113
- expect(boleto_novo.nosso_numero).to eq('000001')
114
- expect(boleto_novo).to be_valid
115
- end
116
-
117
- it 'Montar nosso_numero_boleto' do
118
- boleto_novo = described_class.new @valid_attributes
119
- expect(boleto_novo.nosso_numero_boleto).to eq('200000107013')
120
-
121
- @valid_attributes[:carteira] = 1
122
- @valid_attributes[:agencia] = '058'
123
- @valid_attributes[:conta_corrente] = 6_002_006
124
- @valid_attributes[:nosso_numero] = 1
125
- boleto_novo = described_class.new @valid_attributes
126
- expect(boleto_novo.nosso_numero_boleto).to eq('100000107045')
127
- end
128
-
129
- it 'Montar agencia_conta_boleto' do
130
- boleto_novo = described_class.new(@valid_attributes)
131
-
132
- expect(boleto_novo.agencia_conta_boleto).to eql('000 - 082 - 0000528')
133
-
134
- boleto_novo.conta_corrente = '123456'
135
- expect(boleto_novo.agencia_conta_boleto).to eql('000 - 082 - 0123456')
136
-
137
- boleto_novo.agencia = '030'
138
- boleto_novo.conta_corrente = '654321'
139
- expect(boleto_novo.agencia_conta_boleto).to eql('000 - 030 - 0654321')
140
- end
141
-
142
- describe 'Busca logotipo do banco' do
143
- it_behaves_like 'busca_logotipo'
144
- end
145
-
146
- describe 'Formato do boleto' do
147
- before do
148
- @valid_attributes[:nosso_numero] = '000168'
149
- end
150
-
151
- it_behaves_like 'formatos_validos'
152
- end
153
- end
@@ -1,160 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'spec_helper'
4
-
5
- RSpec.describe Brcobranca::Boleto::BancoNordeste do # :nodoc:[all]
6
- before do
7
- @valid_attributes = {
8
- valor: 25.0,
9
- local_pagamento: 'QUALQUER BANCO ATÉ O VENCIMENTO',
10
- cedente: 'Kivanio Barbosa',
11
- documento_cedente: '12345678912',
12
- sacado: 'Claudio Pozzebom',
13
- sacado_documento: '12345678900',
14
- agencia: '0016',
15
- conta_corrente: '0001193',
16
- digito_conta_corrente: '2',
17
- nosso_numero: '0000053'
18
- }
19
- end
20
-
21
- it 'Criar nova instancia com atributos padrões' do
22
- boleto_novo = described_class.new
23
- expect(boleto_novo.banco).to eql('004')
24
- expect(boleto_novo.especie_documento).to eql('DM')
25
- expect(boleto_novo.especie).to eql('R$')
26
- expect(boleto_novo.moeda).to eql('9')
27
- expect(boleto_novo.data_processamento).to eql(Date.current)
28
- expect(boleto_novo.data_vencimento).to eql(Date.current)
29
- expect(boleto_novo.aceite).to eql('S')
30
- expect(boleto_novo.quantidade).to be(1)
31
- expect(boleto_novo.valor).to eq(0.0)
32
- expect(boleto_novo.valor_documento).to eq(0.0)
33
- expect(boleto_novo.local_pagamento).to eql('QUALQUER BANCO ATÉ O VENCIMENTO')
34
- expect(boleto_novo.carteira).to eql('21')
35
- end
36
-
37
- it 'Criar nova instancia com atributos válidos' do
38
- boleto_novo = described_class.new(@valid_attributes)
39
- expect(boleto_novo.banco).to eql('004')
40
- expect(boleto_novo.especie_documento).to eql('DM')
41
- expect(boleto_novo.especie).to eql('R$')
42
- expect(boleto_novo.moeda).to eql('9')
43
- expect(boleto_novo.data_processamento).to eql(Date.current)
44
- expect(boleto_novo.data_vencimento).to eql(Date.current)
45
- expect(boleto_novo.aceite).to eql('S')
46
- expect(boleto_novo.quantidade).to be(1)
47
- expect(boleto_novo.valor).to eq(25.0)
48
- expect(boleto_novo.valor_documento).to eq(25.0)
49
- expect(boleto_novo.local_pagamento).to eql('QUALQUER BANCO ATÉ O VENCIMENTO')
50
- expect(boleto_novo.cedente).to eql('Kivanio Barbosa')
51
- expect(boleto_novo.documento_cedente).to eql('12345678912')
52
- expect(boleto_novo.sacado).to eql('Claudio Pozzebom')
53
- expect(boleto_novo.sacado_documento).to eql('12345678900')
54
- expect(boleto_novo.agencia).to eql('0016')
55
- expect(boleto_novo.nosso_numero).to eql('0000053')
56
- expect(boleto_novo.carteira).to eql('21')
57
- end
58
-
59
- it 'Gerar boleto' do
60
- @valid_attributes[:valor] = 1000.00
61
- @valid_attributes[:data_vencimento] = Date.parse('2009/10/21')
62
- boleto_novo = described_class.new(@valid_attributes)
63
- expect(boleto_novo.codigo_barras_segunda_parte).to eql('0016000119320000053121000')
64
- expect(boleto_novo.codigo_barras).to eql('00491439700001000000016000119320000053121000')
65
- expect(boleto_novo.codigo_barras.linha_digitavel).to eql('00490.01605 00119.320000 00531.210003 1 43970000100000')
66
-
67
- @valid_attributes[:valor] = 54.00
68
- @valid_attributes[:nosso_numero] = '0002720'
69
- @valid_attributes[:data_vencimento] = Date.parse('2012/09/08')
70
- boleto_novo = described_class.new(@valid_attributes)
71
- expect(boleto_novo.codigo_barras_segunda_parte).to eql('0016000119320002720021000')
72
- expect(boleto_novo.codigo_barras).to eql('00497545000000054000016000119320002720021000')
73
- expect(boleto_novo.codigo_barras.linha_digitavel).to eql('00490.01605 00119.320000 27200.210006 7 54500000005400')
74
-
75
- @valid_attributes[:agencia] = '0259'
76
- @valid_attributes[:conta_corrente] = '0008549'
77
- @valid_attributes[:digito_conta_corrente] = '3'
78
- @valid_attributes[:valor] = 1.01
79
- @valid_attributes[:nosso_numero] = '0000001'
80
- @valid_attributes[:data_vencimento] = Date.parse('2017/01/17')
81
- boleto_novo = described_class.new(@valid_attributes)
82
- expect(boleto_novo.codigo_barras_segunda_parte).to eql('0259000854930000001921000')
83
- expect(boleto_novo.codigo_barras).to eql('00492704200000001010259000854930000001921000')
84
- expect(boleto_novo.codigo_barras.linha_digitavel).to eql('00490.25901 00854.930005 00019.210004 2 70420000000101')
85
-
86
- @valid_attributes[:agencia] = '0275'
87
- @valid_attributes[:conta_corrente] = '0000253'
88
- @valid_attributes[:digito_conta_corrente] = '5'
89
- @valid_attributes[:valor] = 2807.75
90
- @valid_attributes[:nosso_numero] = '0000005'
91
- @valid_attributes[:data_vencimento] = Date.parse('2016/07/28')
92
- boleto_novo = described_class.new(@valid_attributes)
93
- expect(boleto_novo.codigo_barras_segunda_parte).to eql('0275000025350000005121000')
94
- expect(boleto_novo.codigo_barras).to eql('00491686900002807750275000025350000005121000')
95
- expect(boleto_novo.codigo_barras.linha_digitavel).to eql('00490.27501 00025.350000 00051.210003 1 68690000280775')
96
- end
97
-
98
- it 'Não permitir gerar boleto com atributos inválido' do
99
- boleto_novo = described_class.new
100
- expect { boleto_novo.codigo_barras }.to raise_error(Brcobranca::BoletoInvalido)
101
- expect(boleto_novo.errors.count).to be(6)
102
- end
103
-
104
- it 'Montar nosso_numero_dv' do
105
- @valid_attributes[:nosso_numero] = '9061138'
106
- boleto_novo = described_class.new(@valid_attributes)
107
- expect(boleto_novo.nosso_numero_dv).to be(1)
108
-
109
- @valid_attributes[:nosso_numero] = '0000010'
110
- boleto_novo = described_class.new(@valid_attributes)
111
- expect(boleto_novo.nosso_numero_dv).to be(8)
112
-
113
- @valid_attributes[:nosso_numero] = '0020572'
114
- boleto_novo = described_class.new(@valid_attributes)
115
- expect(boleto_novo.nosso_numero_dv).to be(9)
116
-
117
- @valid_attributes[:nosso_numero] = '1961005'
118
- boleto_novo = described_class.new(@valid_attributes)
119
- expect(boleto_novo.nosso_numero_dv).to be(0)
120
-
121
- @valid_attributes[:nosso_numero] = '0000053'
122
- boleto_novo = described_class.new(@valid_attributes)
123
- expect(boleto_novo.nosso_numero_dv).to be(1)
124
- end
125
-
126
- it 'Montar nosso_numero_boleto' do
127
- @valid_attributes[:nosso_numero] = '0000010'
128
- boleto_novo = described_class.new(@valid_attributes)
129
- expect(boleto_novo.nosso_numero_boleto).to eql('0000010-8')
130
-
131
- @valid_attributes[:nosso_numero] = '0020572'
132
- boleto_novo = described_class.new(@valid_attributes)
133
- expect(boleto_novo.nosso_numero_boleto).to eql('0020572-9')
134
-
135
- @valid_attributes[:nosso_numero] = '1297105'
136
- boleto_novo = described_class.new(@valid_attributes)
137
- expect(boleto_novo.nosso_numero_boleto).to eql('1297105-7')
138
-
139
- @valid_attributes[:nosso_numero] = '0000005'
140
- boleto_novo = described_class.new(@valid_attributes)
141
- expect(boleto_novo.nosso_numero_boleto).to eql('0000005-1')
142
-
143
- @valid_attributes[:nosso_numero] = '0020572'
144
- boleto_novo = described_class.new(@valid_attributes)
145
- expect(boleto_novo.nosso_numero_boleto).to eql('0020572-9')
146
- end
147
-
148
- it 'Montar agencia_conta_boleto' do
149
- boleto_novo = described_class.new(@valid_attributes)
150
- expect(boleto_novo.agencia_conta_boleto).to eql('0016/0001193-2')
151
- end
152
-
153
- describe 'Busca logotipo do banco' do
154
- it_behaves_like 'busca_logotipo'
155
- end
156
-
157
- describe 'Formato do boleto' do
158
- it_behaves_like 'formatos_validos'
159
- end
160
- end